Я видел два подхода к созданию парсеров в Scala.
Первый - это расширение от RegexParsers и определение ваших выигранных лексических паттернов.Проблема, с которой я сталкиваюсь, заключается в том, что я не совсем понимаю, как она справляется с неопределенностью ключевых слов.Например, если мое ключевое слово совпадает с шаблоном идентификаторов, то оно обрабатывает ключевые слова как идентификаторы.
Чтобы противостоять этому, я видел сообщения типа этот , в которых показано, как их использовать.StandardTokenParsers для указания ключевых слов.Но тогда я не понимаю, как определить шаблоны регулярных выражений!Да, StandardTokenParsers поставляется с «идентами», но не с другими, которые мне нужны (сложные представления чисел с плавающей запятой, конкретные строковые литеральные шаблоны и правила для экранирования и т. Д.).
Как получить обавозможность задавать ключевые слова и возможность указывать шаблоны токенов с регулярными выражениями?