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

3.2. Определение синтаксиса лексем

Определение автоматных грамматик, описывающих синтаксис лексем.

3. 2. 1. Классы литер, с помощью которых записываются программы на входном языке:

  • класс «буква»: a Az Z _ $

  • класс «ноль»: 0

  • класс «цифра без нуля»: 1 2 3 4 5 6 7 8 9

  • класс «однолитерные разделители»: ; , + - * / ( ) [ ] ? : . ^

  • класс «литеры однолитерных и двулитерных разделителей»: < > = ! & |

3. 2. 2. Составление автоматных грамматик, описывающих синтаксис лексем:

Терминальными символами грамматики являются классы литер, а начальным символом грамматики – символ S.

  1. Автоматная грамматика, описывающая синтаксис лексем «идентификатор» и «ключевое слово». Здесь “Буква” – класс «буква», “Цифра” – класс «цифра», “1 – класс, включающий все литеры, за исключением букв и цифр.

Правила грамматики:

S

Буква Id

Id

Буква Id

Id

Цифра Id

Id

1

  1. Автоматная грамматика, описывающая синтаксис лексемы «целая константа без знака». Здесь “Цифра” – класс «цифра без нуля» , “2 – класс, включающий все литеры, за исключением цифр , “Ноль” – класс «ноль»

Правила грамматики:

S

Sign Ноль

S

Sign Цифра C

Sign

+

Sign

-

Sign

2

C

Цифра C

C

Ноль C

C

2

  1. Автоматная грамматика, описывающая синтаксис лексемы «вещественная константа без знака». Здесь “2 – класс, включающий все литеры, за исключением цифр.

Правила грамматики:

S

Sign Ноль

S

Sign Ноль . T

S

Sign Цифра C

Sign

+

Sign

-

Sign

2

C

Цифра C

C

. T

T

Цифра T

T

Ноль T

T

2

  1. Автоматные грамматики, описывающие синтаксис лексем «однолитерный разделитель» и «двулитерный разделитель». Здесь “Знак” – классы «однолитерные разделители» и «литеры однолитерных и двулитерных разделителей», “3 – класс, включающий все литеры.

Правила грамматики:

однолитерные разделители:

S

Знак L

L

3

лексема «<=»

S

< Next

Next

= E

E

3

лексема «>=»

S

> Next

Next

= E

E

3



лексема «! =»

S

Next =

Next

! E

E

3

лексема «&&»

S

& Next

Next

& E

E

3



лексема «||»

S

| Next

Next

| E

E

3