14. Краткое Изложение Синтаксиса
Эта краткая сводка синтаксиса С++ предназначается, чтобы
способствовать пониманию. Она не является точной формулиров-
кой языка.
14.1 Выражения
выражение:
терм
выражение бинарная_операция выражение
выражение ? выражение : выражение
список_выражений
список_выражений:
выражение
список_выражений , выражение
)
new имя_типа инициализатор opt
new ( имя_типа )
delete выражение
delete [ выражение ] выражение
первичное_выражение:
id
:: идентификатор
константа
строка
this
( выражение )
первичное_выражение[ выражение ]
первичное_выражение ( список_выражений opt )
первичное_выражение.id
первичное_выражение->id
id:
идентификатор
typedef-имя :: идентификатор
typedef-имя :: имя_функции_операции
операция:
унарная_операция
бинарная_операция
специальная_операция
операция_свободной_памяти
Бинарные операции имеют приоритет, убывающий в указанном
порядке:
бинарная_операция: одна из
* / %
+ -
<< >>
< >
== !=
&
^
!
&&
!!
операция_присваивания
операция_присваивания: одна из
= += -= *= /= %= ^= &= != >>= <<=
унарная_операция: одна из
* & + - ~ ! ++ --
специальная_операция: одна из
() []
операция_свободной_памяти: одна из
new delete
имя_типа:
спецификаторы_описания абстрактный_описатель
простое_имя_типа:
typedef-имя
char
short
int
long
unsigned
float
double
void
typedef-имя:
идентификатор
14.2 Описания
описание:
спецификаторы_описания opt список_описателей opt ;
описание_имени
asm-описание
описание_имени:
сост идентификатор ;
enum идентификатор ;
сост:
class
struct
union
asm-описание:
asm ( строка ) ;
спецификаторы_описания:
спецификатор_описания спецификаторы_описания opt
спецификатор_описания:
спецификатор_класса_памяти
спецификатор_типа
спецификатор_функции
typedef
friend
спецификатор_типа:
простое_имя_типа
спецификатор_класса
спецификатор_enum
усложненный_спецификатор_типа
const
спецификатор_класса_памяти:
auto
extern
register
static
спецификатор_функции:
inline
overload
virtual
усложненный_спецификатор_типа:
ключ typedef-имя
ключ идентификатор
ключ:
class
struct
union
enum
список_описателей:
иниц-описатель
иниц-описатель , список_описателей
иниц-описатель:
описатель инициализатор opt
& const opt описатель
описатель ( список_описаний_параметров )
описатель [ константное_выражение opt ]
оп_имя:
простое_оп_имя
typedef-имя :: простое_оп_имя
простое_оп_имя:
идентификатор
typedef-имя
~ typedef-имя
имя_функции_операции
имя_функции_преобразования
имя_функции_операции:
operator операция
имя_функции_преобразования
operator тип
список_описаний_параметров:
список_описаний_прм opt ... opt
список_описаний_прм:
список_описаний_прм , описание_параметра
описание_параметра
описание_параметра:
спецификаторы_описания описатель = выражение
спецификаторы_описания описатель = константное_выражение
спецификаторы_описания абстракт_описатель = выражение
спецификаторы_описания абстракт_описатель = выражение
спецификатор_класса:
заголовок_класса (* список_членов opt *)
заголовок_класса (* список_членов opt public :
список_членов opt *)
заголовок_класса:
сост идентификатор opt
сост идентификатор opt : public opt typedef-имя
список_членов:
описание_члена список_членов opt
описание_члена:
спецификаторы_описания opt описатель_члена
инициализатор opt ;
определение_функции opt
описатель_члена:
описатель
идентификатор opt : константное_выражение
инициализатор:
= выражение
= (* список_инициализаторов *)
= (* список_инициализаторов , *)
( список_выражений )
список_инициализаторов:
выражение
список_инициализаторов , список_инициализаторов
(* список_инициализаторов *)
спецификатор_enum:
enum идентификатор opt (* enum-список *)
enum-список:
перечислитель
enum-список , перечислитель
перечислитель:
идентификатор
идентификатор = константное_выражение
14.3 Операторы
составной_оператор:
(* список_операторов opt *)
список_операторов:
оператор
оператор список_операторов
оператор while ( выражение ) ;
for ( оператор выражение opt ; выражение opt ) оператор
switch ( выражение ) оператор
case константное_выражение : оператор
default : оператор
break ;
continue ;
return выражение opt ;
goto идентификатор ;
идентификатор : оператор
14.4 Внешние определения
программа:
внешнее_определение
внешнее_определение программа
внешнее_определение:
определение_функции
описание
определение_функции:
спецификаторы_описания opt описатель_функции
инициализатор_базового opt тело_функции
описатель_функции:
описатель ( список_описаний_параметров )
тело_функции:
составной_оператор
инициализатор_базового:
: ( список_инициализаторов_членов opt )
14.5 Препроцессор
#define идентификатор строка_лексем
#define идентификатор( идентификатор,...,идентификатор )
строка лексем
#else
#endif
#if выражение
#ifdef идентификатор
#ifndef идентификатор
#include "имя_файла"
#include <имя_файла>
#line константа "имя_файла"
#undef идентификатор
[Назад] [Содержание] [Вперед]
| Главная |