我正在開發學習antlr的'玩具'語言。ANTLR - 如何在'for'循環中跳過缺少的標記
我的結構爲for
循環看起來像這樣。
for(4,10){ //program expressions };
我有一個語法,我認爲作品,但它是一個有點難看。具體而言,我不確定我是否很好地處理了語義上不重要的標記。
例如,在中間的逗號有顯示爲一個符號,但它不重要解析器,它只是需要在2和3的循環邊界。這意味着,當我看到loop
令牌部分的child()
元素時,我不得不跳過不重要的元素。
如果您檢查ANTLR查看器並查看解析樹,則可能會看到最佳效果。紅色箭頭指向我認爲是多餘的令牌。
覺得我應該更多地利用了skip()
功能比我,但我不能看到如何插入語法這一級的標記。
loop: 'for(' foridxitem ',' foridxitem '){' (programexpression)+ '}'; foridxitem: NUM #ForIndexNumÌ | var #ForIndexVar;