(List
  (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('DO_OPTIMIZE', {[LIT_CHARS 0]})])
  (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('DO_DARTIUM', {[LIT_CHARS 0]})])
  (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('TESTS_FAILED', {[LIT_CHARS 0]})])
  (FunctionDef usage []
    (List
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "usage: "][VarSub 0][LIT_CHARS " [ --help ] [ --optimize ] [ --dartium ] "]]}      )
      (Com {[LIT_CHARS echo]}      )
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Runs a quick set of tests on runtime, client, and compiler dirs"]]}      )
      (Com {[LIT_CHARS echo]}      )
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " --optimize: Also run dartc and client tests in release mode"]]}      )
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " --dartium : Also run dartium/debug tests"]]}      )
      (Com {[LIT_CHARS echo]}      )
    )
  )
  (FunctionDef doBuild []
    (List
      (Com {[LIT_CHARS ./tools/build.py]} {[LIT_CHARS --arch]} {[VarSub 1]} {[LIT_CHARS --mode]} {[VarSub 2]}      )
      (If
        (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ?]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]}        )
        (List
          (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Build of "][VarSub 1][LIT_CHARS " - "][VarSub 2][LIT_CHARS " failed"]]}          )
          (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}          )
        )
      )
    )
  )
  (FunctionDef doTest []
    (List
      (Com {[LIT_CHARS ./tools/test.py]} {[LIT_CHARS --component]} {[VarSub 2]} {[LIT_CHARS --mode]} {[VarSub 3]}      )
      (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('RESULT', {[VarSub ?]})])
      (If
        (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub RESULT]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]}        )
        (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('TESTS_FAILED', {[LIT_CHARS 1]})])
      )
      (Com {[LIT_CHARS return]} {[VarSub RESULT]}      )
    )
  )
  (While
    (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "]"]}    )
    (List
      (Case to_match={[VarSub 1]}, pat_word_list=[[{[DQ [LIT_CHARS -h]]}, {[DQ [LIT_CHARS "-?"]]}, {[DQ [LIT_CHARS -help]]}, {[DQ [LIT_CHARS --help]]}], [{[DQ [LIT_CHARS --optimize]]}], [{[DQ [LIT_CHARS --dartium]]}], [{[LIT_OTHER "*"]}]]
        (List
          (Com {[LIT_CHARS usage]}          )
          (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}          )
        )
        (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('DO_OPTIMIZE', {[LIT_CHARS 1]})])
        (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('DO_DARTIUM', {[LIT_CHARS 1]})])
        (List
          (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Unrecognized argument: "][VarSub 1]]}          )
          (Com {[LIT_CHARS usage]}          )
          (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}          )
        )
      )
      (Com {[LIT_CHARS shift]}      )
    )
  )
  (If
    (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -d]} {[LIT_CHARS compiler]} {[LIT_CHARS -o]} {[LIT_OTHER "!"]} {[LIT_CHARS -d]} {[LIT_CHARS runtime]} {[LIT_CHARS -o]} {[LIT_OTHER "!"]} {[LIT_CHARS -d]} {[LIT_CHARS tests]} {[LIT_DBRACKET_LIKE "]"]}    )
    (List
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "This doesn't look like the dart source tree."]]}      )
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Change your directory to the dart trunk source"]]}      )
      (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}      )
    )
  )
  (Com {[LIT_CHARS echo]}  )
  (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--- Building release ---"]]}  )
  (Com {[LIT_CHARS doBuild]} {[LIT_CHARS ia32]} {[LIT_CHARS release]}  )
  (Com {[LIT_CHARS echo]}  )
  (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--- Building debug ---"]]}  )
  (Com {[LIT_CHARS doBuild]} {[LIT_CHARS ia32]} {[LIT_CHARS debug]}  )
  (Com {[LIT_CHARS echo]}  )
  (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "=== Runtime tests === "]]}  )
  (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " Debug (Ctrl-C to skip this set of tests)"]]}  )
  (Com {[LIT_CHARS doTest]} {[LIT_CHARS runtime]} {[LIT_CHARS vm]} {[LIT_CHARS debug]}  )
  (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('RUNTIME_RESULT', {[VarSub ?]})])
  (If
    (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub RUNTIME_RESULT]} {[LIT_DBRACKET_LIKE "=="]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]}    )
    (List
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " Release (Ctrl-C to skip this set of tests)"]]}      )
      (Com {[LIT_CHARS doTest]} {[LIT_CHARS runtime]} {[LIT_CHARS vm]} {[LIT_CHARS release]}      )
      (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('RUNTIME_RESULT', {[VarSub ?]})])
    )
  )
  (Com {[LIT_CHARS echo]}  )
  (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "=== dartc tests ==="]]}  )
  (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " Debug mode (Ctrl-C to skip this set of tests)"]]}  )
  (Com {[LIT_CHARS doTest]} {[LIT_CHARS compiler]} {[LIT_CHARS dartc]} {[LIT_CHARS debug]}  )
  (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('DARTC_RESULT', {[VarSub ?]})])
  (If
    (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub DO_OPTIMIZE]} {[LIT_DBRACKET_LIKE "=="]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]}    )
    (List
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " Release mode (--optimize)"]]}      )
      (Com {[LIT_CHARS doTest]} {[LIT_CHARS compiler]} {[LIT_CHARS dartc]} {[LIT_CHARS release]}      )
      (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('RESULT', {[VarSub ?]})])
      (If
        (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub RESULT]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]}        )
        (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('DARTC_RESULT', {[VarSub RESULT]})])
      )
    )
  )
  (Com {[LIT_CHARS echo]}  )
  (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "=== Client tests ==="]]}  )
  (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " Chromium  (Ctrl-C to skip this set of tests)"]]}  )
  (Com {[LIT_CHARS doTest]} {[LIT_CHARS client]} {[LIT_CHARS chromium]} {[LIT_CHARS debug]}  )
  (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CLIENT_RESULT', {[VarSub ?]})])
  (If
    (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub DO_OPTIMIZE]} {[LIT_DBRACKET_LIKE "=="]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]}    )
    (List
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " Chromium Release mode (--optimize)"]]}      )
      (Com {[LIT_CHARS doTest]} {[LIT_CHARS compiler]} {[LIT_CHARS chromium]} {[LIT_CHARS release]}      )
      (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('RESULT', {[VarSub ?]})])
      (If
        (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub RESULT]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]}        )
        (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CLIENT_RESULT', {[VarSub RESULT]})])
      )
    )
  )
  (If
    (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub DO_DARTIUM]} {[LIT_DBRACKET_LIKE "=="]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]}    )
    (List
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " Dartium (Ctrl-C to skip this set of tests)"]]}      )
      (Com {[LIT_CHARS doTest]} {[LIT_CHARS client]} {[LIT_CHARS dartium]} {[LIT_CHARS release]}      )
      (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('RESULT', {[VarSub ?]})])
      (If
        (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub RESULT]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]}        )
        (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CLIENT_RESULT', {[VarSub RESULT]})])
      )
    )
  )
  (If
    (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub RUNTIME_RESULT]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]}    )
    (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "*** vm tests failed"]]}    )
  )
  (If
    (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub DARTC_RESULT]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]}    )
    (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "*** dartc tests failed"]]}    )
  )
  (If
    (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub CLIENT_RESULT]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]}    )
    (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "*** client tests failed"]]}    )
  )
  (If
    (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub TESTS_FAILED]} {[LIT_DBRACKET_LIKE "=="]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]}    )
    (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "All presubmit tests passed!"]]}    )
  )
)