答案是有的,例如 C 语言有 Bison 框架,JS 上选择就更多了,你可以选择 Jison、parsimmon、PEG.js 、Nearley 等,本文则基于使用人数较多的 Nearley 框架。 Nearley 内置的语法模块可以在这里查看。 我们先运行 npm install --save nearley 来为项目安装 Nearley 依赖,然后运行 npm install -g nearley 来安装 Nearley 相关命令的全局依赖。 运行下面的代码即可对 DSL 代码进行解析了: const nearley = require("nearley"); const grammar = require(". /grammar.js"); // Create a Parser object from our grammar. const parser = new nearley.Parser(nearley.Grammar.fromCompiled
再次之前,我们也许要先了解一两个工具,一个是 js 写的 DSL 解析器,叫做 nearley。另外一个也是 js 写的 ,叫做 jison 。 customer.credit_rating >= 700 and customer.product in ["product2"]}ok,上述的 DSL 是没有办法直接运行的,要运行还是得程序来,我们可以使用 nearley
JSON.parse 和 stringify csv-parser - 旨在比其他任何工具都快的流式 CSV 解析器 PEG.js - 简单的具有出色错误报告功能的语法分析器生成器 x-ray - Web 爬虫工具 nearley