言埠 YanPub
万言归埠,一站集成。
中文编程语言统一基础设施。一个框架,接入任意中文语言,即刻获得完整工具链。
repo:yanpub:基于 Python 的中文编程语言统一基础设施项目 - AtomGit | GitCode
问题
当前 10+ 种中文编程语言各自独立开发工具链------Playground、REPL、包管理器、LSP、VSCode 扩展、文档站------大量重复劳动。
方案
语言即插件。每种语言只需实现一个轻量适配器,即可获得:
- YanPlay --- 统一在线 IDE,一键切换语言
- YanPkg --- 统一包管理器,跨语言依赖
- YanLSP --- 统一语言服务协议,自动补全/诊断
- YanREPL --- 统一交互式环境,语言热切换
- YanDocs --- 统一文档站,语言对比
- YanVSCode --- 一个扩展支持所有语言
快速开始
# 安装
pip install -e .
# 安装 Playground/LSP 可选依赖
pip install -e ".[playground,lsp]"
# 列出所有已支持语言
yanpub languages
# 运行段言代码
yanpub run duan hello.duan
# 启动 REPL(支持语法高亮和补全)
yanpub repl duan
# 启动 Playground(浏览器在线 IDE)
yanpub playground
# 安装包
yanpub pkg install duan:web-framework
# 启动 LSP 服务
yanpub lsp duan
# 生成文档站
yanpub docs --output ./site
# 语言对比
yanpub compare
yanpub compare --from duan --to yan
已接入语言(10种)
| 语言 | ID | 版本 | 关键字 | 适配方式 |
|---|---|---|---|---|
| 段言 Duan | duan | 1.3.8 | 162 | 子进程 |
| 言 Yan | yan | 1.0.0 | 47 | 子进程 |
| 墨言 Moyan | moyan | 0.1.0 | 25 | 子进程 |
| 心语 Xinyu | xinyu | 0.1.0 | 46 | 子进程 |
| 知行 Zhixing | zhixing | 0.1.0 | 37 | 子进程 |
| 言律 Yanlv | yanlv | 2.0.0 | 62 | 子进程 |
| 言知 Yanzhi | yanzhi | 0.1.0 | 52 | 子进程 |
| 明道 Mingdao | mingdao | 0.1.0 | 47 | 子进程(Racket) |
| 翰语 Hanyu | hanyu | 0.1.0 | 48 | 子进程(LLVM) |
| 知行语言 Traeyan | traeyan | 0.1.0 | 119 | 子进程 |
架构
详见 DESIGN.md
yanpub
├── core/ # 核心抽象:适配器协议、注册中心
├── adapters/ # 各语言适配器(10种)
├── pkg/ # 统一包管理器
├── playground/ # 统一 Playground
├── lsp/ # 统一 LSP 服务
├── repl/ # 统一 REPL
├── docs/ # 统一文档系统 + 语言对比
└── vscode/ # VSCode 扩展
CLI 命令一览
| 命令 | 说明 |
|---|---|
yanpub run <lang> <file> |
运行指定语言的代码文件 |
yanpub repl [lang] |
启动交互式 REPL |
yanpub languages |
列出所有已注册语言 |
yanpub playground |
启动在线 Playground |
yanpub lsp <lang> |
启动 LSP 服务 |
yanpub pkg install <pkg> |
安装包 |
yanpub pkg list |
列出已安装包 |
yanpub pkg search <q> |
搜索包 |
yanpub pkg publish <dir> |
发布包 |
yanpub docs |
生成文档站 |
yanpub compare |
语言对比(相似度排行 + 语法对比表) |
yanpub compare --from X --to Y |
迁移指南 |
yanpub compare <concept> |
特定概念对比 |
对明道,使用方式
bash
# 1. 安装 yanpub(如果还没装)
cd G:\dumategithub\yanpub
pip install -e .
# 2. 列出已支持的语言
yanpub languages
# 3. 运行一个明道文件
yanpub run mingdao mingdao/examples/hello.mingdao
# 4. 启动明道 REPL(这个应该能用)
yanpub repl mingdao
# 5. 启动 Playground(浏览器)
yanpub playground
# 然后在 UI 里切换到明道
实践
先安装yanpub
bash
cd G:\dumategithub\yanpub
pip install -e .
使用
因为没有将python虚拟目录放入系统路径,所以需要写全yanpub.exe文件的路径:
bash
G:\dumategithub\langbyracket>E:\py312\Scripts\yanpub.exe run mingdao mingdao\examples\hello.mingdao
>> 明道 v0.1.0
55
再来看看段言的运行
bash
C:\Users\Admin>e:\py312\Scripts\yanpub.exe run duan g:\dumategithub\duan\examples\hello.duan
>> 段言 v1.3.8
你好,世界!
打开playground
bash
E:\py312\Scripts\yanpub.exe playground
启动显示
G:\dumategithub\langbyracket>E:\py312\Scripts\yanpub.exe playground
启动 Playground: http://0.0.0.0:8080
32mINFO\[0m: Started server process \[\[36m178196\[0m
[32mINFO[0m: Waiting for application startup.
[32mINFO[0m: Application startup complete.
[32mINFO[0m: Uvicorn running on [1mhttp://0.0.0.0:8080[0m (Press CTRL+C to quit)
打开网页



