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!]*
,始终使用路径
将是一件痛苦的事情,之后必须消除歧义。