文法のためのJavaの注釈
-
21-09-2019 - |
質問
はありまBNFはEBNFを記述する文法のためのJavaの注釈?
解決
Java関連の文法の信頼できるソースであり、もちろん、JLS。
Javaのプログラミング言語のAnnotations:
Annotation [Annotations]
Annotation:
@ TypeName [( [Identifier =] ElementValue)]
ElementValue:
ConditionalExpression
Annotation
ElementValueArrayInitializer
... rest ommitted
他のヒント
`/ *注釈構文は次のとおり。 * /
注釈:: = NormalAnnotation | SingleMemberAnnotation | MarkerAnnotation NormalAnnotation :: = "@" 名前 "("(MemberValuePairs)? ")" MarkerAnnotation :: = "@" の名前 SingleMemberAnnotation :: = "@" 名前 "(" MemberValue ")" MemberValuePairs :: = MemberValuePair( "" MemberValuePair)* MemberValuePair :: = "=" MemberValue MemberValue :: =注釈 | MemberValueArrayInitializer | ConditionalExpression MemberValueArrayInitializer :: = "{"(MemberValue( "" MemberValue)*( "")?)? "}"
/ *注釈の種類。 * /
AnnotationTypeDeclaration :: = "@" "インターフェース" AnnotationTypeBody AnnotationTypeBody :: = "{"(AnnotationTypeMemberDeclaration)* "}" AnnotationTypeMemberDeclaration :: =修飾子(タイプ "(" ")"(のDefaultValue)? ";" | ClassOrInterfaceDeclaration | EnumDeclaration | AnnotationTypeDeclaration | FieldDeclaration) | ( ";") DefaultValue :: = "デフォルト" MemberValue` ここのから。また、彼のブログを参照してくださいポストするます。
Java言語の文法
他のタイプが先頭から連続して任意の行[注釈]:
Type: [Annotations] Identifier [TypeArguments] {. Identifier [TypeArguments]} {[]} [Annotations] BasicType
許可の注釈レベルの配列の宣言は、コンストラクタを削減や難読化を行える"{[]}"と"{[注釈][]}".(これを抽象化しましたとして、"BracketsOpt"第2版では"環太平洋[GJSB00].) 例えば:
Type:
[Annotations] Identifier [TypeArguments]{ . Identifier [TypeArguments]} {[Annotations] []}
[Annotations] BasicType
Also permit annotations on varargs (...):
FormalParameterDeclsRest:
VariableDeclaratorId [, FormalParameterDecls]
[Annotations] ... VariableDeclaratorId
注釈が表示され、受信機の種類を変える利用"FormalParameters"(全5箇所が、文法)"FormalParameters[注釈]".例えば:
VoidMethodDeclaratorRest: FormalParameters [Annotations] [throws QualifiedIdentifierList] ( MethodBody | ; )