2014-11-02 18 views
0

我正在學習編譯器構造,並希望使用JavaCC實現JavaScript語法。如何模塊化JavaCC語法文件(.jj)?

(我已經寫我自己JavaScript CodeModel允許JavaScript代碼的編程結構,現在我想寫一個基於JavaCC的解析器對應。)

我的問題是,是有辦法將JavaCC語法(.jj -file)模塊化成幾個文件?

我對JavaParser有很好的經驗,所以我從他們的java_1_5.jj語法中學習。但是,這是一個3000+的LoC文件,有點難以理解。

我想將語法文件分成幾個部分,以便更容易理解和理解。我的關於「javacc modular」,「javacc include」,「javacc import」的Google搜索給我帶來了一些神祕的結果,這些結果沒有多大幫助。

具體而言,我將如何將IDENTIFIERlines 380-1081)的定義移動到另一個文件?

+0

確實沒有辦法模塊化.jj文件。最好的做法是經常使用JJT,因爲這允許您將所有操作移出語法文件。如果你只是想要一個包含設施,那麼可以使用許多預處理器。 – 2014-11-03 19:21:03

+0

@TheodoreNorvell您是否願意發佈您的答案?謝謝。 – lexicore 2014-11-03 19:48:24

+0

如果你不想使用JJT,下一個最好的事情可能是使用構建器模式。 – 2014-11-03 20:11:25

回答

1

JavaCC沒有內置模塊化.jj文件。最好的做法是經常使用JJT,因爲這允許您將所有操作移出語法文件。如果你不想使用JJT,下一個最好的事情可能是使用構建器模式。

如果你只是想要一個包含設施,有很多預處理器可以使用。

+0

您正在閱讀我的想法。我正在使用建築工地。 https://github.com/highsource/javascript-codemodel/blob/master/parser/src/main/java/org/hisrc/jscm/parser/JSCodeModelBuilder.java – lexicore 2014-11-03 20:19:41

+0

很抱歉再次提問 - 請你指點我一下預處理器將支持包含?不知何故,我無法找到一個... – lexicore 2014-11-19 05:35:04

+0

cpp或m4都做文件包含。您也可以使用cat或ANT的concat任務將多個文件連接在一起。 – 2014-11-20 01:28:51