Mathias

Results 205 comments of Mathias

The current rule stack is simply the top of the JVM stack. So a simple `Thread.currentThread().getStackTrace` should do.

The parser is run several times if the first run doesn't succeed, i.e. if there is a parse error. Each run establishes one rule trace.

Yes, failed runs do take longer because they analyze the parsers behavior in order to build the error info. Currently you cannot simply switch this off. However, it's easy to...

This should be the most efficient solution currently: ``` scala oneOrMore(TopPackage).separatedBy(Semis) ~ zeroOrMore(Semis ~ TopStat) | oneOrMore(TopStat).separatedBy(Semis) ``` as it avoids reparsing.

Buffer mgmt. is the crux here. Since the parser can backtrack we need to somehow keep the results of all (or a window) of previously decoded bytes.

I guess I'd prefer changing the `run` method of the `Parser` class to this: ``` def run[L

Sorry, Alex, I currently don't have any capacity for this review. It'll have to wait for a few days.

Would you be able to supply an example of what you are looking for? So far it's not quite clear to me...

If I merge this PR into the current master these new tests fail. Unfortunately I don't have the capacity to look into the cause of the problem. Can you help?