木兰编程语言重现——儿歌查询实例,引用模块、字符串列表操作
实现了最基本的对木兰模块的引用功能,正好想做一个儿歌查询,方便找适合小孩唱的歌,就用这个实例进行功能验证。过程中发现缺了一些字符串和列表的基本功能,于是按需添加。
功能
这是儿歌数据模块的木兰源码:
下面的搜索部分引用了数据模块(开头using
):
其中的 map、filter、list 功能与 Python3 相同。不支持用in
判断是否为子字符串,于是用find
代替。
代码统计
下面是几个主要部分的代码行数统计,+/-的为相对上周的增量。
- 测试
- 木兰测试用例:601 + 299 = 900
测试.py
,运行测试的脚本:135 + 8 = 143- 未变
test语法树.py
,确保生成的语法树与原始版本一致:63
- 实现:1633 + 87 = 1720
分析器/语法分析器.py
, 为重用分析
方法作重构:652 + 24 = 676演示高亮.py
:80 + 18 = 98环境.py
,加载木兰模块:33 + 54 = 87中.py
,主程序:56 - 21 = 35分析器/语法树.py
,功用/调试辅助.py
,包括对 ast 库的中文封装:251词法分析器.py
,主要是词法规则:123
下一步
编辑器方面,仅加了些界面元素,功能设想中。
阅读上一篇
木兰编程语言重现——儿歌查询实例,引用模块、字符串列表操作相关推荐
- 木兰编程语言重现——支持列表操作,演示编辑器高亮
通过添加列表操作等功能,已可编写经典排序算法.另外,作为代码编辑器的第一步,用 Python 实现了带基本语法高亮的编辑器原型,用于显示木兰源码. 功能 编辑器功能 用 tkinter 的 Text ...
- 木兰编程语言重现:引用本地木兰模块;模拟凑十法加法
之前一直没重现本地包内的木兰模块引用,导致提取出的模块只能放在项目根目录下. 上周终于搞定.于是将上次的摆放规划应用的源码拆分成几个模块,比如测试/实用/规划/点.ul,在主模块中可以如此引用usin ...
- 木兰编程语言重现——范围语法“下限..上限 by 间隔”,重构
在支持 Python 的 range 之外,木兰还支持如下的等价语法.个人感觉这样的语法更直观易读一些: 闭区间 for 数 in 0..2 {println(数) } 输出: 0 1 2 左闭右开区 ...
- python list remove 删除引用_Python——list列表操作一坑(remove)
问题发生背景:在一个对象被调用多次时候对象存入了列表暂时保存(主流程不能断开使用了while True),然后实例化了大批对象,具体你可参考打飞机游戏或者坦克大战发射子弹,每个子弹一个实例,创建的多到 ...
- ab st语言编程手册_木兰编程语言 0.0.14.7:功能覆盖初版用户手册;Gitee Go 流水线尝鲜...
木兰编程语言 在 2020 年度 OSC 中国开源项目评选 中已获得 26 票,请投票支持! 年初对原始木兰可执行文件 ulang-0.2.2.exe 作了些功能上的摸索尝试,将基本功能写在初版用户手 ...
- Python引用模块和查找模块路径
这篇文章主要介绍了Python引用模块和Python查找模块路径的相关资料,需要的朋友可以参考下 模块间相互独立相互引用是任何一种编程语言的基础能力.对于"模块"这个词在各种编程语 ...
- es6 实例:模块的 Singleton 模式
实例:模块的 Singleton 模式 Singleton 模式指的是调用一个类,任何时候返回的都是同一个实例. 对于 Node 来说,模块文件可以看成是一个类.怎么保证每次执行这个模块文件,返回的都 ...
- mysql mongo关联查询语句_MySQL与Mongo简单的查询实例代码 筋斗云网络
简介 本文通过一个实例给大家用MySQL和mongodb分别写一个查询,本文图片并茂给大家介绍的非常详细,感兴趣的朋友参考下吧 首先在这里我就不说关系型数据库与非关系型数据库之间的区别了(百度上有很多 ...
- mysql的高级查询实例_mysql高级查询实例及cmd命令.doc
mysql高级查询实例及cmd命令.doc 还剩 19页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: sele ...
最新文章
- 易观与用友推出云融合产品“智能用户运营”,掀开数字营销技术新篇章
- 每日一则 LeetCode: Add Two Numbers
- 淘宝内部大量使用的开源系统监控工具
- GDCM:拷贝/复制DataSet的测试程序
- 内核中的UDP socket流程(6)——sendto
- fancyupload java_javascript-如何在内部Windows身份验证Intranet上...
- 关于js返回上一页的实现方法
- python语法糖是什么意思_Python中的甜蜜语法糖,甜甜的
- 【滤波器】基于时变维纳滤波器实现语音去噪含Matlab源码
- Android原生框架--Xui使用
- python draw函数_networkx draw函数的图例
- linux 利用缓存文件.swp恢复源文件
- MPB:青岛大学苏晓泉组分享基于分类学和系统发育的宏基因组比较DMS算法
- 阿里云轻量应用服务器Ubuntu20.04上手体验与基本配置(图形界面,ssh,代理等)
- Android camera2 框架学习记录
- Python实战项目总结
- python 编码 乱码问题
- 天九共享:企业成功的重要元素是责任感
- 二十六、ISIS技术总结
- 人脸图像识别(python人脸识别技术)
热门文章
- 决策树 prepruning_决策树与随机森林
- 全盘镜像只还原c盘有影响么_如何正确的清理C盘
- postman怎么传session_Day 47: 不搞懂Cookie和session誓不罢休
- python cv release_cv2.videoCapture.release()是什么意思?
- formrules 表单验证限制最大值_HTML5表单
- 兴城职高计算机,兴城学计算机,兴城学计算机去哪里,兴城学计算机一般工资能拿多少 - IT教育频道...
- c 获得java数据,获得jar中数据,获得jar数据,// example c
- UI基础设计规范,确定不了解一下?
- 数据库直接存图片mysql_教你如何在MySQL数据库中直接储存图片
- c++ opencv 识别车牌_小强学Python+OpenCV之-1.0开篇