JavaScript ファイル内の 1 つの特定の (自家製の) JavaDoc タグを解析しようとしていますが、これを実現する方法を理解するのに苦労しています。Antlr は、以下に記載されているように不平を言っています。
jsDocComment
: '/**' (importJsDocCommand | ~('*/'))* '*/' <== See note 1
;
importJsDocCommand
: '@import' gav
;
gav
: gavGroup ':' gavArtifact
-> ^(IMPORT gavGroup gavArtifact)
;
gavGroup
: gavIdentifier
;
gavArtifact
: gavIdentifier
;
gavIdentifier
: ('a'..'z'|'A'..'Z') ('a'..'z'|'A'..'Z'|'0'..'9'|'_'|'-'|'.')* <== See note 2
;
注 1: 次の選択肢は決して一致しません: 1
注 2: 決定は、複数の選択肢 1、2 を使用して「'_'..'.'」などの入力と一致する可能性があります。その結果、その入力に対して選択肢 2 が無効になりました。
ここに私が解析しようとしているものがあります:
/** a */
/** @something */
/** @import com.jquery:jquery */
「IMPORT」という名前の AST ツリー要素の下に作成された @import ステートメント (その Maven group:artifact 値とともに) だけで、すべての行が正常に解析されるはずです。
ご協力ありがとうございます。