]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programcompiler.h
Make Animation::Iterator assignable
[libs/gl.git] / source / programcompiler.h
index fea7a73fb78c3e8a0b68d12c7a9aa25f73018840..be2afab6fdd4d5746c5605aa8c1e9e1ea9707146 100644 (file)
@@ -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<std::string> imported_names;
 
 public:
        ProgramCompiler();
+       ~ProgramCompiler();
 
        void compile(const std::string &, const std::string & = "<string>");
        void compile(IO::Base &, Resources * = 0, const std::string & = "<file>");
@@ -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 &);