virtual void visit(Block &);
virtual void visit(UnaryExpression &);
virtual void visit(BinaryExpression &);
virtual void visit(Block &);
virtual void visit(UnaryExpression &);
virtual void visit(BinaryExpression &);
virtual void visit(FunctionCall &);
virtual void visit(VariableDeclaration &);
virtual void visit(Return &);
virtual void visit(FunctionCall &);
virtual void visit(VariableDeclaration &);
virtual void visit(Return &);
virtual void visit(Block &);
virtual void visit(UnaryExpression &);
virtual void visit(Assignment &);
virtual void visit(VariableDeclaration &);
virtual void visit(Conditional &);
virtual void visit(Iteration &);
virtual void visit(Block &);
virtual void visit(UnaryExpression &);
virtual void visit(Assignment &);
virtual void visit(VariableDeclaration &);
virtual void visit(Conditional &);
virtual void visit(Iteration &);
virtual void visit(VariableReference &);
virtual void visit(MemberAccess &);
virtual void visit(BinaryExpression &);
virtual void visit(Assignment &);
virtual void visit(VariableReference &);
virtual void visit(MemberAccess &);
virtual void visit(BinaryExpression &);
virtual void visit(Assignment &);
void record_assignment(VariableDeclaration &, Node &, bool);
void clear_assignments(VariableInfo &, bool);
void record_assignment(VariableDeclaration &, Node &, bool);
void clear_assignments(VariableInfo &, bool);
virtual void visit(ExpressionStatement &);
virtual void visit(StructDeclaration &);
virtual void visit(VariableDeclaration &);
virtual void visit(InterfaceBlock &);
virtual void visit(FunctionDeclaration &);
virtual void visit(ExpressionStatement &);
virtual void visit(StructDeclaration &);
virtual void visit(VariableDeclaration &);
virtual void visit(InterfaceBlock &);
virtual void visit(FunctionDeclaration &);