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

char_literal() protected method

protected char_literal ( ) : Expression
return Expression
        protected Expression char_literal()
        {
            Expression e;

            IToken  charToken = null;
            IToken  t = null;
            IToken  i = null;

            e = null;

            try {      // for error handling
            charToken = LT(1);
            match(CHAR);
            match(LPAREN);
            {
                switch ( LA(1) )
                {
                case SINGLE_QUOTED_STRING:
                {
                    t = LT(1);
                    match(SINGLE_QUOTED_STRING);
                    if (0==inputState.guessing)
                    {

                                    e = new CharLiteralExpression(ToLexicalInfo(t), t.getText());

                    }
                    break;
                }
                case INT:
                {
                    i = LT(1);
                    match(INT);
                    if (0==inputState.guessing)
                    {

                                    e = new CharLiteralExpression(ToLexicalInfo(i), (char) PrimitiveParser.ParseInt(i));

                    }
                    break;
                }
                case RPAREN:
                {
                    if (0==inputState.guessing)
                    {

                                    e = new MethodInvocationExpression(
                                                ToLexicalInfo(charToken),
                                                new ReferenceExpression(ToLexicalInfo(charToken), charToken.getText()));

                    }
                    break;
                }
                default:
                {
                    throw new NoViableAltException(LT(1), getFilename());
                }
                 }
            }
            match(RPAREN);
            }
            catch (RecognitionException ex)
            {
            if (0 == inputState.guessing)
            {
                reportError(ex, "char_literal");
                recover(ex,tokenSet_41_);
            }
            else
            {
                throw ex;
            }
            }
            return e;
        }
BooParserBase