3

私は字句構文の仕様に従って、Java ソース コード パーサーに取り組んでいます。

ただし、注釈にこだわっています。関連するルールは次のとおりです。

Annotation:
    @ QualifiedIdentifier [ ( [AnnotationElement] ) ]

AnnotationTypeDeclaration:
    @ interface Identifier AnnotationTypeBody

@しかし、字句仕様のどこにも言及されている記号は見当たりません。トークン化の正しいルールは何ですか@、またはそのようなルールはどこにありますか?

このためのトークン定義を簡単に追加できることに気付きました。しかし、可能であれば、仕様に従って正しく実行したいと思います。

4

2 に答える 2

5

9.6 で注釈タイプ、それは言います:

アットマーク (@) とキーワード インターフェイスは、2 つの異なるトークンであることに注意してください。技術的には空白で区切ることは可能ですが、スタイルの問題としてこれはお勧めできません。

于 2012-11-16T14:27:54.953 に答える
1

JLS の「3. 字句構造」セクションで、'@' が演算子または句読点として言及されていないという意味で、あなたは正しいです。

ただし、これは JLS 9.6 でシンボルとして使用され、「18. 収集された構文」セクションでも使用されるため、レクサーがそれを 1 つとして扱う必要があることは明らかです。

これは単なる編集上の問題であり、Java パーサーを実装する際に懸念を引き起こすようなものではありません。

于 2012-11-16T14:33:11.007 に答える