(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SCRIPT_NAME)
          op: assign_op.Equal
          rhs: {<elf>}
          spids: [7]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OUTPUT_FORMAT)
          op: assign_op.Equal
          rhs: {(DQ <elf32-sh64-linux>)}
          spids: [10]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NO_REL_RELOCS)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEXT_START_ADDR)
          op: assign_op.Equal
          rhs: {<0x400000>}
          spids: [18]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAXPAGESIZE)
          op: assign_op.Equal
          rhs: {(DQ <'CONSTANT (MAXPAGESIZE)'>)}
          spids: [21]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:COMMONPAGESIZE)
          op: assign_op.Equal
          rhs: {(DQ <'CONSTANT (COMMONPAGESIZE)'>)}
          spids: [26]
        )
      ]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:ARCH) op:assign_op.Equal rhs:{<sh>} spids:[31])]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MACHINE)
          op: assign_op.Equal
          rhs: {<sh5>}
          spids: [34]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ALIGNMENT)
          op: assign_op.Equal
          rhs: {<8>}
          spids: [37]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEMPLATE_NAME)
          op: assign_op.Equal
          rhs: {<elf32>}
          spids: [40]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GENERATE_SHLIB_SCRIPT)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [43]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GENERATE_PIE_SCRIPT)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [46]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DATA_START_SYMBOLS)
          op: assign_op.Equal
          rhs: {(SQ <'PROVIDE (___data = .);'>)}
          spids: [51]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OTHER_READONLY_SECTIONS)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'\n'> <'PROVIDE (___rodata = DEFINED (.rodata) ? .rodata : 0);\n'> 
                <'. = ALIGN (8);\n'>
              )
            }
          spids: [63]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OTHER_GOT_SECTIONS)
          op: assign_op.Equal
          rhs: {(SQ <'. = ALIGN (8);'>)}
          spids: [74]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CTOR_START)
          op: assign_op.Equal
          rhs: {(SQ <'___ctors = .;'>)}
          spids: [80]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CTOR_END)
          op: assign_op.Equal
          rhs: {(SQ <'___ctors_end = .;'>)}
          spids: [85]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DTOR_START)
          op: assign_op.Equal
          rhs: {(SQ <'___dtors = .;'>)}
          spids: [90]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DTOR_END)
          op: assign_op.Equal
          rhs: {(SQ <'___dtors_end = .;'>)}
          spids: [95]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$OTHER_RELOCATING_SECTIONS'))})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:OTHER_RELOCATING_SECTIONS)
              op: assign_op.Equal
              rhs: {(SQ <'\n'> <' .cranges 0 : { *(.cranges) }\n'>)}
              spids: [120]
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXTRA_EM_FILE)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name EXTRA_EM_FILE>
                suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<sh64elf>})
              )
            }
          spids: [133]
        )
      ]
    )
  ]
)