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

double_literal() protected method

protected double_literal ( ) : DoubleLiteralExpression
return DoubleLiteralExpression
        protected DoubleLiteralExpression double_literal()
        {
            DoubleLiteralExpression rle;

            IToken  neg = null;
            IToken  value = null;
            IToken  single = null;

                rle = null;
                string val;

            try {      // for error handling
            switch ( LA(1) )
            {
            case SUBTRACT:
            case DOUBLE:
            {
                {
                    switch ( LA(1) )
                    {
                    case SUBTRACT:
                    {
                        neg = LT(1);
                        match(SUBTRACT);
                        break;
                    }
                    case DOUBLE:
                    {
                        break;
                    }
                    default:
                    {
                        throw new NoViableAltException(LT(1), getFilename());
                    }
                     }
                }
                value = LT(1);
                match(DOUBLE);
                if (0==inputState.guessing)
                {

                            val = value.getText();
                            if (neg != null) val = neg.getText() + val;
                            rle = new DoubleLiteralExpression(ToLexicalInfo(value), PrimitiveParser.ParseDouble(value, val));

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

                            val = single.getText();
                            val = val.Substring(0, val.Length-1);
                            if (neg != null) val = neg.getText() + val;
                            rle = new DoubleLiteralExpression(ToLexicalInfo(single), PrimitiveParser.ParseDouble(single, val, true), true);

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