Разработчик (и) | INRIA |
---|---|
Тип | Генератор |
Лицензия | CeCILL |
Веб-сайт | синтаксис.gforge.inria.fr |
В информатике SYNTAX - это система, используемая для генерировать лексические и синтаксические анализаторы (синтаксические анализаторы ) (как детерминированные, так и недетерминированные) для всех видов контекстно-свободных грамматик (CFG), а также некоторых классов контекстных грамматик. Оно разрабатывалось INRIA (Франция ) в течение нескольких десятилетий, в основном Пьером Булье, но стало бесплатным программным обеспечением только с 2007 года. SYNTAX распространяется по лицензии CeCILL.
SYNTAX обрабатывает большинство классов детерминированных (однозначных) грамматик (LR, LALR, RLR, а также общих контекстно-свободных грамматик. Детерминированная версия использовалась в операционных контекстах (например, Ada ), и в настоящее время используется как в области компиляции. Недетерминированные функции включают генератор синтаксического анализатора Эрли, используемый для обработки естественного языка. Синтаксические анализаторы, созданные SYNTAX, включают мощные механизмы восстановления после ошибок и позволяют выполнять семантические действия и оценку атрибутов в абстрактном дереве или в общем лесу синтаксического анализа.
Текущая версия SYNTAX (версия 6.0 beta) включает также генераторы синтаксических анализаторов для других формализмов, используемых для обработки естественного языка, а также биоинформатики. Lisms - это контекстно-зависимые формализмы (TAG, RCG или формализмы, которые основываются на контекстно-свободных грамматиках и расширяются благодаря оценке атрибутов, в частности, для обработки естественного языка (LFG ).
Хорошей особенностью SYNTAX (по сравнению с Lex / Yacc ) является его встроенный алгоритм для автоматического восстановления из лексических и синтаксические ошибки, путем удаления лишних символов или токенов, вставки отсутствующих символов или токенов, перестановки символов или токенов и т. д. Этот алгоритм имеет поведение по умолчанию, которое можно изменить, предоставив настраиваемый набор правил восстановления, адаптированный к языку, для которого лексический анализатор и парсер построены.