Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_tlpt_12_7.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
494.08 Кб
Скачать

Вариант 13

<Программа> ::= <Объявление переменных> <Описание вычислений><Оператор печати>

<Описание вычислений> ::= <Список присваиваний> <Объявление переменных> ::= Int <Список переменных> <Список переменных> ::= <Идент> | <Идент> , <Список переменных> <Список присваиваний> ::= <Присваивание> | <Присваивание> <Список присваиваний> <Присваивание> ::= <Идент> = <Выражение>

<Выражение> ::= <Ун.оп.> <Подвыражение> | <Подвыражение>

<Подвыражение> :: = ( <Выражение> ) | <Операнд> |

< Подвыражение > <Бин.оп.> <Подвыражение>

<Ун.оп.> ::= "-"

<Бин.оп.> ::= "-" | "+" | "*" | "/"

<Операнд> ::= <Идент> | <Const>

<Идент> ::= <Буква> <Идент> | <Буква>

<Const> ::= <Цифра> <Const> | <Цифра> <Оператор печати>::=Print <Идент>

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

Вариант 14

<Программа> ::= <Объявление переменных> <Описание вычислений><Оператор печати>

<Описание вычислений> ::= Begin <Список присваиваний> End

<Объявление переменных> ::= Int <Список переменных> ;

<Список переменных> ::= <Идент> | <Идент> , <Список переменных> <Список присваиваний>::= <Присваивание> |

<Присваивание> <Список присваиваний>

<Присваивание> ::= <Идент> := <Выражение> ;

<Выражение> ::= <Ун.оп.> <Подвыражение> | <Подвыражение> <Подвыражение> :: = ( <Выражение> ) | <Операнд> |

< Подвыражение > <Бин.оп.> <Подвыражение>

<Ун.оп.> ::= "-"

<Бин.оп.> ::= "-" | "+" | "*" | "/"

<Операнд> ::= <Идент> | <Const>

<Идент> ::= <Буква> | <Буква><Идент>

<Const> ::= <Цифра> <Const> | <Цифра>

<Оператор печати>::=Print <Идент>

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

Вариант 15

<Программа> ::= <Объявление переменных> <Описание вычислений><Оператор печати>

<Описание вычислений> ::= Begin <Список присваиваний> End

<Объявление переменных> ::= Logical <Список переменных>

<Список переменных> ::= <Идент> | <Идент> , <Список переменных>

<Список присваиваний>::= <Присваивание> |

<Присваивание> <Список присваиваний> <Присваивание> ::= <Идент> := <Выражение> ;

<Выражение> ::= <Ун.оп.><Подвыражение> | <Подвыражение> <Подвыражение> :: = ( <Выражение> ) | <Операнд> |

< Подвыражение > <Бин.оп.> <Подвыражение>

<Ун.оп.> ::= "!"

<Бин.оп.> ::= "&" | "|" | "^"

<Операнд> ::= <Идент> | <Const>

<Идент> ::= <Буква> <Идент> | <Буква>

<Const> ::= 0 | 1

<Оператор печати>::=Print <Идент>

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

Вариант 16

<Программа> ::= <Объявление переменных> <Описание вычислений><Оператор печати>

<Описание вычислений> ::= Begin <Список присваиваний> End

<Объявление переменных> ::= Boolean <Список переменных> :

<Список переменных> ::= <Идент> | <Идент> , <Список переменных>

<Список присваиваний>::= <Присваивание> |

<Присваивание> <Список присваиваний> <Присваивание> ::= <Идент> = <Выражение> ;

<Выражение> ::= <Ун.оп.> <Подвыражение> | <Подвыражение> <Подвыражение> :: = ( <Выражение> ) | <Операнд> |

< Подвыражение > <Бин.оп.> <Подвыражение>

<Ун.оп.> ::= ".NOT."

<Бин.оп.> ::= ".AND." | ".OR." | ".XOR."

<Операнд> ::= <Идент> | <Const>

<Идент> ::= <Буква> <Идент> | <Буква>

<Const> ::= 0 | 1

<Оператор печати>::=Print <Идент>

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

Общие обозначения нетерминалов:

S=<Программа>

D= <Объявление переменных>

F= <Описание вычислений>

P= <Оператор печати>

V= <Список переменных>

I=<Идент>

G= <Список присваиваний>

A=<Присваивание>

E=<Выражение>

H=<Подвыражение>

O=<Операнд>

C=<Const>

N=<Цифра>

Общие обозначения терминалов – алфавит.

U= <Ун.оп.> =-|.NOT.

Обозначение альтернативного множества терминалов:

L=<Буква>

B=<Бин.оп.>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]