Exemplo n.º 1
0
        /// <summary>
        /// Process the 'arglist1' rule.
        /// </summary>
        /// <remarks>
        ///
        /// arglist1 ::= expression arglist2 |
        ///
        /// </remarks>
        /// <returns>Parsed node.</returns>
        protected virtual EvalNode ParseArgList1()
        {
            EvalNode args = new EvalNodeArgList(ParseExpression(), Language);
            EvalNodeArgList arg2 = ParseArgList2();
            if (arg2 != null)
                args.Append(arg2.RemoveAll());

            return args;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Process the 'arglist2' rule.
        /// </summary>
        /// <remarks>
        ///
        /// arglist2 ::= ',' expression arglist2 |
        ///              {empty}
        ///
        ///</remarks>
        /// <returns>Parsed node.</returns>
        protected virtual EvalNodeArgList ParseArgList2()
        {
            if (Tokeniser.Next(TokenType.Comma))
            {
                EvalNodeArgList args = new EvalNodeArgList(ParseExpression(), Language);
                EvalNodeArgList arg2 = ParseArgList2();
                if (arg2 != null)
                    args.Append(arg2.RemoveAll());

                return args;
            }

            return null;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Process the 'arglist' rule.
        /// </summary>
        /// <remarks>
        ///
        /// arglist ::= expression arglist2 |
        ///             {empty}
        ///
        /// </remarks>
        /// <returns>Parsed node.</returns>
        protected virtual EvalNode ParseArgList()
        {
            if (Tokeniser.Peek.Type != TokenType.CloseRoundBracket)
            {
                EvalNode args = new EvalNodeArgList(ParseExpression(), Language);
                EvalNodeArgList arg2 = ParseArgList2();
                if (arg2 != null)
                    args.Append(arg2.RemoveAll());

                return args;
            }

            return null;
        }