(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Pound "$#")} {(-gt)} {(1)})
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} {(DQ (-topdir))})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TOPDIR)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number "$2"))}
                          spids: [98]
                        )
                      ]
                      spids: [98]
                    )
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ";">)
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ";">)
                  ]
                  spids: [-1 95]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TOPDIR)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(llvm-config)} {(--src-root)})])
                            left_token: <Left_Backtick "`">
                            spids: [115 119]
                          )
                        }
                      spids: [114]
                    )
                  ]
                  spids: [114]
                )
              ]
              spids: [111 122]
            )
          ]
          spids: [-1 76]
        )
      ]
      spids: [-1 124]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-d)} {(DQ ($ VSub_Name "$TOPDIR"))})
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(cd)} {($ VSub_Name "$TOPDIR")})
            (Pipeline
              children: [
                (C {(./utils/llvmdo)} {(-topdir)} {(DQ ($ VSub_Name "$TOPDIR"))} {(-dirs)} 
                  {(DQ ("include lib tools test utils examples"))} {(-code-only)} {(wc)} {(-l)}
                )
                (C {(awk)} 
                  {
                    (SQ <"\\\n"> <"      BEGIN { loc=0; } \\\n"> <"      { loc += $1; } \\\n"> 
                      <"      END { print loc; }">
                    )
                  }
                )
              ]
              negated: False
            )
          ]
          spids: [-1 139]
        )
      ]
      else_action: [(C {(echo)} {(DQ ("Can't find LLVM top directory"))})]
      spids: [178 187]
    )
  ]
)