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

hash_literal() protected method

protected hash_literal ( ) : HashLiteralExpression
return HashLiteralExpression
        protected HashLiteralExpression hash_literal()
        {
            HashLiteralExpression dle;

            IToken  lbrace = null;

                dle = null;
                ExpressionPair pair = null;

            try {      // for error handling
            lbrace = LT(1);
            match(LBRACE);
            if (0==inputState.guessing)
            {
                dle = new HashLiteralExpression(ToLexicalInfo(lbrace));
            }
            {
                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 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:
                {
                    pair=expression_pair();
                    if (0==inputState.guessing)
                    {
                        dle.Items.Add(pair);
                    }
                    {    // ( ... )*
                        for (;;)
                        {
                            if ((LA(1)==COMMA) && (tokenSet_5_.member(LA(2))))
                            {
                                match(COMMA);
                                pair=expression_pair();
                                if (0==inputState.guessing)
                                {
                                    dle.Items.Add(pair);
                                }
                            }
                            else
                            {
                                goto _loop640_breakloop;
                            }

                        }
            _loop640_breakloop:						;
                    }    // ( ... )*
                    {
                        switch ( LA(1) )
                        {
                        case COMMA:
                        {
                            match(COMMA);
                            break;
                        }
                        case RBRACE:
                        {
                            break;
                        }
                        default:
                        {
                            throw new NoViableAltException(LT(1), getFilename());
                        }
                         }
                    }
                    break;
                }
                case RBRACE:
                {
                    break;
                }
                default:
                {
                    throw new NoViableAltException(LT(1), getFilename());
                }
                 }
            }
            match(RBRACE);
            }
            catch (RecognitionException ex)
            {
            if (0 == inputState.guessing)
            {
                reportError(ex, "hash_literal");
                recover(ex,tokenSet_41_);
            }
            else
            {
                throw ex;
            }
            }
            return dle;
        }
BooParserBase