Скачиваний:
11
Добавлен:
01.05.2014
Размер:
58.88 Кб
Скачать

5.2. Построение инструкций атрибутного преобразователя.

Инструкция #1

{

Записать в магазин цепочку

b1 a1 <I>

stack [sp-1]:=a // a – начальное значение атрибута а1 (указатель на первую своб. ячеку ТЗ)

}

Инструкция #2

{

Удалить символ из магазина

Записать в магазин цепочку

b3 a3 <Code> b2 a2 <Vars>

stack [sp-1]:=-5

stack [sp-2]:=-2

stack [sp-5]:=-2

}

Инструкция #3

{

Удалить символ из магазина

Записать в магазин цепочку

‘</arr>’ x4 b5 a5 {FMB} y2 x3 {WrRM} y1 <Chislo> ‘,’ x2 <Id>

stack [sp-1]:=-5

stack [sp-4]:=-3

stack [sp-6]:=-5

stack [sp-9]:=-3

stack [sp-10]:=-3

stack [sp-11]:=-3

}

Инструкция #4

{

Удалить символ из магазина

Записать в магазин цепочку

‘</arr>’ x8 b7 a7 {FMC} y4 x7 {WrRM} y3 <Chislo> ‘,’ x6 <Id>

stack [sp-1]:=-5

stack [sp-4]:=-3

stack [sp-6]:=-5

stack [sp-9]:=-3

stack [sp-10]:=-3

stack [sp-11]:=-3

}

Инструкция #5

{

Удалить символ из магазина

Записать в магазин цепочку

‘</earr>’ t2 y6 x10 {FUkTZEM} y5 <Chislo> ‘,’ x9 <Id>

stack [sp-1]:=-4

stack [sp-3]:=-3

stack [sp-7]:=-7 }

Инструкция #6

{

Удалить символ из магазина

Записать в магазин цепочку

b10 a10 <R3> ‘</boolean>’ b9 a9 <NamesBool>

stack [sp-1]:=-6

stack [sp-2]:=-3

stack [sp-6]:=-2

}

Инструкция #7

{

Удалить символ из магазина

Записать в магазин цепочку

b13 a13 <R3> ‘</char>’ b12 a12 <NamesChar>

stack [sp-1]:=-6

stack [sp-2]:=-3

stack [sp-6]:=-2

}

Инструкция #8

{

Удалить символ из магазина

Записать в магазин цепочку

b19 a19 <R4> x12 b18 a18 {NewB} x11 <Id>

stack [sp-1]:=-4

stack [sp-3]:=-6

stack [sp-4]:=-3

stack [sp-8]:=-2

}

Инструкция #9

{

Удалить символ из магазина

Записать в магазин цепочку

b24 a24 <NamesBool>

stack [sp-1]:=-2

stack [sp-2]:=-2

}

Инструкция #10

{

Удалить символ из магазина

Записать в магазин цепочку

b28 a28 <R5> x15 b27 a27 {NewC} x14 <Id>

stack [sp-1]:=-4

stack [sp-3]:=-6

stack [sp-4]:=-3

stack [sp-8]:=-2

}

Инструкция #11

{

Удалить символ из магазина

Записать в магазин цепочку

b33 a33 <NamesChar>

stack [sp-1]:=-2

stack [sp-2]:=-2

}

Инструкция #12

{

Удалить символ из магазина

Записать в магазин цепочку

b37 a37 <R6> ‘</ass>’ t7 t6 t5 {FAt=} t4 b36 a36 <Vyrazh> ‘,’ t3 <Perem>

stack [sp-1]:=-7

stack [sp-4]:=-11

stack [sp-5]:=-8

stack [sp-6]:=-3

stack [sp-8]:=-2

stack [sp-14]:=-2

}

Инструкция #13

{

Удалить символ из магазина

Записать в магазин цепочку

t9 x18 {FUkTZId} x17 <Id>

stack [sp-1]:=-2

stack [sp-4]:=-1

}

Инструкция #14

{

Удалить символ из магазина

Записать в магазин цепочку

z1 <Const>

stack [sp-1]:=-3

stack [sp-2]:=-1

}

Инструкция #15

{

Удалить символ из магазина

Записать в магазин цепочку

c1 <Simvol>

stack [sp-1]:=-3

stack [sp-2]:=-1

}

Инструкция #16

{

Удалить символ из магазина

Записать в магазин цепочку

‘</and>’ b46 a46 {NextZ} t23 t22 t21 {FAt&} t20 b45 a45 <Operand> ‘,’ t19 b44 a44 <Operand>

stack [sp-1]:=-16

stack [sp-2]:=-4

stack [sp-3]:=-7

stack [sp-7]:=-5

stack [sp-8]:=-3

stack [sp-12]:=-2

stack [sp-14]:=-5

stack [sp-15]:=-3

}

Инструкция #17

{

Удалить символ из магазина

Записать в магазин цепочку

‘</or>’ b50 a50 {NextZ} t29 t28 t27 {FAtV} t26 b49 a49 <Operand> ‘,’ t25 b48 a48 <Operand>

stack [sp-1]:=-16

stack [sp-2]:=-4

stack [sp-3]:=-7

stack [sp-7]:=-5

stack [sp-8]:=-3

stack [sp-12]:=-2

stack [sp-14]:=-5

stack [sp-15]:=-3

}

Инструкция #18

{

Удалить символ из магазина

Записать в магазин цепочку

‘</not>’ b53 a53 {NextZ} t34 t33 t32 {FAt!} t31 b52 a52 <Operand>

stack [sp-1]:=-11

stack [sp-2]:=-5

stack [sp-3]:=-2

stack [sp-6]:=Null

stack [sp-7]:=-2

stack [sp-9]:=-5

stack [sp-10]:=-2

}

Инструкция #19

{

Удалить символ из магазина

Записать в магазин цепочку

z2 <Const>

stack [sp-1]:=-3

stack [sp-2]:=-1

}

Инструкция #20

{

Удалить символ из магазина

Записать в магазин цепочку

b15 a15 <Vars>

stack [sp-1]:=-2

stack [sp-2]:=-2

}

Инструкция #21

{

Удалить символ из магазина

Записать в магазин цепочку

b22 a22 <R4> x13 b21 a21 <MasBool>

stack [sp-1]:=-6

stack [sp-2]:=-3

stack [sp-6]:=-2

}

Инструкция #22

{

Удалить символ из магазина

Записать в магазин цепочку

b31 a31 <R5> x16 b30 a30 <MasChar>

stack [sp-1]:=-6

stack [sp-2]:=-3

stack [sp-6]:=-2

}

Инструкция #23

{

Удалить символ из магазина

Записать в магазин цепочку

t11 <ElMas>

stack [sp-1]:=-1

}

Инструкция #24

{

Удалить символ из магазина

Записать в магазин цепочку

t15 <Perem>

stack [sp-1]:=-3

stack [sp-2]:=-1 }

Инструкция #25

{

Удалить символ из магазина

Записать в магазин цепочку

t17 b42 a42 <Operation>

stack [sp-1]:=-3

stack [sp-2]:=-3

stack [sp-3]:=-3 }

Инструкция #26

{

Удалить символ из магазина

Записать в магазин цепочку

t36 b55 a55 <Operation>

stack [sp-1]:=-3

stack [sp-2]:=-3

stack [sp-3]:=-3

}

Инструкция #27

{

Удалить символ из магазина

Записать в магазин цепочку

t38 <Perem>

stack [sp-1]:=-3

stack [sp-2]:=-1

}

Инструкция #28

{

Удалить символ из магазина

Записать в магазин цепочку

b59 a59 <Code>

stack [sp-1]:=-2

stack [sp-2]:=-2

}

Инструкция #29

{

Удалить символ из магазина

stack [sp]:=-1

}

6