木兰编程语言重现:儿歌查询实例,引用模块、字符串列表操作

观察 2020-06-27

编程语言实现了最基本的对木兰模块的引用功能。笔者正好想做一个儿歌查询,方便找适合小孩唱的歌,就用这个实例进行功能验证,过程中发现缺了一些字符串和列表的基本功能,于是按需添加。

功能这是儿歌数据模块的木兰源码:

下面的搜索部分引用了数据模块(开头 using):

其中的 map、filter、list 功能与 Python3 相同。不支持用 in 判断是否为子字符串,于是用 find 代替。

代码统计

下面是几个主要部分的代码行数统计,+/- 的为相对上周的增量。

测试

• 木兰测试用例:601 + 299 = 900

• 测试 . py,运行测试的脚本:135 + 8 = 143

• 未变

  • test 语法树 . py,确保生成的语法树与原始版本一致:63

实现:1633 + 87 = 1720

• 分析器 / 语法树 . py,功用 / 调试辅助 . py,包括对 ast 库的中文封装:251

• 演示高亮 . py:80 + 18 = 98

• 环境 . py,加载木兰模块:33 + 54 = 87

• 中 . py,主程序:56 - 21 = 35

  • 分析器 / 语法分析器 . py, 为重用分析方法作重构:652 + 24 = 676

  • 词法分析器 . py,主要是词法规则:123

下一步

编辑器方面,仅加了些界面元素,功能设想中。

相关阅读:

《木兰编程语言:支持列表操作,演示编辑器高亮》