X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramcompiler.h;h=06306743fb7945b5f2783c70663bf11ff4a04828;hp=56bf1d538fc1be3069f1ed816547fbbc20638585;hb=ef9ffbc287417520d223ce29dc6c2de110cac945;hpb=91d3eac06389c0bb0363f643790581403b5fca1b diff --git a/source/programcompiler.h b/source/programcompiler.h index 56bf1d53..06306743 100644 --- a/source/programcompiler.h +++ b/source/programcompiler.h @@ -216,7 +216,9 @@ private: virtual void visit(ProgramSyntax::Block &); virtual void visit(ProgramSyntax::UnaryExpression &); virtual void visit(ProgramSyntax::BinaryExpression &); + virtual void visit(ProgramSyntax::MemberAccess &); virtual void visit(ProgramSyntax::FunctionCall &); + virtual void visit(ProgramSyntax::VariableDeclaration &); virtual void visit(ProgramSyntax::Return &); }; @@ -242,12 +244,14 @@ private: struct ConstantConditionEliminator: BlockModifier { unsigned scope_level; + bool record_only; ExpressionEvaluator::ValueMap variable_values; ConstantConditionEliminator(); using Visitor::visit; virtual void visit(ProgramSyntax::Block &); + virtual void visit(ProgramSyntax::UnaryExpression &); virtual void visit(ProgramSyntax::Assignment &); virtual void visit(ProgramSyntax::VariableDeclaration &); virtual void visit(ProgramSyntax::Conditional &); @@ -321,6 +325,7 @@ private: using Visitor::visit; virtual void visit(ProgramSyntax::Block &); virtual void visit(ProgramSyntax::VariableDeclaration &); + virtual void visit(ProgramSyntax::Iteration &); }; struct PrecisionRemover: BlockModifier