Скачиваний:
10
Добавлен:
01.05.2014
Размер:
1.03 Mб
Скачать
    1. Разобьем исходную грамматику на подграмматики:

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

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

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

Описание

VAR

Переменная

LE

Индексация к массиву

SXP

Последовательность выражений

PAR

Обращение к подэлементам

EXP

Выражение (ниже для выражения подграмматика)

VARid LE PAR

LE[ EXP SXP ] LE

LE

SXP, EXP SXP

SXP

PAR . PT

PTnumerator

PTdenominator

PAR

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

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

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

Описание

EXP

Выражение

AE

Слагаемое

ME

Множитель

SAE

Последовательность слагаемых

SME

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

VAR

Переменная

EXPAE SAE

SAE+ AE SAE

SAE- AE SAE

SAE

AEME SME

SME* ME SME

SME/ ME SME

SMEcommon ME SME

SME

ME+ ME

ME- ME

MEfrac ME

MEint ME

MEsimplify ME

MEirregular ME

MEVAR

MEusi

ME( EXP )

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

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

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

Описание

LEX

Логическое выражеие

EXP

Выражение

С

Конъюнкция

SC

Последовательность конъюнкций

REL

Отношение

LM

Логический множитель

SLM

Последовательность логических множителей

REO

Операция отношения

LEXC SC

SCor C SC

SC

LEXREL

CLM SLM

SLMand LM SLM

SLM

LM( LEX )

LMnot LM

RELEXP REO EXP

REO<

REO>

REO=

REO<=

REO>=

REO<>

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

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

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

Описание

SO

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

COP

Составной оператор

OP

Оператор

ULO

Непомеченный оператор

EXP

Выражение

VAR

Переменная

LN

Имя метки

LPR

Оператор цикла с параметром

DIR

Направление изменения переменной цикла

IFO

Условный оператор

OPR

Необязательная условного оператора

EQO

Оператор присваивания

NOP

Пустой оператор

IOP

Оператор ввода

OOP

Оператор вывода

JMP

Опереатор безусловного перехода

SOP

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

SVR

Последовательность переменных

SXP

Последовательность выражений

SOCOP .

COPbegin OP SOP end

SOP; OP SOP

SOP

OPLN : ULO

OPULO

ULOLPR

ULOEQO

ULONOP

ULOCOP

ULOJMP

ULOIFO

ULOIOP

ULOOOP

LPRfor id := EXP DIR EXP do OP

DIRto

DIRdownto

EQOVAR := EXP

NOP

JMPgoto LN

IFOif LEX then OP OPR

OPRelse OP

OPR

IOPread ( VAR SVR )

OOPwrite ( EXP SXP )

SVR, VAR SVR

SVR

SXP, EXP SXP

SXP

LNid

LNusi

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

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

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

Описание

NL

Список имен

SN

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

NLid SN

SN , id SN

SN

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

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

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

Описание

TN

Имя типа

INT

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

AT

Тип-массив

ET

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

RT

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

IT

Индекс

SIT

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

NL

Список имен

TNINT

TNAT

TNET

TNRT

TNid

INTinteger

INTrational

ATarray [ IT SIT ] of TN

ITET

ITRT

ITid

SIT, IT SIT

SIT

ET( NL )

RTusi .. usi

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