-
Notifications
You must be signed in to change notification settings - Fork 17
Open
Description
simple test, must no throw exception
@Test
public void testEvalRegex() {
var expression = Jsonata.jsonata("$eval('/^test.*$/')");
expression.evaluate(null);
// expect no exception
}
but get error
com.dashjoin.jsonata.JException: Syntax error in expression passed to Object eval: "null"
at com.dashjoin.jsonata/com.dashjoin.jsonata.Functions.functionEval(Functions.java:2395)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at com.dashjoin.jsonata/com.dashjoin.jsonata.Functions.call(Functions.java:2191)
at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata$JFunction.call(Jsonata.java:2211)
at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata.applyInner(Jsonata.java:1740)
at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata.apply(Jsonata.java:1672)
at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata.evaluateFunction(Jsonata.java:1642)
at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata._evaluate(Jsonata.java:191)
at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata.evaluate(Jsonata.java:131)
at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata.evaluate(Jsonata.java:2583)
at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata.evaluate(Jsonata.java:2544)
at com.dashjoin.jsonata/com.dashjoin.jsonata.CustomFunctionTest.testEvalRegex(CustomFunctionTest.java:92)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
In jsonata online https://try.jsonata.org/cn07pHjgg
problem maybe in token parser
Tokenizer.java row ~ 174 where method
Token next(boolean prefix) {
error init in 202 row return create("regex", scanRegex());
when exec scanRegex position == length, method ignore while and exec throw new JException("S0302", position);
Metadata
Metadata
Assignees
Labels
No labels