Example #1
0
        private static Object ParseNumber(IRuleNode number, int factor)
        {
            var tokenType = GetSingleChildTokenType(number);

            if (tokenType == EsperEPL2GrammarLexer.IntegerLiteral)
            {
                return(ParseIntLongByte(number.GetText(), factor));
            }

            else if (tokenType == EsperEPL2GrammarLexer.FloatingPointLiteral)
            {
                var numberText = number.GetText();
                if (numberText.EndsWith("m"))
                {
                    return(DecimalValue.ParseString(number.GetText()) * factor);
                }
                else if (numberText.EndsWith("f") || numberText.EndsWith("F"))
                {
                    return(FloatValue.ParseString(number.GetText()) * factor);
                }
                else
                {
                    return(DoubleValue.ParseString(number.GetText()) * factor);
                }
            }
            throw ASTWalkException.From("Encountered unrecognized constant", number.GetText());
        }