(command.CommandList
  children: [
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DPipe]
      children: [
        (C {(source)} {(sources/include.sh)})
        (C {(load_target)} {(DQ ($ Id.VSub_Number '$1'))})
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:39)
          arg_word: {(1)}
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(check_for_base_arch)})
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:47)
          arg_word: {(0)}
        )
      ]
    )
    (C {(check_prerequisite)} {(DQ (${ Id.VSub_Name CC_PREFIX) (cc))})
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
      children: [
        (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$HOST_ARCH'))} 
          {(Id.Lit_RBracket ']')}
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:HOST_ARCH)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName '$ARCH'))}
              spids: [74]
            )
          ]
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:STAGE_DIR)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName '$STAGE_DIR') (/usr))}
              spids: [81]
            )
          ]
        )
        (C {(check_prerequisite)} {(DQ (${ Id.VSub_Name HOST_ARCH) (-cc))})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [(C {(mkdir)} {(-p)} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR') (/bin))}) (C {(dienow)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$KARCH'))} 
              {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (C {(build_section)} {(linux-headers)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$UCLIBC_CONFIG'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                        (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} 
                          {(DQ ($ Id.VSub_DollarName '$MUSL'))} {(Id.Lit_RBracket ']')}
                        )
                      ]
                    )
                  ]
                  action: [(C {(build_section)} {(musl)})]
                  spids: [140 167]
                )
              ]
              else_action: [(C {(build_section)} {(uClibc)})]
            )
          ]
          spids: [118 132]
        )
      ]
    )
    (C {(build_section)} {(binutils)})
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$ELF2FLT'))} 
          {(Id.Lit_RBracket ']')}
        )
        (C {(build_section)} {(elf2flt)})
      ]
    )
    (C {(build_section)} {(gcc)})
    (C {(build_section)} {(ccwrap)})
    (C {(export)} 
      {
        (DQ 
          (command_sub
            left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:234)
            command_list: 
              (command.CommandList
                children: [
                  (command.Pipeline
                    children: [
                      (C {(echo)} {($ Id.VSub_DollarName '$ARCH')})
                      (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:s/-/_/g span_id:244))})
                    ]
                    negated: F
                  )
                ]
              )
          )
        ) (Id.Lit_VarLike '_CCWRAP_TOPDIR=') (DQ ($ Id.VSub_DollarName '$STAGE_DIR'))
      }
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$KARCH'))} 
              {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$NO_CPLUSPLUS'))} 
                  {(Id.Lit_RBracket ']')}
                )
                (C {(build_section)} {(uClibc) (Id.Lit_Other '+') (Id.Lit_Other '+')})
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$TOOLCHAIN_PREFIX'))} 
                      {(Id.Lit_RBracket ']')}
                    )
                  ]
                  action: [
                    (C {(build_section)} {(make)})
                    (C {(build_section)} {(bash)})
                    (C {(build_section)} {(distcc)})
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {(cp)} {(DQ ($ Id.VSub_DollarName '$SOURCES') (/toys/hdainit.sh))} 
                          {(DQ ($ Id.VSub_DollarName '$STAGE_DIR') (/../init))}
                        )
                        (C {(mv)} 
                          (word.BracedTree
                            parts: [
                              (DQ ($ Id.VSub_DollarName '$STAGE_DIR'))
                              (/)
                              (word_part.BracedTuple
                                words: [{(man)} {(share/man)}]
                              )
                            ]
                          )
                        )
                        (C {(dienow)})
                      ]
                    )
                  ]
                  spids: [305 318]
                )
              ]
            )
          ]
          spids: [254 268]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(rm)} {(-rf)} 
          (word.BracedTree
            parts: [
              (DQ ($ Id.VSub_DollarName '$STAGE_DIR'))
              (/)
              (word_part.BracedTuple
                words: [
                  {(info)}
                  {(libexec/gcc/) (Id.Lit_Star '*') (/) (Id.Lit_Star '*') (/install-tools)}
                ]
              )
            ]
          )
        )
        (C {(dienow)})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$SKIP_STRIP'))} 
              {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (C {(DQ (${ Id.VSub_Name ARCH) (-strip))} {(--strip-unneeded)} 
              {(DQ ($ Id.VSub_DollarName '$STAGE_DIR')) (/lib/) (Id.Lit_Star '*') (.so)}
            )
            (C {(DQ (${ Id.VSub_Name ARCH) (-strip))} 
              (word.BracedTree
                parts: [
                  (DQ ($ Id.VSub_DollarName '$STAGE_DIR'))
                  (/)
                  (word_part.BracedTuple
                    words: [{(bin/) (Id.Lit_Star '*')} {(sbin/) (Id.Lit_Star '*')}]
                  )
                ]
              )
            )
          ]
          spids: [398 410]
        )
      ]
    )
    (C {(create_stage_tarball)})
  ]
)