Создание парсера простого языка (МОК) — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Admin (обсуждение | вклад) (Новая страница: «Из материалов по курсу «Методы построения компиляторов»: [[Создание синтаксического ан…») |
Admin (обсуждение | вклад) (→Задания) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 25: | Строка 25: | ||
*Реализовать узел дерева BinaryNode с конструктором BinaryNode(leftoperand,rightoperand,operation). Дополнить грамматику семантическими действиями, связанными с разбором выражений | *Реализовать узел дерева BinaryNode с конструктором BinaryNode(leftoperand,rightoperand,operation). Дополнить грамматику семантическими действиями, связанными с разбором выражений | ||
*Реализовать парсер аналогичного языка в C-грамматике | *Реализовать парсер аналогичного языка в C-грамматике | ||
+ | *Реализовать выражения вида x < 0. Для этого: | ||
+ | # Сделать исправления в грамматике выражений (операции отношения - самые низкоприоритетные) | ||
+ | # Сделать типы int и bool, описание переменных этих типов | ||
+ | # Сделать метод определения типа у выражения | ||
+ | *Реализовать условный оператор if и цикл while |
Текущая версия на 11:11, 7 сентября 2014
Из материалов по курсу «Методы построения компиляторов»:
Создание синтаксического анализатора с помощью программы GPPG
Построение синтаксического дерева программы
Задания
- Дополнить грамматику языка грамматикой выражений
expr : T | expr + T | expr - T ; T : F | T * F | T / F ; F : ident | INUM | ( expr ) ;
- Реализовать узел дерева BinaryNode с конструктором BinaryNode(leftoperand,rightoperand,operation). Дополнить грамматику семантическими действиями, связанными с разбором выражений
- Реализовать парсер аналогичного языка в C-грамматике
- Реализовать выражения вида x < 0. Для этого:
- Сделать исправления в грамматике выражений (операции отношения - самые низкоприоритетные)
- Сделать типы int и bool, описание переменных этих типов
- Сделать метод определения типа у выражения
- Реализовать условный оператор if и цикл while