(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PATH)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: (command.CommandList children:[(C {<pwd>})])
              ) <Id.Lit_Other ':'> </command> <Id.Lit_Other ':'> </usr/local/bin> <Id.Lit_Other ':'> </usr/local/sbin> 
              <Id.Lit_Other ':'> </bin> <Id.Lit_Other ':'> </sbin> <Id.Lit_Other ':'> </usr/bin> <Id.Lit_Other ':'> </usr/sbin> 
              <Id.Lit_Other ':'> </usr/X11R6/bin> <Id.Lit_Other ':'> </usr/ucb>
            }
          spids: [0]
        )
      ]
    )
    (C {<export>} {<PATH>})
    (C {<umask>} {<022>})
    (command.ShFunction
      name: die
      body: 
        (command.BraceGroup
          children: [
            (C {<echo>} {(DQ ($ Id.VSub_At '$@'))})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
        )
    )
    (command.ShFunction
      name: catexe
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir.Redir
                  op: <Id.Redir_Great '>'>
                  fd: -1
                  arg_word: {($ Id.VSub_Number '$1')}
                )
              ]
            )
            (C {<chmod>} {<Id.Lit_Other '+'> <x>} {($ Id.VSub_Number '$1')})
          ]
        )
    )
    (command.ShFunction
      name: filter_svstat
      body: 
        (command.BraceGroup
          children: [
            (C {<sed>} {<-e>} {(SQ <'s/[0-9]* seconds/x seconds/'>)} {<-e>} {(SQ <'s/pid [0-9]*/pid x/'>)})
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [(C {<rm>} {<-rf>} {<rts-tmp>}) (C {<die>} {(DQ <'Could not clean up old rts-tmp'>)})]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [(C {<mkdir>} {<rts-tmp>}) (C {<die>} {(DQ <'Could not create new rts-tmp'>)})]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [(C {<cd>} {<rts-tmp>}) (C {<die>} {(DQ <'Could not change to rts-tmp'>)})]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [(C {<mkdir>} {<test.sv>}) (C {<die>} {(DQ <'Could not create test.sv'>)})]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TOP)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: (command.CommandList children:[(C {<pwd>})])
              )
            }
          spids: [154]
        )
      ]
    )
  ]
)