我又来倒垃圾啦
自己垃圾桶里的这个:egg language server on VSCode | Framist’s Little House
用蛋消灭魔鬼!编写时源码优化插件
egg-language-server
🧪 in developingSource Code Optimization Tools at Writing-time
特性
demo | 点击跳转观看 B 站版
egg-language-server 包括一个语言服务器及一个 Visual Studio Code 插件。它是一个在代码编写时环境的代码静态分析工具,借助 egg 从逻辑层面化简源码,能交互式地提供优化指导。目前支持 lisp、Python、JavaScript 语言的子集,未来预计会支持更多语言。目前,它在 Python 上工作最好。
egg 的源码优化主要分为以下过程:
- Code -> AST:基于 Tree-sitter
- AST -> IR:针对特定目标语言分别实现的
ast_to_sexpr
- IR <-> IR: 构造基本元素抽象、过程抽象和数据抽象的
CommonLanguage
。通过 egg 进行 Rewrite。 - IR -> AST:Common Language 自动派生方法
- AST -> Code:针对特定目标语言分别实现的
rpn_to_human
详见 Slide
仓库地址:framist/egg-language-server (github.com)
求小星星♥(ˆ◡ˆԅ)