橡子
下载 橡子
橡子
一个微小的、快速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
浙公网安备 33010602011771号