(If
  arms: [
    (if_arm
      cond: [
        (Sentence
          child: 
            (DParen
              child: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithWord w:{($ VSub_Pound '$#')})
                  right: (ArithWord w:{(Lit_Digits 2)})
                )
              spids: [6 13]
            )
          terminator: <Op_Semi ';'>
        )
      ]
      action: [(C {(echo)} {(DQ ('Usage: ') ($ VSub_Number '$0') (' compilerlist.txt benchfile.cpp'))})]
      spids: [16777215 16]
    )
  ]
  else_action: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:compilerlist)
          op: Equal
          rhs: {($ VSub_Number '$1')}
          spids: [30]
        )
      ]
      spids: [30]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:benchfile)
          op: Equal
          rhs: {($ VSub_Number '$2')}
          spids: [33]
        )
      ]
      spids: [33]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:g) op:Equal rhs:{(0)} spids:[37])]
      spids: [37]
    )
    (C {(source)} {($ VSub_Name '$compilerlist')})
    (ForExpr
      init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)}))
      cond: (ArithBinary op_id:Arith_Less left:(ArithVarRef name:i) right:(ArithVarRef name:g))
      update: (UnaryAssign op_id:Arith_DPlus child:(LhsName name:i))
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:compiler)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name CLIST>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                        spids: [83 88]
                                      )
                                    }
                                  )
                                  (C {(cut)} {(-d)} {(DQ (' '))} {(-f)} {(1)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [80 103]
                      )
                    }
                  spids: [79]
                )
              ]
              spids: [79]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-e)} 
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [(C {(which)} {($ VSub_Name '$compiler')})]
                                )
                              left_token: <Left_Backtick '`'>
                              spids: [112 116]
                            )
                          } {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name CLIST>
                            bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                            spids: [127 132]
                          )
                        )
                      }
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C 
                          {
                            (BracedVarSub
                              token: <VSub_Name CLIST>
                              bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                              spids: [142 147]
                            )
                          } {($ VSub_Name '$benchfile')} {(-I..)} {(-o)} {(.bench)}
                        )
                        (SimpleCommand
                          words: [{(./.bench)}]
                          redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                        )
                      ]
                    )
                    (C {(echo)} {(DQ )})
                  ]
                  spids: [16777215 121]
                )
              ]
              else_action: [(C {(echo)} {(DQ ('compiler not found: ') ($ VSub_Name '$compiler'))})]
              spids: [172 183]
            )
          ]
          spids: [72 185]
        )
    )
  ]
  spids: [27 188]
)