#include <msp/io/seekable.h>
#include "builtin.h"
#include "parser.h"
-#include "visitor.h"
using namespace std;
if(!io)
return 0;
- Parser parser;
- Module *module = new Module(parser.parse(*io, "<builtin>", BUILTIN_SOURCE));
+ RefPtr<Module> module = new Module;
+ Parser parser(0);
+ parser.parse(*module, *io, "<builtin>", BUILTIN_SOURCE);
NodeList<Statement> &shared_body = module->shared.content.body;
NodeList<Statement>::iterator insert_point = shared_body.begin();
type->kind = BasicTypeDeclaration::INT;
shared_body.insert(insert_point, type);
+ type = new BasicTypeDeclaration;
+ type->source = BUILTIN_SOURCE;
+ type->name = "uint";
+ type->size = 32;
+ type->sign = false;
+ type->kind = BasicTypeDeclaration::INT;
+ shared_body.insert(insert_point, type);
+
type = new BasicTypeDeclaration;
type->source = BUILTIN_SOURCE;
type->name = "float";
for(list<Stage>::iterator i=module->stages.begin(); i!=module->stages.end(); ++i)
populate_types(*i);
- builtins_module = module;
+ builtins_module = module.release();
}
return builtins_module.get();
}