Собственный встраиваемый скриптинг
От: v_andal Германия  
Дата: 12.03.15 14:31
Оценка: 6 (1) +1
По работе пришлось писать встраиваемый парсер для скриптового языка. Lua и иже с ним не пошёл так как нужно было для разных пользователей разную функциональность, а стандартные функции Lua не так уж просто из него убрать. В общем попробовал написать свой и оказалось, что дело несложное. Идею взял
здесь. Парсер состоит из управляющего модуля и модулей занимающих парсингом. Можно сделать очень простой язык, можно сложный, зависит от набора модулей для парсинга. Обычно модуль это один файл содержащий в среднем 200 строк С-кода. В общем вещь достаточно тривиальная однако с её помощью можно делать сложные вещи (в моём случае даже лямбда-функции поддерживаются), самое приятное в том, что парсер самодокументирующийся. В сложных проектах документация постоянно отстаёт от кода, а здесь парсер всегда может выдать текущий синтаксис языка.

Начальство не возражало против выкладывания исходников для парсера в открытый доступ, так что я его кинул на sourceforge. Лежит здесь. Чтобы совсем уж не было всё голым слепил интерпретатор читающий скрипты из файла и выполняющий их. Для иллюстрации возможностей удалённого запуска процедур (RPC) сделал сервер для хранения файлов. Получение или загрузка файлов делается с помощью скриптов. Это значит, что можно запросить файл сжатый в bzip2 а затем закодированный MIME::Base64 или зашифрованный с помощью AES. В общем, игрушка

Код написан на С, под Линукс. Документация кое-какая есть, правда на английском (писано для работодателя). В общем, может кому пригодится.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.