i582 / Compiler

Test task to the KPHP team

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compiler

Test task to the KPHP team

Задача

Имеем файл(расширение .txt) на языке программирования "C+-". Требуется скомпилировать код на язык программирования "C++".

Описание работы программы

  1. Получаем от пользователя путь к файлу с кодом на "C+-".
  2. Разбиваем код на лексемы.
  3. Парсим его, получаем абстрактное синтаксическое дерево (AST) для кода на "C+-".
  4. Проверяем, что переменные и константы все объявлены(правильно)и не перезаписываются константы.
  5. По AST кода для "C+-" строим AST для "C++".
  6. По AST для "C++" собираем код и записываем его в новый файл с расширением cpp.
  7. Очищаем память

Пример работы программы

Входной файл с кодом на "C+-":
Снимок экрана 2022-04-04 в 00 52 58
Выходной файл с кодом на "C++":
Снимок экрана 2022-04-04 в 00 51 35

About

Test task to the KPHP team


Languages

Language:C++ 94.4%Language:C 5.0%Language:CMake 0.6%