Description
Hi, raydac:
When I use this lib on my personal Android App with version '1.4.0', I got an error like below.
Process: com.demo.netsniffer, PID: 1646 java.lang.ExceptionInInitializerError at com.igormaznitsa.jbbp.compiler.JBBPCompiler.compile(JBBPCompiler.java:214) at com.igormaznitsa.jbbp.JBBPParser.<init>(JBBPParser.java:132) at com.igormaznitsa.jbbp.JBBPParser.prepare(JBBPParser.java:160) at com.igormaznitsa.jbbp.JBBPParser.prepare(JBBPParser.java:206) at com.demo.netsniffer.core.SnifferVpnService.<init>(SnifferVpnService.java:38) at java.lang.Class.newInstance(Native Method) at android.app.ActivityThread.handleCreateService(ActivityThread.java:3173) at android.app.ActivityThread.-wrap5(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) Caused by: java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 14 \s*//.*$|\s*(})|\s*([^\s;\[\]}{]+)?\s*(?:\[\s*([^\[\]{};]+)\s*])?\s*([^\d\s;\[\]}{/][^\s;\[\]}{/]*)?\s*([{;]) ^ at java.util.regex.Pattern.compileImpl(Native Method) at java.util.regex.Pattern.compile(Pattern.java:1340) at java.util.regex.Pattern.<init>(Pattern.java:1324) at java.util.regex.Pattern.compile(Pattern.java:971) at com.igormaznitsa.jbbp.compiler.tokenizer.JBBPTokenizer.<clinit>(JBBPTokenizer.java:46) ... 15 more
It seems that the regex pattern in "JBBPTokenizer.java" can not be complied on Android.
field:
private static final Pattern PATTERN = Pattern.compile("\\s*//.*$|\\s*(})|\\s*([^\\s;\\[\\]}{]+)?\\s*(?:\\[\\s*([^\\[\\]{};]+)\\s*])?\\s*([^\\d\\s;\\[\\]}{/][^\\s;\\[\\]}{/]*)?\\s*([{;])", Pattern.MULTILINE);
Could you fix it?