antlr4 令牌识别错误:'$'

antlr4 token recognition error at: '$'

正在尝试为 PowerScript 语言构建语法。我将语言分成几个部分,除了简单的 headers 之外,一切似乎都在工作。似乎无法识别 $ 符号。谁能帮我一点忙? (我只是复制我正在尝试的小例子)

grammar PowerScript;

compilationUnit :   Header EOF;

fragment 
Header  : ID '.' ID;

ID : [a-zA-Z0-9$_]+ ;

测试文件仅包含:

$PBExportHeader$n_logversion.sru

谢谢

compilationUnit 规则是解析器规则。解析器规则不能引用词法分析器片段。只需删除 fragment 限定符即可使 Header 成为正确的词法分析器规则。

更新

Antlr4 完全支持 Unicode。只包含标准 Unicode 编码形式的字符:

ID : ( [a-zA-Z0-9$_] | '\uD83D\uDCB2' )+ ; // Unicode heavy Dollar sign