Skip to content

JokePenny/TPL-SibSUTIS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ТЯП


Что требуется для компилирования

Тесты

Для запуска тестов требуется:

  • В корневой папке проекта зайти в папку lab1.
  • Открыть командную строку и набрать
dotnet test

Лексер

На вход программе принимается исходник с текстом. Текст парсится на допустимые лексемы и создает соответствующие токены.

Для запуска программы требуется:

  • В корневой папке проекта зайти в папку lab1.
  • Открыть командную строку и набрать
dotnet build
dotnet run --dump-tokens \source.cs

⬆️Оглавление

Синтаксическй анализ

На выходе программа выдает AST с указанием ошибок

Для запуска программы требуется:

  • В корневой папке проекта зайти в папку lab1.
  • Открыть командную строку и набрать
dotnet build
dotnet run --dump-ast \source.cs

⬆️Оглавление

Таблица символов

На вход AST, на выходе таблица символов с обозначеним вложенных областей и указание ошибок, что идентификатор повторно обьявляется

Для запуска программы требуется:

  • В корневой папке проекта зайти в папку lab1.
  • Открыть командную строку и набрать
dotnet build
dotnet run --dump-ast \source.cs

⬆️Оглавление

Семантический анализ

На вход AST, на выходе анотированный AST

Для запуска программы требуется:

  • В корневой папке проекта зайти в папку lab1.
  • Открыть командную строку и набрать
dotnet build
dotnet run --dump-ast \source.cs

⬆️Оглавление

Кодогенератор

На вход прнимается голова AST по которому алгоритм спускается и генерирует асемблер в файл с расширением .asm Для запуска программы требуется:

  • В корневой папке проекта зайти в папку lab1.
  • Открыть командную строку и набрать
  • Скопировать папку INCLUDE из папки Fasm и вставить в ту же дирректорию, где лежит исходник, который надо скомпилировать
  • C:\Fasm\fasm.exe - это расположение корневой папки fasm компилятора, у вас может быть другое
dotnet build
dotnet run --dump-asm \source.cs C:\Fasm\fasm.exe

⬆️Оглавление

Гайд на установку

  1. Переходим по этой ссылке
  2. Скачиваем для той системы, которая стоит у вас (лучше на винду, я на ней только проверял :D)
  3. Ставим (распаковываем) на диск, где стоит система (обязательно это или нет - я не знаю)

⬆️Оглавление

Что поддерживается

  • сложная арифметика
  • сложные булевы операции
  • работа с массивами (присваивание в ячейки)
  • работа со строками (тоже самое, что и массивы)
  • if - else
  • for
  • while
  • проверка типов переменных

About

🏭 Compiler С#

Resources

Stars

Watchers

Forks

Languages