Mercurial > repos > tabletprog
changeset 216:2dac67e9d18b
Add -m flag to compiler driver to select macro expansion only
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 21 Dec 2013 12:07:00 -0800 |
parents | f3d5068cbd43 |
children | adad61ea2f3a |
files | tpc.js |
diffstat | 1 files changed, 23 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- 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); }