ВУЗ:
Составители:
15
Грамматики для арифметических выражений
Для удобства рассмотрим арифметические выражения, использующие
только знаки сложения и умножения. Вначале построим грамматику для выра-
жений без скобок. Такие выражения представляют собой цепочки, которые
можно рассматривать как списки с разделителями, в которых роль разделите-
лей выполняют знаки операций. В результате получаем схему грамматики:
H → IR
R → W I R | λ
W → + | *.
В данной схеме I обозначает идентификатор (определение см. выше).
Чтобы построить грамматику, допускающую использование в арифмети-
ческих выражениях скобок без вложенности, представим структуру таких вы-
ражений в виде списка с разделителями, элементами которого являются выра-
жения без скобок или выражения без скобок, заключенные в скобки. Раздели-
телями этого списка являются знаки операций. Такой структуре соответствует
следующая схема грамматики:
G → HQ
G → (H)Q
Q → WG | λ.
Для построения грамматики арифметических выражений, допускающих
применение вложенных скобок, следует предусмотреть возможность использо-
вания в качестве элемента списка не только выражения без скобок, но и выра-
жения, в котором могут быть использованы скобки. Схема грамматики, учиты-
вающая эту возможность, может быть записана в виде:
E → GP | (E)P
P → WE | λ.
Грамматика для описаний
Рассмотрим построение грамматики для описания целых и вещественных
переменных. Описание переменных должно начинаться указателем типа, при-
чем описания переменных определенного типа могут повторяться. В качестве
разделителя описаний переменных разных типов примем точку с запятой, а в
качестве разделителя переменных одного типа – запятую. Структуру полного
описания можно представить в виде двух вложенных списков с разделителями.
Внутренний список, рассматриваемый как элемент внешнего списка, представ-
ляет собой описание переменных одного типа. Он имеет заголовок в виде ука-
зателя типа, за которым следует последовательность идентификаторов, разде-
ленных запятыми. Внешний список использует в качестве разделителя точку с
запятой. Схема грамматики рассматриваемого вида может быть записана так:
Z → A2
A2 → B1 C1
C1 → ; B1 C1 | λ
B1 → real L | int L
L → I K
K → , I K | λ.
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »