Скачиваний:
11
Добавлен:
01.05.2014
Размер:
41.98 Кб
Скачать
    1. Атрибутная грамматика

<I>a1 ↑b1 ::=<Vars> a2 ↑b2 <Code> ↓a3 ↑b3

a2=a1; a3=b2; b1=b3;

<MasBool>a4 ↑b4 ↑x1 ::=’<arr>’ <Id>x2 ’,’ <Chislo>y1 {WrRM}x3 y2 {FMB}a5 ↑b5 ↓x4

a5=a4; b4=b5; (x1, x3, x4)=x2; y2=y1;

< MasChar>a6 ↑b6 ↑x5 ::=’<arr>’ <Id>x6 ’,’ <Chislo>y3 {WrRM}x7 y4 {FMC}a7 ↑b7 ↓x8

a7=a6; b6=b7; (x5, x7, x8)=x6; y4=y3;

<ElMas>↑t1 ::=’<earr>’<Id>x9 ’,’ <Chislo>y5 {FUkTZEM}x10y6 t2 ’</earr>’

t1=t2; x10=x9; y6=y5;

<Vars>a8 ↑b8 ::=’<boolean>’<NamesBool>a9 ↑b9 ’</boolean>’<R3>a10 ↑b10

b8=b10; a9=a8; a10=b9;

<Vars>a11 ↑b11 ::=’<char>’<NamesBool>a12 ↑b12 ’</char>’<R3>a13 ↑b13

b11=b13; a12=a11; a13=b12;

<R3>a14 ↑b14 ::=<Vars>a15 ↑b15

a15=a14; b14=b15;

<R3>a16 ↑b16 ::=$ b16= a16;

<NamesBool>a17 ↑b17 ::=<Id>x11 {NewB}a18 ↑b18 x12 <R4>a19 ↑b19

b17=b19; a18=a17; a19=b18; x12=x11;

<NamesBool>a20 ↑b20 ::=<MasBool>a21 ↑b21 ↑x13 <R4>a22 ↑b22

b20=b22; a21=a20; a22=b21;

<R4>a23 ↑b23 ::=’,’<NamesBool>a24 ↑b24

a24=a23; b23=b24;

<R4>a25 ↑b25 ::=$ b25= a25;

<NamesChar>a26 ↑b26 ::=<Id>x14 {NewC}a27 ↑b27 x15 <R5>a28 ↑b28

b26=b28; a27=a26; a28=b27; x15=x14;

<NamesChar>a29 ↑b29 ::=<MasBool>a30 ↑b30 ↑x16 <R5>a31 ↑b31

b29=b31; a30=a29; a31=b30;

<R5>a32 ↑b32 ::=’,’<NamesChar>a33 ↑b33

a33=a32; b32=b33;

<R5>a34 ↑b34 ::=$ b34= a34;

<Code>↓a35 ↑b35 ::=’<ass>’<Perem>↑t3 ’,’<Vyrazh>↓a36 ↑b36 ↑t4 {FAt=}t5 t6 t7 ’</ass>’<R6>↓a37 ↑b37

a36=a35; a37=b36; b35=b37; (t5, t7)=t3; t6=t4;

<Perem>↑t8 ::= <Id>↑x17 {FUkTZId}x18 t9

x18=x17; t8=t9;

<Perem>↑t10 ::= <ElMas>↑t11

t10=t11;

<Vyrazh>a38 b38 ↑t12 ::= <Const>↑z1

b38=a38; t12=z1;

<Vyrazh>a39 b39 ↑t13 ::= <Simvol>↑c1

b39=a39; t13=c1;

<Vyrazh>a40 b40 ↑t14 ::= <Perem>↑t15

b40=a40; t14=t15;

<Vyrazh>a41 b41 ↑t16 ::= <Operation>a42 b42 ↑t17

a42=a41; b41=b42; t16=t17;

<Operation>a43 b43 ↑t18 ::= ‘and’<Operand>a44 b44 ↑t19 ’,’<Operand>a45 b45 ↑t20

{FAt&}t21 t22 t23 {NextZ}a46 ↑b46 ‘</and>’

a44=a43; a45=b44; b43=b46; (t18, t23, a46)=b45; t21=t19; t22=t20;

<Operation>a47 b47 ↑t24 ::= ‘or’<Operand>a48 b48 ↑t25 ’,’<Operand>a49 b49 ↑t26

{FAtV}t27 t28 t29 {NextZ}a50 ↑b50 ‘</or>’

a48=a47; a49=b48; b47=b50; (t24, t29, a50)=b49; t27=t25; t28=t26;

<Operation>a51 b51 ↑t30 ::= ‘not’<Operand>a52 b52 ↑t31 {FAt!}t32 t33 t34 {NextZ}a53 ↑b53 ‘</not>’

a52=a51; b51=b53; (t30, t34, a53)=b52; t32=t31; t33=NULL;

<Operand>a54 b54 ↑t35 ::= <Operation>a55 b55 ↑t36

a55=a54; b54=b55; t35=t36;

<Operand>a56 b56 ↑t37 ::= <Perem>↑t38

b56=a56; t37=t38;

<Operand>a57 b57 ↑t39 ::= <Const>↑z2

b57=a57; t39=z2;

<R6>a58 b58 ::= <Code>a59 b59

a59=a58; b58=b59;

<R6>a60 b60 ::= $ b60=a60;