Единица трансляции. Объявление верхнего уровня., страница 9

N50 = N49 È { <описатель-указателя> | <описатель-указателя> → <указатель> <прямой-описатель> Î P,  <указатель>, <прямой-описатель> Î (N49ÈT)*} = {…, <описатель-указателя>, <указатель>}

N51 = N50 È { <описатель> | <описатель> → <описатель-указателя> Î P, <описатель-указателя> Î (N50ÈT)*} = {…, <описатель>, <описатель-указателя>}

N52 = N51 È { <список-описателей-компонентов> | <список-описателей-компонентов> → <описатель> Î P, <описатель> Î (N51ÈT)*} = {…, <список-описателей-компонентов>, <описатель>}

N53 = N52 È { <объявление-компонента> | <объявление-компонента> → <спецификатор-типа> <список-описателей-компонентов> ; Î P, спецификатор-типа>, <список-описателей-компонентов>, ‘;’  Î (N52ÈT)*} = {…, <объявление-компонента>, <спецификатор-типа>}

N54 = N53 È { <список-полей> | <список-полей> → <объявление-компонента> Î P, <объявление-компонента> Î (N53ÈT)*} = {…, <список-полей>, <объявление-компонента>}

N55 = N54 È { <определение-структурного-типа> | <определение-структурного-типа> → struct <идентификатор> {<список-полей>} Î P, ‘struct’, <идентификатор>, ‘{‘,<список-полей>, ‘}’ Î (N54ÈT)*} = {…, <определение-структурного-типа>, <идентификатор>}

N56 = N55 È { <спецификатор-типа-структура> | <спецификатор-типа-структура> → <определение-структурного-типа> Î P, <определение-структурного-типа> Î (N55ÈT)*} = {…, <спецификатор-типа-структура>, <определение-структурного-типа>}

N57 = N56 È { <описатель-функции> | <описатель-функции> → <прямой-описатель> ( ) Î P, <прямой-описатель>, ‘(‘, ‘)’ Î (N56ÈT)*} = {…, <описатель-функции>, <прямой-описатель>}

N58 = N57 È { <константное-выражение> | <константное-выражение> → <логическое-выражение-ИЛИ> Î P, <логическое-выражение-ИЛИ> Î (N57ÈT)*} = {…, <константное-выражение>, <логическое-выражение-ИЛИ>}

N59 = N58 È { <объявление-параметра> | <объявление-параметра> → <спецификатор-типа> Î P, <спецификатор-типа> Î (N58ÈT)*} = {…, <объявление-параметра>, <спецификатор-типа>}

N60 = N59 È { <список-параметров> | <список-параметров> → <объявление-параметра> Î P, <объявление-параметра> Î (N59ÈT)*} = {…, <список-параметров>, <объявление-параметра>}

N61 = N60 È { <список-идентификаторов> | <список-идентификаторов> → <идентификатор> Î P, <идентификатор> Î (N60ÈT)*} = {…, <список-идентификаторов>, <идентификатор>}

N62 = N61 È { <описатель-массива> | <описатель-массива> → <прямой-описатель> [ ] Î P, <прямой-описатель>, ‘[‘, ‘]’ Î (N61ÈT)*} = {…, <описатель-массива>, <прямой-описатель>}

N63 = N62 È { <ссылка-на-структурный-тип> | <ссылка-на-структурный-тип> → struct <идентификатор> Î P, ‘struct’, <идентификатор> Î (N62ÈT)*} = {…, <ссылка-на-структурный-тип>, <идентификатор>}

N64 = N63 È { <спецификатор-типа-void> | <спецификатор-типа-void> → void Î P, ‘void’ Î (N63ÈT)*} = {…, <спецификатор-типа-void>}

N65 = N64 È { <инициализатор> | <инициализатор> → <выражение-присваивания> Î P, <выражение-присваивания> Î (N64ÈT)*} = {…, <инициализатор>, <выражение-присваивания>}

N66 = N65 È { <список-инициализаторов> | <список-инициализаторов> → <инициализатор> Î P, <инициализатор> Î (N65ÈT)*} = {…, <список-инициализаторов>, <инициализатор>}

N67 = N66 È { <унарное-выражение-минус> | <унарное-выражение-минус> → - <унарное-выражение> Î P, ‘-‘, <унарное-выражение> Î (N66ÈT)*} = {…, <унарное-выражение-минус>, <унарное-выражение>}