(command.CommandList
  children: [
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<source>} {<'sources/include.sh'>})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> 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:<Id.ControlFlow_Exit exit> arg_word:{<0>})
      ]
    )
    (C {<export>} {<Id.Lit_VarLike 'TOOLCHAIN_PREFIX='> (DQ (${ Id.VSub_Name ARCH) <->)})
    (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>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (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: 
                    (condition.Shell
                      commands: [
                        (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: [111 125]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName '$KARCH'))} 
          {<Id.Lit_RBracket ']'>}
        )
        (command.Simple
          words: [{<cat>}]
          redirects: [
            (redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {(DQ (${ Id.VSub_Name STAGE_DIR)) <'/README'>}
            )
            (redir
              op: <Id.Redir_DLess '<<'>
              loc: (redir_loc.Fd fd:0)
              arg: 
                (redir_param.HereDoc
                  here_begin: {<EOF>}
                  here_end_span_id: 248
                  stdin_parts: [
                    <'Cross compiler for '>
                    ($ Id.VSub_DollarName '$ARCH')
                    <' from http://landley.net/aboriginal\n'>
                    <'\n'>
                    <'To use: Add the '>
                    <Id.Right_DoubleQuote '"'>
                    <bin>
                    <Id.Right_DoubleQuote '"'>
                    <' subdirectory to your '>
                    (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>)
                    <'PATH, and use '>
                    <Id.Right_DoubleQuote '"'>
                    ($ Id.VSub_DollarName '$ARCH')
                    <-cc>
                    <Id.Right_DoubleQuote '"'>
                    <' as\n'>
                    <'your compiler.\n'>
                    <'\n'>
                    <'The syntax used to build the Linux kernel is:\n'>
                    <'\n'>
                    <'  make ARCH='>
                    (${ Id.VSub_Name KARCH)
                    <' CROSS_COMPILE='>
                    (${ Id.VSub_Name ARCH)
                    <'-\n'>
                    <'\n'>
                  ]
                )
            )
          ]
          do_fork: T
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$SKIP_STRIP'))} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR'))})
            (command.ForEach
              iter_name: i
              iter_words: [
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<find>} {<bin>} {<-type>} {<f>})
                  )
                }
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<find>} {(DQ ($ Id.VSub_DollarName '$CROSS_TARGET'))} {<-type>} {<f>})
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Simple
                      words: [{<strip>} {(DQ ($ Id.VSub_DollarName '$i'))}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                )
            )
          ]
          spids: [254 266]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} 
                  {(DQ ($ Id.VSub_DollarName '$KARCH'))} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ <'Sanity test: building Hello World.'>)})
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {(DQ (${ Id.VSub_Name ARCH) <-gcc>)} {<-Os>} 
                  {(DQ (${ Id.VSub_Name SOURCES) <'/root-filesystem/src/hello.c'>)} {<-o>} {(DQ ($ Id.VSub_DollarName '$WORK')) <'/hello'>}
                )
                (C {(DQ (${ Id.VSub_Name ARCH) <-gcc>)} {<-Os>} {<-static>} 
                  {(DQ (${ Id.VSub_Name SOURCES) <'/root-filesystem/src/hello.c'>)} {<-o>} {(DQ ($ Id.VSub_DollarName '$WORK')) <'/hello'>}
                )
                (C {<dienow>})
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} 
                          {(DQ ($ Id.VSub_DollarName '$CROSS_SMOKE_TEST'))} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<'more/cross-smoke-test.sh'>} {(DQ ($ Id.VSub_DollarName '$ARCH'))})
                        (command.ControlFlow
                          token: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                    )
                  ]
                  spids: [426 441]
                )
              ]
            )
          ]
          spids: [328 342]
        )
      ]
    )
    (C {<create_stage_tarball>})
    (C {<echo>} {<-e>} 
      {
        (DQ <Id.Lit_BadBackslash '\\'> <'e[32mCross compiler toolchain build complete.'> 
          <Id.Lit_BadBackslash '\\'> <'e[0m'>
        )
      }
    )
  ]
)