给定一个由n个规则组成的集合,我需要一个antlr4规则来匹配任意的S子集,顺序如下:
示例:
给定S= {a,b},(n = 2)规则必须匹配
例如,"a b b“不能匹配。
用antlr4语法解析这种表达式是可能的吗?我的真实集有n= 6,所以列出语法中的所有组合似乎不是一个可能的选择!
发布于 2018-12-16 19:20:46
不,不能在ANTLR (或我所知道的任何其他解析器生成器)中定义规则的组合和/或排列。
您可以使用predicates to accomplish your goal,但这意味着向语法中添加特定于目标的代码:我只需解析任何a或b并在解析后验证结构(在自定义访问者/侦听器中)。
https://stackoverflow.com/questions/53804755
复制相似问题