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

return_stmt() protected method

protected return_stmt ( ) : ReturnStatement
return ReturnStatement
        protected ReturnStatement return_stmt()
        {
            ReturnStatement s;

            IToken  r = null;

                s = null;
                Expression e = null;
                StatementModifier modifier = null;

            try {      // for error handling
            r = LT(1);
            match(RETURN);
            {
                switch ( LA(1) )
                {
                case ESEPARATOR:
                case CAST:
                case CHAR:
                case FALSE:
                case NOT:
                case NULL:
                case SELF:
                case SUPER:
                case THEN:
                case TRUE:
                case TYPEOF:
                case TRIPLE_QUOTED_STRING:
                case LPAREN:
                case DOUBLE_QUOTED_STRING:
                case SINGLE_QUOTED_STRING:
                case ID:
                case MULTIPLY:
                case LBRACK:
                case COMMA:
                case SPLICE_BEGIN:
                case DOT:
                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:
                {
                    {
                        e=array_or_expression();
                        {
                            switch ( LA(1) )
                            {
                            case DEF:
                            case DO:
                            case COLON:
                            {
                                e=method_invocation_block(e);
                                break;
                            }
                            case EOL:
                            case IF:
                            case UNLESS:
                            case WHILE:
                            case EOS:
                            {
                                {
                                    {
                                        switch ( LA(1) )
                                        {
                                        case IF:
                                        case UNLESS:
                                        case WHILE:
                                        {
                                            modifier=stmt_modifier();
                                            break;
                                        }
                                        case EOL:
                                        case EOS:
                                        {
                                            break;
                                        }
                                        default:
                                        {
                                            throw new NoViableAltException(LT(1), getFilename());
                                        }
                                         }
                                    }
                                    eos();
                                }
                                break;
                            }
                            default:
                            {
                                throw new NoViableAltException(LT(1), getFilename());
                            }
                             }
                        }
                    }
                    break;
                }
                case DEF:
                case DO:
                case COLON:
                {
                    {
                        e=callable_expression();
                    }
                    break;
                }
                case EOL:
                case IF:
                case UNLESS:
                case WHILE:
                case EOS:
                {
                    {
                        {
                            switch ( LA(1) )
                            {
                            case IF:
                            case UNLESS:
                            case WHILE:
                            {
                                modifier=stmt_modifier();
                                break;
                            }
                            case EOL:
                            case EOS:
                            {
                                break;
                            }
                            default:
                            {
                                throw new NoViableAltException(LT(1), getFilename());
                            }
                             }
                        }
                        eos();
                    }
                    break;
                }
                default:
                {
                    throw new NoViableAltException(LT(1), getFilename());
                }
                 }
            }
            if (0==inputState.guessing)
            {

                        s = new ReturnStatement(ToLexicalInfo(r));
                        s.Modifier = modifier;
                        s.Expression = e;

            }
            }
            catch (RecognitionException ex)
            {
            if (0 == inputState.guessing)
            {
                reportError(ex, "return_stmt");
                recover(ex,tokenSet_82_);
            }
            else
            {
                throw ex;
            }
            }
            return s;
        }
BooParserBase