(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(errexit)})
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:LLVM_PROJECT_SVN)
          op: Equal
          rhs: {(DQ ("http://llvm.org/svn/llvm-project"))}
          spids: [43]
        )
      ]
      spids: [41]
    )
    (FuncDef
      name: getLatestRevisionFromSVN
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(svn)} {(info)} {(${ VSub_Name LLVM_PROJECT_SVN)})
                (C {(egrep)} {(Lit_Other "^") (Revision)})
                (C {(sed)} {(SQ <"s/^Revision: //">)})
              ]
              negated: False
            )
          ]
          spids: [53]
        )
      spids: [49 52]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:REV)
          op: Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: 
                    (StringUnary
                      op_id: VTest_ColonHyphen
                      arg_word: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(getLatestRevisionFromSVN)})])
                            left_token: <Left_CommandSub "$(">
                            spids: [89 91]
                          )
                        }
                    )
                  spids: [86 92]
                )
              )
            }
          spids: [84]
        )
      ]
      spids: [82]
    )
    (FuncDef
      name: createTarballFromSVN
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:module)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [105]
                )
              ]
              spids: [103]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:log)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name module) (.log))}
                  spids: [111]
                )
              ]
              spids: [109]
            )
            (C {(echo)} 
              {
                (DQ ("Running: svn export -r ") (${ VSub_Name REV) (" ") (${ VSub_Name module) 
                  ("; log in ") (${ VSub_Name log)
                )
              }
            )
            (SimpleCommand
              words: [
                {(svn)}
                {(-q)}
                {(export)}
                {(-r)}
                {(${ VSub_Name REV)}
                {(${ VSub_Name LLVM_PROJECT_SVN) (/) (${ VSub_Name module) (/trunk)}
                {(${ VSub_Name module)}
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(${ VSub_Name log)}
                  spids: [165]
                )
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[171])
              ]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tarball)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name module) (-) (${ VSub_Name REV) (.tar.bz2))}
                  spids: [182]
                )
              ]
              spids: [180]
            )
            (C {(echo)} {(DQ ("Creating tarball: ") (${ VSub_Name tarball))})
            (C {(tar)} {(cjf)} {(${ VSub_Name tarball)} {(${ VSub_Name module)})
            (C {(echo)} {(DQ ("Cleaning up '") (${ VSub_Name module) ("'"))})
            (C {(rm)} {(-rf)} {(${ VSub_Name module)} {(${ VSub_Name log)})
          ]
          spids: [100]
        )
      spids: [96 99]
    )
    (ForEach
      iter_name: module
      iter_words: [{(DQ (llvm))} {(DQ (llvm-gcc-4.2))}]
      do_arg_iter: False
      body: (DoGroup children:[(C {(createTarballFromSVN)} {(${ VSub_Name module)})] spids:[260269])
      spids: [250 258]
    )
  ]
)