Жак Татьяна Юрьевна М- 42
C++ на БНФ
Конструкция <программа> является основной; из нее выводятся почти все приведенные ниже конструкции.
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. идентификатор
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.