Синтаксический предикат
-
Определение и применение синтаксических предикатов
- Синтаксические предикаты определяют синтаксическую валидность в формальной грамматике.
- Они аналогичны семантическим предикатам, определяющим семантическую валидность.
- Улучшают эффективность распознавания синтаксического анализатора LL.
-
История и реализация
- Изначально предикаты имели форму «α?» и могли появляться только на левом краю текста.
- Требуемый синтаксический предикат α может быть любым допустимым контекстно-свободным грамматическим фрагментом.
- В ANTLR версии 3 используется детерминированные конечные автоматы для предварительного просмотра.
-
Формальные свойства и примеры
- Пересечение двух обычных языков является обычным языком.
- Пересечение обычного языка и контекстно-свободного языка может быть не контекстно-свободным.
- В некоторых формализмах синтаксические предикаты некоммутативны и упорядочены.
- Примеры использования включают грамматику ANTLR для C++ и канонические примеры языков.
-
Использование в синтаксических анализаторах и формализмах
- Примеры использования синтаксических предикатов включают ANTLR, Perl 6 и другие синтаксические анализаторы.
- Список формализмов, использующих синтаксические предикаты, не является исчерпывающим.
Полный текст статьи: