X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramcompiler.h;h=0ff4f667d3feb830013d30c908a4eb97847b4ec4;hp=db63eb3645d62d39fbb6a8717b28d9735d9b5234;hb=e6824add54056141e7507a33e821af01d1398973;hpb=ced18c244f874638dc17ae486802bb3bb01ecf71 diff --git a/source/programcompiler.h b/source/programcompiler.h index db63eb36..0ff4f667 100644 --- a/source/programcompiler.h +++ b/source/programcompiler.h @@ -246,24 +246,26 @@ private: struct UnusedVariableLocator: Visitor { - struct AssignmentList + struct VariableInfo { - std::vector nodes; - bool conditional; - bool self_referencing; + bool local; + std::vector assignments; + bool conditionally_assigned; + bool referenced; + + VariableInfo(); }; typedef std::set ResultType; - typedef std::map BlockAssignmentMap; + typedef std::map BlockVariableMap; std::set unused_nodes; std::map aggregates; ProgramSyntax::Node *aggregate; - std::vector assignments; + std::vector variables; ProgramSyntax::Assignment *assignment; bool assignment_target; - bool iteration; - std::set used_in_iteration; + bool global_scope; UnusedVariableLocator(); @@ -279,7 +281,7 @@ private: virtual void visit(ProgramSyntax::VariableDeclaration &); virtual void visit(ProgramSyntax::InterfaceBlock &); virtual void visit(ProgramSyntax::FunctionDeclaration &); - void merge_down_assignments(); + void merge_down_variables(); virtual void visit(ProgramSyntax::Conditional &); virtual void visit(ProgramSyntax::Iteration &); };