我正在為學(xué)校項(xiàng)目創(chuàng)建一個(gè)簡(jiǎn)單的編程語言。我正在使用ANTLR 4從我的語法生成詞法分析器和解析器。到目前為止,我一直在使用ANTLRs監(jiān)聽器模式來應(yīng)用編程語言的實(shí)際功能?,F(xiàn)在我想實(shí)現(xiàn)if / else語句,但是我不確定在使用監(jiān)聽器模式時(shí)這些實(shí)際上是可以實(shí)現(xiàn)的,因?yàn)锳NTLR決定在使用監(jiān)聽器時(shí)遍歷解析樹的順序,我想是if /的實(shí)現(xiàn)else語句將要求在解析樹周圍跳轉(zhuǎn),具體取決于語句中的條件是否滿足。任何人都可以告訴我是否可以使用ANTLR實(shí)現(xiàn)if / else語句,或者我是否必須自己實(shí)現(xiàn)訪問者模式?另外,任何人都可以給出一個(gè)非常簡(jiǎn)單的實(shí)現(xiàn)語句的例子嗎?
2 回答

慕妹3146593
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
在某些情況下,如果你愿意包含一個(gè)實(shí)現(xiàn),那么控制聽眾并不困難ParseTreeWalker。在我的項(xiàng)目中,我有一個(gè)ParseTreeWalkers類的字段SINGLE_TREE(一個(gè)ParseTreeWalker默認(rèn)情況下不會(huì)走路的孩子)
添加回答
舉報(bào)
0/150
提交
取消