akirschbaum
akirschbaum
When using firstOf() with only String arguments and if one String has length 1, then parser generation fails with a reference to trie(). This is incorrect for two reasons: I...
The following grammar contains three rules. Each of these rules should match inputs "a" or "b", optionally followed by spaces. rule1 explicitly matches the trailing whitespace with zeroOrMore(sp()). This rule...
anyOf(Characters.ALL) does match even if no more input is available. It should not match because no input character is available and thus no input character could have been consumed. The...
A rule that is declared "static" causes a "java.lang.VerifyError" during parser generation. Instead Grappa should either support this or else should generate a proper error message. ``` $ gradle :compileJava...
When using rules that have parameters, @Cached can be used to allow recursive calls. The generated caching code then checks all parameters for equality when reusing rules. This mechanism works...
It should be possible to generate custom error messages from a parser. For example with a function like _BaseParser.parseError(String message)_ which causes a parse error with the given custom error...
Recent Grappa versions annotate _Var.get()_ with _@Nullable_. While technically correct, this causes spurious warnings in parsers: ``` Rule r() { Var v = new Var(); return sequence('x', v.set("x"), 'y', f(v.get()));...
It should be possible to issue warning messages from the parser. These messages should be available from _ParsingResult_ but should not count as parsing errors.