木兰重生的妙用,更多编辑器高亮
所有相关源码在码云mulanrework
这几天复现了木兰编程语言中的功能(细节见第二部分)。编辑器的代码段类原本(左侧)有12处self,改写后(右侧)看起来就简洁了一些:
后三个函数原本形参只有一个self,现在变为没有形参,括号也可以省了。话说这种的用法也许PHP开发者会有特别的感觉?另外,是否要对打头的标识符进行高亮处理呢?
之前水木易安(开源中国)指出了编辑器尚未对内置函数(如map、print)、类型(如str、list)进行高亮,于是作了些改进。配色比较随意,望UX大佬指点:
匿名函数中的,感觉语义和函数定义的func相近,于是用了同样高亮风格。的两种语义1。打头的标识符
意为属于当前个体。如开头例程中的词性等价于self。词性。
如果是函数,第一个形参自动设为self。如例程中的func开始(){。。。}
等价于func开始(self){。。。}2。单指self
与truefalsenil类似,可如下使用:type人{func起名(名字){名字名字;return}}println(人()。起名(木兰)。名字)代码统计
下面是几个主要部分的代码行数统计,格式为:上次现在。木兰代码量编辑器,包括实现与测试都是木兰代码:163184木兰测试用例:19662001
Python代码量(包括测试部分):23212338分析器语法分析器。py:913925分析器词法分析器。py:190195未变分析器语法树。py:178测试运行所有。py,检验所有木兰测试代码片段:181环境。py,加载木兰模块:150交互。py,交互环境(REPL):138分析器语法成分。py,从语法分析器中提取出来的枚举常量:78功用反馈信息。py:49中。py,主程序:40分析器错误。py:17测试unittest语法树。py,确保生成的语法树与原始版本一致:67测试unittest交互。py,交互环境相关测试:28