Разработать среду исполнения для программ на языке Pascal--.
Программа должна:
- поддерживать базовые арифметические операции, div, mod, сравнение чисел (остальное - по желанию)
- различать целочисленные и вещественные переменные и константы (integer и real)
- поддерживать условный оператор
- поддерживать ввод / вывод на консоль (readln и writeln)
- Текст программы загружается из файла
- Результаты выполнения программы печатаются на консоль
- Должен выполняться синтаксический контроль корректности текста программы --> если успеваете.
- Условные операторы могут быть вложенными.
- Текст программы должен храниться в виде иерархического списка.
- Переменные и константы должны храниться в таблице (на выбор: упорядоченная, дерево поиска, хеш-таблица).
- Вычисление арифметических и условных выражений должно выполняться с помощью постфиксной формы.
ЛР выполняется в группах по 2 человека.
- Считать текст программы из файла. Получим массив строк
- По массиву строк построить иерархический список Text
- Для каждой строки текста:
- разбить на лексемы
- построить постфиксную форму
- исполнить / вычислить
- Заготовка собирается под VS, CMakeLists пишем самостоятельно
- resources/ - папка с примерами программ (это папка по умолчанию для проекта sample)
- include/hierarcicalList.h - заготовка иерархического списка
- остальные папки - как в прошлых проектах