public override int VisitAssignmentOpetators(RASTElement currentNode) { RASTComposite current = currentNode as RASTComposite; // Visit assignment opetator left context if (current.GetNumberOfContextElements(ContextType.CT_EXPR_ASSIGNMENT_OPETATORS_LEFT) > 0) { foreach (RASTElement element in current.GetContextChildren(ContextType.CT_EXPR_ASSIGNMENT_OPETATORS_LEFT)) { scopeSystem.AddSymbol(element.M_Label, "Local Variable"); } } base.VisitAssignmentOpetators(currentNode); return(0); }
public override int VisitDefineFunction(RASTElement currentNode) { RASTComposite current = currentNode as RASTComposite; scopeSystem.EnterEnviroment(currentNode.M_Label); // Visit function's definition params context if (current.GetNumberOfContextElements(ContextType.CT_EXPR_DEFINE_FUNCTION_PARAMS) > 0) { foreach (RASTElement element in current.GetContextChildren(ContextType.CT_EXPR_DEFINE_FUNCTION_PARAMS)) { scopeSystem.AddSymbol(element.M_Label, "Formal Parameter"); } } base.VisitDefineFunction(currentNode); scopeSystem.LeaveEnviroment(); return(0); }