X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramcompiler.h;h=5bb7147496b3190f730db4a878395f81fe2fb519;hp=ac1f910d530dd7b53c984c195d3d4310d372c39f;hb=51c775a5df70fe5a538c3e4bcccd3ab857ba5b59;hpb=34a4efa81946066d32c1374318dcc0b74ae486a9 diff --git a/source/programcompiler.h b/source/programcompiler.h index ac1f910d..5bb71474 100644 --- a/source/programcompiler.h +++ b/source/programcompiler.h @@ -40,6 +40,7 @@ private: virtual void apply(ProgramSyntax::Stage &); const std::string &get_result() const { return formatted; } + using Visitor::visit; virtual void visit(ProgramSyntax::Block &); virtual void visit(ProgramSyntax::Literal &); virtual void visit(ProgramSyntax::ParenthesizedExpression &); @@ -71,6 +72,7 @@ private: std::list nodes; const ResultType &get_result() const { return nodes; } + using Visitor::visit; virtual void visit(T &n) { nodes.push_back(&n); } }; @@ -83,6 +85,7 @@ private: DeclarationCombiner(); + using Visitor::visit; virtual void visit(ProgramSyntax::Block &); virtual void visit(ProgramSyntax::FunctionDeclaration &); virtual void visit(ProgramSyntax::VariableDeclaration &); @@ -101,6 +104,7 @@ private: VariableResolver(); virtual void apply(ProgramSyntax::Stage &); + using Visitor::visit; virtual void visit(ProgramSyntax::Block &); virtual void visit(ProgramSyntax::VariableReference &); virtual void visit(ProgramSyntax::MemberAccess &); @@ -115,6 +119,7 @@ private: { std::map > functions; + using Visitor::visit; virtual void visit(ProgramSyntax::FunctionCall &); virtual void visit(ProgramSyntax::FunctionDeclaration &); }; @@ -128,6 +133,7 @@ private: void flatten_block(ProgramSyntax::Block &); void apply_and_increment(ProgramSyntax::Block &, std::list >::iterator &); + using Visitor::visit; virtual void visit(ProgramSyntax::Block &); }; @@ -142,6 +148,7 @@ private: static std::string get_out_prefix(ProgramSyntax::StageType); virtual void apply(ProgramSyntax::Stage &); + using Visitor::visit; virtual void visit(ProgramSyntax::Block &); std::string change_prefix(const std::string &, const std::string &) const; bool generate_interface(ProgramSyntax::VariableDeclaration &, const std::string &, const std::string &); @@ -153,6 +160,7 @@ private: struct VariableRenamer: Visitor { + using Visitor::visit; virtual void visit(ProgramSyntax::VariableReference &); virtual void visit(ProgramSyntax::VariableDeclaration &); }; @@ -172,6 +180,7 @@ private: DeclarationReorderer(); + using Visitor::visit; virtual void visit(ProgramSyntax::Block &); virtual void visit(ProgramSyntax::InterfaceLayout &) { kind = LAYOUT; } virtual void visit(ProgramSyntax::StructDeclaration &) { kind = STRUCT; } @@ -191,6 +200,7 @@ private: InlineableFunctionLocator(); const ResultType &get_result() const { return inlineable; } + using Visitor::visit; virtual void visit(ProgramSyntax::FunctionCall &); virtual void visit(ProgramSyntax::FunctionDeclaration &); }; @@ -205,6 +215,7 @@ private: FunctionInliner(const std::set &); void visit_and_inline(RefPtr &); + using Visitor::visit; virtual void visit(ProgramSyntax::Block &); virtual void visit(ProgramSyntax::UnaryExpression &); virtual void visit(ProgramSyntax::BinaryExpression &); @@ -223,6 +234,7 @@ private: ExpressionEvaluator(); ExpressionEvaluator(const ValueMap &); + using ProgramSyntax::NodeVisitor::visit; virtual void visit(ProgramSyntax::Literal &); virtual void visit(ProgramSyntax::ParenthesizedExpression &); virtual void visit(ProgramSyntax::VariableReference &); @@ -237,6 +249,7 @@ private: ConstantConditionEliminator(); + using Visitor::visit; virtual void visit(ProgramSyntax::Block &); virtual void visit(ProgramSyntax::Assignment &); virtual void visit(ProgramSyntax::VariableDeclaration &); @@ -271,6 +284,7 @@ private: virtual void apply(ProgramSyntax::Stage &); const ResultType &get_result() const { return unused_nodes; } + using Visitor::visit; virtual void visit(ProgramSyntax::VariableReference &); virtual void visit(ProgramSyntax::MemberAccess &); virtual void visit(ProgramSyntax::BinaryExpression &); @@ -295,6 +309,7 @@ private: std::set used_definitions; const ResultType &get_result() const { return unused_nodes; } + using Visitor::visit; virtual void visit(ProgramSyntax::FunctionCall &); virtual void visit(ProgramSyntax::FunctionDeclaration &); }; @@ -306,6 +321,7 @@ private: NodeRemover() { } NodeRemover(const std::set &); + using Visitor::visit; virtual void visit(ProgramSyntax::Block &); virtual void visit(ProgramSyntax::VariableDeclaration &); }; @@ -320,6 +336,7 @@ private: LegacyConverter(const Version &); bool check_version(const Version &); + using Visitor::visit; virtual void visit(ProgramSyntax::VariableReference &); virtual void visit(ProgramSyntax::FunctionCall &); virtual void visit(ProgramSyntax::VariableDeclaration &);