Continuing from this GitHub issue:
I need to match on indent or dedent, and I'm using Earley. Earley has no built-in support for indentation, but I'd like to be able to use indentation instead of braces in my language.
Example input:
func foo(a: A, b: B): C =
theresSomeIndentRequiredHere(a, b)
func noMoreIndentMeansNoMoreFoo: D = ???
This would parse theresSomeIndentRequiredHere
as part of foo
, but noMoreindentMeansNoMoreFoo
would not get parsed as part of foo
.
How can I do this without losing a ton of speed?