Bike.Parser.Parser.ParseLeftHandSideExpression C# (CSharp) Метод

ParseLeftHandSideExpression() публичный Метод

public ParseLeftHandSideExpression ( ) : ExprNode
Результат ExprNode
        public ExprNode ParseLeftHandSideExpression()
        {
            var callExp = new CallExpression { Token = Next() };
            callExp.Member = ParseMemberExpression();
            if (Next().IsNot(TokenType.LeftParen))
                return callExp.Member;
            callExp.Arguments = ParseArguments();
            while (true)
            {
                switch (Next().Type)
                {
                    case TokenType.LeftParen:
                        callExp.Suffixes.Add(ParseArguments());
                        break;
                    case TokenType.LeftBracket:
                        callExp.Suffixes.Add(ParseIndexSuffix());
                        break;
                    case TokenType.Dot:
                        callExp.Suffixes.Add(ParsePropertyReferenceSuffix());
                        break;
                    case TokenType.LessThan:
                        Node node;
                        if (Speculate(ParseTypeDescriptorSuffix, out node))
                        {
                            callExp.Suffixes.Add(node);
                        }
                        else
                        {
                            return callExp;
                        }
                        break;
                    default:
                        return callExp;
                }
            }
        }