提问人:Byoungho Son 提问时间:6/21/2023 最后编辑:Byoungho Son 更新时间:6/21/2023 访问量:15
解决语法列表的解析歧义问题
resolving parsing ambiguity for syntactic lists
问:
我正在使用 kframework 解析 promela 代码,并在以下语法中遇到歧义:(即两者 和 是带有分隔符的语法列表Sequence
DeclLst
;
)
Sequence ::= Step ; Sequence
| Step
Step ::= ...
| DeclLst
DeclLst ::= OneDecl ; DeclLst
| OneDecl
尝试分析以下代码片段时,会出现歧义:
int a;
int b
我的解析器抱怨此代码可以解析为
- 两个 s 各为 一个 ,或
Step
OneDecl
- 一个本身就是一个
Step
DeclLst
显然,核心问题是两个句法列表(即 和 ) 共享相同的分隔符。Sequence
DeclLst
;
我已经搜索了这种歧义问题,但我能找到的只是关于关联性或运算符优先级问题,这似乎不太相关。
谁能启发我如何在语法上解决这个问题? (甚至更好,使用 kframework 特定的解决方案)
答: 暂无答案
评论