11

Delphi コンパイラがこの括弧の欠落を無視するのはなぜですか?

function Test: Boolean;
begin
  Exit(True;    // <-- eek! it compiles...
end;

私のコードのいくつかがこのようになっているのを見つけて、最初は Delphi が私のユニットを無視すると思ったのですが、このタイプの構文エラーを無視しているだけです。だから今、もちろん私はその理由を知りたいです。

4

2 に答える 2

1

私はExitそれ自体がトークンと見なされると推測しており、その後同じスコープ内で定義されたものはすべてExit、コンパイラーによって単に無視されます (とにかくそれらの命令を実行できないため)。

于 2012-04-30T08:17:18.230 に答える
0

おそらく、コンパイラは、1. 単独で Exit があるか、または 2. 括弧 () のセットを持つ Exit があると考えています。#2 が見つからない場合は、#1 に進みます。

于 2012-05-04T12:55:25.923 に答える