(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]
    )
  ]
)