Boo.Lang.Parser.BooParserBase.single_line_block C# (CSharp) Method

single_line_block() protected method

protected single_line_block ( Block b ) : void
b Block
return void
        protected void single_line_block(
		Block b
	)
        {
            IToken  eolToken = null;

            StatementCollection statements = b != null ? b.Statements : null;
            IToken lastEOL = null;

            try {      // for error handling
            match(COLON);
            {
                switch ( LA(1) )
                {
                case PASS:
                {
                    match(PASS);
                    break;
                }
                case ESEPARATOR:
                case BREAK:
                case CONTINUE:
                case CAST:
                case CHAR:
                case FALSE:
                case GOTO:
                case NULL:
                case RAISE:
                case RETURN:
                case SELF:
                case SUPER:
                case THEN:
                case TRUE:
                case TYPEOF:
                case YIELD:
                case TRIPLE_QUOTED_STRING:
                case LPAREN:
                case DOUBLE_QUOTED_STRING:
                case SINGLE_QUOTED_STRING:
                case ID:
                case MULTIPLY:
                case LBRACK:
                case SPLICE_BEGIN:
                case DOT:
                case COLON:
                case LBRACE:
                case QQ_BEGIN:
                case SUBTRACT:
                case LONG:
                case INCREMENT:
                case DECREMENT:
                case ONES_COMPLEMENT:
                case INT:
                case BACKTICK_QUOTED_STRING:
                case RE_LITERAL:
                case DOUBLE:
                case FLOAT:
                case TIMESPAN:
                {
                    {
                        simple_stmt(statements);
                        {    // ( ... )*
                            for (;;)
                            {
                                if ((LA(1)==EOS))
                                {
                                    match(EOS);
                                    {
                                        switch ( LA(1) )
                                        {
                                        case ESEPARATOR:
                                        case BREAK:
                                        case CONTINUE:
                                        case CAST:
                                        case CHAR:
                                        case FALSE:
                                        case GOTO:
                                        case NULL:
                                        case RAISE:
                                        case RETURN:
                                        case SELF:
                                        case SUPER:
                                        case THEN:
                                        case TRUE:
                                        case TYPEOF:
                                        case YIELD:
                                        case TRIPLE_QUOTED_STRING:
                                        case LPAREN:
                                        case DOUBLE_QUOTED_STRING:
                                        case SINGLE_QUOTED_STRING:
                                        case ID:
                                        case MULTIPLY:
                                        case LBRACK:
                                        case SPLICE_BEGIN:
                                        case DOT:
                                        case COLON:
                                        case LBRACE:
                                        case QQ_BEGIN:
                                        case SUBTRACT:
                                        case LONG:
                                        case INCREMENT:
                                        case DECREMENT:
                                        case ONES_COMPLEMENT:
                                        case INT:
                                        case BACKTICK_QUOTED_STRING:
                                        case RE_LITERAL:
                                        case DOUBLE:
                                        case FLOAT:
                                        case TIMESPAN:
                                        {
                                            simple_stmt(statements);
                                            break;
                                        }
                                        case EOL:
                                        case EOS:
                                        {
                                            break;
                                        }
                                        default:
                                        {
                                            throw new NoViableAltException(LT(1), getFilename());
                                        }
                                         }
                                    }
                                }
                                else
                                {
                                    goto _loop280_breakloop;
                                }

                            }
            _loop280_breakloop:							;
                        }    // ( ... )*
                    }
                    break;
                }
                default:
                {
                    throw new NoViableAltException(LT(1), getFilename());
                }
                 }
            }
            { // ( ... )+
                int _cnt282=0;
                for (;;)
                {
                    if ((LA(1)==EOL) && (tokenSet_47_.member(LA(2))))
                    {
                        eolToken = LT(1);
                        match(EOL);
                        if (0==inputState.guessing)
                        {
                            lastEOL = eolToken;
                        }
                    }
                    else
                    {
                        if (_cnt282 >= 1) { goto _loop282_breakloop; } else { throw new NoViableAltException(LT(1), getFilename());; }
                    }

                    _cnt282++;
                }
            _loop282_breakloop:				;
            }    // ( ... )+
            if (0==inputState.guessing)
            {
                SetEndSourceLocation(b, lastEOL);
            }
            }
            catch (RecognitionException ex)
            {
            if (0 == inputState.guessing)
            {
                reportError(ex, "single_line_block");
                recover(ex,tokenSet_47_);
            }
            else
            {
                throw ex;
            }
            }
        }
BooParserBase