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

4. Описание этапа синтаксического анализа:

На этапе синтаксического анализа выполняется проверка синтаксической корректности исходной программы, представленной в виде потока токенов и совокупности таблиц, и преобразование её в некоторую внутреннюю форму, удобную в дальнейшем для генерации объектного кода.

4.1. Построение кс-грамматики входного языка

Для построения КС-грамматики входного языка необходимо:

  1. Заменить металингвистические переменные БНФ обозначениями нетерминальных символов, используя короткие имена.

  2. В качестве терминальных символов использовать токены.

  3. Металингвистический символ ::= заменить символом –>

  4. Заменить металингвистическую формулу с nальтернативами наnправил грамматики с одинаковым символом в левой части правила вывода.

  5. Исключить металингвистические символы [,],{,}, включив в правила грамматикиcуe– правила и рекурсивные правила.

4.1.1. Определение программы

PRGClasses MClassClasses

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

MClass PKG SRSM Imports CDef SRLCB MemDefs Main MemDefs SRRCB

Classes Class Classes

Classes ε

Class PKG SRSM Imports SRLCB MemDefs SRRCB

4.1.3 Подграмматика описания необходимой атрибутики классов

PKGKWPG Way

Imports Import SRSM Imports

Imports ε

Import KWIM Way SRPT ID

CDef KWCL ID

Way WayPart

Way Way SRSM WayPart

WayPart LLtr WayPartTail

WayPartTail LLtr

WayPartTailCipher

WayPartTailε

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

MemDefs MemFunc MemDefs

MemDefs MemAtr MemDefs

MemDefs ε

MemFunc Type ID SRLP FuncArgs SRRP CBlock

Main KWVD KWMN SRLP KWS ID SRRP CBlock

MemAtr Type SimParam

MemAtr Type OprA

FuncArgs Type ID FuncArgsTail

FuncArgs ε

FuncArgsTail SRCA Type ID FuncArgsTail

FuncArgsTail ε

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

Opr NLOpr

Opr Label SRCN NLOpr

NLOpr OprA

NLOpr OprIn

NLOpr OprOut

NLOpr UseFunc

NLOpr OprCond

NLOpr OprWhile

NLOpr OprCondA

NLOpr OprGoto

ConstrOpr Opr

ConstrOpr CBlock

OprA SimParam AO Value

OprA SimParam AO Opr

OprA SimParam AO OprNew

OprIn KWRD SRLP SRRP

OprOut KWWR SRLP Value OutArgsTail SRRP

OutArgsTail SRCA Value OutArgsTail

OutArgsTail ε

UseFunc SimParam SRPT ID SRLP UseFuncArgs SRRP

UseFunc ID SRLP UseFuncArgs SRRP

UseFuncArgs Value OutArgsTail

UseFuncArgs ε

OprCond KWIF SRLP LogExp SRRP IfTail

IfTail ConstrOpr ElsePart

IfTail ε

ElsePart SRSM KWEL ConstrOpr

ElsePart ε

OprWhile KWWL SRLP LogExp SRRP WhileTail

WhileTail ConstrOpr

WhileTail ε

OprCondA SimParam AO LogExp SRQN Value SRCN Value

CBlock SRLCB CBlockBody SRRCB

CBlockBody OpnU SRSM CBlockBody

CBlockBody MemAtr SRSM CBlockBody

CBlockBody ConstrOpr SRSM CBlockBody

CBlockBody StrOpn SRSM CBlockBody

CBlockBody ε

OprNew KWNW Type SRLP UseFuncArgs SRRP

OprGoto KWGT Label