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

Операционный символ { id }n

Тип элемента

n

t1

Значение элемента

n

a1

if (t1 = перечислимый)

{ Записать на выход выражение ПОЛИЗ:

n

}

else {Ошибка}

Операционный символ { init }n, V, r

Тип элемента

n

t1

Значение элемента

n

a1

Тип элемента

v

t2

Значение элемента

v

a2

Тип элемента

r

t3

Значение элемента

r

a3

if (t2 = перечислимый)

{ Записать на выход выражение ПОЛИЗ:

@SET

создать временную переменную R

t3  integer

R

}

else {Ошибка}

Операционный символ { нач_ц }q1, q2, q3, m1, m2, r2

Тип элемента

q1

t1

Значение элемента

q1

a1

Тип элемента

q2

t2

Значение элемента

q2

a2

Тип элемента

q3

t3

Значение элемента

q3

a3

Тип элемента

m1

t5

Значение элемента

m1

a5

Тип элемента

m2

t6

Значение элемента

m2

a6

Тип элемента

r2

t4

Значение элемента

r2

a4

if(t3 = перечислимый)

{Записать на выход выражение ПОЛИЗ:

@SET

m1

@DEFL

i

R

if (q3 = inc)

{ Записать на выход выражение ПОЛИЗ:

@<=INT

}

else { Записать на выход выражение ПОЛИЗ:

@>=INT

}

Записать на выход выражение ПОЛИЗ:

m2

@JMPF

}

else {Ошибка}

Операционный символ { кон_ц } q4, q5, m1, m2

Тип элемента

q4

t1

Значение элемента

q4

a1

Тип элемента

q5

t2

Значение элемента

q5

a2

Тип элемента

m1

t3

Значение элемента

m1

a3

Тип элемента

m2

t4

Значение элемента

m2

a4

Записать на выход выражение ПОЛИЗ:

a1

if (q6 = inc)

{Записать на выход выражение ПОЛИЗ:

@INC

}

else { Записать на выход выражение ПОЛИЗ:

@DEC

}

Записать на выход выражение ПОЛИЗ:

m1

@JMP

m2

@DEFL

Операционный символ { присвоить }p, q

Тип элемента

p

t1

Значение элемента

p

a1

Тип элемента

q

t2

Значение элемента

q

a2

if (t1 = t2) {

Записать на выход выражение ПОЛИЗ:

@SET

} else {

if (t1 = rational) и (t2 = integer) {

@ITOR

@SET

} else {

{Ошибка}

}

}

Операционный символ { переход }p

Записать на выход выражение ПОЛИЗ:

p

@JMP

Операционный символ { перейти по ”ложь” }m1, m2

Записать на выход выражение ПОЛИЗ:

m1

@JMPF

Операционный символ { БП }m1, m2

Записать на выход выражение ПОЛИЗ:

m2

@JMP

m1

@DEFL

Операционный символ { метка2 }m

Записать на выход выражение ПОЛИЗ:

m

@DEFL

Операционный символ { ввести }p

Тип элемента

p

t1

Значение элемента

p

a1

Записать на выход выражение ПОЛИЗ:

@INPUT

Операционный символ { вывести }p

Тип элемента

p

t1

Значение элемента

p

a1

Записать на выход выражение ПОЛИЗ:

@OUTPUT

      1. Подграмматика для списка имён:

Таблца нетерминалов:

Имя нетерминала

Описание

Тип атрибута

NLp

Список имен

p - синтезированный

SNt, p

Последовательность имен

t – унаследованный, p - синтезированнй

NLp2idq1 { имя }q2, r1 SNr2, p1

r1  NewElem

q2  q1

r2  r1

p2  p1

SNp1, t2, idq1 {последовательность имён }p2, q2, r1 SNr2, t1

r1  NewElem

p2  p1

q2  q1

r2  r1

t2  t1

SNp1, p2

p2  p1

Операционный символ { имя }q, r

Записать в переменную по адресу r элемент перечислимого типа по адресу q

Операционный символ { последовательность имён }p, q, r

Записать в переменную по адресу r элементы перечислимого типа, содержащиеся в p и q

      1. Подграмматика для типов:

Таблица нетерминалов:

Имя нетерминала

Описание

Тип атрибута

TNp

Имя типа

p - синтезированный

INTp

Внутренний тип

p - синтезированный

ATp

Тип-массив

p - синтезированный

ETp

Перечислимый тип

p - синтезированный

RTp

Ограниченный тип

p - синтезированный

ITp

Индекс

p - синтезированный

SITt, p

Последовательность индексов

t – унаследованный, p - синтезированный

NLp

Список имен

p - синтезированный

TNp2INTp1

p2  p1

TNp2ATp1

p2  p1

TNp2ETp1

p2  p1

TNp2RTp1

p2  p1

TNp2idp1

p2  p1

INTp2integerp1

p2  p1 (p1 = integer)

INTp2rationalp1

p2  p1 (p1 = rational)

ATr4array [ ITp1 {индекс}p2, r1 SITr2, t1 ] of TNq1 {массив}t2, q2, r3

r1  NewElem

r3  NewElem

p2  p1

r2  r1

t2  t1

q2  q1

r4  r3

ITp2ETp1

p2  p1

ITp2RTp1

p2 p1

ITp2idp1

p2  p1

SITp1, t2, ITq1 { последовательность индексов }p2, q2, r1 SITr2, t1

r1  NewElem

p2  p1

q2  q1

r2  r1

t2  t1

SITp1, p2

p2  p1

ETp2( NLp1 )

p2  p1

RTr2usip1 .. usiq1 {диапазон}p2, q2, r1

r1  NewElem

p2  p1

q2  q1

r2  r1

Соседние файлы в папке Бяша