Я пытаюсь перевести грамматику, написанную на Haskell, используя Parsec, в комбинаторы синтаксического анализатора Scala.
Перевод фактических выражений сопоставления довольно прост и, по крайней мере, на мой взгляд, даже немного проще в Scala. Что мне совсем не ясно, так это то, как справиться с состоянием, которое Parsec передает с помощью монад.
Синтаксический анализатор Scala считывает ввод и создает результат ParseResult[T].
Напротив, GenParser в Haskell считывает ввод и состояние и создает другой анализатор. Передача этого состояния в Scala меня смутила.
Есть ли у кого-нибудь пример анализа состояния в Scala, которым они хотели бы поделиться?