}
}
+void VariableResolver::visit(UnaryExpression &unary)
+{
+ TraversingVisitor::visit(unary);
+ r_members = 0;
+ r_iface_ref = 0;
+}
+
void VariableResolver::visit(BinaryExpression &binary)
{
if(binary.oper->token[0]=='[')
binary.left->visit(*this);
if(r_iface_ref)
binary.left = r_iface_ref;
- r_iface_ref = 0;
}
else
{
TraversingVisitor::visit(binary);
r_members = 0;
}
+
+ r_iface_ref = 0;
}
void VariableResolver::visit(Assignment &assign)
assign.self_referencing = (r_self_referencing || assign.oper->token[0]!='=');
assign.target_declaration = r_assignment_target;
+ r_members = 0;
+ r_iface_ref = 0;
+}
+
+void VariableResolver::visit(FunctionCall &call)
+{
+ TraversingVisitor::visit(call);
+ r_members = 0;
+ r_iface_ref = 0;
}
void VariableResolver::visit(StructDeclaration &strct)
virtual void visit(VariableReference &);
virtual void visit(InterfaceBlockReference &);
virtual void visit(MemberAccess &);
+ virtual void visit(UnaryExpression &);
virtual void visit(BinaryExpression &);
virtual void visit(Assignment &);
+ virtual void visit(FunctionCall &);
virtual void visit(StructDeclaration &);
virtual void visit(VariableDeclaration &);
virtual void visit(InterfaceBlock &);