Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик по ТЯП.DOC
Скачиваний:
10
Добавлен:
01.05.2014
Размер:
240.13 Кб
Скачать

Структуры данных

Каждая лексема имеет следующий вид:

тип лексической единицы

адрес

Для ключевых слов: тип - номер в таблице ключевых слов, адрес - нулевой.

Для остальных элементов: тип - номер таблицы, адрес - номер в таблице.

Синтаксический анализ и перевод во внутреннюю форму

КС-грамматика входного языка

Смотрите подграмматики. Символы, состоящие из прописных букв, являются нетерминалами, остальные символы - терминалами.

КС-грамматика входного языка является LL(1)-грамматикой.

Разбиение грамматики на подграмматики

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

Нетерминалы:

PRG

программа

RL

раздел меток

RC

раздел констант

RT

раздел типов

RV

раздел переменных

RO

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

OM

определение метки

OM`

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

OC

определение константы

OC`

остаток определения константы

IC

имя константы

CNS

константа

CNSN

константа без знака

OT

определение типа

OT`

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

IT

имя типа

TYP

тип

OV

определение переменной

OV`

остаток определения переменной

LI

список имен

OPS

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

PRG ® RL RC RT RV RO .

RL ® lab OM ; OM`

RL ® e

OM` ® OM ; OM`

OM` ® e

OM ® lbl

RC ® con OC ; OC`

RC ® e

OC` ® OC ; OC`

OC` ® e

OC ® IC = CNS

CNS ® + CNSNS

CNS ® - CNSNS

CNS ® CNSNS

CNSNS ® num

CNSNS ® IC

IC ® id

RT ® typ OT ; OT`

RT ® e

OT` ® OT ; OT`

OT` ® e

OT ® IT = TYP

IT ® id

RV ® var OV ; OV`

RV ® e

OV` ® OV ; OV`

OV` ® e

OV ® LI : TYP

RO ® beg OPS end

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

Нетерминалы:

E

выражение

E`

остаток выражения

EAR

арифметическое выражение

T

терм

T`

остаток терма

P

произведение

P`

остаток произведения

F

фактор

VAR

переменная

E ® EAR E`

E` ® = EAR E`

E` ® < EAR E`

E` ® > EAR E`

E` ® e

EAR ® + T

EAR ® - T

EAR ® T

T ® P T`

T` ® + P T`

T` ® - P T`

T` ® e

P ® F P`

P` ® * F P`

P` ® / F P`

P` ® e

F ® cns

F ® ( EAR )

F ® VAR

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

Нетерминалы:

TYP

тип

TSMP

простой тип

TCMP

составной тип

TDIA

диапазонный тип

TDIA`

остаток диапазонного типа

TOPR

определенный ранее тип

IT

имя типа

CNS

константа

TMAS

массивный тип

TZAP

запись

TI

тип индекса

TI`

остаток типа индекса

TKOM

тип компоненты

LP

список полей

LP`

остаток списка полей

SEC

секция записи

LI

список имен

LI`

остаток списка имен

TYP ® TSMP

TYP ® TCMP

TSMP ® int

TSMP ® rea

TSMP ® com

TSMP ® boo

TSMP ® TDIA

TSMP ® TOPR

TDIA ® CNS TDIA`

TDIA` ® .. CNS

TOPR ® IT

IT ® id

TCMP ® TMAS

TCMP ® TZAP

TMAS ® arr [ TI TI` ] of TKOM

TI` ® , TI TI`

TI` ® e

TI ® TSMP

TKOM ® IT

TZAP ® rec LP end

LP ® SEC LP`

LP ® e

LP` ® ; SEC LP`

LP` ® e

SEC ® LI : TYP

LI ® id LI`

LI` ® , id LI`

LI` ® e

Соседние файлы в предмете Теория языков программирования