(command.CommandList
  children: [
    (command.ShFunction
      name: check
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Pipeline
                          children: [
                            (C {<grep>} {<-q>} {(DQ ($ Id.VSub_Number '$2'))} 
                              {(DQ ($ Id.VSub_Number '$1'))}
                            )
                          ]
                          negated: T
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} 
                      {(DQ <'Did not find expected output in '> ($ Id.VSub_Number '$1') <':'>)}
                    )
                    (C {<echo>} {(DQ <'   '> ($ Id.VSub_Number '$2'))})
                    (C {<echo>} {(DQ )})
                    (C {<echo>} {(DQ <'Actual output below:'>)})
                    (C {<cat>} {(DQ ($ Id.VSub_Number '$1'))})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [75 92]
                )
              ]
            )
          ]
        )
    )
    (C {<check>} {<plugin_test_4.err>} {(DQ <'API version:'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'gold version:'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'option: _Z4f13iv'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'two_file_test_main.o: claim file hook called'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'plugin_test_4.a: claim file hook called'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'plugin_test_4.a: claiming file'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'plugin_test_4.a: _Z4f13iv: PREVAILING_DEF_IRONLY'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'plugin_test_4.a: _Z2t2v: PREVAILING_DEF_REG'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'plugin_test_4.a: v2: RESOLVED_IR'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'plugin_test_4.a: t17data: RESOLVED_IR'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'plugin_test_4.a: _Z4f13iv: PREEMPTED_IR'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'two_file_test_1.o: adding new input file'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'two_file_test_1b.o: adding new input file'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'two_file_test_2.o: adding new input file'>)})
    (C {<check>} {<plugin_test_4.err>} {(DQ <'cleanup hook called'>)})
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)