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

V99 = V98 È { <условный-оператор> | <оператор> → <условный-оператор> Î P, <оператор> Î V98} = {…,  <оператор>, <условный-оператор>}

V100 = V99 È { if’, ‘else’ | <условный-оператор> → if ( <выражение> ) <оператор> else <оператор> Î P,  Î V99} = {…, <условный-оператор>, if’, ‘else’ }

V101 = V100 È { <оператор-цикла> | <оператор> → <оператор-цикла> Î P, <оператор> Î V100} = {…,  <оператор>, <оператор-цикла>}

V102 = V101 È { while’ | <оператор-цикла> → while ( <выражение> ) <оператор>Î P, <оператор-цикла> Î V101} = {…, <оператор-цикла>, while’}

V103 = V102 È {‘for’, <выражения-for>  | <оператор-цикла> → for <выражения-for> <оператор> Î P, <оператор-цикла> Î V102} = {…,  <оператор-цикла>, ‘for’, <выражения-for>}

V104 = V103 È { <начальное-условие> | <выражения-for> → (<начальное-условие> ; <выражение> ; <выражение>) Î P, <выражения-for> Î V103} = {…, <выражения-for>, <начальное-условие>}

V105 = V104 È { <оператор-выхода-из-цикла> | <оператор> → <оператор-выхода-из-цикла> Î P, <оператор> Î V104} = {…, <оператор>, <оператор-выхода-из-цикла> }

V106 = V105 È { break’ | <оператор-выхода-из-цикла> → break ; Î P, <оператор-выхода-из-цикла> Î V105} = {…, <оператор-выхода-из-цикла>, break’ }

V107 = V106 È { <оператор-continue> | <оператор> → <оператор-continue> Î P, <оператор> Î V106} = {…, <оператор>, <оператор-continue> }

V108 = V107 È { ‘continue’ | <оператор-continue> → continue ; Î P, | <оператор-continue> Î V107} = {…,  | <оператор-continue>, ‘continue’}

V109 = V108 È { <оператор-возврата> | <оператор> → <оператор-возврата> Î P, <оператор> Î V108} = {…,  <оператор>, <оператор-возврата>}

V110 = V109 È {return’  | <оператор-возврата> → return <выражение> ; Î P, <оператор-возврата> Î V109} = {…,  <оператор-возврата>, ‘return’}

V111 = V110 È { <пустой-оператор> | <оператор> → <пустой-оператор> Î P, <оператор> Î V110} = {…, <оператор>, <пустой-оператор> }


N0 = Æ

N1 = N0 È { <цифра> | <цифра> → 0 Î P, ‘0’ Î (N0ÈT)*} = {…, <цифра>}

N2 = N1 È {<не-цифра> | <не-цифра> → A Î P, ‘A’ Î (N1ÈT)*} = {…, <цифра>, <не-цифра>}

N3 = N2 È { <идентификатор> | <идентификатор> → <не-цифра> Î P, <не-цифра> Î (N2ÈT)*} = {…, <идентификатор>, <не-цифра>}

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

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

N6 = N5 È { <унарное-выражение> | <унарное-выражение> → <постфиксное-выражение> Î P, <постфиксное-выражение> Î (N5ÈT)*} = {…, <унарное-выражение>, <постфиксное-выражение>}

N7 = N6 È { <мультипликативное-выражение> | <мультипликативное-выражение> → <унарное-выражение> Î P, <унарное-выражение> Î (N6ÈT)*} = {…, <мультипликативное-выражение>, <унарное-выражение>}

N8 = N7 È { <знак-умножения> | <знак-умножения> → * Î P, ‘*’ Î (N7ÈT)*} = {…, <знак-умножения>}

N9 = N8 È { <аддитивное-выражение> | <аддитивное-выражение> → <мультипликативное-выражение> Î P, <мультипликативное-выражение> Î (N8ÈT)*} = {…, <аддитивное-выражение>, <мультипликативное-выражение>}

N10 = N9 È { <аддитивный-знак> | <аддитивный-знак> → + Î P, ‘+’ Î (N9ÈT)*} = {…, <аддитивный-знак>}