2010-08-23 73 views
1

我正在將Ada83翻譯成Ada95文件。當我嘗試編譯調用單獨的文件時,會發生問題。錯誤是「非法字符」,並指向預處理器的指令:Ada單獨文件中的錯誤

with BAS_PUT;

#if ADA_COMPILER =「GNAT」then

WITH ADA.GNAT_PUT;

#else

WITH ADA_PUT;

#end if;

分開(A_CALL_PUT) 程序....

當同一預處理器指令是在一個文件中,亞行,它不是一個單獨的功能不會發生此問題。

有人可以幫我嗎?

回答

3

Ada沒有預處理器,所以#確實是非法字符。

一些編譯器(例如:Gnat)確實帶有一個,但如果是的話,這是他們自己的設計之一。如果你喜歡,你可以設置你的編譯系統來通過外部預處理器(例如:C預處理器)運行你的Ada源文件。我從來沒有這樣做過,但我被告知它非常可行。

如果你的編譯器確實碰巧帶有預處理器,它就是非標準的。如果你喜歡,可以使用它,但是根據定義,創建便攜式源文件(這似乎是你試圖用它做什麼)將是無用的。

大多數人會認爲更好的形式來爲不同的環境創建不同的源文件,並且在它們之間切換構建環境(制定規則?)。