Skip to content

mariabarkalova/mp2-lab6-pascal-compiler

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Постановка задачи

Разработать среду исполнения для программ на языке Pascal--.

Программа должна:

  • поддерживать базовые арифметические операции, div, mod, сравнение чисел (остальное - по желанию)
  • различать целочисленные и вещественные переменные и константы (integer и real)
  • поддерживать условный оператор
  • поддерживать ввод / вывод на консоль (readln и writeln)

Требования

  • Текст программы загружается из файла
  • Результаты выполнения программы печатаются на консоль
  • Должен выполняться синтаксический контроль корректности текста программы --> если успеваете.
  • Условные операторы могут быть вложенными.
  • Текст программы должен храниться в виде иерархического списка.
  • Переменные и константы должны храниться в таблице (на выбор: упорядоченная, дерево поиска, хеш-таблица).
  • Вычисление арифметических и условных выражений должно выполняться с помощью постфиксной формы.

ЛР выполняется в группах по 2 человека.

Алгоритм работы main:

  1. Считать текст программы из файла. Получим массив строк
  2. По массиву строк построить иерархический список Text
  3. Для каждой строки текста:
    1. разбить на лексемы
    2. построить постфиксную форму
    3. исполнить / вычислить

Шаблон проекта

  • Заготовка собирается под VS, CMakeLists пишем самостоятельно
  • resources/ - папка с примерами программ (это папка по умолчанию для проекта sample)
  • include/hierarcicalList.h - заготовка иерархического списка
  • остальные папки - как в прошлых проектах

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 93.4%
  • C 4.0%
  • CMake 2.6%