private void ParseMethod(ITypeMemberContainer memberContainer, string memberDataTypeName, string memberName) { var xMethodDefinition = new MethodDefinition(mParsingContexts.ToArray(), memberName, (TypeReference)memberContainer); xMethodDefinition.ReturnTypeString = memberDataTypeName; memberContainer.Members.Add(xMethodDefinition); // for now: while (!IsMatch(')')) { ParseParameterDefinition(xMethodDefinition); if (!IsMatch(')')) { if (!IsMatch(',')) { Error("Comma or ) expected!"); } else { Move(); } } } Match(')'); Match('{'); xMethodDefinition.Body = new MethodBodyDefinition() { MethodDefinition = xMethodDefinition }; ParseStatements(xMethodDefinition); Match('}'); }
private void ParseClassMember(ITypeMemberContainer memberContainer) { var xMemberDataTypeName = ReadFullIdentifier(true); var xMemberName = ReadFullIdentifier(false); if (IsMatch('(')) { Move(); ParseMethod(memberContainer, xMemberDataTypeName, xMemberName); return; } Error("Member type not recognised!"); }