Декларативный язык Zakaz

[English version]

Представляю вашему вниманию чистый декларативный язык программирования – Zakaz. Основная идея нового языка – приложение содержит команды на выполнение, написанные в произвольной форме, которые должны быть выполнены “исполнителями”. Если ни один “исполнитель” не может выполнить команду, то выполнение программы останавливается. Приложения называются техзаданиями (tez) и должны иметь расширение .tez. Синтаксис Zakaz обязывает соблюдать два правила:

  • Каждая команда начинается с новой строки
  • Каждая команда должна быть оформлена формальным языком, понятным для человека

Пример Hello World.tez:

Show "Hello World" text on screen
Show "Zakaz 'tez' example" text on screen

Пример тз которое выводит описание принципа работы и открывающего сайт http://demensdeum.com в браузере Firefox

Show "Show website demo" text on screen
Show "You need Firefox installed on your system to run this 'tez', and it should be callable through \"system\" C function" text on screen
Show "Also there should be \"FirefoxPerformer\" assigned to Zakaz Runtime, please check manual for more information" text on screen
Show website with address "http://demensdeum.com" in Firefox

Запускать пример выше необходимо вместе с “исполнителем” FirefoxPerformer, который способен обработать последнюю команду по выводу сайта через Firefox

./ZakazRuntime openDemensdeumSite.tez FirefoxPerformer

Для имплементации своего исполнителя необходимо реализовать его в виде динамическом библиотеки, используя абстрактный класс ZakazRuntime::Performer, и вернуть его вместе с умным указателем из метода глобальной функции createPerformer(). В качестве примера можно использовать реализацию FirefoxPerformer.

Исходный код

https://gitlab.com/demensdeum/zakaz

Новостной краулер для iOS

Новостной краулер iOS – приложение ищет текст и выводит результат во время загрузки.
Заложена поддержка больших файлов из коробки (> 200мб), результаты сохраняются в result.log файл.
Простой, продуманный дизайн.
Поддержка регулярок с помощью библиотеки Regex.

Исходный код:
https://gitlab.com/demensdeum/news-crawler

Hangar18 утилита индексации исходного кода

Hangar18 – утилита для индексации исходного кода C++, написанная на Rust. Данная утилита будет реализовывать функционал “перейти к определению” в Saber-Plus IDE.
На вход утилите подается абсолютный путь к директории исходного кода, строка декларации которую необходимо найти. На выходе grep-подобный вывод.

Исходный код:
https://gitlab.com/demensdeum/hangar18

Taytay контроль статуса Git репозиториев

Представляю вашему вниманию Taytay – утилиту для контроля статуса репозиторев git для языка Swift. На текущий момент Свифт можно установить на всех мейнстримовых десктопных операционных системах. Для Ubuntu я рекомендую использовать Swiftenv. Завязан Тайтай на утилиту git-cola, но можешь отредактировать исходник и поменять на любую другую программу.

Исходный код:
https://gitlab.com/demensdeum/taytay