Разработка транслятора с языка PROST на язык С++. Часть 2., страница 3

V7 = V6 U { op_outputs | operator → op_outputs є P; OPERATOR є V6} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs }

V8 = V7 U { op_GOTO | operator → op_GOTO є P; OPERATOR є V7} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs }

V9 = V8 U { OP_LABEL | operator → OP_LABEL є P; OPERATOR є V8} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL }

V10 = V9 U { OP_IF  | operator → OP_IF є P; OPERATOR є V9} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF }

V11 = V10 U {<identifer> | op_assignment → <identifer> := expression ; є P; op_assignment є V10} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF, <identifer>}

V12 = V11 U { := | op_assignment → <identifer> := expression ; є P;  op_assignment є V11} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF, <identifer>,:= }

V13 = V12 U { expression | op_assignment → <identifer> := expression ; є P;  op_assignment є V12} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF, <identifer>,:=, expression }

V14 = V13 U { ; | op_assignment → <identifer> := expression ; є P;  op_assignment є V13} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF, <identifer>,:=, expression, ; }

V15 = V14 U { while | op_while → while ( expression condition expression ) do operators є P; op_while є V14} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF, <identifer>,:=, expression, ; , while }

V16 = V15 U { condition | op_while → while ( expression condition expression ) do operators є P; op_while є V15} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF, <identifer>,:=, expression, ; , while, condition }

V17 = V16 U { do | op_while → while ( expression condition expression ) do operators є P; op_while є V16} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF, <identifer>,:=, expression, ; , while, condition, do }

V18 = V17 U { input | op_input → input <identifer> ; є P ;op_input є V17} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF, <identifer>,:=, expression, ; , while, condition, do, input }

V19 = V18 U { outputn | op_outputn → outputn expression ; є P ; op_outputn є V18} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF, <identifer>,:=, expression, ; , while, condition, do, input, outputn }

V20 = V19 U { outputs | op_outputs → outputs <strc> ; є P ; op_outputs є V19} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF, <identifer>,:=, expression, ; , while, condition, do, input, outputn, outputs }

V21 = V20 U { <strc> | op_outputs → outputs <strc> ; є P ; op_outputs є V20} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF, <identifer>,:=, expression, ; , while, condition, do, input, outputn, outputs, <strc> }

V22 = V21 U { goto | op_goto → goto <identifer> ; є P; op_goto є V21} = { code OPERATORS, operator, end, op_assignment, op_while, op_input, op_outputn, op_outputs, OP_LABEL, OP_IF, <identifer>,:=, expression, ; , while, condition, do, input, outputn, outputs, <strc>,  goto }