X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramcompiler.h;h=461fac9a2e649b1fb3f2597da5ebed6759b218ff;hp=2c8b33b6f905b726ed6eea6aa5a0230dee27f970;hb=aa9873652630db493b5bd9faee4117e9c30ef226;hpb=e37d3b91500994df3de4fe47bd3d3e75d3104b46 diff --git a/source/programcompiler.h b/source/programcompiler.h index 2c8b33b6..461fac9a 100644 --- a/source/programcompiler.h +++ b/source/programcompiler.h @@ -226,12 +226,11 @@ private: typedef std::map ValueMap; const ValueMap *variable_values; - bool const_only; float result; bool result_valid; ExpressionEvaluator(); - ExpressionEvaluator(const ValueMap *, bool); + ExpressionEvaluator(const ValueMap &); using ProgramSyntax::NodeVisitor::visit; virtual void visit(ProgramSyntax::Literal &); @@ -244,13 +243,14 @@ private: struct ConstantConditionEliminator: BlockModifier { unsigned scope_level; - bool in_loop; + 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 &);