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

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

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

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

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

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

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

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

Описание

Тип атрибута

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

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

Записать в переменную по адресу r индекс p массива

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

Записать в переменную по адресу r новый тип, представляющий собой массив с индексами t из элементов q

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

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

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

Создать диапазонный тип и записать значение в таблицу промежуточных результатов по адресу r. Значения по адресам p и q, задающие границы диапазона, должны быть integer

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

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

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

Описание

Тип атрибута

P

Программа

PN

Имя программы

SD

Раздел описаний

SO

Раздел операторов

SDL

Раздел описания меток

LNp

Имя метки

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

SLN

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

SDC

Раздел описания констант

CD

Объявление константы

SCD

Последовательность объявлений констант

SDV

Раздел описания переменных

SN

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

DOT

Объявление переменных одного типа

SDO

Последовательность объявлений переменных одного типа

NLp

Список имен

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

SDT

Раздел описания типов

TD

Описание типа

STD

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

TNp

Имя типа

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

CNSp

Константа

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

PPN SD SO

PNprogram ID;

PN

SDSDL SD

SDSDC SD

SDSDT SD

SDSDV SD

SD

SDLlabel LNp1 {создать метку}p2, r SLN ;

r  NewLabel

p2  p1

LNp2idp1

p2  p1

LNp2usip1

p2  p1

SLN , LNp1 {создать метку}p2, r SLN

r  NewLabel

p2  p1

SLN

SDCconst CD ; SCD

CDidp1 = CNSq1 {создать константу}p2, q2, r

r  NewConst

p2  p1

q2  q1

CNSp2idp1

p2  p1

CNSp2usip1

p2  p1

SCDCD ; SCD

SCD

SDTtype TD ; STD

TDidp1 = TNq1 {создать тип}p2, q2, r

r  NewType

p2  p1

q2  q1

STDTD ; STD

STD

SDVvar DOT ; SDO

DOTNLp1 : TNq1 {создать переменную}p2, q2, r

SDODOT ; SDO

SDO