"Нет". [ edit: на момент вопроса ] Если вопрос касается лексического анализа / разбора Perl, это довольно сложно. У нас (см. Мою биографию для «мы») есть лексер Perl5. У нас действительно хорошие инструменты для генерации лексеров (Unicode, multi-state, регулярные выражения в комплекте со встроенным «not regexp »). Лексер Perl создавал королевскую головную боль; мы получили около 50 лексических режимов (каждый со своим набором определений токенов) для обработки лексической части.
Мы смотрим на часть анализа, и сегодня нам повезло, и у нас нет прямой необходимости делать это, поэтому мы пока избегали этого. Очевидно, что язык неоднозначен в зависимости от динамических определений различных идентификаторов, поэтому то, как вы интерпретируете (анализируете) фразу в один момент, статически не разрешимо. Мы думаем, что можем сделать это, используя синтаксический анализатор GLR, который обрабатывает неоднозначности и просто удерживает неоднозначности как возможные альтернативы времени выполнения. Я дам вам знать через несколько месяцев.