2013-07-12 66 views
1

我已經使用ANTLR4編寫Fortran語法分析。現在我得到了解析樹(ANTLR4中沒有AST)。我的下一個工作是根據我的需要修改分析樹,比如插入新的數據聲明語句並替換當前的語句。我在ANTLR的java API文件中尋找addChild,但是在RuleNode中似乎沒有這樣的方法。所以我該怎麼做?如何修改ANTLR4中的分析樹?

+1

我剛剛發現我應該尋找'ParserRuleContext',它實現了接口'ParseTree'。其中'RuleNode'只是'ParseTree'的子接口。 –

回答

0

一種方法是將您的代碼嵌入到語法文件中。這使事情變得非常混亂。

另一種方法是在單獨的文件中編寫您的類,在@parser::members{...}部分創建所需的對象或將其作爲您規則的一部分,然後使用它們從語法中獲取細節。這樣,你就可以從語法中獲得信息,並且可以用你的類爲你的數據建模。

祝你好運!