Как превратить js строку в чем-то похожем на дерево AST? - PullRequest
0 голосов
/ 25 апреля 2020

Мне нужно превратить строковое выражение, которое выглядит примерно так:

"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']} 
]

Мне нужен совет по библиотеке, который способен:

  1. Выполнить токенизацию на основе моих пользовательских правил
  2. Повторить пользовательский обратный вызов функция для каждой сущности, основанная на моих правилах

что-то вроде:

tokenizer.register(someValiedRegexp, async callback(name, param) => ...)

Заранее спасибо

1 Ответ

0 голосов
/ 04 мая 2020

ммоо. js может сделать эту работу. Все, что мне нужно, это установить правила для токенизации

...