(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SCRIPT_NAME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SCRIPT_NAME='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SCRIPT_NAME='> name:SCRIPT_NAME)
          op: assign_op.Equal
          rhs: {<elf>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OUTPUT_FORMAT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OUTPUT_FORMAT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OUTPUT_FORMAT='> name:OUTPUT_FORMAT)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name OUTPUT_FORMAT>
                var_name: OUTPUT_FORMAT
                suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{(DQ <elf32-sh64>)})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'NO_REL_RELOCS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'NO_REL_RELOCS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NO_REL_RELOCS='> name:NO_REL_RELOCS)
          op: assign_op.Equal
          rhs: {<yes>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TEXT_START_ADDR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TEXT_START_ADDR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEXT_START_ADDR='> name:TEXT_START_ADDR)
          op: assign_op.Equal
          rhs: {<0x1000>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MAXPAGESIZE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MAXPAGESIZE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAXPAGESIZE='> name:MAXPAGESIZE)
          op: assign_op.Equal
          rhs: {<128>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ARCH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ARCH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARCH='> name:ARCH)
          op: assign_op.Equal
          rhs: {<sh>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MACHINE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MACHINE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MACHINE='> name:MACHINE)
          op: assign_op.Equal
          rhs: {<sh5>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ALIGNMENT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ALIGNMENT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ALIGNMENT='> name:ALIGNMENT)
          op: assign_op.Equal
          rhs: {<8>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TEMPLATE_NAME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TEMPLATE_NAME='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEMPLATE_NAME='> name:TEMPLATE_NAME)
          op: assign_op.Equal
          rhs: {<elf32>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GENERATE_SHLIB_SCRIPT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GENERATE_SHLIB_SCRIPT='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GENERATE_SHLIB_SCRIPT='>
              name: GENERATE_SHLIB_SCRIPT
            )
          op: assign_op.Equal
          rhs: {<yes>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EMBEDDED='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EMBEDDED='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EMBEDDED='> name:EMBEDDED)
          op: assign_op.Equal
          rhs: {<yes>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_START_SYMBOLS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_START_SYMBOLS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_START_SYMBOLS='> name:DATA_START_SYMBOLS)
          op: assign_op.Equal
          rhs: {(SQ <'PROVIDE (___data = .);'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OTHER_READONLY_SECTIONS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OTHER_READONLY_SECTIONS='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'OTHER_READONLY_SECTIONS='>
              name: OTHER_READONLY_SECTIONS
            )
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'\n'> <'PROVIDE (___rodata = DEFINED (.rodata) ? .rodata : 0);\n'> 
                <'. = ALIGN (8);\n'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OTHER_GOT_SECTIONS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OTHER_GOT_SECTIONS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OTHER_GOT_SECTIONS='> name:OTHER_GOT_SECTIONS)
          op: assign_op.Equal
          rhs: {(SQ <'. = ALIGN (8);'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ENTRY='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ENTRY='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ENTRY='> name:ENTRY)
          op: assign_op.Equal
          rhs: {<start>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CTOR_START='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CTOR_START='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CTOR_START='> name:CTOR_START)
          op: assign_op.Equal
          rhs: {(SQ <'___ctors = .;'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CTOR_END='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CTOR_END='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CTOR_END='> name:CTOR_END)
          op: assign_op.Equal
          rhs: {(SQ <'___ctors_end = .;'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DTOR_START='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DTOR_START='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DTOR_START='> name:DTOR_START)
          op: assign_op.Equal
          rhs: {(SQ <'___dtors = .;'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DTOR_END='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DTOR_END='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DTOR_END='> name:DTOR_END)
          op: assign_op.Equal
          rhs: {(SQ <'___dtors_end = .;'>)}
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName CREATE_SHLIB))}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'OTHER_SECTIONS='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'OTHER_SECTIONS='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OTHER_SECTIONS='> name:OTHER_SECTIONS)
              op: assign_op.Equal
              rhs: 
                {
                  (DQ <'\n'> <'  .stack '> 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name RELOCATING>
                      var_name: RELOCATING
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<0>})
                      right: <Id.Right_DollarBrace '}'>
                    ) 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name RELOCATING>
                      var_name: RELOCATING
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VTest_Plus _>
                          arg_word: {<'(DEFINED(_stack) ? _stack : ALIGN (0x40000) + 0x80000)'>}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    ) <' :\n'> <'  {\n'> <'    '> 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name RELOCATING>
                      var_name: RELOCATING
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{<'_stack = .;'>})
                      right: <Id.Right_DollarBrace '}'>
                    ) <'\n'> <'    *(.stack)\n'> <'    LONG(0xdeaddead)\n'> <'  }\n'> <'  .cranges 0 : { *(.cranges) }\n'>
                  )
                }
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName CREATE_SHLIB))}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'OTHER_SECTIONS='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'OTHER_SECTIONS='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OTHER_SECTIONS='> name:OTHER_SECTIONS)
              op: assign_op.Equal
              rhs: {(DQ <'\n'> <'  .cranges 0 : { *(.cranges) }\n'>)}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EXTRA_EM_FILE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EXTRA_EM_FILE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXTRA_EM_FILE='> name:EXTRA_EM_FILE)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name EXTRA_EM_FILE>
                var_name: EXTRA_EM_FILE
                suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<sh64elf>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
  ]
)