登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> CLQ工作室开源代码 >> 主题: [AST]在线 ast 解析器和常用 ast 库     [回主站]     [分站链接]
标题
[AST]在线 ast 解析器和常用 ast 库
clq
浏览(297) + 2024-01-03 00:16:15 发表 编辑

关键字:

[2024-01-03 12:42:51 最后更新]
[AST]在线 ast 解析器和常用 ast 库

https://www.jianshu.com/p/f1fc02b7b3be

https://astexplorer.net/

支持20种开发语言50种语法格式的在线代码解析器 AST 插件示例集合【含源码】

非常棒的在线AST浏览器
https://astexplorer.net/
源码:https://github.com/fkling/astexplorer

----------------------------------------------------------------
https://ast.89tool.com/

----------------------------------------------------------------
代码讲解

https://baijiahao.baidu.com/s?id=1772077675275387114&wfr=spider&for=pc

https://zhuanlan.zhihu.com/p/483476846 这一篇比较详细

https://blog.csdn.net/ekcchina/article/details/129277867

----------------------------------------------------------------
JavaScript 解析器是代码分析扫描工具的基础,没有它就很难工作,我们先来介绍下目前有哪些常用的解析器。
2.1 ESTree

ESTree 的初衷通过社区的力量,保证和 es 规范的一致性,通过自定义的语法结构来表述 JavaScript 的 AST,后来随着知名度越来越高,多位知名工程师的参与,使得变成了事实意义上的规范,目前这个库是 Mozilla 和社区一起维护的。因为 EsTree 定义的规范,所以现在所有的js解析器或者编译器,基本上都绕不开它。
2.2 Esprima

这是第一个用 JavaScript 编写的符合 EsTree 规范的 JavaScript 的解析器,后续多个编译器都是受它的影响。
2.3 acorn

acorn 和 Esprima 很类似,输出的ast都是符合 EsTree 规范的,目前webpack 的 AST 解析器用的就是 acorn,和 Esprima 一样,也是也不直接支持 JSX。
2.4 @babel/parser

babel 官方的解析器,最初 fork 于 acorn,后来完全走向了自己的道路,其构建的插件体系非常强大,提供了一套完善的 visitor 插件机制用于扩展,通过编写 babel 插件来操作 ast 非常的方便。
2.5 espree

eslint、prettier 的默认解析器,最初 fork 于 Esprima 的一个分支,后来因为 ES6 的快速发展,但 Esprima 短时间内又不支持,后面就基于 acorn 开发。
2.6 swc

swc 是用 rust 编写的 JavaScript 编译器,单核比 babel 快4倍,4核比 babel 快70倍,也可以用来打包 js、ts 代码,并且也拥有 tree shaking 功能,目标就是替换babel,比如 Next.js 11.1 就用 SWC 替代 Babel 和 Terser。
2.7 esbuild

esbuild 是用 go 编写的下一代 web 打包工具,它拥有目前最快的打包记录和压缩记录,snowpack 和 vite 的也是使用它来做打包工具,为了追求卓越的性能,目前没有将 AST 进行暴露,也无法修改 AST,无法用作解析对应的 JavaScript。


--------------------------------------------------------
pascal/delphi 现在很弱势啊,上面的 20 语言中都没有它。好在有自己的实现。见
http://newbt.net/ms/vdisk/show_bbs.php?id=CEF55102DBE9988B97D8482F3AE0436D&pid=160

另外 lazarus 中也有 pas2js





总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录
编译器及实现 更多
AssemblyScript 更多



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1