System.Linq.Dynamic.ExpressionParser.ParseObjectPropertyDefinition C# (CSharp) Method

ParseObjectPropertyDefinition() private method

private ParseObjectPropertyDefinition ( Expression &expr, string &propName ) : void
expr Expression
propName string
return void
		private void ParseObjectPropertyDefinition(out Expression expr, out string propName)
		{
			var exprPos = _token.Position;
			if (_token.ID == TokenId.Identifier)
			{
				propName = GetIdentifier();
				var token = _token;
				var pos = _textPos;
				var ch = _ch;
				NextToken();
				if (_token.ID != TokenId.Colon)
				{
					_token = token;
					_textPos = pos;
					_ch = ch;
				}
				else
				{
					NextToken();
					expr = ParseExpression();
					return;
				}
			}

			expr = ParseExpression();
			if (TokenIdentifierIs("as"))
			{
				NextToken();
				propName = GetIdentifier();
				NextToken();

				return;
			}

			var maybePropName = GetPropertyName(expr, exprPos);
			propName = maybePropName
				.GetOrThrow(() => ParseError(exprPos, Res.MissingAsClause));
		}
ExpressionParser