Вывод определений из основной конструкции типа "программа"

Страницы работы

Содержание работы

Жак Татьяна Юрьевна М- 42

C++ на БНФ

Конструкция <программа> является основной; из нее выводятся почти все приведенные ниже конструкции.

Компоненты или их группы на правой стороне можно заключить в скобки. Скобки группируют компоненты и показывают число повторений групп:

•  []   0 или 1 раз

•  {}  0, 1, 2, ... раз

•  ()   1 раз

1.  <программа> ::= {< определение объектов>;}{<описание объектов>;}(<основная функция>)

2.  <определение объектов> ::= {<определение скалярных объектов>;}{<определение агрегатных объектов>;}{<определение функций>;}

3.  <определение скалярных объектов> ::= {<определение арифметических объектов>|<определение указателей>|<определение ссылок>|<определение перечислений>}

4.  <определение арифметических объектов>::={<определение арифметического объекта>;}

5.  <определение арифметического объекта>::=[<спецификатор класса памяти для арифметических типов>] [<модификатор для арифметических типов>]<арифметический тип><имя объекта>[<инициализация>]

6.  <спецификатор класса памяти для арифметических типов>::=static|extern|typedef

7.  <модификатор арифметических типов>::=const|volatile

8.  <арифметический тип>::= [<учет знакового разряда>]<имя арифметического типа>

9.  <учет знакового разряда>::=unsigned|signed

10.  <имя арифметического типа>::= char|short|int|long|float|double|void

11.  <имя объекта>::=<идентификатор>

12.  <идентификатор> ::= <буква>|<символ подчеркивания>{<буква><цифра>}

13.  <инициализирующее выражение>::= (<инициализирующее_арифметическое_выражение>)|=<инициализирующее+арифметичексое_выражение>

Пример:

extern const unsigned int i = 0;


Синтаксические диаграммы.

1.  программа

 


2. определение объектов

 


3.  определение скалярных объектов

4.  определение арифметических объектов

5. определение арифметического объекта

6. спецификатор класса памяти для арифметических типов

7. модификатор арифметических типов

8. арифметический тип

9. Учет знакового разряда

10. имя арифметического типа

12. идентификатор

 

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
58 Kb
Скачали:
0