Ejemplo n.º 1
0
        private Ast.ArrayInitializerExpression ParseArrayInitializerExpression(TokenType rightParent)
        {
            var expression = new Ast.ArrayInitializerExpression()
            {
                Span = currentToken.Span
            };
            var values = expression.Values;

            bool continueParsing = true;

            do
            {
                var token = NextToken();
                if (token.Type == rightParent)
                {
                    break;
                }

                var nextValue = ParseExpression();
                if (nextValue == null)
                {
                    continueParsing = false;
                }
                else
                {
                    values.Add(nextValue);

                    NextToken();

                    if (currentToken.Type == rightParent)
                    {
                        continueParsing = false;
                    }
                    else if (currentToken.Type != TokenType.Comma)
                    {
                        Logger.Error("Unexpected token [{0}]. Expecting tokens [',', '{1}']", currentToken.Span, currentToken.Value, rightParent);
                        continueParsing = false;
                    }
                }
            } while (continueParsing);

            return(expression);
        }
Ejemplo n.º 2
0
        private Ast.ArrayInitializerExpression ParseArrayInitializerExpression(TokenType rightParent)
        {
            var expression = new Ast.ArrayInitializerExpression() {Span = currentToken.Span};
            var values = expression.Values;

            bool continueParsing = true;
            do
            {
                var token = NextToken();
                if (token.Type == rightParent)
                    break;

                var nextValue = ParseExpression();
                if (nextValue == null)
                {
                    continueParsing = false;
                }
                else
                {
                    values.Add(nextValue);

                    NextToken();

                    if (currentToken.Type == rightParent)
                    {
                        continueParsing = false;
                    }
                    else if (currentToken.Type != TokenType.Comma)
                    {
                        Logger.Error("Unexpected token [{0}]. Expecting tokens [',', '{1}']", currentToken.Span, currentToken.Value, rightParent);
                        continueParsing = false;
                    }
                }
            } while (continueParsing);

            return expression;
        }