(CommandList
  children: [
    (FuncDef
      name: match
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (SimpleCommand
                              words: [{(egrep)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                  spids: [82]
                                )
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 2
                                  arg_word: {(1)}
                                  spids: [85]
                                )
                              ]
                            )
                          ]
                          negated: T
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ("could not find '") ($ VSub_Number '$1') ("' in ") ($ VSub_Number '$2'))
                        }
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[94])]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 89]
                )
              ]
              spids: [16777215 110]
            )
          ]
          spids: [65]
        )
      spids: [61 64]
    )
    (FuncDef
      name: nomatch
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(egrep)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [134]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [137]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ("found unexpected '") ($ VSub_Number '$1') ("' in ") ($ VSub_Number '$2'))
                        }
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[146])]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 141]
                )
              ]
              spids: [16777215 162]
            )
          ]
          spids: [119]
        )
      spids: [115 118]
    )
    (C {(match)} {(SQ <'cmp.*+%fs:[^,]*,%esp'>)} {(split_x32_1.stdout)})
    (C {(match)} {(SQ <'callq.*__morestack>?$'>)} {(split_x32_1.stdout)})
    (C {(match)} {(SQ <'lea.*-0x200\\(%rsp\\),'>)} {(split_x32_1.stdout)})
    (C {(match)} {(SQ <stc>)} {(split_x32_2.stdout)})
    (C {(match)} {(SQ <'callq.*__morestack_non_split>?$'>)} {(split_x32_2.stdout)})
    (C {(nomatch)} {(SQ <'callq.*__morestack>?$'>)} {(split_x32_2.stdout)})
    (C {(match)} {(SQ <'lea.*-0x4200\\(%rsp\\),'>)} {(split_x32_2.stdout)})
    (C {(match)} {(SQ <'failed to match'>)} {(split_x32_3.stdout)})
    (C {(match)} {(SQ <'callq.*__morestack>?$'>)} {(split_x32_4.stdout)})
    (C {(match)} {(SQ <'cannot mix'>)} {(split_x32_r.stdout)})
  ]
)