# HG changeset patch # User Michael Pavone # Date 1387656420 28800 # Node ID 2dac67e9d18bd65509a9f49541c4456635643b00 # Parent f3d5068cbd43e93f18b7efc4b826af62b6487e5e Add -m flag to compiler driver to select macro expansion only diff -r f3d5068cbd43 -r 2dac67e9d18b tpc.js --- a/tpc.js Sat Dec 21 12:06:10 2013 -0800 +++ b/tpc.js Sat Dec 21 12:07:00 2013 -0800 @@ -8,6 +8,7 @@ var basedir = ''; var debugmode = false; var backend = 'C'; +var macroonly = false; for (var i = 0; i < arguments.length; i++) { switch (argtype) { case 'normal': @@ -20,6 +21,9 @@ case '-compilerdebug': debugmode = true; break; + case '-m': + macroonly = true; + break; default: if (arguments[i].charAt(0) == '-') { print("unrecognized switch", arguments[i]); @@ -106,20 +110,24 @@ debugprint = print; } parsed = parsed.macroexpand(new topenv(includes)); - toplevel = new topsymbols(includes); - switch(backend) - { - case 'C': - var c = parsed.toCModule(); - break; - case 'IL': - var c = parsed.toILModule(); - case 'JS': - var c = makeJSProg(parsed); - break; - default: - print('Backend', backend, ' not recognized'); - quit(1); + if (macroonly) { + print(''+parsed); + } else { + toplevel = new topsymbols(includes); + switch(backend) + { + case 'C': + var c = parsed.toCModule(); + break; + case 'IL': + var c = parsed.toILModule(); + case 'JS': + var c = makeJSProg(parsed); + break; + default: + print('Backend', backend, ' not recognized'); + quit(1); + } + print(c); } - print(c); }