5

私はObjective-Cを見ていますが、たとえば、クラスインターフェイス宣言がで始まることに気付きました@interface。結構です、問題ありません。したがって、このテキストは、@との間のスペースが許可されていないことを示していinterfaceます。ただし、次の簡単な例を*.mファイルでGCCコンパイラに渡すと次のようになります。

@ interface A
@ end

コンパイラは文句なしにコードを受け入れます。@ interfaceObjective-C仕様でも許容できると見なされるかどうかを明示的に示す参照の方向に私を向けることはできますか?私は、Appleの2008年と2011年の文書で、質問の前半でほのめかされた単純なテキスト以外に、何らかの形で言うことは何も見つかりませんでした。

前もって感謝します。

編集:Emacsが識別子がキーワードであるかどうかに基づいてテキストの色付けを実行することは注目に値するかもしれません。キーワードは青、非キーワードは黄色です。色は@interface青、@ interface色は黄色です。Vimでも同様の動作が発生します。

4

1 に答える 1

3

Objective-Cの正式な仕様はありません(Objective-Cプログラミング言語以外)。空白の規則のBNFスタイルの定義は間違いなくありません。それがコンパイルされる場合、それは私たちが「合法」に持っている最も近いものです。これは多くの言語に当てはまります。たとえば、Perlは、「perl実行可能ファイルが拒否しない文字列」として最もよく定義されます。(少なくとも私の意見では....)

とはいえ、正しいスタイルは@interfaceスペースなしです。クラスの定義を参照してください。

于 2012-07-13T19:07:20.253 に答える