#include <msp/gl/resources.h>
#include <msp/io/seekable.h>
#include "builtin.h"
+#include "generate.h"
#include "parser.h"
using namespace std;
Parser parser;
Module *module = new Module(parser.parse(*io, "<builtin>", BUILTIN_SOURCE));
+ NodeList<Statement> &shared_body = module->shared.content.body;
+ NodeList<Statement>::iterator insert_point = shared_body.begin();
+
+ RefPtr<BasicTypeDeclaration> type = new BasicTypeDeclaration;
+ type->source = BUILTIN_SOURCE;
+ type->name = "void";
+ type->kind = BasicTypeDeclaration::VOID;
+ shared_body.insert(insert_point, type);
+
+ type = new BasicTypeDeclaration;
+ type->source = BUILTIN_SOURCE;
+ type->name = "bool";
+ type->size = 1;
+ type->kind = BasicTypeDeclaration::BOOL;
+ shared_body.insert(insert_point, type);
+
+ type = new BasicTypeDeclaration;
+ type->source = BUILTIN_SOURCE;
+ type->name = "int";
+ type->size = 32;
+ type->kind = BasicTypeDeclaration::INT;
+ shared_body.insert(insert_point, type);
+
+ type = new BasicTypeDeclaration;
+ type->source = BUILTIN_SOURCE;
+ type->name = "float";
+ type->size = 32;
+ type->kind = BasicTypeDeclaration::FLOAT;
+ shared_body.insert(insert_point, type);
+
+ TypeResolver().apply(module->shared);
+ for(list<Stage>::iterator i=module->stages.begin(); i!=module->stages.end(); ++i)
+ TypeResolver().apply(*i);
+
builtins_module = module;
}
return builtins_module.get();