(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: [
            (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: [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.Redir
              op: <Id.Redir_Great '>'>
              fd: -1
              arg_word: {(DQ (${ Id.VSub_Name STAGE_DIR)) </README>}
            )
            (redir.HereDoc
              op: <Id.Redir_DLess '<<'>
              fd: -1
              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'>
              ]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (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 '`'>
                    command_list: 
                      (command.CommandList
                        children: [(C {<find>} {<bin>} {<-type>} {<f>})]
                      )
                  )
                }
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    command_list: 
                      (command.CommandList
                        children: [
                          (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.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                  ]
                )
            )
          ]
          spids: [254 266]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (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: [
                    (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_Other '\\'> <'e[32mCross compiler toolchain build complete.'> <Id.Lit_Other '\\'> 
          <'e[0m'>
        )
      }
    )
  ]
)