Mercurial > repos > tabletprog
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) |