Example #1
0
        /* Parses assign
         * variableList '=' expressionList */
        Statement Assign(PrefixExpression prefixExpr)
        {
            var variable = prefixExpr.LiftVariable();

            if (variable == null)
            {
                throw new LuaSyntaxException(input, ExceptionMessage.UNEXPECTED_SYMBOL, lexer.Current.Symbol);
            }

            var variables = lexer.Current.Symbol == Symbol.Comma ? VariableList(variable) : new List <Variable> {
                variable
            };

            lexer.Expect(Symbol.Equal);
            var expressions = ExpressionList();

            return(new Statement.Assign(variables, expressions));
        }
Example #2
0
        /* Parses assign
         * variableList '=' expressionList */
        Statement Assign(PrefixExpression prefixExpr)
        {
            var variable = prefixExpr.LiftVariable();
            if (variable == null)
                throw ReportSyntaxError(ExceptionMessage.UNEXPECTED_SYMBOL, Current.Symbol);

            var variables = VariableList(variable);
            Expect(Symbol.Equal);
            var expressions = ExpressionList();

            Debug.Assert(variables.Count > 0);
            Debug.Assert(expressions.Count > 0);

            return new Statement.Assign(variables, expressions)
            {
                Span = new SourceSpan(variables.First().Span.Start,
                                      expressions.Last().Span.End)
            };
        }
Example #3
0
        /* Parses assign
         * variableList '=' expressionList */
        Statement Assign(PrefixExpression prefixExpr)
        {
            var variable = prefixExpr.LiftVariable();
            if (variable == null)
                throw new LuaSyntaxException(input, ExceptionMessage.UNEXPECTED_SYMBOL, lexer.Current.Symbol);

            var variables = lexer.Current.Symbol == Symbol.Comma ? VariableList(variable) : new List<Variable> {variable};
            lexer.Expect(Symbol.Equal);
            var expressions = ExpressionList();

            return new Statement.Assign(variables, expressions);
        }