В этом проекте я реализовал свой язык программирования. Проект включает себя несколько ранее написанных мной библиотек таких, как струткура данных Stack, обработка текстового файла Parsering и виртуальный процессор CPU. Первый этап работы программы - FrontEnd, который содержит лексический и синтаксический анализ программы, написанной на моем языке. В этом процессе при помощи рекурсивного спуска строится AST дерево. Второй этап работы - BackEnd, который при помощи построенного AST дерева строит ассемблерный текст моей программы, который в последствии обрабатывается CPU.
Внимание! (18+)
Любая программа должна начинаться с главной функции
hentai
Функция объявляется с помощью
step brother <название> im stuck
Если функция содержит аргументы a и b, то выглядит это так:
step brother Function im a, b stuck
Возвращаемое значение функции:
boobs <значение>
Оператор
cumming
используется для выхода из функции без возвращаемого значения.
Для вызова функции достаточно напсиать ее имя и аргументы:
Function im a, b stuck
В языке есть условные операторы - аналоги if, else if(elif), else:
dildo
anal beads
strapon
Блоки функций и условных операторов выделяются ключевыми словами
start sex
<блок кода>
end sex
Для записи условий условных операторов используются круглые скобки:
dilfo (x nice dick 0)
Логическеи операторы сравнения:
== nice dick
!= pussy
> big dick
< small dick
>= nice big dick
<= nice small dick
Для инициализации переменной служит ключевое слово milf
milf x = 0
Имена переменных и функций могут состоять из латинских букв верхнего и нижнего регистра, содержать цифры, но не могут содержать знаки пунктуации(допустимы только отрицательные числа). Имя не может начинаться с цифры.
Для ввода числовых данных с клавиатуры:
fisting anal(x)
При этом переменная x должна быть инициализирована
Для вывода числовых данных:
suck dick(x)
В языке присутствует аналог цикла while:
horny (x nice dick 0) start sex
<блок кода>
end sex
В моем языке присутствуют арифметические операции сложения, вычитания, умножения и деления
+ - * /
Пример программы, написанной на моем языке программирования, считающей факториал числа:
step brother hentai im stuck
start sex
milf number = 0
fisting anal(number)
number = Fuckmetorial im number stuck
suck dick(number)
cumming
end sex
step brother Fuckmetorial im x stuck
start sex
dildo (x nice dick 1) start sex
boobs 1
end sex
strapon start sex
boobs x * Fuckmetorial im x - 1 stuck
end sex
cumming
end sex
git clone git@github.com:Pelmeshka127/Language.git
cd Language
make
obj/lang Examples/2.txt
cd Assembler
make
./assembly ../asm.txt prog.bin
cd ..
cd CPU
make
./cpuiu