Mercurial > repos > tabletprog
comparison cbackend.js @ 320:1debeb21dd47
Allow symbol expressions in includeSystemHeader calls
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 22 Mar 2015 19:10:09 -0700 |
parents | df4b67d8d2bc |
children | 4a79311dbd29 |
comparison
equal
deleted
inserted
replaced
319:8514a543bece | 320:1debeb21dd47 |
---|---|
664 me.addMessage(msgname, { | 664 me.addMessage(msgname, { |
665 vars: vars, | 665 vars: vars, |
666 lines: messages[i].args[2].toCLines(vars, true) | 666 lines: messages[i].args[2].toCLines(vars, true) |
667 }); | 667 }); |
668 } else if(msgname == 'includeSystemHeader' && messages[i].args.length == 1) { | 668 } else if(msgname == 'includeSystemHeader' && messages[i].args.length == 1) { |
669 me.addInclude("<" + messages[i].args[0].val + ">"); | 669 if (messages[i].args[0] instanceof strlit) { |
670 me.addInclude("<" + messages[i].args[0].val + ">"); | |
671 } else if(messages[i].args[0] instanceof symbol) { | |
672 me.addInclude(messages[i].args[0].name); | |
673 } else { | |
674 throw new Error('Argument to includeSystemHeader must be a string literal or symbol'); | |
675 } | |
670 } else { | 676 } else { |
671 | 677 |
672 throw new Error('Only import and import:from calls allowed in object context. ' + messages[i].name + 'with ' + messages[i].args.length + ' arguments found instead.'); | 678 throw new Error('Only import and import:from calls allowed in object context. ' + messages[i].name + 'with ' + messages[i].args.length + ' arguments found instead.'); |
673 } | 679 } |
674 } else { | 680 } else { |