(CommandList
  children: [
    (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: [77]
                )
              ]
              spids: [77]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
          ]
          spids: [-1 74]
        )
      ]
      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: [93 97]
                  )
                }
              spids: [92]
            )
          ]
          spids: [92]
        )
      ]
      spids: [89 99]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-d)} {(DQ ($ VSub_Name '$TOPDIR'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(cd)} {($ VSub_Name '$TOPDIR')})
            (C {(./utils/llvmdo)} {(-topdir)} {(DQ ($ VSub_Name '$TOPDIR'))} {(-dirs)} 
              {(DQ ('include lib tools utils examples projects'))} {(echo)}
            )
          ]
          spids: [-1 114]
        )
      ]
      else_action: [(C {(echo)} {(DQ ("Can't find LLVM top directory"))})]
      spids: [140 149]
    )
  ]
)