X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramcompiler.h;h=be2afab6fdd4d5746c5605aa8c1e9e1ea9707146;hp=fea7a73fb78c3e8a0b68d12c7a9aa25f73018840;hb=d713e5391dc5d85759c7aab36f6df7a85c3d8eff;hpb=eb6a546dcffc1b67f0a23d8b075fbdc86a2872a0 diff --git a/source/programcompiler.h b/source/programcompiler.h index fea7a73f..be2afab6 100644 --- a/source/programcompiler.h +++ b/source/programcompiler.h @@ -158,13 +158,6 @@ private: virtual void visit(ProgramSyntax::Passthrough &); }; - struct VariableRenamer: Visitor - { - using Visitor::visit; - virtual void visit(ProgramSyntax::VariableReference &); - virtual void visit(ProgramSyntax::VariableDeclaration &); - }; - struct DeclarationReorderer: Visitor { enum DeclarationKind @@ -370,11 +363,12 @@ private: }; Resources *resources; - ProgramParser parser; ProgramSyntax::Module *module; + std::set imported_names; public: ProgramCompiler(); + ~ProgramCompiler(); void compile(const std::string &, const std::string & = ""); void compile(IO::Base &, Resources * = 0, const std::string & = ""); @@ -385,6 +379,8 @@ private: static ProgramSyntax::Module *create_builtins_module(); static ProgramSyntax::Module &get_builtins_module(); static ProgramSyntax::Stage *get_builtins(ProgramSyntax::StageType); + void append_module(ProgramSyntax::Module &); + void append_stage(ProgramSyntax::Stage &); void process(); void import(const std::string &); void generate(ProgramSyntax::Stage &);