(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'out='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'out='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'out='> name:out)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_Number 1))}
        )
      ]
      redirects: []
    )
    (command.Simple blame_tok:<shift> more_env:[] words:[{<shift>}] redirects:[] do_fork:T)
    (command.ShAssignment
      left: <Id.Lit_VarLike 'in='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'in='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'in='> name:in)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_At '@'))}
        )
      ]
      redirects: []
    )
    (command.Pipeline
      children: [
        (command.ForEach
          keyword: <Id.KW_For for>
          iter_names: [i]
          iterable: (for_iter.Words words:[{($ Id.VSub_DollarName in)}])
          semi_tok: <Id.Op_Semi _>
          body: 
            (command.DoGroup
              left: <Id.KW_Do do>
              children: [
                (command.Simple
                  blame_tok: <eval>
                  more_env: []
                  words: [
                    {<eval>}
                    {($ Id.VSub_DollarName CPP)}
                    {($ Id.VSub_DollarName LINUXINCLUDE)}
                    {<-dD>}
                    {<-imacros>}
                    {(DQ ($ Id.VSub_DollarName i))}
                    {<-x>}
                    {<c>}
                    {<'/dev/null'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              right: <Id.KW_Done done>
            )
          redirects: []
        )
        (command.Simple
          blame_tok: <awk>
          more_env: []
          words: [
            {<awk>}
            {
              (SQ <'$1 == "#define" && $2 ~ /__HYPERVISOR_[a-z][a-z_0-9]*/ { v[$3] = $2 }\n'> 
                <'\tEND {   print "/* auto-generated by scripts/xen-hypercall.sh */"\n'> <'\t\tfor (i in v) if (!(v[i] in v))\n'> <'\t\t\tprint "HYPERCALL("substr(v[i], 14)")"}'>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <sort>
          more_env: []
          words: [{<sort>} {<-u>}]
          redirects: [
            (Redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {($ Id.VSub_DollarName out)}
            )
          ]
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
    )
  ]
)