[
https://issues.apache.org/jira/browse/JEXL-296?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dmitri Blinov updated JEXL-296:
-------------------------------
Summary: Real literal in scientific format is not parsed without suffix
(was: Real literal in scientific format is not parsed as a statement)
> Real literal in scientific format is not parsed without suffix
> --------------------------------------------------------------
>
> Key: JEXL-296
> URL: https://issues.apache.org/jira/browse/JEXL-296
> Project: Commons JEXL
> Issue Type: Bug
> Affects Versions: 3.1
> Reporter: Dmitri Blinov
> Priority: Major
>
> I have found that in current implementation the {{testRealLiteralScript()}}
> fails with ambigous expression error whereas {{testRealLiteralExpr()}} passes
> as expected.
> {code}
> @Test
> public void testRealLiteralScript() throws Exception {
> JexlContext jc = new MapContext();
> Object o;
> o = JEXL.createScript("1e10d").execute(jc);
> Assert.assertEquals(1e10d, o);
> }
> @Test
> public void testRealLiteralExpr() throws Exception {
> JexlContext jc = new MapContext();
> Object o;
> o = JEXL.createExpression("1e10d").evaluate(jc);
> Assert.assertEquals(1e10d, o);
> }
> {code}
> Changing the grammar from
> {code}
> void Literal() #void :
> {
> Token t;
> }
> {
> IntegerLiteral()
> |
> FloatLiteral()
> ...
> {code}
> to
> {code}
> void Literal() #void :
> {
> Token t;
> }
> {
> FloatLiteral()
> |
> IntegerLiteral()
> ...
> {code}
> fixes the problem but I'm not sure if there is more robust solution to this
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)