(command.CommandList
  children: [
    (command.ShFunction
      name: match
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [
                            (command.Simple
                              words: [
                                {<egrep>}
                                {(DQ ($ Id.VSub_Number '$1'))}
                                {(DQ ($ Id.VSub_Number '$2'))}
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/dev/null'>}
                                )
                                (redir
                                  op: <Id.Redir_GreatAnd '2>&'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<1>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          negated: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {
                          (DQ <'could not find \''> ($ Id.VSub_Number '$1') <'\' in '> 
                            ($ Id.VSub_Number '$2')
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [65 86]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: nomatch
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          words: [{<egrep>} {(DQ ($ Id.VSub_Number '$1'))} {(DQ ($ Id.VSub_Number '$2'))}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {
                          (DQ <'found unexpected \''> ($ Id.VSub_Number '$1') <'\' in '> 
                            ($ Id.VSub_Number '$2')
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [119 138]
                )
              ]
            )
          ]
        )
    )
    (C {<match>} {(SQ <'cmp.*+%gs:[^,]*,%esp'>)} {<split_i386_1.stdout>})
    (C {<match>} {(SQ <'call.*__morestack>?$'>)} {<split_i386_1.stdout>})
    (C {<match>} {(SQ <'lea.*-0x200\\(%esp\\),'>)} {<split_i386_1.stdout>})
    (C {<match>} {(SQ <stc>)} {<split_i386_2.stdout>})
    (C {<match>} {(SQ <'call.*__morestack_non_split>?$'>)} {<split_i386_2.stdout>})
    (C {<nomatch>} {(SQ <'call.*__morestack>?$'>)} {<split_i386_2.stdout>})
    (C {<match>} {(SQ <'lea.*-0x4200\\(%esp\\),'>)} {<split_i386_2.stdout>})
    (C {<match>} {(SQ <'failed to match'>)} {<split_i386_3.stdout>})
    (C {<match>} {(SQ <'call.*__morestack>?$'>)} {<split_i386_4.stdout>})
    (C {<match>} {(SQ <'cannot mix'>)} {<split_i386_r.stdout>})
  ]
)