// Step 1951: CompilerPipelineRunner // // t1: addPhase and phaseCount // t2: runAll chains transforms in order // t3: runUpTo stops at named phase // t4: runUpTo throws on unknown phase // t5: phaseOrder reflects insertion order by spec.order; empty runner throws #include "CompilerPipelineRunner.h" #include namespace ws = whetstone; static int p=0,f=0; #define T(n) { std::cout<<" "<<#n<<"... "; } #define P() { std::cout<<"PASS\n"; ++p; } #define F(m) { std::cout<<"FAIL: "< 0 ? 1 : 0; }