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 {