在我的文本文件中,我可以同时拥有路径元素(例如a
)和路径(例如a.b.c
)。路径和路径元素可能模棱两可的事实让我头疼。
如果我有这样的词法分析器元素
PATH : PATH_ELEMENT('.'PATH_ELEMENT)* ;
PATH_ELEMENT : [a-zA-Z_][a-zA-Z0-9_]* ;
我有原始文本
dir : a
path1 : a.b.c
path2 : a
如果我都使用PATH,那么它将起作用,但是如果dir
具有分段路径,它将不会标记错误。
如果我交换词法分析器项目的顺序,并为PATH_ELEMENT
使用dir
和为PATH
使用pathX
,那么前两个将可以正常工作,但随后{{1} }在期望path2
时将与PATH_ELEMENT
相匹配。
我该如何实现?