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()); }