Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа по ТЯП. / готовый курсовик.doc
Скачиваний:
36
Добавлен:
01.05.2014
Размер:
1.2 Mб
Скачать

4.3.4 Управляющие таблицы дмп-процессоров

Подграмматика логического выражения

EXP

(

)

or

and

not

<

>

= =

<=

>=

!=

ε

LEX

C SC ,1

C SC ,1

C SC,1

C

LM SLM, 5

LM SLM,5

LM SLM, 5

SC

( REL ),9

ε ,3

or C SC, 2

ε ,3

REL

EXP REO, 11

LM

( LEX ), 8

not LM,9

SLM

ε ,7

and LM SLM, 6

ε ,7

REO

< EXP ,10

> EXP ,11

== EXP ,12

<= EXP ,13

>= EXP ,14

!= EXP ,15

EXP

EXP┴, 62

(

ВЫБРОС

)

ВЫБРОС

or

ВЫБРОС

and

ВЫБРОС

not

ВЫБРОС

<

ВЫБРОС

>

ВЫБРОС

= =

ВЫБРОС

<=

ВЫБРОС

>=

ВЫБРОС

!=

ВЫБРОС

СВЁРТКА, 73

LEX →C SC (1) REL→EXP REO (10)

SC→or C SC (2) REO→ < EXP (11)

SC→ (3) REO→ > EXP (12)

LEX→REL (4) REO→ == EXP (13)

C→LM SLM (5) REO→ <= EXP (14)

SLM→and LM SLM (6) REO→ >= EXP (15)

SLM→ (7) REO→ != EXP (16)

LM→( LEX ) (8)

LM→not LM (9)

Подграмматика выражения

VAR

(

)

+

-

++

--

~

VEC

*

/

;

[

ε

EXP

EXPS SAE, 1

EXPS

AE, 7

AE, 7

++AE, 5

-- AE, 6

~VEC, 8

SAE

ε, 14

ε, 4

+AE SAE, 2

- AE SAE, 3

ε, 4

ε, 4

SME

ε, 12

ε, 12

ε, 12

ε, 12

* ME SME, 10

/ ME SME, 11

ε, 12

ε, 12

AE

ME SME, 9

ME SME, 9

ME

VAR, 14

(EXP) , 13

VAR

ВЫЗОВ

Var,15

+

ВЫБРОС

-

ВЫБРОС

++

ВЫБРОС

--

ВЫБРОС

*

ВЫБРОС

/

ВЫБРОС

~

ВЫБРОС

VEC

ВЫЗОВ

СВЁРТКА,72

EXP → EXPS SAE (1) EXPS → ~ VEC (8)

SAE → + AE SAE (2) AE → ME SME (9)

SAE → - AE SAE (3) SME → * ME SME (10)

SAE → (4) SME → / ME SME (11)

EXPS →++ AE (5) SME → (12)

EXPS → -- AE (6) ME → ( EXP ) (13)

EXPS → AE (7) ME → VAR (14)

Подграмматика операторов

EXP

LEX

VAR

IDENT

for

goto

if

else

cin>>

cout<<

=

+=

-=

*=

/=

(

)

;

ε

COP

SOP,1

SOP

OP;SOP,2

OP;SOP,2

OP;SOP,2

OP;SOP,2

OP;SOP,2

OP;SOP,2

OP;SOP,2

OP;SOP,2

ε,3

OP

ULO, 22

ULO, 22

ULO, 22

ULO, 22

ULO, 22

ULO, 22

ULO, 22

ULO, 22

ULO

EQO, 6

for(EQO;

LEX; EQO) COP, 5

goto

LABEL,8

if(LEX)COP ELO,10

cin>> VAR, 13

cout<< VAR, 14

(LEX)?

(EXP): EXP),20

ELO

else

COP,11

EQO

VAR EQRS, 7

EQRS

= EXP,15

+= EXP,16

-= EXP,17

*= EXP,18

/= EXP,19

EXP

LEX

LEX┴, 63

VAR

VAR┴,61

EXP

EXP┴, 62

LABEL

IDENT,9

IDENT

ВЫЗОВ

cin>>

ВЫБРОС

cout<<

ВЫБРОС

=

ВЫБРОС

+=

ВЫБРОС

-=

ВЫБРОС

*=

ВЫБРОС

/=

ВЫБРОС

(

ВЫБРОС

)

ВЫБРОС

?

;

выброс

СВЁРТКА,74

COP → SOP (1) EQRS → /=EXP (19)

SOP → OP; SOP (2) ULO → (LEX)? (EXP) : (EXP ) (20)

SOP → (3)

OP → LABEL: ULO (4)

OP → ULO (22)

ULO →for(EQO; LEX; EQO) COP (5)

ULO → EQO (6)

EQO →VAR EQRS (7)

ULO → goto LABEL (8)

LABEL → IDENT (9)

ULO → if(LEX) COP ELO (10)

ELO → else COP (11)

ELO → (12)

ULO → cin>>VAR (13)

ULO →cout <<VAR (14)

EQRS → =EXP (15)

EQRS → +=EXP (16)

EQRS → -=EXP (17)

EQRS → *=EXP (18)

Подграмматика переменной

IDENT

CF

CI

[

,

]

;

AssignRel

ε

VAR

IDENT, 1

CI, 10

[ ELEM SELEM], 2

ELEM

IDENT SEND, 5

CF, 8

SEND

[INDEX] ,6

ε,7

INDEX

CI,9

SELEM

, ELEM SELEM, 3

ε,4

ε,4

IDENT

Выброс

CF

CI

Выброс

[

Выброс

,

Выброс

]

Выброс

cвертка, 71

VAR → IDENT (1)

VAR → [ ELEM SELEM] (2)

SELEM → , ELEM SELEM (3)

SELEM → (4)

ELEM → IDENT SEND (5)

SEND → [ INDEX ] (6)

SEND → (7)

ELEM → CF (8)

INDEX → CI (9)

VAR →CI ( 10 )

Подграмматика типов

int

float

bool

IDENT

vector

[

]

CI

ε

DECVAR

BASE VAR, 1

BASE VAR, 1

BASE VAR, 1

BASE

int, 2

float, 3

bool, 4

VAR

VAR ┴, 61

DECVEC

ε, 75

vector VAR; DECVEC, 5

DIM

CI,7

[

Выброс

]

Выброс

CI

Выброс

IDENT

Выброс

cвертка,75

DECVAR -> BASE VAR (1)

BASE -> int (2)

BASE -> float (3)

BASE -> bool (4)

DECVEC -> vector VAR [ DIM] ; DECVEC (5)

DECVEC -> (6)

DIM -> CI (7)

Void main(){

int

float

bool

vector

EXP-буква или скобка(

}

ε

P

void main() { DVAR }

DVAR

DECVAR ;DVAR , 2

DECVAR ;DVAR , 2

DECVAR ;DVAR , 2

DVEC, 3

COP,4

DECVAR

DECVAR┴, 65

DECVAR┴, 65

DECVAR┴, 65

DVEC

DEVEC; DVEC, 5

COP,6

ε,7

DECVEC

DECVEC┴, 65

COP

COP┴, 64

void main(){

ВЫБРОС

}

ВЫБРОС

ДОПУСК

Основная подграмматика

P → void main() { DVAR } (1)

DVAR → DECVAR; DVAR (2)

DVAR → DVEC (3)

DVAR → COP (4)

DVEC → DEVEC; DVEC (5)

DVEC →COP (6)

DVEC → (7)