(command.CommandList
  children: [
    (C {<.>} {(${ Id.VSub_Name srcdir) <'/emulparams/plt_unwind.sh'>})
    (C {<.>} {(${ Id.VSub_Name srcdir) <'/emulparams/extern_protected_data.sh'>})
    (C {<.>} {(${ Id.VSub_Name srcdir) <'/emulparams/call_nop.sh'>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SCRIPT_NAME)
          op: assign_op.Equal
          rhs: {<elf>}
          spids: [21]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OUTPUT_FORMAT)
          op: assign_op.Equal
          rhs: {(DQ <elf32-iamcu>)}
          spids: [24]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NO_RELA_RELOCS)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [29]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEXT_START_ADDR)
          op: assign_op.Equal
          rhs: {<0x08048000>}
          spids: [32]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAXPAGESIZE)
          op: assign_op.Equal
          rhs: {(DQ <'CONSTANT (MAXPAGESIZE)'>)}
          spids: [35]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:COMMONPAGESIZE)
          op: assign_op.Equal
          rhs: {(DQ <'CONSTANT (COMMONPAGESIZE)'>)}
          spids: [40]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ARCH)
          op: assign_op.Equal
          rhs: {<iamcu>}
          spids: [45]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MACHINE)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [48]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:COMPILE_IN)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [50]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEMPLATE_NAME)
          op: assign_op.Equal
          rhs: {<elf32>}
          spids: [53]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GENERATE_SHLIB_SCRIPT)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [56]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GENERATE_PIE_SCRIPT)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [59]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NO_SMALL_DATA)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [62]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SEPARATE_GOTPLT)
          op: assign_op.Equal
          rhs: {(DQ <'SIZEOF (.got.plt) >= 12 ? 12 : 0'>)}
          spids: [65]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:IREL_IN_PLT)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [70]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TINY_READONLY_SECTION)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\n'> <'.plt.got      '> 
                (braced_var_sub
                  token: <Id.VSub_Name RELOCATING>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<0>})
                ) <' : { *(.plt.got) }\n'>
              )
            }
          spids: [75]
        )
      ]
    )
    (command.Case
      to_match: {(DQ ($ Id.VSub_DollarName '$target'))}
      arms: [
        (case_arm
          pat_list: [
            {<x86_64> <Id.Lit_Star '*'> <-linux> <Id.Lit_Star '*'>}
            {<Id.Lit_ArrayLhsOpen 'i['> <3-7> <Id.Lit_RBracket ']'> <86> <Id.Lit_Star '*'> <-linux> 
              <Id.Lit_Star '*'>
            }
          ]
          action: [
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$EMULATION_NAME'))}
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <i386> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:LIBPATH_SUFFIX)
                          op: assign_op.Equal
                          rhs: {<32>}
                          spids: [135]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:LIBPATH_SUFFIX_SKIP)
                          op: assign_op.Equal
                          rhs: {<64>}
                          spids: [139]
                        )
                      ]
                    )
                  ]
                  spids: [129 132 143 -1]
                )
              ]
            )
          ]
          spids: [103 117 149 -1]
        )
      ]
    )
  ]
)