Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа по ТЯП. / Управляющие таблицы атрибутных ДМП.doc
Скачиваний:
13
Добавлен:
01.05.2014
Размер:
374 Кб
Скачать
☆

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

IDENT

CF

CI

[

,

]

;

AssignRel

ε

VAR

IDENTr

name <- адрес IDENT

type<- код типа вектор

eql<- r-значение из таблицы идентификаторов , 1

CI, 10

[ ELEMp SELEMq]

name <- 10

type<- код типа вектор

eql<- r-значение из таблицы идентификаторов , 2

ELEM

IDENTr SENDind,n,e , 5

CF t , 8

SEND

[ CI ] {SUBS name, ind, e} ,6

ε,7

SELEM

ELEMp SELEMq , 3

ε,4

ε,4

IDENT

Выброс

CF

CI

Выброс

[

Выброс

,

Выброс

]

Выброс

{SUBS} name, ind, e

ВЫДАЧА{SUBS} name, ind, e

┴

cвертка, 71

VARname,type,eql → IDENTr (1)

name <- адрес IDENT

type<- код типа вектор

eql<- r-значение из таблицы идентификаторов

VAR name,type,eql → [ ELEMp SELEMq] (2)

name <- 10 //это будет безымянная запись в таблице идентификаторов

type<- код типа вектор

eql<- r-значение из таблицы идентификаторов

SELEMp → ELEMp SELEMq (3)

SELEMp → (4)

p<-10

ELEMe → IDENTr SENDind,n,e (5)

n<-r

SEND ind,n,e → [ CI ] {SUBS name, ind, e} (6)

ind <- CI

e<- GetNew

SEND ind,n,e → (7)

ind <- 10

n<-10

e<-10

ELEM i → CF t (8)

i<-t //адрес CF

VAR name,type,eql →CI t (9)

name<-10

type<- код для int

eql<-t //адрес CI

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

int

float

bool

IDENT

vector

[

]

CI

ε

DECVAR

BASEp VARname {AddVar}q,r

, 1

BASEp VARname {AddVar}q,r

, 1

BASEp VARname {AddVar}q,r

, 1

BASE

intv

, 2

floatv

, 3

boolv

, 4

VAR

VAR ┴, 61

DECVEC

ε, 75

DECVEC -> vector VARname [ CI t] {AddVec}q,p,d ; DECVEC

, 5

DIM

CI,7

[

Выброс

]

Выброс

CI

Выброс

IDENT

Выброс

{AddVar}q,r

ВЫДАЧА{AddVar}q,r

{AddVec}q,p,d

ВЫДАЧА{AddVec}q,p,d

┴

cвертка,75

DECVAR, -> BASEp VARname {AddVar}q,r (1)

q <- p

r <- name

BASEp -> intv (2)

p <- v

BASEp -> floatv (3)

p <- v

BASEp -> boolv (4)

p <- v

DECVEC -> vector VARname [ CI t] {AddVec}q,p,d ; DECVEC (5)

r <- vector

p <- name

d <- t

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(){

ВЫБРОС

}

ВЫБРОС

┴

ДОПУСК