setting start char index in lexer rules
Seems unnecessary as Lexer.tokenStartChar or whatever is available. Are we setting start unnecessarily i lexer rules? Oh, maybe we need in case they call a lexer rule and ask for token return value
filter tree grammar mode
I think what we really need is a filter mode for trees just like we have for lexer's. This would be almost a declarative approach where you say what trees you want to match and what actions to execute when ...
island grammar formalization
java.expression '\'}} where java is a grammar name and expression is the rule to invoke. If no lexemes defined in java then it shares same lexer object else it shares only input char stream