Концепт-проект Тор
Небольшой скриптовый язык для выполнения команд тор
согласно параметрам командной строки, либо командам сценария тор
файла.
Релиз проверен на ОС:
Тестирование включало сценарии выполнения команд для личных нужд домашних проектов. Сборка происходила с помощью Code::Blocks.
Использование в эксплуатации
тор [параметры] <сценарий.тор>
Параметры командной строки
--выполнить
“<команда>” - параметр выполняет внутреннюю команду операционной системы переданную в следующем аргументе. Пример использования: тор --выполнить "ping -t localhost"
--сценарий
“<имя файла сценария>” - параметр ищет файл, название которого передан в следующем аргументе. Файл считывается и выполняются команды тор
файла. Сами команды тор
файла описаны ниже в отдельном разделе. Пример использования: тор --сценарий ./examples/тест.тор
--написать
“<текст>” - параметр вывести текст из следующего аргумента в поток вывода (по умолчанию на экран). Пример использования: тор --написать "Всех люблю на свете я!"
--есть
“<название переменной>” “<значение>” - параметр создаёт переменную в тор
скрипте с заданным названием и значением, которые идут следующими аргументами. Данные переменные можно использовать в других командах с помощью двойных фигурных скобок {{<название переменной>}}. Пример использования: тор --есть стихия "ветер" --есть объектСтай "туч" --написать "{{стихия}}, {{стихия}}! Ты могуч, Ты гоняешь стаи {{объектСтай}}"
--помощь
выводит описание использования в эксплуатации
--версия
выводит версию программы
<сценарий.тор>
- то же, что и с параметром --сценарий
. В конце команды ожидаются имена тор
файлов, которые содержат соответствующие команды. Пример использования: тор ./examples/тест.тор
Команды тор файла
Каждая строчка тор файла это отдельная команда. Команды не переносятся на новую строчку.
Комментарии в файле начинаются следующими символами:
#
!
//
Пример комментариев можно глянуть в файле комментарии.тор.
Переменные задаются командой есть
. Она принимает два параметра - название и значение через пробел. Данные переменные можно использовать в других командах с помощью двойных фигурных скобок {{<название переменной>}}
. Например:
есть шаг топ
есть тук хлоп
написать {{шаг}} {{тук}} {{шаг}} {{тук}}{{тук}} {{шаг}} {{тук}} {{тук}} {{тук}}
Возможно что есть необходимость не использовать переменную в фигурных скобках и вывести текст как есть. В этом случае ставится знак \
перед фигурными скобками. Например:
написать \{{шаг}}
Пример переменных можно глянуть в файле переменные.тор.
Команда выполнить
имеет короткие псевдонимы: ₽
,$
. Выполняет внутреннюю команду операционной системы. Сама команда не выводится в терминал.
Пример данной команды можно глянуть в файле выполнить.тор.
Команда сценарий
ищет тор
файл по имени. Файл считывается и выполняются команды в рабочей директории тор
файла. Все переменные предыдущих файлов можно использовать в текущем сценарии.
Пример данной команды можно глянуть в файле тест.тор.
Ограничения и предупреждения
- Длина каждой строки 65535 байт. Один символ кириллицы занимает как правило 2 байта. Длина строки не проверяется на корректное завершение. Если длина будет больше данного значения - корректность работы программы не гарантируется.
- Особенность разных ОС не учитывается. Сценарии тестировались для личных нужд на ОС Debian 12, в которых не было замечено грубых ошибок. В случае обнаружения ошибки, пожалуйста создайте соответствующее уведомление.
- Предупреждение: при выполнении команды
выполнить
используется вызов функцииsystem
. Будьте внимательны при выполнениитор
сценариев от сомнительного источника. Запускайте те сценарии, разработчикам которого вы доверяете.
Рекомендации
Внимание чтобы не переключаться на английский язык, попробуйте использовать русскую инженерную раскладку клавиатуры Ручей.
Развитие проекта
Так как это всего-лишь концепт-проект, то развитие проекта не планируется. Тем не менее запросы на слияние нового кода будут рассмотрены. Возможно что новый код будет добавлен в случае потребности для личных нужд. Сам концепт в стиле исходного кода с исспользованием кириллицы.
Лицензия
Apache-2.0
Copyright 2024 cruso