(command.CommandList
  children: [
    (command.ShFunction
      name: check_missing
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<grep>} {<-q>} {(DQ ($ Id.VSub_Number '$2'))} {(DQ ($ Id.VSub_Number '$1'))})
                      ]
                    )
                  action: [
                    (C {<echo>} {(DQ <'Found unexpected error in '> ($ Id.VSub_Number '$1') <':'>)})
                    (C {<echo>} {(DQ <'   '> ($ Id.VSub_Number '$2'))})
                    (C {<echo>} {(DQ )})
                    (C {<echo>} {(DQ <'Actual error output below:'>)})
                    (C {<cat>} {(DQ ($ Id.VSub_Number '$1'))})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [84 99]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: check_missing_sym
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<grep>} {<-q>} {(DQ ($ Id.VSub_Number '$2'))} {(DQ ($ Id.VSub_Number '$1'))})
                      ]
                    )
                  action: [
                    (C {<echo>} {(DQ <'Found unexpected symbol in '> ($ Id.VSub_Number '$1') <':'>)})
                    (C {<echo>} {(DQ <'   '> ($ Id.VSub_Number '$2'))})
                    (C {<echo>} {(DQ )})
                    (C {<echo>} {(DQ <'Actual nm output below:'>)})
                    (C {<cat>} {(DQ ($ Id.VSub_Number '$1'))})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [156 171]
                )
              ]
            )
          ]
        )
    )
    (C {<check_missing>} {<hidden_test.err>} {(DQ <main_default>)})
    (C {<check_missing>} {<hidden_test.err>} {(DQ <main_protected>)})
    (C {<check_missing>} {<hidden_test.err>} {(DQ <main_hidden>)})
    (C {<check_missing>} {<hidden_test.err>} {(DQ <main_internal>)})
    (C {<check_missing_sym>} {<hidden_test.syms>} {(DQ <main_hidden>)})
    (C {<check_missing_sym>} {<hidden_test.syms>} {(DQ <main_internal>)})
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)