diff 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
line wrap: on
line diff
--- a/cbackend.js	Sat Jul 14 04:56:05 2012 -0700
+++ b/cbackend.js	Sat Jul 14 12:30:25 2012 -0700
@@ -709,14 +709,22 @@
 	toplevel.names['os'] = os;
 }
 
+modulefile.prototype.toC = function(){
+	var ast = parseFile(this.path + '/' + this.file);
+	ast.populateSymbols(toplevel);
+	return ast.toCModuleInstance();
+};
+
 function processUsedToplevel(toplevel)
 {
 	var ret = '';
 	var modulenum = 0;
 	for (var symbol in toplevel.used) {
-		ret += '\tmodule_' + (modulenum) + ' = ' + toplevel.names[symbol].toC() + ';\n';
-		toplevelcode += 'object * module_' + modulenum + ';\n';
 		toplevel.names[symbol].modulevar = 'module_' + (modulenum++);
+		toplevelcode += 'object * ' + toplevel.names[symbol].modulevar + ';\n';
+	}
+	for (var symbol in toplevel.used) {
+		ret += '\t' + toplevel.names[symbol].modulevar + ' = ' + toplevel.names[symbol].toC() + ';\n';
 	}
 	return ret;
 }