橡子

下载 橡子
橡子 一个微小的、快速JavaScript解析器,完全用JavaScript编写的。 社区 Acorn是在an下发布的开源软件 麻省理工学院的许可。 欢迎您 报告bug或创建pull 在github的请求。的问题 和讨论,请使用 燕鸥论坛。 包 这个存储库包含三个包: 小青: 主要解析器 acorn-loose: 容错解析器 acorn-walk: 语法树沃克 要构建存储库的内容,运行npm install。 git克隆https://github.com/acornjs/acorn.git cd橡子 npm安装 插件开发 Acorn被设计为支持可以在合理范围内的插件 边界,重新定义解析器的工作方式。插件可以添加新的令牌 类型和新的记号赋予器上下文(如果需要),并扩展方法 解析器对象。这不是使用它所需要的干净、优雅的api 对Acorn的内部和插件的理解很可能会中断 当这些内部内容发生重大更改时。但它仍然是 通过这种方式,可以为JavaScript方言创建解析器 没有耙子的橡子。原则上甚至是可能的 组合这样的插件,这样,如果你有,例如,一个插件 解析类型和用于解析jsx样式的XML文本的插件 可以同时加载它们并使用JSX标记和类型解析代码。 插件是一个从解析器类到扩展解析器的函数 类。只需将插件应用到解析器,就可以使用插件 类(或已由另一个插件扩展的版本)。但 因为在语法上,当你使用 多个插件,静态方法解析器。可以调用扩展 任意数量的插件值作为创建解析器类的参数 由所有这些插件扩展。您通常需要创建这样的 类只扩展一次,然后反复对其调用parse 避免不必要地混淆JavaScript引擎的优化器。 const {Parser} = require("acorn") const MyParser = Parser.extend( 要求(“acorn-jsx”)(), 要求(“acorn-bigint”) ) console.log (MyParser。解析("//一些bigint + JSX代码")) 插件覆盖新解析器类中的方法来实现 额外的功能。推荐一个插件包 导出其插件函数作为其默认值,或者,如果它接受 配置参数,以导出一个构造函数 创建插件函数。 这是一个微不足道的插件,它添加了一些代码到 readToken方法,可能类似于: 模块。exports = function noisyReadToken(解析器){ 返回类扩展解析器{ readToken(代码){ 控制台。日志(“阅读一个令牌!”) super.readToken(代码) } } }本文转载于:http://www.diyabc.com/frontweb/news33290.html

posted @ 2020-08-16 20:32  DiyAbc-Eleven  阅读(239)  评论(0)    收藏  举报