Antlr4 使路径和路径元素明确

Antlr4 使路径和路径元素明确,antlr4,Antlr4,在我的文本文件中,我可以有路径元素(如a)和路径(如a.b.c)。path和path元素可能是不明确的,这让我很头疼 如果我有这样的lexer元素 路径:路径元素('.'路径元素)*; 路径元素:[a-zA-Z_uu][a-zA-Z0-9_uu]*; 我有原始文本 dir:a 路径1:a.b.c 路径2:a 如果我对这两个都使用PATH,那么它将工作,但如果dir具有分段路径,它将不会标记错误 如果我交换lexer项的顺序,并对dir使用PATH\u元素,对pathX使用PATH,那么前两个

在我的文本文件中,我可以有路径元素(如
a
)和路径(如
a.b.c
)。path和path元素可能是不明确的,这让我很头疼

如果我有这样的lexer元素

路径:路径元素('.'路径元素)*; 路径元素:[a-zA-Z_uu][a-zA-Z0-9_uu]*; 我有原始文本

dir:a
路径1:a.b.c
路径2:a
如果我对这两个都使用PATH,那么它将工作,但如果
dir
具有分段路径,它将不会标记错误

如果我交换lexer项的顺序,并对
dir
使用
PATH\u元素
,对
pathX
使用
PATH
,那么前两个将正常工作,但当它预期
PATH
时,
path2
将匹配
PATH\u元素


如何实现这一点?

为什么要获取
目录的
路径作为结果是一个问题?您可以通过检查
PATHContext
实例中
PATH\u element()
成员的大小来检查它是否包含多个元素。我不认为这是个问题,但它似乎不雅观。我可能最终会得到许多相当通用的“标识符”标记,其样式为
[a-zA-Z0-9!]*
,始终使用
路径
将是一件痛苦的事情,之后必须消除歧义。