閱讀this帕斯卡BNF語法我不明白爲什麼需要出現在函數定義中的end
之後。功能鐓看到後,function-block
多數民衆贊成block
可能會出現:在這個BNF語法中匹配的地方; '結束'後
function-declaration =
function-heading ";" function-body |
function-heading ";" directive |
function-identification ";" function-body .
function-body =
block .
當begin
出現,這是一個statement-par
的一部分,這是一個塊的一部分,它是由statement-part
處理,對不對?
block =
declaration-part statement-part .
statement-part =
begin statement-sequence end .
注意statement-part
。 end
關鍵字後不存在;
,這不是statement-sequence
的一部分。所以,我不明白編譯器有缺乏;
如何索賠後end
關鍵字,就像這個例子:
function myabs(i : integer) : integer;
begin
if i < 0 then begin i := -i; end; < -- it's process by statement-sequence, so, ';' may appear
myabs := i;
end; <-- it is the semicolon what about I'm speaking
我缺少什麼?我讀錯了語法嗎?我試過的所有Pascal編譯器都會給出一個錯誤,如果我省略這個。
就在這個相同的鏈接,它是彙集了'功能declaration'和'功能body',即部分:'程序 - 和 - function-declaration-part = {(procedure-declaration | function-declaration)「;」 }這就是分號的地方。 – lurker
爲什麼-1? donwvoter請解釋一下? –