【发布时间】:2020-04-25 20:08:20
【问题描述】:
我需要将字符串表达式变成如下所示:
"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) => ...)
提前致谢
【问题讨论】:
-
它被称为“解析器”。有许多库可用于此。
-
babel 非常受欢迎 babeljs.io/docs/en/babel-generator#usage
标签: javascript tokenize abstract-syntax-tree