Exemplo n.º 1
0
        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('}');
        }
Exemplo n.º 2
0
 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!");
 }