Создание парсера простого языка (МОК) — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
Строка 26: Строка 26:
 
*Реализовать парсер аналогичного языка в C-грамматике
 
*Реализовать парсер аналогичного языка в C-грамматике
 
*Реализовать выражения вида x < 0. Для этого:
 
*Реализовать выражения вида x < 0. Для этого:
#* Сделать исправления в грамматике выражений (операции отношения - самые низкоприоритетные)
+
## Сделать исправления в грамматике выражений (операции отношения - самые низкоприоритетные)
#* Сделать типы int и bool, описание переменных этих типов
+
## Сделать типы int и bool, описание переменных этих типов
#* Сделать метод определения типа у выражения
+
## Сделать метод определения типа у выражения

Версия 11:10, 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. Для этого:
    1. Сделать исправления в грамматике выражений (операции отношения - самые низкоприоритетные)
    2. Сделать типы int и bool, описание переменных этих типов
    3. Сделать метод определения типа у выражения