AST
做IDE,很重要的特性是对代码进行分析,并根据分析后的结果做些其他的事情。
出于好奇,在google上搜索一下python、ruby、lua的相关资料,只要以AST为关键字进行搜索,就能找到一些信息。其中,Lua有好几个第三方的项目,专门或顺带实现了AST操作的功能。Ruby的也是第三方的项目实现的,Impeller就是修改了某个第三方实现。Python则比较强悍了,由官方标准库中提供该功能。
虽然这些脚本语言的核心解释器都是用C实现的,不过这些AST功能的实现一般却是直接用脚本完成了,这也是可以理解的,或多或少地可以利用核心解释器中的一点功能嘛!