2013-12-08 34 views
0

我正在關注http://antlr3.org/api/C/buildrec.html教程。如何使用COMMON_TREE_NODE_STREAM

這是我的理解是,爲了刪除/修改令牌它們是由解析器我必須使用無緩衝流COMMON_TREE_NODE_STREAM

這種觀點認爲消費之前,我應該怎麼養活解析器?

當前我使用tstream = antlr3CommonTokenStreamSourceNew(ANTLR3_SIZE_HINT,TOKENSOURCE(lxr)); 來「提供」解析器。

珍惜每建議

回答

0

沒有,COMMON_TREE_NODE_STREAM是樹分析器的來源,而不是正常的解析器。 ANTLR_TOKEN_STREAM是C運行時默認實現的輸入流,被稱爲ANTLR3_COMMON_TOKEN_STREAM_struct。查找它的實現來學習如何創建自己的令牌流。

+0

謝謝邁克。我認爲COMMON_TOKEN_STREAM被緩衝 - 哪個流是無緩衝的? (我的目標是動態地跳過基於從語法中的動作中切換的標誌的令牌)如果我是正確的,在緩衝流中改變令牌爲時已晚。任何暗示是讚賞 – BNR