Отличный способ lex INDENT и DEDENT перейти на Earley? - PullRequest
0 голосов
/ 30 марта 2020

Продолжая с этой проблемы GitHub :

Мне нужно сопоставить отступ или отступ, и я использую Earley . У Earley нет встроенной поддержки отступов, но я хотел бы иметь возможность использовать отступы вместо фигурных скобок в моем языке.

Пример ввода:

func foo(a: A, b: B): C =
  theresSomeIndentRequiredHere(a, b)

func noMoreIndentMeansNoMoreFoo: D = ???

Это будет проанализировано theresSomeIndentRequiredHere как часть foo, но noMoreindentMeansNoMoreFoo не будет обработан как часть foo.

Как я могу сделать это без потери тонны скорости?

...