木兰编程语言重现支持数组操作,演示编辑器高亮
通过添加列表操作等功能,已可编写经典排序算法。另外,作为代码编辑器的第一步,用 Python 实现了带基本语法高亮的编辑器原型,用于显示木兰源码。功能编辑器功能
用 tkinter 的 Text 实现了如下的木兰源码高亮效果:
语言功能
添加了列表操作、多项赋值等等基本功能,编写经典算法已经可行。比如快速排序:func 分区(数列, 下界, 上界) { 中值 = 数列[上界] // 中值可以取任意一个位置的 前位 = 下界 for 后位 in 下界..上界 { if 数列[后位] < 中值 { 数列[前位], 数列[后位] = 数列[后位], 数列[前位] 前位 += 1 } } 数列[前位], 数列[上界] = 数列[上界], 数列[前位] return 前位 } func 快速排序(数列) { func 递归(各项, 下界, 上界) { if 下界 < 上界 { 中位 = 分区(各项, 下界, 上界) 递归(各项, 下界, 中位 - 1) 递归(各项, 中位 + 1, 上界) } } 递归(数列, 0, len(数列) - 1) }
支持了三元运算? :,见例程"测试/手工测试/命令行.ul":using Cmd in cmd using 随机范围数 in 随机数 using exit in sys type 猜数字 : Cmd { { intro = "木兰想了个 100 之内的数,猜猜是几?" 想的 = 随机范围数(100) prompt = "请猜吧: " } func $default(行) { 数 = int(行) if 数 == self.想的 { println("中了!") exit() } else { println("太" + (数 > self.想的 ? "大" : "小") + "了!") } } } 猜数字().cmdloop() 代码统计
下面是几个主要部分的代码行数统计,+的为相对上周的增量。测试木兰测试用例:465 + 136 = 601测试.py,运行测试的脚本:123 + 12test语法树.py,确保生成的语法树与原始版本一致:52 + 11实现:1287 + 346 = 1633分析器/语法分析器.py,包括 AST 转换:569 + 83 = 652分析器/语法树.py,功用/调试辅助.py,包括对 ast 库的中文封装:214 + 37词法分析器.py,主要是词法规则:110 + 13rply_parser.py,支持空行的权宜之计:117演示高亮.py:80环境.py,全局变量:30 + 3下一步
添加对木兰模块的支持,改进编辑器。
每次10分钟跟我学Python(第三十二次课)大家好!我是幻化意识流。今天继续跟我学Python。最好的记忆就是输出!所以,我们把知识点和例子结合在一起,经过自己编写调试输出结果,这样效果一定很好!现在,我们再写一个例子读秒倒
每次10分钟跟我学Python(第四十一次课)大家好!我是幻化意识流。今天继续跟我学Python。大家可能都买过彩票,尤其是那个最亲民的3D,因为只选择3个数,买次买感觉都会中奖似的,我前几年买过,好像是没中过什么奖。好了,闲
每次10分钟跟我学Python(第三十三次课)大家好!我是幻化意识流。今天继续跟我学Python。大家知道什么是七情六欲中的七情吗?今天我们就把这个七情通过for循环逐一列示出来。需求已经知道了,那我们开始编码代码文本forq
每次10分钟跟我学Python(第四十次课)大家好!我是幻化意识流。今天继续跟我学习Python。世界上只要有人的地方,一定就会有很多烦恼,人这种动物实在实在是太复杂,太令人头痛了,还好现在的这点烦恼即将过去,相信未来会更美
每次10分钟跟我学Python(第三十四次课)大家好!我是幻化意识流。今天继续跟我学Python。今天我们继续编写一个关于循环的程序,不过,这次我们不设定循环的次数,让他无限循环下去,直到有一天,我们打破了它。需求1编一个无限
每次10分钟跟我学Python(第五十二次课)大家好!我是幻化意识流。今天继续跟我学Python。前几次课都是在用Turtle库来画图,相信同学们一定有些审美疲劳了,很正常,我就是如果一件事干得太久,就会感觉很烦。于是,如果我
每次10分钟跟我学Python(第四十三次课)大家好!我是幻化意识流。今天继续跟我学Python。开学了,一个班级里来了很多同学,我们都知道,我们每一位个同学都有一个自己的名字,可是偏偏有两位同学有了完完全全相同的名字,还好,
每次10分钟跟我学Python(第五十八次课)大家好!我是幻化意识流。今天继续跟我学Python。大家在使用电脑的经历中一定都见过进度条,而且等待时间越长的进度条越让人难以忍受,我有个特点,不会在进度条完成之前干别的事情,而是
每次10分钟跟我学Python(第五十六次课)大家好!我是幻化意识流。今天继续跟我学Python。不知道大家是否看过谍战电视连续剧潜伏,我是从头到尾都看过了,挺有意思的。这部片子里,男主演经常要听收音机广播,听到一些数字,男主
每次10分钟跟我学Python(第五十一次课)大家好!我是幻化意识流,今天继续跟我学Python。不得不说,turtle库真是博大精深,我们干什么都不能浅尝辄止,一定要尽可能地研究透彻,所以,我们今天继续画图。要求1背景色红色
保密协议,任何企业都需要的通用版保密协议甲方(员工)乙方(企业)鉴于甲方在乙方任职,并获得乙方支付的相应报酬,双方当事人就甲方在任职期间及离职以后保守乙方商业秘密的有关事项,订定下列条款共同遵守第一条双方确认,甲