Boost Spirit Внедрение небольшого однострочного DSL в серверном приложении
Извиняюсь, если на этот вопрос уже был дан ответ.
Я хочу вставить небольшой DSL в серверное приложение, над которым я работаю. Синтаксис очень прост, и даже на этом раннем этапе я в тупике. Я просто могуЯ не могу понять, как создать синтаксис в духе.
Вот пример синтаксиса, который я хочу проверить:
WHERE [not] [ and | or ] [parameters]
Предложение WHERE выберет несколько объектов из внутреннего хранилища, протестировав на них именованные свойства. Вектор выбранных объектов затем передается в качестве ввода в объект команды.
Есть 2 возможных теста, которые я хочу выполнить на каждом объекте:
= "value"
а также
like
Также есть 2 команды:
print [, [...]]
а также
set = "value" [, = "value" [...] ]
поэтому примеры синтаксиса были бы:
where currency like "GBP|USD" set logging = 1, logfile = "myfile"
а также
where not status = "ok" print ident, errorMessage
Я знаю, что это большой вопрос, но мне интересно, есть ли какие-нибудь эксперты по духу, которые могут выбить этот синтаксис за несколько секунд? Я дошел до анализа LIKE и =, но застрял при попытке смешать это с AND, OR и NOT. Для меня проблема в том, что я не знаю, с чего начать, думая о том, как дух справится с этим ».