2011-04-04 208 views
2

我有一些文件有一個特定的語法類似於ADA(雖然不完全相同)檢查,但我想纔去運行它們來驗證語法。這些文件沒有編譯器,所以在使用它們之前我無法檢查它們。我試圖使用以下內容:語法與支持語言

gcc -c -gnats <file> 

但是這說編譯單元的預期。我已經嘗試了一些這方面的變化,但無濟於事。

我只是想確保文件是使用它之前語法正確的,但我不知道該怎麼做了,我真的不想寫一個完整的語法檢查只是爲了這個。

有一些辦法,包括額外的不支持的語言,而無需通過重新編譯去的gcc?此外,這只是一個文件,詳細說明gcc語法構造是什麼,或者會引起什麼?我不需要完整的編譯,只需要一個語法檢查。

或者,是否有任何語法檢查,我可以使用,我可以更新與少數的這種語言需要改變的ADA語法檢查?

我列出阿達作爲標記,因爲語法幾乎是相同的,而找到的東西,會做ADA語法編譯的情況將是我90%的溶液檢查。

+0

這個ada像語法/語言有一個名字嗎? – NWS 2011-04-05 11:40:16

回答

3

您可以嘗試先通過gnatchop運行文件。 GCC Ada編譯器相當獨特,因爲它希望文件名與文件內的主要單元名稱相匹配。這可能是你的錯誤信息試圖說的。

gnatchop將會通過您提供的任何文件,並使用適當的名稱寫出Ada源文件以使gcc開心(甚至在需要時將文件拆分爲多個文件)。

您可能感興趣的另一選項是OpenToken。它是一個用Ada編寫的解析器構建工具包,可以讓您輕鬆構建自己的解析器。它附帶了Ada的語法識別器,因此您可能只需稍微調整一下即可滿足您的需求。

+0

當我在等待的時候,我開始尋找並發現了這個「antlr」程序,但是大部分的教程讓我很難過。我會試着花一些時間看看這個OpenToken,看看它是否更容易遵循。 – onaclov2000 2011-04-04 16:03:12

+0

用gnatchop,這個特定的語言似乎不太正確... – onaclov2000 2011-04-04 16:04:20

+0

@ onaclov2000 - 我害怕這一點。解析器「關閉」並不總是足夠好。告訴我OpenToken如何爲你工作。這實際上是我的一箇舊項目,但其他項目現在已經運行了幾年。 – 2011-04-04 17:38:47