Как определить несколько типов блоков комментариев в Parsec

Я пытаюсь научиться использовать Parsec для написания синтаксического анализатора Delphi, но я застреваю при определении LanguageDef.

В Delphi есть два типа блоков комментариев: (* комментарии *) и {комментарии} . Но типы commentStart и commentEnd для LanguageDef - это String, а не [String], поэтому я мог вставить только один или другой.

Итак, я попытался создать свой собственный синтаксический анализатор whiteSpace, но не уверен, что смогу передать его в makeTokenParser .

Любая помощь будет принята с благодарностью.

Спасибо.


Джон и Крис помогли мне разобраться в проблеме и обойти ее, но решение включает замену огромного количества синтаксических анализаторов, которые предоставляет makeTokenParser , так что это не совсем желательно.

Я отправлю сообщение еще раз, если найду лучшее решение.

12
задан ePak 8 December 2011 в 22:29
поделиться