(CommandList
  children: [
    (C {(set)} {(-e)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(uname)} {(-m)})])
                        left_token: <Left_CommandSub "$(">
                        spids: [47 51]
                      )
                    )
                  } {(KW_Bang "!") (Lit_Other "=")} {(DQ (x86_64))} {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(echo)} {(DQ ("ERROR: This script only works on x86_64"))}) (C {(exit)} {(1)})]
          spids: [-1 64]
        )
      ]
      spids: [-1 78]
    )
    (C {(cd)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(dirname)} {($ VSub_Number "$0")})])
          left_token: <Left_CommandSub "$(">
          spids: [83 87]
        )
      }
    )
    (C {(trap)} {(SQ <"echo \"Might need a more recent version of binutils\"">)} {(EXIT)})
    (C {(echo)} {(DQ ("Compiling insn-x86-dat-src.c to 64-bit object"))})
    (C {(gcc)} {(-g)} {(-c)} {(insn-x86-dat-src.c)})
    (Pipeline
      children: [
        (C {(objdump)} {(-dSw)} {(insn-x86-dat-src.o)})
        (SimpleCommand
          words: [{(awk)} {(-f)} {(gen-insn-x86-dat.awk)}]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(insn-x86-dat-64.c)} spids:[129])]
        )
      ]
      negated: False
    )
    (C {(rm)} {(-f)} {(insn-x86-dat-src.o)})
    (C {(echo)} {(DQ ("Compiling insn-x86-dat-src.c to 32-bit object"))})
    (C {(gcc)} {(-g)} {(-c)} {(-m32)} {(insn-x86-dat-src.c)})
    (Pipeline
      children: [
        (C {(objdump)} {(-dSw)} {(insn-x86-dat-src.o)})
        (SimpleCommand
          words: [{(awk)} {(-f)} {(gen-insn-x86-dat.awk)}]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(insn-x86-dat-32.c)} spids:[173])]
        )
      ]
      negated: False
    )
    (C {(rm)} {(-f)} {(insn-x86-dat-src.o)})
    (C {(trap)} {(-)} {(EXIT)})
    (C {(echo)} {(DQ ("Done (use git diff to see the changes)"))})
  ]
)