Исходник Софт BidLua - язык программирования для четких парней

BidLua - компилируемый в Lua язык программирования c сотнью именами и функций для "четких" парней.​

вдохновленный YoptaScript'ом
Вашему вниманию предоставляется первый в мире компилируемый в Lua язык программирования для четких парней:
  • больше сотни BidLua имен взамен обычным Lua именам.
  • сотни функций, операторов.
Также вашему вниманию предоставляется обычный BidLua код, и то, во что он компилируется:

BidLua:
веленотебе базар(витя) быть {}

вася
    работяга базар(васян(строка))
        варежка.верти(базар(витя, строка))
        долгвернешь бадяга.обьединяло(базар(витя))
    досвязи
    базар(васян)("здарова")
    длялоха базар(лох) жы 1, базар(#vitya) паскуда
        говножуй(базар(витя[лох]))
        vasyan(("здарова %s"):гыыформат(базар(васян)("здарова")))
    бывайтенах
чмо
Lua:
local vitya = {}

do
    function vasyan(stroka)
        table.insert(vitya, stroka)
        return table.concat(vitya)
    end
    vasyan("здарова")
    for loh = 1, #vitya do
        print(vitya[loh])
        vasyan(("здарова %s"):format(vasyan("здарова")))
    end
end

Отличительные способности BidLua:
  • BidLua имеет расширение файла .blya.
  • BidLua может компилировать Lua код в BidLua код, так и наооборот.
  • BidLua можно превратить в свой язык.
  • BidLua свободный язык.
А какие отличительные способности имеет Lua, по сравнению с этим языком будущего? Правильно - никакие.

BidLua можно использовать с вашими уникальными именами.​

Это значит, что вы можете использовать свои имена в вашем файле, и компилятор найдет ваше имя и заменит его на ваше уникальное значение.
Чтобы использовать это, создайте ваш .map.blya файл, и скомпилируйте ваш .blya файл с соответствующим флагом(про флаги будет чуть ниже).
Устройство .map.blya файла:

Код:
Все что вы пишите здесь является комментарием, за исключением ADD функций.
Использование "ADD" функции: ADD key::value;
Пример:
    ADD сделайбазу::while not isSampAvailable() do wait(0) end;
И вы уже сможете использовать "сделайбазу" в вашем файле, и компилятор заменит это на значение этого имени.
Функция применима к любому символу(ам) а также пробелам:
    ADD ыыы ... гыыы::print("Hello, BidLua!");

Флаги компилятора​

Флаг​
Описание​
Пример​
--charset=value
Устанавливает кодировку всем файлам: основному, со значениями и Lua файлу. По умолчанию кодировка UTF-8
--charset=windows-1251
--map=value
В качестве значения - путь к вашему .map.blya файлу. Позволяет использовать уникальные значения (пример смотрите выше).​
--map=/path/to/your/file.map.blya
--stop-on-error
Позволяет остановить компиляцию при получении ошибки от компилятора. По умолчанию - false.​
--stop-on-error
--ignore-default-map
Позволяет игноририровать имена BidLua. По умолчанию - false.​
--ignore-default-map


BidLua - свободная программа под GNU GPLv3​

Это означает, что вы имеете четыре свободы (которые должны быть у каждого пользователя):
  • свобода применять программу в любых целях,
  • свобода дорабатывать программу под свои нужды,
  • свобода обмениваться программой со своими друзьями и соседями,
  • свобода обмениваться изменениями, которые вы внесли.
Исходный код BidLua - https://github.com/defaultzon3/BidLua/



Установка:
Чтобы использовать BidLua, вы сперва должны установить Java, так как язык построен на основе Kotlin для кроссплатформенности.
Затем вы устанавливаете .jar архив с репозитория BidLua: https://github.com/defaultzon3/BidLua/releases/tag/v1.1-SNAPSHOT (последний релиз)



Компиляция .blya файла:
GNU/Linux/MacOS/Windows:

java -jar < path to .jar file > < input file || -h || --help > < output file > [ flags ]


Все имена BidLua: https://github.com/defaultzon3/BidLua/blob/main/src/main/kotlin/names/Names.kt
Функции Moonloader API возможно будут добавлены в следующих версиях.
Последняя версия BidLua - 1.1.1
 
Последнее редактирование:

DZONE

Известный
Автор темы
187
198

BidLua 1.1-SNAPSHOT нах

  • Добавлена (первая и единственная) функция языка - базар. Переводит строку на кириллице в латиницу. Пример: веленотебе базар(витёк) быть {} скомпилируется в local vitek = {}
    Принимает аргументом все что есть в скобке.
  • Добавлены имена для debug библиотеки(ранее имен у дебага не было), сoroutine библиотеки, string библиотеки и к стандартным функциям Lua.
    Подробнее см. изменения в names/Names.kt: Открыть
  • Чутка улучшен код.
DL: https://github.com/defaultzon3/BidLua/releases/tag/v1.1-SNAPSHOT
 
Последнее редактирование:
  • Нравится
Реакции: cord

DZONE

Известный
Автор темы
187
198

BidLua v1.1.1​

В честь первой недели четкого языка была выпущена версия, которая уже убила Lua как язык программирования.
  • Добавлена функция, которая позволяет заносить пользовательские имена в "карту" прямо в основном файле. Юзейдж: #add key::value;
  • Повышен приоритет у пользовательской "карты".
  • SET переименован в ADD.
  • Исправлена транслитерация клятой буковки л в функции базар(...). Также, теперь переводит все что внутри в лауэркейс.
  • Багофикс.


Ксива малява: https://github.com/defaultzon3/BidLua/releases/tag/v1.1.1
 
Последнее редактирование:

DZONE

Известный
Автор темы
187
198

BidLua Runner 1.0​

Компиляция и выполнение BidLua скрипта прямо в сампе
  • устанавливаем скрипт в moonloader
  • создаем в папке со скриптом (BidLuaRunner.lua) файл BidLuaRunner.suka.blya
После создания файла записываем в него следующее:

file.suka.blya:
send::
    input=/path/to/file.blya
    output=/path/to/file.lua
    flags=[--map=/path/to/file.map;--charset=windows1251] # Пример, перечисление флагов через ";"
::send

Для ввода пути можно использовать следующие переменные:

file.suka.blya:
$WORKING_DIR        # getWorkingDirectory()
$GAME_DIR           # getGameDirectory()
$APPDATA_DIR        # getFolderPath(0x23)
$DESKTOP_DIR        # getFolderPath(0x19)
$MYDOCUMENTS_DIR    # getFolderPath(0x05)

Компиляция происходит через выполнение BidLua-1.1.1.jar архива, его нужно кинуть в папку moonloader.
Скоро выйдет BidLua 2.0 переписанный на C++, так что ждем нах!
 

Вложения

  • BidLuaRunner.lua
    3.2 KB · Просмотры: 10
  • Влюблен
Реакции: etereon

DZONE

Известный
Автор темы
187
198

BidLua 1.2​

  • Рефакторинг(говнокода стало меньше), переписана замена ключей из map.
  • Добавлены новые ключи и новые настройки для выполнения:
java -jar BidLua-1.2.jar -h:
usage: java -jar {path to BidLua.jar} [key] [file] [options...]

key:
            -h, --help      display this
            --info          display info about BidLua
            -i FILE         compile just the file
            -I FILE         compile file that contains [options...]
options:
            -m, --map FILE              allows you to use your map in the main file
            -n, --ignore-default-map    ignore default map
            -o, --output FILE           write write compiled code to specific file, by default it is output
                                        file path without extension + .lua extension
            -c, --charset CHARSET       set charset to input, output and map files, by default it is UTF-8
  • Теперь если --output не задан, то выводом будет input path without extension + .lua.
  • Убрана --stop-on-error настройка. Теперь при получении любой ошибки компиляция остановится.
  • Теперь .blya файл может хранить настройки компиляции(только если файл передан через -I FILE):
BidLua:
---@args -m /path/to/file.map.blya --ignore-default-map --charset windows-1251
--- Эта строка должна быть первой линией файла. Компилятору передается все что передано после @args (...).
  • Теперь компиляция осуществляется в одну сторону (BidLua -> Lua).

Ксива малява: https://github.com/defaultzon3/BidLua/releases/tag/v1.2
 

DZONE

Известный
Автор темы
187
198
Чуваки, я вам расскажу про новый язык programmin' - BidLua! Он чёткий по пацански, перетрусил обычный Lua на пустом месте!

Теперь вместо обычных имен функций типа "print" или "math.random" мы используем крутые слова-быдлогопняки типа "хуйжопа" для вывода текста и "козенный.рандомный" для рандомных чисел. Так же у нас добавилась функция "базар", чтобы поработать с текстом в чётких рамках!

Хотите условных операций? Наши "глянь" и "нухули" в качестве if и else просто оставят в стороне жёстких пацанов от этих унылых слов.

А ну давай, скажи мне, зачем стоять на месте? Ведь BidLua это чистый прогресс! Хватит быть обычным, переходи на новый уровень, на быдлокод! Будь в тренде, пацан, выбирай BidLua!