grappa
grappa copied to clipboard
Write parsers for arbitrary text inputs, entirely in Java, with no preprocessing phase
Right now, the code for all rules in the generated parser class delegates rule "resolution" to a `ProxyMatcher`. But this is not needed for many of them; let us call...
A `Var` is a rather heavy beast: - since it allows for nulls, instead of a light `ArrayDeque`, we need a `LinkedList`; - the initial value is itself a generic...
Grappa has `unicodeChar()` and `unicodeRange()`. I thought about adding `inUnicodeBlock()` as well; this would allow a matcher to tell whether the next code point (_not_ `char`) is in this or...
The `InputBuffer` is basically the character sequence used in a parsing run. Parboiled could build such buffers from plain `String`s or `char` arrays. Grappa added one for `CharSequence`s (which basically...
Such an API is needed. We will start by highlighting the problems with the current API (and there are many!) and then propose a new one. ## Problems with the...
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...
This opcode, new since Java 7, is among other things what is used by lambdas in Java 8 (see [this video by Mr Goetz himself](http://www.youtube.com/watch?v=C_QbkGU_lqY)) but also all "dynamically typed"...
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.