comparison cbackend.js @ 66:25b697c91629

Finish implementation of external module access
author Mike Pavone <pavone@retrodev.com>
date Sat, 14 Jul 2012 12:30:25 -0700
parents a6addd8c6bd4
children 42d5660b30b4
comparison
equal deleted inserted replaced
65:b4190db72288 66:25b697c91629
707 ] 707 ]
708 }); 708 });
709 toplevel.names['os'] = os; 709 toplevel.names['os'] = os;
710 } 710 }
711 711
712 modulefile.prototype.toC = function(){
713 var ast = parseFile(this.path + '/' + this.file);
714 ast.populateSymbols(toplevel);
715 return ast.toCModuleInstance();
716 };
717
712 function processUsedToplevel(toplevel) 718 function processUsedToplevel(toplevel)
713 { 719 {
714 var ret = ''; 720 var ret = '';
715 var modulenum = 0; 721 var modulenum = 0;
716 for (var symbol in toplevel.used) { 722 for (var symbol in toplevel.used) {
717 ret += '\tmodule_' + (modulenum) + ' = ' + toplevel.names[symbol].toC() + ';\n';
718 toplevelcode += 'object * module_' + modulenum + ';\n';
719 toplevel.names[symbol].modulevar = 'module_' + (modulenum++); 723 toplevel.names[symbol].modulevar = 'module_' + (modulenum++);
724 toplevelcode += 'object * ' + toplevel.names[symbol].modulevar + ';\n';
725 }
726 for (var symbol in toplevel.used) {
727 ret += '\t' + toplevel.names[symbol].modulevar + ' = ' + toplevel.names[symbol].toC() + ';\n';
720 } 728 }
721 return ret; 729 return ret;
722 } 730 }
723 731
724 function makeCProg(obj) 732 function makeCProg(obj)