6

誤ってスペースバーを押して、次のように書きました。

lTTEvent .CustUpdateStatus := usUnchanged;

そして、コンパイラがドットの前のスペース (実際には任意の数のスペース) を受け入れたことに驚きました。

ドットは、パーサーが正しく解釈できるような特殊文字ですか? それは Pascal ではどのように機能しますか?

4

1 に答える 1

13

パーサーは、最初にテキストをトークンに変換します。だからテキスト:

lTTEvent .CustUpdateStatus := usUnchanged;

トークンに変換されます:

  • 識別子
  • 限目
  • 識別子
  • になる
  • 識別子
  • セミコロン

スペースは空白であり、次の 3 つの機能を持つことができます。

  • トークン間のセパレータ (たとえば、識別子とキーワードの間)。
  • リテラル スペース (この場合、文字列に含まれます。
  • 化粧品。

最初と最後の関数空間は、トークンへの変換で失われます。

識別子とピリオドには共通の文字がないため、これらを混同することはできないため、スペースは必要ありませんが、使用することはできます。

簡潔な答え

「lTTEvent」および「.」トークンです。トークンは (場合によっては) 空白で区切ることができます。

于 2013-04-17T12:37:53.410 に答える