Example #1
0
        /// <summary>
        /// new_tuple_block                             = "(" init_expr_block ")"
        /// </summary>
        private NewTupleNode parseNewTupleBlock()
        {
            if (!check(LexemType.ParenOpen))
                return null;

            var node = new NewTupleNode();
            node.Expressions = parseInitExprBlock().ToList();
            if(node.Expressions.Count == 0)
                return null;

            ensure(LexemType.ParenClose, ParserMessages.SymbolExpected, ')');

            return node;
        }
Example #2
0
        /// <summary>
        /// new_tuple_line                              = "(" init_expr_line ")"
        /// </summary>
        private NewTupleNode parseNewTupleLine()
        {
            if (!check(LexemType.ParenOpen))
                return null;

            var node = new NewTupleNode();
            node.Expressions = parseInitExprLine().ToList();
            if (node.Expressions.Count == 0)
                error(ParserMessages.TupleItem);

            ensure(LexemType.ParenClose, ParserMessages.SymbolExpected, ")");

            return node;
        }
Example #3
0
        /// <summary>
        /// new_tuple_line                             = "(" init_expr_line ")"
        /// </summary>
        private NewTupleNode parseNewTupleLine()
        {
            // todo: revise grammar, possibly eliminating the unit literal
            if(check(LexemType.Unit))
                error(ParserMessages.TupleItem);

            if (!check(LexemType.ParenOpen))
                return null;

            var node = new NewTupleNode();
            node.Expressions = parseInitExprLine().ToList();

            if (node.Expressions.Count == 0)
                error(ParserMessages.TupleItem);

            ensure(LexemType.ParenClose, ParserMessages.SymbolExpected, ")");

            return node;
        }