(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: [79]
                                )
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 2
                                  arg_word: {(1)}
                                  spids: [82]
                                )
                              ]
                            )
                          ]
                          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:[91])]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 86]
                )
              ]
              spids: [16777215 107]
            )
          ]
          spids: [62]
        )
      spids: [58 61]
    )
    (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: [131]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [134]
                            )
                          ]
                        )
                      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:[143])]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 138]
                )
              ]
              spids: [16777215 159]
            )
          ]
          spids: [116]
        )
      spids: [112 115]
    )
    (C {(match)} {(SQ <'cmp.*+%fs:[^,]*,%rsp'>)} {(split_x86_64_1.stdout)})
    (C {(match)} {(SQ <'callq.*__morestack>?$'>)} {(split_x86_64_1.stdout)})
    (C {(match)} {(SQ <'lea.*-0x200\\(%rsp\\),'>)} {(split_x86_64_1.stdout)})
    (C {(match)} {(SQ <stc>)} {(split_x86_64_2.stdout)})
    (C {(match)} {(SQ <'callq.*__morestack_non_split>?$'>)} {(split_x86_64_2.stdout)})
    (C {(nomatch)} {(SQ <'callq.*__morestack>?$'>)} {(split_x86_64_2.stdout)})
    (C {(match)} {(SQ <'lea.*-0x4200\\(%rsp\\),'>)} {(split_x86_64_2.stdout)})
    (C {(match)} {(SQ <'failed to match'>)} {(split_x86_64_3.stdout)})
    (C {(match)} {(SQ <'callq.*__morestack>?$'>)} {(split_x86_64_4.stdout)})
    (C {(match)} {(SQ <'cannot mix'>)} {(split_x86_64_r.stdout)})
  ]
)