跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 木兰编程语言 0.0.14.7:功能覆盖初版用户手册; Gitee Go 流水线尝鲜
未分類
2020 年 11 月 6 日

木兰编程语言 0.0.14.7:功能覆盖初版用户手册; Gitee Go 流水线尝鲜

木兰编程语言 0.0.14.7:功能覆盖初版用户手册; Gitee Go 流水线尝鲜

資深大佬 : xuanwu 5

知乎原文:木兰编程语言 0.0.14.7:功能覆盖初版用户手册; Gitee Go 流水线尝鲜

木兰编程语言 在 2020 年度 OSC 中国开源项目评选 中已获得 26 票,请投票支持!

年初对原始木兰可执行文件 ulang-0.2.2.exe 作了些功能上的摸索尝试,将基本功能写在初版用户手册。开展重现项目之后,一直没重走一遍手册中的例程。上周终于完成了这个综合各部分功能的”小测验“,大部分例程在上一版本就能正确运行,余下的小部分在这个版本中也通过了。

[安装:pip install ulang,用法与例程请见 PyPI。源码位于开源中国。 注意:必需 python 3.7,源码文件需 UTF-8 编码]

此版本重现功能

字符串转义

比较特别的是反斜杠(木兰交互环境下效果):

> 'c'+'name' cname 

在 Python 中反斜杠如果未配对,会报语法错误:

>>> print('')   File "<stdin>", line 1     print('')              ^ SyntaxError: EOL while scanning string literal >>> print('')   File "<stdin>", line 1     print('')                ^ SyntaxError: EOL while scanning string literal 

配对后 Python 的效果:

>>> print('')  >>> print('\')  

比照木兰中反斜杠转义效果:

> println('')  > println('')  > println('')  > println('\')  > println('\')  > println('\')  

实现细节可见源码,个人感觉初用有些别扭,这种使用场景应该不多。

另外引号与换行转义无需多言:

> 'doesn't' doesn't > ""吃了么?"" "吃了么?" > '第一行n 第二行' 第一行 第二行 

函数参数指定类型

> type Person { >>   func $Person(name) { >>     $name = name >>   } >> } > func hello(p : Person) { >> println("hi " + p.name) >> } > hello(Person("木兰")) hi 木兰 

当前路径下 Python 模块导入

比如当前路径下有 larger.py:

def larger(a, b):     if a > b:         print(a)     else:         print(b) 

木兰交互环境下:

> using larger > larger.larger(5,6) 6 

内置 enumerate 函数

可以更方便地定义枚举了:

> for i, v in enumerate(['小', '中', '大']) { println(i, v) } 0 小 1 中 2 大 

求余运算

> 11%3 2 

其他

Gitee Go 流水线

惊喜发现 Gitee Go 开通后获赠了 1000 分钟构建时间,而且非常幸运,构建环境的 Python 版本正好支持本项目需要的 3.7 。在新手模板基础上作了一点修改,较顺利地添加了一个费时少又较关键的 unittest 测试集(确认语法树生成正确),挂件看起来不错:

木兰编程语言 0.0.14.7:功能覆盖初版用户手册; Gitee Go 流水线尝鲜

[余下见知乎原文:木兰编程语言 0.0.14.7:功能覆盖初版用户手册; Gitee Go 流水线尝鲜]

大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具