// Parser: // primary-expr --> ... // --> IDENTIFIER // --> IDENTIFIER method-call-arguments // --> ... internal CodeExpression ParseUnadornedMemberIdentifier(ParserContext parserContext, MemberSymbol symbol, bool assignIsEquality) { // This is an implicit member reference off "this", so add the "this". (Or an implicit // static member reference of the type of "this", so add the type name.) Token token = parserContext.CurrentToken; int namePosition = token.StartPosition; parserContext.NextToken(); // eat the identifier CodeExpression primaryExpr = null; if (parserContext.CurrentToken.TokenID == TokenID.LParen) primaryExpr = ParseUnadornedMethodInvoke(parserContext, symbol.Name, true); else primaryExpr = ParseUnadornedFieldOrProperty(parserContext, symbol.Name, namePosition, assignIsEquality); return primaryExpr; }
internal CodeExpression ParseUnadornedMemberIdentifier(ParserContext parserContext, MemberSymbol symbol, bool assignIsEquality) { int startPosition = parserContext.CurrentToken.StartPosition; parserContext.NextToken(); if (parserContext.CurrentToken.TokenID == TokenID.LParen) { return this.ParseUnadornedMethodInvoke(parserContext, symbol.Name, true); } return this.ParseUnadornedFieldOrProperty(parserContext, symbol.Name, startPosition, assignIsEquality); }