(command.CommandList
  children: [
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(source)} {(sources/include.sh)})
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:24)
          arg_word: {(1)}
        )
      ]
    )
    (C {(load_target)} {(DQ ($ Id.VSub_Number '$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:38)
          arg_word: {(0)}
        )
      ]
    )
    (C {(check_prerequisite)} {(DQ (${ Id.VSub_Name CC_PREFIX) (cc))})
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DPipe]
      children: [
        (C {(mkdir)} {(-p)} 
          (word.BracedTree
            parts: [
              (DQ ($ Id.VSub_DollarName '$STAGE_DIR'))
              (/)
              (word_part.BracedTuple
                words: [{(tmp)} {(Id.KW_Proc proc)} {(sys)} {(dev)} {(home)} {(mnt)} {(root)}]
              )
            ]
          )
        )
        (C {(chmod)} {(a) (Id.Lit_Other '+') (rwxt)} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR') (/tmp))})
        (C {(dienow)})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:STAGE_USR)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$STAGE_DIR') (/usr))}
          spids: [101]
        )
      ]
    )
    (command.ForEach
      iter_name: i
      iter_words: [{(bin)} {(sbin)} {(lib)} {(etc)}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {(mkdir)} {(-p)} 
                  {(DQ ($ Id.VSub_DollarName '$STAGE_USR') (/) ($ Id.VSub_DollarName '$i'))}
                )
                (C {(ln)} {(-s)} {(DQ (usr/) ($ Id.VSub_DollarName '$i'))} 
                  {(DQ ($ Id.VSub_DollarName '$STAGE_DIR') (/) ($ Id.VSub_DollarName '$i'))}
                )
                (C {(dienow)})
              ]
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
      children: [
        (C {(cp)} {(-r)} {(DQ ($ Id.VSub_DollarName '$SOURCES') (/root-filesystem/.))} 
          {(DQ ($ Id.VSub_DollarName '$STAGE_USR') (/))}
        )
        (command.Simple
          words: [
            {(echo)}
            {(-e)}
            {
              (DQ ('CROSS_TARGET=') ($ Id.VSub_DollarName '$CROSS_TARGET') (Id.Lit_Other '\\') 
                ('nKARCH=') ($ Id.VSub_DollarName '$KARCH')
              )
            }
          ]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:206)
              fd: -1
              arg_word: {(DQ ($ Id.VSub_DollarName '$STAGE_USR') (/src/host-info))}
            )
          ]
        )
        (C {(cp)} {(DQ ($ Id.VSub_DollarName '$SRCDIR')) (/MANIFEST)} 
          {(DQ ($ Id.VSub_DollarName '$STAGE_USR') (/src))}
        )
        (C {(dienow)})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} 
              {(DQ ($ Id.VSub_DollarName '$MY_ROOT_OVERLAY'))} {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (C {(cd)} {(DQ ($ Id.VSub_DollarName '$TOP'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Pipeline
                  children: [
                    (C {(tar)} {(-c)} {(-C)} {(DQ ($ Id.VSub_DollarName '$MY_ROOT_OVERLAY'))} {(.)})
                    (C {(tar)} {(-x)} {(-C)} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR'))})
                  ]
                  negated: F
                )
                (C {(dienow)})
              ]
            )
          ]
          spids: [241 255]
        )
      ]
    )
    (command.Simple
      words: [{(build_section)} {(busybox)}]
      more_env: [(env_pair name:STAGE_DIR val:{(DQ ($ Id.VSub_DollarName '$STAGE_USR'))} spids:[300])]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(cp)} {(DQ ($ Id.VSub_DollarName '$WORK')) (/config-busybox)} 
          {(DQ ($ Id.VSub_DollarName '$STAGE_USR')) (/src)}
        )
        (C {(dienow)})
      ]
    )
    (C {(build_section)} {(toybox)})
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(DQ (${ Id.VSub_Name CC_PREFIX) (cc))} 
          {(DQ (${ Id.VSub_Name SOURCES) (/root-filesystem/src/hello.c))} {(-Os)} {($ Id.VSub_DollarName '$CFLAGS')} {(-o)} 
          {(DQ ($ Id.VSub_DollarName '$STAGE_USR') (/bin/hello-dynamic))}
        )
        (C {(dienow)})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$BUILD_STATIC'))} 
              {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(none)} {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(DQ (${ Id.VSub_Name CC_PREFIX) (cc))} 
                  {(DQ (${ Id.VSub_Name SOURCES) (/root-filesystem/src/hello.c))} {(-Os)} {($ Id.VSub_DollarName '$CFLAGS')} {(-static)} {(-o)} 
                  {(DQ ($ Id.VSub_DollarName '$STAGE_USR') (/bin/hello-static))}
                )
                (C {(dienow)})
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:STATIC)
                  op: assign_op.Equal
                  rhs: {(--static)}
                  spids: [421]
                )
              ]
            )
          ]
          spids: [369 384]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:STATIC)
              op: assign_op.Equal
              rhs: (word.Empty)
              spids: [427]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(DQ (${ Id.VSub_Name CC_PREFIX) (cc))} 
          {(DQ ($ Id.VSub_DollarName '$SOURCES') (/toys/wrappy.c))} {(-Os)} {($ Id.VSub_DollarName '$CFLAGS')} {($ Id.VSub_DollarName '$STATIC')} {(-o)} 
          {(DQ ($ Id.VSub_DollarName '$STAGE_USR') (/bin/record-commands-wrapper))}
        )
        (C {(dienow)})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Pipeline
                  children: [(C {(is_in_list)} {(toybox)} {($ Id.VSub_DollarName '$BUILD_STATIC')})]
                  negated: T
                )
                (command.Pipeline
                  children: [(C {(is_in_list)} {(busybox)} {($ Id.VSub_DollarName '$BUILD_STATIC')})]
                  negated: T
                )
              ]
            )
          ]
          action: [
            (C {(echo)} {(Copying)} {(compiler)} {(libraries...)})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(mkdir)} {(-p)} {(DQ ($ Id.VSub_DollarName '$STAGE_USR') (/lib))})
                (C {(dienow)})
              ]
            )
            (command.Pipeline
              children: [
                (command.Subshell
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (C {(path_search)} 
                              {
                                (DQ 
                                  (command_sub
                                    left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:524)
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (command.Pipeline
                                            children: [
                                              (C {(DQ (${ Id.VSub_Name CC_PREFIX) (cc))} 
                                                {(--print-search-dirs)}
                                              )
                                              (C {(sed)} {(-n)} 
                                                {
                                                  (SQ 
                                                    (Token
                                                      id: Id.Lit_Chars
                                                      val: 's/^libraries: =*//p'
                                                      span_id: 541
                                                    )
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                  )
                                )
                              } {(DQ ('*.so*'))} 
                              {
                                (SQ 
                                  (Token
                                    id: Id.Lit_Chars
                                    val: 'cp -H "$DIR/$FILE" "$STAGE_USR/lib/$FILE"'
                                    span_id: 553
                                  )
                                )
                              }
                            )
                            (C {(dienow)})
                          ]
                        )
                      ]
                    )
                )
                (C {(dotprogress)})
              ]
              negated: F
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$SKIP_STRIP'))} 
                  {(Id.Lit_RBracket ']')}
                )
                (C {(DQ (${ Id.VSub_Name CC_PREFIX) (strip))} {(--strip-unneeded)} 
                  {(DQ ($ Id.VSub_DollarName '$STAGE_USR')) (/lib/) (Id.Lit_Star '*') (.so)}
                )
              ]
            )
          ]
          spids: [472 492]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$SKIP_STRIP'))} 
          {(Id.Lit_RBracket ']')}
        )
        (C {(DQ (${ Id.VSub_Name CC_PREFIX) (strip))} 
          (word.BracedTree
            parts: [
              (DQ ($ Id.VSub_DollarName '$STAGE_USR'))
              (/)
              (word_part.BracedTuple
                words: [{(bin/) (Id.Lit_Star '*')} {(sbin/) (Id.Lit_Star '*')}]
              )
            ]
          )
        )
      ]
    )
    (C {(create_stage_tarball)})
    (C {(echo)} {(-e)} {(DQ (Id.Lit_Other '\\') ('e[0mBuild complete'))})
  ]
)