Xuan Wu
Xuan Wu
@StepfenShawn 木兰里是试 `___=(%s);__print__(___)`,有错就不 print 直接执行,见 [此段](https://gitee.com/MulanRevive/mulan-rework/blob/master/%E6%9C%A8%E5%85%B0/%E4%BA%A4%E4%BA%92.py#L104)。 这样与 python 交互环境的行为应该比较接近。 第一个 pr 估计不会包含代码段是否完整的判断,木兰里是通过判断括号是否匹配,但本粤语语言好像有些代码段不用括号。
可发布到 pypi。[木兰发布](https://pypi.org/project/ulang/) 供参考,pip 安装后即可在命令行如下运行交互环境: ``` $ 木兰 木兰向您问好 更多信息请说'你好' > 和 = 0 > for 数 in 1..10 { >> 和 += 数 >> } > 和 55 ```
啊英文变量就可以不用 ||?之前还以为 || 是无论中英都是可加可不加的。 这个设计不知是出于何考虑呢?感觉用中文变量的时候应该更多吧。
可否做成不强制呢?尤其有了 IDE 的高亮,各语法元素的区分度应该就足够了?比如第一行里去掉 ||:  而且上面代码中 `返转头 |fib(项数 - 1) + fib(项数 - 2)|` 又不需 || 包围引用的 ”项数“,这样似乎风格不一致?
赞!刚测过了。 没看出是哪个commit搞定的,建议将 `#33` 加在commit 信息,关联上issue和commit方便追溯。
下面输出 -1: ``` 讲嘢 A 系 |1-2| 畀我睇下 A 点样先? ```
“运行于 python 虚拟机”应是指用了 exec 运行生成的 python 代码,无论转为 Python 代码或像木兰那样转为 Python 语法树都可以如此运行。 https://github.com/StepfenShawn/Cantonese/blob/05a3a0d9adf8d41e981f8898bd19c4893304cdce/src/cantonese.py#L1404
不解为何纠结于此,比如 ts 官网上叫的是 [TypeScript compiler](https://code.visualstudio.com/docs/typescript/typescript-compiling#_install-the-typescript-compiler),也不见人说它必须叫”transpiler“?
读代码的确会吃力些,个人建议尽早拆分为好。 木兰的结构供参考:https://gitee.com/MulanRevive/mulan-rework/tree/master/%E6%9C%A8%E5%85%B0 大概看了一下最大区别也许是木兰是直接生成 python 语法树,没有定义自己的语法树模型。 如果按照如下拆分的话,也许新人看起来会更方便? 词法分析、语法分析、语法树模型、主程序和内置函数、辅助功能
不知测试用例里为何部分标识符用英文呢?比如 [这里](https://github.com/StepfenShawn/Cantonese/blob/main/examples/basic/class.cantonese) 的 duck