(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:in) op:Equal rhs:{(DQ ($ VSub_Number "$1"))} spids:[4])]
      spids: [4]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:arch)
          op: Equal
          rhs: {(DQ ($ VSub_Number "$2"))}
          spids: [9]
        )
      ]
      spids: [9]
    )
    (FuncDef
      name: syscall_macro
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:nr)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [22]
                )
              ]
              spids: [22]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$2"))}
                  spids: [28]
                )
              ]
              spids: [28]
            )
            (C {(echo)} 
              {
                (DQ ("\t[") ($ VSub_Name "$nr") ("] = ") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$name") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (",")
                )
              }
            )
          ]
          spids: [19]
        )
      spids: [15 18]
    )
    (FuncDef
      name: emit
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:nr)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [57]
                )
              ]
              spids: [57]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:entry)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$2"))}
                  spids: [63]
                )
              ]
              spids: [63]
            )
            (C {(syscall_macro)} {(DQ ($ VSub_Name "$nr"))} {(DQ ($ VSub_Name "$entry"))})
          ]
          spids: [54]
        )
      spids: [50 53]
    )
    (C {(echo)} {(DQ ("static const char *syscalltbl_") (${ VSub_Name arch) ("[] = {"))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sorted_table)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(mktemp)} {(/tmp/syscalltbl.XXXXXX)})])
                left_token: <Left_CommandSub "$(">
                spids: [95 99]
              )
            }
          spids: [94]
        )
      ]
      spids: [94]
    )
    (Pipeline
      children: [
        (C {(grep)} {(SQ <"^[0-9]">)} {(DQ ($ VSub_Name "$in"))})
        (SimpleCommand
          words: [{(sort)} {(-n)}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: -1
              arg_word: {($ VSub_Name "$sorted_table")}
              spids: [117]
            )
          ]
        )
      ]
      negated: False
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:max_nr) op:Equal rhs:{(0)} spids:[122])]
      spids: [122]
    )
    (While
      cond: [
        (Sentence
          child: (C {(read)} {(nr)} {(abi)} {(name)} {(entry)} {(compat)})
          terminator: <Op_Semi ";">
        )
      ]
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {($ VSub_Name "$nr")} {(-ge)} {(512)} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [-1 157]
                )
              ]
              spids: [-1 166]
            )
            (C {(emit)} {(DQ ($ VSub_Name "$nr"))} {(DQ ($ VSub_Name "$name"))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:max_nr)
                  op: Equal
                  rhs: {($ VSub_Name "$nr")}
                  spids: [181]
                )
              ]
              spids: [181]
            )
          ]
          spids: [140 184]
        )
      redirects: [(Redir op_id:Redir_Less fd:-1 arg_word:{($ VSub_Name "$sorted_table")} spids:[186])]
    )
    (C {(rm)} {(-f)} {($ VSub_Name "$sorted_table")})
    (C {(echo)} {(DQ ("};"))})
    (C {(echo)} {(DQ ("#define SYSCALLTBL_") (${ VSub_Name arch) ("_MAX_ID ") (${ VSub_Name max_nr))})
  ]
)