// Parses the method. override public IWorkshopTree Parse(ActionSet actionSet, MethodCall methodCall) { actionSet = actionSet.New(actionSet.IndexAssigner.CreateContained()); if (Attributes.WasOverriden && methodCall.ResolveOverrides) { return(ParseVirtual(actionSet, methodCall)); } if (Attributes.Recursive && !IsSubroutine) { return(RecursiveStack.Call(this, methodCall, actionSet)); } if (IsSubroutine) { return(ParseSubroutine(actionSet, methodCall)); } return(ParseNormal(actionSet, methodCall)); }