1 Star 0 Fork 19

四少 / mulan-rework

加入 Gitee
与超过 800 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README.md

Gitee Go 所有测试 木兰在线版

前言

没错,这就是那个木兰。

2020 年一月第一时间提出知乎问题「木兰」编程语言有什么特色?的正是本人,这是那段暴风骤雨的亲历记

目标

悬赏完成之前,将努力向重现「木兰」编程语言的目标迈进。系列技术文章集结在知乎专栏并在开源中国同步更新。

IDE 辅助

VS Code 语法高亮插件

vsc截图

【原型】自带在线编辑器

自带IDE截图

运行木兰源码文件

$ 木兰 测试/手工测试/草蟒_海龟.ul 运行如下调用了 草蟒 中文 API 的 例程

using * in 海龟

颜色("黄色", "红色")
开始填充()
for 转角 in 0..4 {
  前进(200); 右转(144)
}
结束填充()
主循环()
/* 需安装 Python 库“草蟒”: grasspy-modules */

中文报错信息

交互环境中仅提示出错所在位置简要信息:

> func a(n) { return n1+1 }
> func b(n) { print(n) }
> b(a(2))
 😰 请先定义'n1'再使用, 见第1行

运行源码时,可见调用各层的详细信息。如果错误发生在其他文件,可见文件名:

$ 木兰 测试/错误处理/引用模块.ul
 😰 取列表内容时,索引超出范围
“测试/错误处理/下标越界函数.ul”第2行:print([][0])
调用层级如下
见第3行:a()

参考例程在此

其中 实用 为较接近实用的部分。另外 木兰代码编辑器 也用木兰代码编写。

所有例程演示的语法可用原始的木兰可执行文件 ulang-0.2.2.exe 检验。如发现有异烦请告知,定将 同样礼谢

功能说明

随着逐渐缩小 与原版木兰的差距,将完善 语法说明。用户手册 尚待更新。为调试方便,报错等等反馈信息会逐渐中文化

试用发布版

必需 Python 3.7,源码文件需 UTF-8 编码pip install ulang 安装木兰。

命令行交互环境

$ 木兰
木兰向您问好
更多信息请说'你好'
> 和 = 0
> for 数 in 1..10 {
>> 和 += 数
>> }
> 和
55

功能说明 在此

binder 在线环境

New -> Terminal 打开命令行,同样输入“木兰”运行

新手入门

无编程经验不打紧,请入此门

参与开发

实现简介

木兰源代码转换为 Python 的中间表示(AST)后执行,可实现各种语法设计与周边功能,并可方便地利用 Python 现有生态。

新手开发者请看开发流程与项目结构简介

使用 Python 3.7 的最新小版本。Mac、LinuxWindows 下全部测试通过。如使用 3.8,语法树测试将失败。

为提高开发维护效率,本项目中尽量使用中文标识符。包括语法规则、Python 代码等等。

木兰语言部分依赖的第三方 Python 包:

本地运行

$ python -m 木兰

运行测试

  1. 重现项目自身测试
$ python -m unittest 测试.unittest.交互 测试.unittest.语法树 测试.unittest.所有用例 测试.unittest.报错 测试.unittest.生成
  1. 原始木兰可执行文件测试

以下为检验与原始木兰可执行文件功能一致,在 Windows 下需将 ulang-0.2.2.exe 置于项目根目录。

以下测试语法相关用例。windows 以外其他系统下,会对从 PyPI 安装的版本进行测试:

$ python 测试/运行所有.py

以下测试源码生成相关用例:

$ python -m unittest 测试.unittest.原始可执行文件

许可证

GNU GPLv3

版本历史介绍

简介

重现被说成 “Python 套壳”、“换皮”的木兰编程语言的所有功能 展开 收起
Python
GPL-3.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/nianqingmallhq/mulan-rework.git
git@gitee.com:nianqingmallhq/mulan-rework.git
nianqingmallhq
mulan-rework
mulan-rework
master

搜索帮助