Я пишу DSL для создания парсеров для плоских файлов биоинформатики. Я хотел бы позволить пользователю определять вспомогательные функции в блоке, а затем включать функцию в объект контекста синтаксического анализа. Я хотел бы использовать такой синтаксис:
rules = Rules.new do
helpers do
def foo()
#...
end
def bar( baz )
#...
end
end
# Here come the parsing rules which can access both helper methods
end
Я хотел бы добавить вспомогательные методы в определение модуля и включить модуль в экземпляр (только экземпляр, а не класс).
У тебя есть идея, как я могу достичь этой цели? Также приветствуются ответы с немного другим синтаксисом.