(List (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS nounset]}) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS errexit]}) (Com {[LIT_CHARS cd]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub 0]]})]]}) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[ComSub (Com {[LIT_CHARS basename]} {[DQ [ComSub (Com {[LIT_CHARS pwd]})]]})]} {[DQ [LIT_CHARS spec2k]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: cannot find the spec2k/ directory"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (Com {[LIT_CHARS source]} {[LIT_CHARS ../../pnacl/scripts/common-tools.sh]}) (= scope= flags=2 words=[] bindings=[('NACL_ROOT', {[DQ [ComSub (Com {[LIT_CHARS GetAbsolutePath]} {[DQ [LIT_CHARS ../../]]})]]})]) (Com {[LIT_CHARS SetScriptPath]} {[DQ [ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS /run_all.sh]]}) (Com {[LIT_CHARS SetLogDirectory]} {[DQ [VarSub NACL_ROOT][LIT_CHARS /toolchain/test-log]]}) (= scope= flags=2 words=[] bindings=[('TESTS_ARCHIVE', {[LIT_CHARS arm-spec.tar.gz]})]) (= scope= flags=2 words=[] bindings=[('LIST_INT_C', {[DQ [LIT_CHARS "164.gzip 175.vpr 176.gcc 181.mcf 186.crafty 197.parser "][LIT_CHARS "253.perlbmk 254.gap 255.vortex 256.bzip2 300.twolf"]]})]) (= scope= flags=2 words=[] bindings=[('LIST_FP_C', {[DQ [LIT_CHARS "177.mesa 179.art 183.equake 188.ammp"]]})]) (= scope= flags=2 words=[] bindings=[('LIST_INT_CPP', {[DQ [LIT_CHARS 252.eon]]})]) (= scope= flags=0 words=[] bindings=[('SPEC2K_BENCHMARKS', {[DQ [VarSub LIST_FP_C][LIT_CHARS " "][VarSub LIST_INT_C][LIT_CHARS " "][VarSub LIST_INT_CPP]]})]) (= scope= flags=0 words=[] bindings=[('SPEC2K_SCRIPT', {[DQ [LIT_CHARS ./run.train.sh]]})]) (= scope= flags=1 words=[] bindings=[('VERIFY', {[VarSub VERIFY test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS yes]}]})]) (= scope= flags=1 words=[] bindings=[('MAKEOPTS', {[VarSub MAKEOPTS test_op=VS_TEST_COLON_HYPHEN {}]})]) (= scope= flags=1 words=[] bindings=[('PERF_LOGGER', {[DQ [ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS /emit_perf_log.sh]]})]) (= scope= flags=1 words=[] bindings=[('COMPILE_REPEATER', {[DQ [ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS /compile_repeater.sh]]})]) (= scope= flags=1 words=[] bindings=[('SPEC_RUN_REPETITIONS', {[VarSub SPEC_RUN_REPETITIONS test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 1]}]})]) (= scope= flags=1 words=[] bindings=[('SPEC_COMPILE_REPETITIONS', {[VarSub SPEC_COMPILE_REPETITIONS test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 1]}]})]) (= scope= flags=1 words=[] bindings=[('DASHDASH', {[DQ ]})]) (= scope= flags=2 words=[] bindings=[('SCONS_OUT', {[DQ [VarSub NACL_ROOT][LIT_CHARS /scons-out]]})]) (= scope= flags=2 words=[] bindings=[('TC_ROOT', {[DQ [VarSub NACL_ROOT][LIT_CHARS /toolchain]]})]) (= scope= flags=2 words=[] bindings=[('TC_BASE', {[DQ [VarSub TC_ROOT][LIT_CHARS /][VarSub SCONS_BUILD_PLATFORM][LIT_CHARS _][VarSub BUILD_ARCH_SHORT]]})]) (= scope= flags=2 words=[] bindings=[('ARM_TRUSTED_TC', {[DQ [VarSub TC_BASE][LIT_CHARS /arm_trusted]]})]) (= scope= flags=2 words=[] bindings=[('QEMU_TOOL', {[DQ [VarSub ARM_TRUSTED_TC][LIT_CHARS /run_under_qemu_arm]]})]) (= scope= flags=2 words=[] bindings=[('ARM_LLC_NEXE', {[DQ [VarSub TC_BASE][LIT_CHARS /pnacl_translator/translator/arm/bin/pnacl-llc.nexe]]})]) (= scope= flags=2 words=[] bindings=[('NNACL_TC', {[DQ [VarSub TC_BASE][LIT_CHARS /nacl_][VarSub BUILD_ARCH_SHORT][LIT_CHARS _glibc]]})]) (= scope= flags=2 words=[] bindings=[('RUNNABLE_LD_X8632', {[DQ [VarSub NNACL_TC][LIT_CHARS /x86_64-nacl/lib32/runnable-ld.so]]})]) (= scope= flags=2 words=[] bindings=[('RUNNABLE_LD_X8664', {[DQ [VarSub NNACL_TC][LIT_CHARS /x86_64-nacl/lib/runnable-ld.so]]})]) (FunctionDef echo_file_size [] (List (= scope= flags=0 words=[] bindings=[('file', {[VarSub 1]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Uncompressed size of "][VarSub file][LIT_CHARS " is "][ComSub (Pipeline (Com {[LIT_CHARS cat]} {[VarSub file]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -c]}) )]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Gzipped size of "][VarSub file][LIT_CHARS " is "][ComSub (Pipeline (Com {[LIT_CHARS gzip]} {[VarSub file]} {[LIT_CHARS -c]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -c]}) )]]}) ) ) (FunctionDef SetupPnaclPexeOpt [] (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS opt.stripped.pexe]})]) ) (FunctionDef SetupPnaclPexe [] (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS unopt.stripped.pexe]})]) ) (FunctionDef SetupGccX8632 [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS gcc.x8632]})]) ) ) (FunctionDef SetupGccX8632Opt [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS gcc.opt.x8632]})]) ) ) (FunctionDef SetupGccX8664 [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS gcc.x8664]})]) ) ) (FunctionDef SetupGccX8664Opt [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS gcc.opt.x8664]})]) ) ) (FunctionDef SetupEmcc [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[LIT_CHARS ../run_asmjs.sh]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS emcc.html]})]) (= scope= flags=0 words=[] bindings=[('VERIFY', {[LIT_CHARS no]})]) ) ) (FunctionDef SetupLlvmX8632 [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS llvm.x8632]})]) ) ) (FunctionDef SetupLlvmX8632Opt [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS llvm.opt.x8632]})]) ) ) (FunctionDef SetupLlvmX8664 [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS llvm.x8664]})]) ) ) (FunctionDef SetupLlvmX8664Opt [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS llvm.opt.x8664]})]) ) ) (FunctionDef SetupLlvmArm [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS llvm.hw.arm]})]) ) ) (FunctionDef SetupLlvmArmOpt [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS llvm.opt.hw.arm]})]) ) ) (FunctionDef SetupNaclX8632Common [] (Com {[LIT_CHARS SetupSelLdr]} {[LIT_CHARS x86-32]}) ) (FunctionDef SetupNaclX8632 [] (List (Com {[LIT_CHARS SetupNaclX8632Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS nacl.x8632]})]) ) ) (FunctionDef SetupNaclX8632Opt [] (List (Com {[LIT_CHARS SetupNaclX8632Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS nacl.opt.x8632]})]) ) ) (FunctionDef SetupNaclX8664Common [] (Com {[LIT_CHARS SetupSelLdr]} {[LIT_CHARS x86-64]}) ) (FunctionDef SetupNaclX8664 [] (List (Com {[LIT_CHARS SetupNaclX8664Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS nacl.x8664]})]) ) ) (FunctionDef SetupNaclX8664Opt [] (List (Com {[LIT_CHARS SetupNaclX8664Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS nacl.opt.x8664]})]) ) ) (FunctionDef SetupNaclDynX8632Common [] (Com {[LIT_CHARS SetupSelLdr]} {[LIT_CHARS x86-32]} {[DQ ]} {[DQ [LIT_CHARS -s]]} {[DQ [VarSub RUNNABLE_LD_X8632]]}) ) (FunctionDef SetupNaclDynX8632 [] (List (Com {[LIT_CHARS SetupNaclDynX8632Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS nacl.dyn.x8632]})]) ) ) (FunctionDef SetupNaclDynX8632Opt [] (List (Com {[LIT_CHARS SetupNaclDynX8632Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS nacl.dyn.opt.x8632]})]) ) ) (FunctionDef SetupNaclDynX8664Common [] (Com {[LIT_CHARS SetupSelLdr]} {[LIT_CHARS x86-64]} {[DQ ]} {[DQ [LIT_CHARS -s]]} {[DQ [VarSub RUNNABLE_LD_X8664]]}) ) (FunctionDef SetupNaclDynX8664 [] (List (Com {[LIT_CHARS SetupNaclDynX8664Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS nacl.dyn.x8664]})]) ) ) (FunctionDef SetupNaclDynX8664Opt [] (List (Com {[LIT_CHARS SetupNaclDynX8664Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS nacl.dyn.opt.x8664]})]) ) ) (FunctionDef SetupPnaclX8664Common [] (Com {[LIT_CHARS SetupSelLdr]} {[LIT_CHARS x86-64]}) ) (FunctionDef SetupPnaclX8664 [] (List (Com {[LIT_CHARS SetupPnaclX8664Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl.x8664]})]) ) ) (FunctionDef SetupPnaclX8664Opt [] (List (Com {[LIT_CHARS SetupPnaclX8664Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl.opt.x8664]})]) ) ) (FunctionDef SetupPnaclX8664ZBSOpt [] (List (Com {[LIT_CHARS SetupSelLdr]} {[LIT_CHARS x86-64]} {[DQ ]} {[DQ [LIT_CHARS -c]]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl.opt.x8664]})]) ) ) (FunctionDef SetupPnaclTranslatorX8664 [] (List (Com {[LIT_CHARS SetupPnaclX8664Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator.x8664]})]) ) ) (FunctionDef SetupPnaclTranslatorX8664Opt [] (List (Com {[LIT_CHARS SetupPnaclX8664Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator.opt.x8664]})]) ) ) (FunctionDef SetupPnaclTranslatorFastX8664Opt [] (List (Com {[LIT_CHARS SetupPnaclX8664Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator_fast.opt.x8664]})]) ) ) (FunctionDef SetupPnaclTranslator1ThreadX8664Opt [] (List (Com {[LIT_CHARS SetupPnaclX8664Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator_1thread.opt.x8664]})]) ) ) (FunctionDef SetupPnaclTranslatorFast1ThreadX8664Opt [] (List (Com {[LIT_CHARS SetupPnaclX8664Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator_fast_1thread.opt.x8664]})]) ) ) (FunctionDef SetupPnaclX8632Common [] (Com {[LIT_CHARS SetupSelLdr]} {[LIT_CHARS x86-32]}) ) (FunctionDef SetupPnaclX8632 [] (List (Com {[LIT_CHARS SetupPnaclX8632Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl.x8632]})]) ) ) (FunctionDef SetupPnaclX8632Opt [] (List (Com {[LIT_CHARS SetupPnaclX8632Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl.opt.x8632]})]) ) ) (FunctionDef SetupPnaclTranslatorX8632 [] (List (Com {[LIT_CHARS SetupPnaclX8632Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator.x8632]})]) ) ) (FunctionDef SetupPnaclTranslatorX8632Opt [] (List (Com {[LIT_CHARS SetupPnaclX8632Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator.opt.x8632]})]) ) ) (FunctionDef SetupPnaclTranslatorFastX8632Opt [] (List (Com {[LIT_CHARS SetupPnaclX8632Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator_fast.opt.x8632]})]) ) ) (FunctionDef SetupPnaclTranslator1ThreadX8632Opt [] (List (Com {[LIT_CHARS SetupPnaclX8632Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator_1thread.opt.x8632]})]) ) ) (FunctionDef SetupPnaclTranslatorFast1ThreadX8632Opt [] (List (Com {[LIT_CHARS SetupPnaclX8632Common]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator_fast_1thread.opt.x8632]})]) ) ) (FunctionDef SetupGccArm [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[DQ [VarSub QEMU_TOOL]]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS gcc.arm]})]) ) ) (FunctionDef SetupGccArmOpt [] (List (= scope= flags=0 words=[] bindings=[('PREFIX', {[DQ [VarSub QEMU_TOOL]]})]) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS gcc.opt.arm]})]) ) ) (FunctionDef SetupPnaclArmCommon [] (Com {[LIT_CHARS SetupSelLdr]} {[LIT_CHARS arm]} {[DQ [VarSub QEMU_TOOL]]} {[DQ [LIT_CHARS -Q]]}) ) (FunctionDef SetupPnaclArmOpt [] (List (Com {[LIT_CHARS SetupPnaclArmCommon]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl.opt.arm]})]) ) ) (FunctionDef SetupPnaclArm [] (List (Com {[LIT_CHARS SetupPnaclArmCommon]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl.arm]})]) ) ) (FunctionDef SetupPnaclTranslatorArm [] (List (Com {[LIT_CHARS SetupPnaclArmCommon]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator.arm]})]) ) ) (FunctionDef SetupPnaclTranslatorArmOpt [] (List (Com {[LIT_CHARS SetupPnaclArmCommon]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator.opt.arm]})]) ) ) (FunctionDef SetupPnaclTranslatorFastArmOpt [] (List (Com {[LIT_CHARS SetupPnaclArmCommon]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator_fast.opt.arm]})]) ) ) (FunctionDef SetupPnaclArmCommonHW [] (Com {[LIT_CHARS SetupSelLdr]} {[LIT_CHARS arm]}) ) (FunctionDef SetupPnaclArmOptHW [] (List (Com {[LIT_CHARS SetupPnaclArmCommonHW]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl.opt.arm]})]) ) ) (FunctionDef SetupPnaclArmHW [] (List (Com {[LIT_CHARS SetupPnaclArmCommonHW]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl.arm]})]) ) ) (FunctionDef SetupPnaclTranslatorArmHW [] (List (Com {[LIT_CHARS SetupPnaclArmCommonHW]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator.hw.arm]})]) ) ) (FunctionDef SetupPnaclTranslatorArmOptHW [] (List (Com {[LIT_CHARS SetupPnaclArmCommonHW]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator.opt.hw.arm]})]) ) ) (FunctionDef SetupPnaclTranslatorFastArmOptHW [] (List (Com {[LIT_CHARS SetupPnaclArmCommonHW]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator_fast.opt.hw.arm]})]) ) ) (FunctionDef SetupPnaclTranslator1ThreadArmOptHW [] (List (Com {[LIT_CHARS SetupPnaclArmCommonHW]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator_1thread.opt.hw.arm]})]) ) ) (FunctionDef SetupPnaclTranslatorFast1ThreadArmOptHW [] (List (Com {[LIT_CHARS SetupPnaclArmCommonHW]}) (= scope= flags=0 words=[] bindings=[('SUFFIX', {[LIT_CHARS pnacl_translator_fast_1thread.opt.hw.arm]})]) ) ) (FunctionDef ConfigInfo [] (List (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Config Info"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "benchmarks: "][ComSub (Com {[LIT_CHARS GetBenchmarkList]} {[DQ [VarSub @]]})]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "script: "][ComSub (Com {[LIT_CHARS GetInputSize]} {[DQ [VarSub @]]})]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "suffix "][VarSub SUFFIX]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "verify "][VarSub VERIFY]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "prefix "][VarSub PREFIX]]}) ) ) (FunctionDef GetBenchmarkList [] (List (If (DBracket {B2 BINARY_INT_GE {[VarSub #]} {[LIT_CHARS 1]}}) (If (DBracket {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[VarSub 1]} {[DQ [LIT_CHARS ref]]}} {B2 BINARY_STRING_EQUAL {[VarSub 1]} {[DQ [LIT_CHARS train]]}}}) (Com {[LIT_CHARS shift]}) ) ) (If (DBracket {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[VarSub #]} {[LIT_CHARS 0]}} {B2 BINARY_STRING_EQUAL {[VarSub 1]} {[DQ [LIT_CHARS all]]}}}) (Com {[LIT_CHARS echo]} {[DQ [VarSub SPEC2K_BENCHMARKS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [VarSub @]]}) ) ) ) (FunctionDef GetInputSize [] (List (If (DBracket {B2 BINARY_INT_GE {[VarSub #]} {[LIT_CHARS 1]}}) (Case to_match={[VarSub 1]}, pat_word_list=[[{[LIT_CHARS train]}], [{[LIT_CHARS ref]}]] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS ./run.train.sh]]}) (Com {[LIT_CHARS return]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS ./run.ref.sh]]}) (Com {[LIT_CHARS return]}) ) ) ) (Com {[LIT_CHARS echo]} {[VarSub SPEC2K_SCRIPT]}) ) ) (FunctionDef CheckFileBuilt [] (List (= scope= flags=0 words=[] bindings=[('depname', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('filename', {[DQ [VarSub 2]]})]) (If (DBracket {B! {B1 UNARY_FILE_f {[DQ [VarSub filename]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "You have not built "][VarSub depname][LIT_CHARS " yet ("][VarSub filename][LIT_CHARS ")!"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) ) ) (FunctionDef SetupSelLdr [] (List (= scope= flags=0 words=[] bindings=[('arch', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('prefix', {[DQ [VarSub 2 test_op=VS_TEST_HYPHEN {}]]})]) (= scope= flags=0 words=[] bindings=[('extra_flags', {[DQ [VarSub 3 test_op=VS_TEST_HYPHEN {}]]})]) (= scope= flags=0 words=[] bindings=[('preload', {[DQ [VarSub 4 test_op=VS_TEST_HYPHEN {}]]})]) (= scope= flags=0 words=[] bindings=[('staging', {[DQ [VarSub SCONS_OUT][LIT_CHARS /opt-][VarSub SCONS_BUILD_PLATFORM][LIT_CHARS -][VarSub arch][LIT_CHARS /staging]]})]) (= scope= flags=0 words=[] bindings=[('SEL_LDR', {[DQ [VarSub staging][LIT_CHARS /sel_ldr]]})]) (Com {[LIT_CHARS CheckFileBuilt]} {[DQ [LIT_CHARS sel_ldr]]} {[DQ [VarSub SEL_LDR]]}) (If (DBracket {B2 BINARY_STRING_EQUAL {[VarSub SCONS_BUILD_PLATFORM]} {[DQ [LIT_CHARS linux]]}}) (List (= scope= flags=0 words=[] bindings=[('SEL_LDR_BOOTSTRAP', {[DQ [VarSub staging][LIT_CHARS /nacl_helper_bootstrap]]})]) (Com {[LIT_CHARS CheckFileBuilt]} {[DQ [LIT_CHARS bootstrap]]} {[DQ [VarSub SEL_LDR_BOOTSTRAP]]}) ) ) (= scope= flags=0 words=[] bindings=[('IRT_IMAGE', {[DQ [VarSub SCONS_OUT][LIT_CHARS /nacl_irt-][VarSub arch][LIT_CHARS /staging/irt_core.nexe]]})]) (Com {[LIT_CHARS CheckFileBuilt]} {[DQ [LIT_CHARS "IRT image"]]} {[DQ [VarSub IRT_IMAGE]]}) (= scope= flags=0 words=[] bindings=[('validator_bin', {[DQ [LIT_CHARS ncval]]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[VarSub arch]} {[DQ [LIT_CHARS arm]]}}) (= scope= flags=0 words=[] bindings=[('validator_bin', {[DQ [LIT_CHARS arm-ncval-core]]})]) ) (= scope= flags=0 words=[] bindings=[('VALIDATOR', {[DQ [VarSub staging][LIT_CHARS /][VarSub validator_bin]]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[VarSub SCONS_BUILD_PLATFORM]} {[DQ [LIT_CHARS linux]]}}) (List (= scope= flags=0 words=[] bindings=[('TEMPLATE_DIGITS', {[DQ [LIT_CHARS XXXXXXXXXXXXXXXX]]})]) (= scope= flags=0 words=[] bindings=[('PREFIX', {[DQ [VarSub prefix][LIT_CHARS " "][VarSub SEL_LDR_BOOTSTRAP][LIT_CHARS " "][VarSub SEL_LDR][LIT_CHARS " --r_debug=0x"][VarSub TEMPLATE_DIGITS][LIT_CHARS " "][LIT_CHARS "--reserved_at_zero=0x"][VarSub TEMPLATE_DIGITS][LIT_CHARS " -B "][VarSub IRT_IMAGE][LIT_CHARS " "][LIT_CHARS "-a "][VarSub extra_flags][LIT_CHARS " -f "][VarSub preload]]})]) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('PREFIX', {[DQ [VarSub prefix][LIT_CHARS " "][VarSub SEL_LDR][LIT_CHARS " -B "][VarSub IRT_IMAGE][LIT_CHARS " -a "][VarSub extra_flags][LIT_CHARS " "][LIT_CHARS "-f "][VarSub preload]]})]) ) (= scope= flags=0 words=[] bindings=[('DASHDASH', {[DQ [LIT_CHARS --]]})]) ) ) (= scope= flags=0 words=[] bindings=[('SCONS_COMMON', {[DQ [LIT_CHARS "./scons --mode=opt-host,nacl -j8 --verbose"]]})]) (FunctionDef EnableX8664ZeroBasedSandbox [] (= scope= flags=1 words=[] bindings=[('NACL_ENABLE_INSECURE_ZERO_BASED_SANDBOX', {[LIT_CHARS 1]})]) ) (FunctionDef build-runtime [] (List (= scope= flags=0 words=[] bindings=[('platforms', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('runtime_pieces', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('extra_flags', {[DQ [VarSub 3 test_op=VS_TEST_HYPHEN {}]]})]) (For platform [{[VarSub platforms]}]) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "build-runtime: scons "][VarSub runtime_pieces][LIT_CHARS " ["][VarSub platform][LIT_CHARS "]"]]}) (Subshell (List (Com {[LIT_CHARS cd]} {[VarSub NACL_ROOT]}) (Com {[VarSub SCONS_COMMON]} {[VarSub extra_flags]} {[LIT_VAR_LIKE "platform="] [VarSub platform] =} {[VarSub runtime_pieces]}) ) ) ) ) ) ) (FunctionDef build-libs-nacl [] (List (= scope= flags=0 words=[] bindings=[('platforms', {[VarSub 1]})]) (Com {[LIT_CHARS shift]} {[LIT_CHARS 1]}) (For platform [{[VarSub platforms]}]) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "build-libs-nacl: scons build_lib ["][VarSub platform][LIT_CHARS "] "][VarSub *]]}) (Subshell (List (Com {[LIT_CHARS cd]} {[VarSub NACL_ROOT]}) (Com {[VarSub SCONS_COMMON]} {[LIT_VAR_LIKE "platform="] [VarSub platform] =} {[LIT_CHARS build_lib]} {[DQ [VarSub @]]}) ) ) ) ) ) ) (FunctionDef build-libs-pnacl [] (List (Com {[LIT_CHARS pushd]} {[DQ [VarSub NACL_ROOT]]}) (Com {[LIT_CHARS pnacl/build.sh]} {[LIT_CHARS sdk]}) (Com {[LIT_CHARS popd]}) ) ) (FunctionDef CleanBenchmarks [] (List (= scope= flags=0 words=[] bindings=[('list', {[ComSub (Com {[LIT_CHARS GetBenchmarkList]} {[DQ [VarSub @]]})]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS bin/]}) (For i [{[VarSub list]}]) (List (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Cleaning: "][VarSub i]]}) (Com {[LIT_CHARS cd]} {[VarSub i]}) (Com {[LIT_CHARS make]} {[LIT_CHARS clean]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS src/]} {[LIT_CHARS data/]}) (Com {[LIT_CHARS cd]} {[LIT_CHARS ..]}) ) ) ) ) (FunctionDef BuildBenchmarks [] (List (= scope= flags=1 words=[] bindings=[('PREFIX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('timeit', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('setup_func', {[VarSub 2]})]) (Com {[DQ [VarSub setup_func]]}) (Com {[LIT_CHARS shift]} {[LIT_CHARS 2]}) (= scope= flags=0 words=[] bindings=[('list', {[ComSub (Com {[LIT_CHARS GetBenchmarkList]} {[DQ [VarSub @]]})]})]) (Com {[LIT_CHARS ConfigInfo]} {[DQ [VarSub @]]}) (For i [{[VarSub list]}]) (List (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Building: "][VarSub i]]}) (Com {[LIT_CHARS cd]} {[VarSub i]}) (= scope= flags=1 words=[] bindings=[('SPEC_COMPONENT', {[DQ [VarSub i]]})]) (Com {[LIT_CHARS make]} {[VarSub MAKEOPTS]} {[LIT_VAR_LIKE "measureit="] [VarSub timeit] =} {[LIT_VAR_LIKE "PERF_LOGGER="] [DQ [VarSub PERF_LOGGER]] =} {[LIT_VAR_LIKE "REPETITIONS="] [DQ [VarSub SPEC_COMPILE_REPETITIONS]] =} {[LIT_VAR_LIKE "COMPILE_REPEATER="] [DQ [VarSub COMPILE_REPEATER]] =} {[LIT_VAR_LIKE "SCONS_BUILD_PLATFORM="] [VarSub SCONS_BUILD_PLATFORM] =} {[LIT_VAR_LIKE "BUILD_ARCH_SHORT="] [VarSub BUILD_ARCH_SHORT] =} {[VarSub i transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*."]}]] [LIT_CHARS .] [VarSub SUFFIX]}) (Com {[LIT_CHARS cd]} {[LIT_CHARS ..]}) ) ) ) ) (FunctionDef TimedRunCmd [] (List (= scope= flags=0 words=[] bindings=[('target', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Running: "][VarSub @]]}) (Com {[LIT_CHARS /usr/bin/time]} {[LIT_CHARS -f]} {[DQ [LIT_CHARS "%U %S %e %C"]]} {[LIT_CHARS --append]} {[LIT_CHARS -o]} {[DQ [VarSub target]]} {[DQ [VarSub @]]}) ) ) (FunctionDef RunBenchmarks [] (List (= scope= flags=1 words=[] bindings=[('PREFIX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('setup_func', {[VarSub 1]})]) (Com {[DQ [VarSub setup_func]]}) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('list', {[ComSub (Com {[LIT_CHARS GetBenchmarkList]} {[DQ [VarSub @]]})]})]) (= scope= flags=0 words=[] bindings=[('script', {[ComSub (Com {[LIT_CHARS GetInputSize]} {[DQ [VarSub @]]})]})]) (Com {[LIT_CHARS ConfigInfo]} {[DQ [VarSub @]]}) (For i [{[VarSub list]}]) (List (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Benchmarking: "][VarSub i]]}) (Com {[LIT_CHARS pushd]} {[VarSub i]}) (= scope= flags=0 words=[] bindings=[('target_file', {[LIT_CHARS ./] [VarSub i transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*."]}]] [LIT_CHARS .] [VarSub SUFFIX]})]) (Com {[LIT_CHARS echo_file_size]} {[VarSub target_file]}) (= scope= flags=1 words=[] bindings=[('SCRIPTNAME', {[DQ [VarSub script]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Running: "][VarSub script][LIT_CHARS " "][VarSub target_file]]}) (Com {[VarSub script]} {[VarSub target_file]}) (Com {[LIT_CHARS popd]}) ) ) ) ) (FunctionDef RunTimedBenchmarks [] (List (= scope= flags=1 words=[] bindings=[('PREFIX', {[SQ ]})]) (Com {[DQ [VarSub 1]]}) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('list', {[ComSub (Com {[LIT_CHARS GetBenchmarkList]} {[DQ [VarSub @]]})]})]) (= scope= flags=0 words=[] bindings=[('script', {[ComSub (Com {[LIT_CHARS GetInputSize]} {[DQ [VarSub @]]})]})]) (Com {[LIT_CHARS ConfigInfo]} {[DQ [VarSub @]]}) (For i [{[VarSub list]}]) (List (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Benchmarking: "][VarSub i]]}) (Com {[LIT_CHARS pushd]} {[VarSub i]}) (= scope= flags=0 words=[] bindings=[('benchname', {[VarSub i transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*."]}]]})]) (= scope= flags=0 words=[] bindings=[('target_file', {[LIT_CHARS ./] [VarSub benchname] [LIT_CHARS .] [VarSub SUFFIX]})]) (= scope= flags=0 words=[] bindings=[('time_file', {[VarSub target_file] [LIT_CHARS .run_time]})]) (Com {[LIT_CHARS echo_file_size]} {[VarSub target_file]}) (= scope= flags=1 words=[] bindings=[('SCRIPTNAME', {[DQ [VarSub script]]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub time_file]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Running benchmark "][VarSub SPEC_RUN_REPETITIONS][LIT_CHARS " times"]]}) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub SPEC_RUN_REPETITIONS]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (Com {[LIT_CHARS TimedRunCmd]} {[VarSub time_file]} {[VarSub script]} {[VarSub target_file]}) ) (Com {[DQ [VarSub PERF_LOGGER]]} {[LIT_CHARS LogRealTime]} {[DQ [VarSub time_file]]} {[DQ [LIT_CHARS runtime]]} {[VarSub benchname]} {[VarSub SUFFIX]}) (Com {[LIT_CHARS popd]}) ) ) ) ) (FunctionDef TimeValidation [] (List (= scope= flags=0 words=[] bindings=[('setup_func', {[VarSub 1]})]) (Com {[DQ [VarSub setup_func]]}) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('list', {[ComSub (Com {[LIT_CHARS GetBenchmarkList]} {[DQ [VarSub @]]})]})]) (For i [{[VarSub list]}]) (List (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Validating: "][VarSub i]]}) (Com {[LIT_CHARS pushd]} {[VarSub i]}) (= scope= flags=0 words=[] bindings=[('benchname', {[VarSub i transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*."]}]]})]) (= scope= flags=0 words=[] bindings=[('target_file', {[LIT_CHARS ./] [VarSub benchname] [LIT_CHARS .] [VarSub SUFFIX]})]) (= scope= flags=0 words=[] bindings=[('time_file', {[VarSub target_file] [LIT_CHARS .validation_time]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub time_file]]}) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub SPEC_RUN_REPETITIONS]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (Com {[LIT_CHARS TimedRunCmd]} {[VarSub time_file]} {[DQ [VarSub VALIDATOR]]} {[VarSub target_file]}) ) (Com {[DQ [VarSub PERF_LOGGER]]} {[LIT_CHARS LogRealTime]} {[DQ [VarSub time_file]]} {[DQ [LIT_CHARS validationtime]]} {[VarSub benchname]} {[VarSub SUFFIX]}) (Com {[LIT_CHARS popd]}) ) ) (If (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[VarSub setup_func]} {[DQ [LIT_CHARS Arm]]}}) (List (Com {[LIT_CHARS TimedRunCmd]} {[LIT_CHARS llc.validation_time]} {[DQ [VarSub VALIDATOR]]} {[DQ [VarSub ARM_LLC_NEXE]]}) (Com {[DQ [VarSub PERF_LOGGER]]} {[LIT_CHARS LogRealTime]} {[LIT_CHARS llc.validation_time]} {[DQ [LIT_CHARS validationtime]]} {[DQ [LIT_CHARS llc]]} {[VarSub SUFFIX]}) ) ) ) ) (FunctionDef BuildAndRunBenchmarks [] (List (= scope= flags=0 words=[] bindings=[('setup', {[VarSub 1]})]) (Com {[LIT_CHARS shift]}) (Com {[LIT_CHARS BuildBenchmarks]} {[LIT_CHARS 0]} {[VarSub setup]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS RunBenchmarks]} {[VarSub setup]} {[DQ [VarSub @]]}) ) ) (FunctionDef TimedBuildAndRunBenchmarks [] (List (= scope= flags=0 words=[] bindings=[('setup', {[VarSub 1]})]) (Com {[LIT_CHARS shift]}) (Com {[LIT_CHARS BuildBenchmarks]} {[LIT_CHARS 1]} {[VarSub setup]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS RunTimedBenchmarks]} {[VarSub setup]} {[DQ [VarSub @]]}) ) ) (FunctionDef PackageArmBinaries [] (List (= scope= flags=0 words=[] bindings=[('BENCH_LIST', {[ComSub (Com {[LIT_CHARS GetBenchmarkList]} {[DQ [VarSub @]]})]})]) (= scope= flags=0 words=[] bindings=[('UNZIPPED_TAR', {[ComSub (Com {[LIT_CHARS basename]} {[VarSub TESTS_ARCHIVE]} {[LIT_CHARS .gz]})]})]) (Com {[LIT_CHARS pushd]} {[DQ [LIT_CHARS ../..]]}) (Com {[LIT_CHARS find]} {[LIT_CHARS tests/spec2k]} {[LIT_CHARS -name]} {[SQ ]} {[LIT_CHARS -delete]}) (Pipeline (Com {[LIT_CHARS find]} {[LIT_CHARS tests/spec2k]} {[LIT_CHARS -maxdepth]} {[LIT_CHARS 1]} {[LIT_CHARS -type]} {[LIT_CHARS f]} {[LIT_CHARS -print]}) (Com {[LIT_CHARS xargs]} {[LIT_CHARS tar]} {[LIT_CHARS --no-recursion]} {[LIT_CHARS -cvf]} {[VarSub UNZIPPED_TAR]}) ) (Com {[LIT_CHARS tar]} {[LIT_CHARS -rvf]} {[VarSub UNZIPPED_TAR]} {[LIT_CHARS tests/spec2k/bin]}) (For i [{[VarSub BENCH_LIST]}]) (Com {[LIT_CHARS tar]} {[LIT_CHARS -rvf]} {[VarSub UNZIPPED_TAR]} {[LIT_CHARS tests/spec2k/] [VarSub i]}) ) (Com {[LIT_CHARS gzip]} {[LIT_CHARS -f]} {[VarSub UNZIPPED_TAR]}) (Com {[LIT_CHARS popd]}) ) ) (FunctionDef UnpackArmBinaries [] (Subshell (List (Com {[LIT_CHARS cd]} {[VarSub NACL_ROOT]}) (Com {[LIT_CHARS tar]} {[LIT_CHARS xvzf]} {[VarSub TESTS_ARCHIVE]}) ) ) ) (FunctionDef GetTestArchiveName [] (Com {[LIT_CHARS echo]} {[VarSub TESTS_ARCHIVE]}) ) (FunctionDef PopulateFromSpecHarness [] (List (= scope= flags=0 words=[] bindings=[('harness', {[VarSub 1]})]) (Com {[LIT_CHARS shift]}) (Com {[LIT_CHARS cp]} {[LIT_CHARS -r]} {[VarSub harness] [LIT_CHARS /bin]} {[LIT_CHARS .]}) (= scope= flags=0 words=[] bindings=[('list', {[ComSub (Com {[LIT_CHARS GetBenchmarkList]} {[DQ [VarSub @]]})]})]) (Com {[LIT_CHARS echo]} {[VarSub list]}) (For i [{[VarSub list]}]) (List (Com {[LIT_CHARS SubBanner]} {[DQ [LIT_CHARS "Populating: "][VarSub i]]}) (= scope= flags=0 words=[] bindings=[('src', {[ComSub (Com {[LIT_CHARS find]} {[LIT_CHARS -H]} {[VarSub harness]} {[LIT_CHARS -name]} {[VarSub i]})]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS COPY]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS src/]} {[LIT_CHARS data/]}) (Com {[LIT_CHARS cp]} {[LIT_CHARS -r]} {[VarSub src] [LIT_CHARS /data]} {[VarSub src] [LIT_CHARS /src]} {[VarSub i]}) (If (DBracket {B1 UNARY_FILE_e {[VarSub i] [LIT_CHARS /diff]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS PATCH]]}) (Com {[LIT_CHARS patch]} {[LIT_CHARS -d]} {[VarSub i]} {[LIT_CHARS --verbose]} {[LIT_CHARS -p0]} < (FilenameRedirectNode filename={[VarSub i] [LIT_CHARS /diff]} 0), > ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS COMPLETE]]}) ) ) ) ) (FunctionDef BuildPrerequisites [] (List (= scope= flags=0 words=[] bindings=[('platforms', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('bitcode', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('extrabuild', {[DQ [VarSub 3 test_op=VS_TEST_HYPHEN {}]]})]) (= scope= flags=0 words=[] bindings=[('extra_flags', {[DQ [VarSub 4 test_op=VS_TEST_HYPHEN {}]]})]) (Com {[LIT_CHARS build-runtime]} {[DQ [VarSub platforms]]} {[DQ [LIT_CHARS "sel_ldr sel_universal irt_core "][VarSub extrabuild]]} {[VarSub extra_flags]}) (If (Com {[LIT_OTHER "["]} {[VarSub bitcode]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS bitcode]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS build-libs-pnacl]}) (ElseTrue) (Com {[LIT_CHARS build-libs-nacl]} {[DQ [VarSub platforms]]}) ) ) ) (FunctionDef BuildPrerequisitesSetupBased [] (List (= scope= flags=0 words=[] bindings=[('platforms', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('bitcode', {[DQ ]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub 1]]} {[LIT_CHARS SetupPnacl] [LIT_OTHER "*"]}}) (= scope= flags=0 words=[] bindings=[('bitcode', {[DQ [LIT_CHARS bitcode]]})]) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub 1]]} {[LIT_CHARS Setup] [LIT_OTHER "*"] [LIT_CHARS Arm] [LIT_OTHER "*"]}}) (= scope= flags=0 words=[] bindings=[('platforms', {[DQ [LIT_CHARS arm]]})]) (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub 1]]} {[LIT_CHARS Setup] [LIT_OTHER "*"] [LIT_CHARS X8632] [LIT_OTHER "*"]}}) (= scope= flags=0 words=[] bindings=[('platforms', {[DQ [LIT_CHARS x86-32]]})]) (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub 1]]} {[LIT_CHARS Setup] [LIT_OTHER "*"] [LIT_CHARS X8664] [LIT_OTHER "*"]}}) (= scope= flags=0 words=[] bindings=[('platforms', {[DQ [LIT_CHARS x86-64]]})]) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Bad setup ["][VarSub 1][LIT_CHARS "]"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (Com {[LIT_CHARS BuildPrerequisites]} {[DQ [VarSub platforms]]} {[DQ [VarSub bitcode]]}) ) ) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[VarSub #]} {[LIT_OTHER "="]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS set]} {[LIT_CHARS --]} {[LIT_CHARS help]}) ) (If (Com {[LIT_OTHER "["]} {[DQ [ComSub (Com {[LIT_CHARS type]} {[LIT_CHARS -t]} {[VarSub 1]})]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [LIT_CHARS function]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS Usage]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: unknown mode '"][VarSub 1][LIT_CHARS "'."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[DQ [VarSub @]]}) )