提交于 2017-02-07 10:03:44
以 Python 为例,因为代码块是以缩进数量来判断的,写 parser 构建 scope tree 的时候就需要做一些计算 indent 数量进而判断代码块 scope 位置的额外工作,如果遇到 tab 和空格混用的代码,处理起来就会很成问题。其他明确地使用『{}』符号来分割代码块结构的语言,在这方面处理起来就可以方便许多。
所以从 parser 构建角度来看,适当的分割符号可以简化许多工作。
提交于 2017-02-17 09:37:21
代码是字符串,字符串就要被复制。显然在把代码从一个地方复制/剪切到另一个地方的时候,使用大括号+分号或者类似的结构的语言可以保持大概的语义不变,而python,嘿!嘿!嘿!
其实我心目中的IDE,应该支持把一个语言渲染成不同的风格,譬如说大括号啊,缩进啊,要不要分号啊,还是干脆用begin/end啊,渲染成lisp啊,缩进要多少啊,大括号要不要换行啊,if后面要不要加空格啊,随便你!反正保存下来的是二进制的语法树,拒不兼容其它文本编辑器,merge工具IDE给你做好,一了百了。