最近在研究怎么写一个语法解析器。功能是把一段按我定义的规则写的代码执行起来。要能执行,必然要先解析,所以需要一个语法解析器。
这个语法解析器准备用antlr4来写,毕竟是比较完备的开源组件,只需要写个语法和词法规则文件,实现按文件生成的接口就好了。
但我还在想怎样表达语法解析器解析后的内容。因为对于语法解析器来说,它就是把一种语法解析为另外一种容易或者能执行的语法或者别的什么。那我的代码需要被解析成什么呢?
我初步的构想是解析成一系列的函数对象,然后封装成一个语句对象。到时候执行器就可以调用语句对象完成执行了。
但其实也可以在语法解析器中来直接写执行过程,但那就要求每次执行都需要先解析语法,着实不是一种高效的解决方案。
最近杂事繁多,工作一件接一件的堆积,让我无暇来思考可执行结构的问题。
领导们口头上总是说一些无关痛痒的官话,着实让我对他们不抱任何期望。只能走一步算一步了,尽力而为,先解决眼下紧急的问题 ,至于其他的,看天吧。
现在卷的太严重了,真不是我所喜爱的。
Q.E.D.