Синтаксические схемы
Синтаксическая схема состоит из подсхем, определенных для каждого нетерминала грамматики.
Каждый путь в подсхеме соответствует правилу подстановки для нетерминала. Иначе говоря, каждое правило представляется в виде некоторой траектории от расположенной слева точки входа в подсхему до расположенной справа точки выхода из подсхемы. Компонентами пути-траектории являются терминалы и нетерминалы из правой части правила подстановки.
Терминалы заключаются в закругленные прямоугольники, нетерминалы — в обычные прямоугольники [9, 92, 93].
Синтаксическая схема, соответствующая BNF-грамматике для арифметических выражений, изображена на рис. 6.19.
В этой схеме четко различимы три подсхемы: для выражения, терма и фактора. Вход в каждую подсхему подписан именем соответствующего нетерминала.
В табл. 6.8 приведены строки, порожденные различными траекториями в подсхемах. Отметим, что пути в подсхемах для выражения и терма имеют циклы, а в подсхеме для фактора цикла нет, поскольку он здесь не нужен.
Таблица 6.8. Применение подсхем |
176 |
Глава 6. Средства представления синтаксиса языков программирования |
Преимущество синтаксических схем — в них используют только значащие нетерминалы. В BNF для создания альтернативных путей и циклов иногда требуются вспомогательные нетерминалы. |
Рис. 6.19. Синтаксическая схема грамматики арифметических выражений |
Точки с запятой и пустые операторы |
177 |