我正在为学校项目创建一个简单的编程语言。我正在使用ANTLR 4从我的语法生成词法分析器和解析器。到目前为止,我一直在使用ANTLRs监听器模式来应用编程语言的实际功能。现在我想实现if / else语句,但是我不确定在使用监听器模式时这些实际上是可以实现的,因为ANTLR决定在使用监听器时遍历解析树的顺序,我想是if /的实现else语句将要求在解析树周围跳转,具体取决于语句中的条件是否满足。任何人都可以告诉我是否可以使用ANTLR实现if / else语句,或者我是否必须自己实现访问者模式?另外,任何人都可以给出一个非常简单的实现语句的例子吗?
2 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
在某些情况下,如果你愿意包含一个实现,那么控制听众并不困难ParseTreeWalker。在我的项目中,我有一个ParseTreeWalkers类的字段SINGLE_TREE(一个ParseTreeWalker默认情况下不会走路的孩子)
添加回答
举报
0/150
提交
取消