Мне нужно превратить строковое выражение, которое выглядит примерно так:
"SALARY('@JohnSmith') = {USER.workingHours} * {USER.hourlyRate}"
во что-то похожее на AST. Например:
const result = [
{type: 'function', name: 'SALARY', params: ['@JohnSmith']},
{type: 'entity', name: 'USER', fields: ['workingHours']},
{type: 'mathOperation', operator: 'mutliply'},
{type: 'entity', name: 'USER', fields: ['hourlyRate']}
]
Мне нужен совет по библиотеке, который способен:
- Выполнить токенизацию на основе моих пользовательских правил
- Повторить пользовательский обратный вызов функция для каждой сущности, основанная на моих правилах
что-то вроде:
tokenizer.register(someValiedRegexp, async callback(name, param) => ...)
Заранее спасибо