Boo.Lang.Parser.BooParserBase.expression C# (CSharp) Méthode

expression() protected méthode

protected expression ( ) : Expression
Résultat Expression
        protected Expression expression()
        {
            Expression e;

            IToken  f = null;
            IToken  f2 = null;

                e = null;

                ExtendedGeneratorExpression mge = null;
                GeneratorExpression ge = null;

            try {      // for error handling
            e=boolean_expression();
            {
                if ((LA(1)==FOR) && (LA(2)==ID))
                {
                    f = LT(1);
                    match(FOR);
                    if (0==inputState.guessing)
                    {

                                    ge = new GeneratorExpression(ToLexicalInfo(f));
                                    ge.Expression = e;
                                    e = ge;

                    }
                    generator_expression_body(ge);
                    {    // ( ... )*
                        for (;;)
                        {
                            if ((LA(1)==FOR) && (LA(2)==ID))
                            {
                                f2 = LT(1);
                                match(FOR);
                                if (0==inputState.guessing)
                                {

                                                    if (null == mge)
                                                    {
                                                        mge = new ExtendedGeneratorExpression(ToLexicalInfo(f));
                                                        mge.Items.Add(ge);
                                                        e = mge;
                                                    }

                                                    ge = new GeneratorExpression(ToLexicalInfo(f2));
                                                    mge.Items.Add(ge);

                                }
                                generator_expression_body(ge);
                            }
                            else
                            {
                                goto _loop433_breakloop;
                            }

                        }
            _loop433_breakloop:						;
                    }    // ( ... )*
                }
                else if ((tokenSet_14_.member(LA(1))) && (tokenSet_15_.member(LA(2)))) {
                }
                else
                {
                    throw new NoViableAltException(LT(1), getFilename());
                }

            }
            }
            catch (RecognitionException ex)
            {
            if (0 == inputState.guessing)
            {
                reportError(ex, "expression");
                recover(ex,tokenSet_14_);
            }
            else
            {
                throw ex;
            }
            }
            return e;
        }
BooParserBase