我试图在我的 JavaScript 文件中解析一个特定的(本地开发的)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 组:工件值)。
感谢你的协助。