(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: {(DQ <elf32-sh>)}
        )
      ]
      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: (rhs_word__Empty)
        )
      ]
      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 '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 <'  .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 : 0x300000)'>}
                        )
                      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'> <'  }'>
                  )
                }
            )
          ]
          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 )}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
  ]
)