2013-07-24 56 views
4

我目前正在參加「編譯器構造」課程,我正在開發Antlr 4中的簡化Java語法。涉及Java語法的部分工作得很好,除了它與原創的Java。用於Antlr4的縮進代替括號

我被告知我不應該使用括號,而是使用縮進。我已經嘗試了一些來自互聯網的例子,只有Antlr 3的例子在Antlr 4中不起作用。

任何人都可以幫我解決這個縮進問題,或者提供給我Antlr 4的Python語法嗎?

回答

0

我寫了一個小型庫,可以幫助完全確定這個用例:antlr-denter

簡而言之,你可以在你的語法中定義INDENT和DEDENT標記,做一些樣板文件來將antlr-denter掛接到antlr生成的詞法分析器中,然後離開你。例如,看起來像這樣的代碼:

hello: 
    world 
<eof> 

可能生成令牌流WORD COLON INDENT WORD DEDENT