Перевести грамматику Haskell Parsec на Scala?

Я пытаюсь перевести грамматику, написанную на Haskell, используя Parsec, в комбинаторы синтаксического анализатора Scala.

Перевод фактических выражений сопоставления довольно прост и, по крайней мере, на мой взгляд, даже немного проще в Scala. Что мне совсем не ясно, так это то, как справиться с состоянием, которое Parsec передает с помощью монад.

Синтаксический анализатор Scala считывает ввод и создает результат ParseResult[T].

Напротив, GenParser в Haskell считывает ввод и состояние и создает другой анализатор. Передача этого состояния в Scala меня смутила.

Есть ли у кого-нибудь пример анализа состояния в Scala, которым они хотели бы поделиться?

9
задан TOB 23 March 2012 в 02:31
поделиться