2014-09-19 34 views
5

我是Antlr的新手,需要爲舊版彙編代碼編寫解析器,可能在固定列中有行號。此外,某些專欄具有重要意義 - 無論是評論,延續等。我如何檢測這些內容?解析帶有固定位置的令牌的程序代碼

舉一些例子:

000001 PROC PROC1

000002 *註釋

* comment without line numbers 

      continuation marker set ==>    X 

     Arbitrary text as continuation 

感謝 克桑

+3

你可以發佈一些更多的代碼。還嘗試縮進所有代碼,以便相對縮進可以。 – Onur 2014-09-20 08:38:08

+0

你找到解決方案嗎?我也對此感興趣 – 2015-04-09 12:23:39

回答

0

我編程的ANTLR的語法當遇到這樣的事解析Cobol來源。 Cobol有一些像你的特徵(固定列,列是重要的等)。

我發現這個問題的唯一解決方案:「預處理」輸入並將其轉化爲Antlr可以解析的一些問題!例如:在Cobol中,第7列中的星號表示該行是註釋行;我將它(星號本身)改爲「>>」,並在我的語法中指定「>>」表示該行是註釋行。