我正在努力理解 ANTLR,我正在尝试匹配这句话:
name "some_name" module ....
语法文件看起来像这样:
swdFile : nameDecl module* EOF;
nameDecl: NAME DBL_QUOTE appName DBL_QUOTE;
appName: TEXT;
module: MODULE;
DBL_QUOTE : '\"';
NAME:'name';
MODULE:'module';
TEXT : ('a'..'z'|'A'..'Z')+ ;
这工作正常,但有一个我似乎无法理解的小故障。如果我尝试解析此文本,则会失败,因为它将引用的文本作为标记匹配:
name "module" module ...
这是为什么?我特别告诉它,引号之间的内容是纯文本,它应该与 TEXT 标记匹配。