peg - 具有任意数量限定符的 PEG 解析声明
问题描述
我想解析例如:
const unsigned int varname;
其中限定符的数量是未知的,限定符关键字的列表也是未知的(因为可以使用 引入新的关键字using
)。
但是使用 PEG 语法
declaration <- qualifier* varname ';'
qualifier <- identifier
varname <- identifier
不起作用,因为 qualifier* 使用变量名称,因为它匹配。有没有办法做到这一点,还是我必须在缩减规则中手动提取最后一个标识符?
解决方案
好,我知道了。
declaration <- qualifier* varname ';'
qualifier <- !varname identifier
varname <- identifier &';'
identifier <- [a-zA-Z_] [a-zA-Z_0-9]* ws
ws <- ' '*
推荐阅读
- python-3.x - 我运行以下代码,并希望从列表中的下面链接中获取所有单词,而不重复任何单词。如何判断一个词是否唯一?
- css - 为什么我的 Bootstrap 5 悬停类不起作用?
- r - 您可以为网络动态时间可视化定义离散时间片吗?
- reactjs - 为什么嵌入式组件不会在 React 中重新渲染?
- php - Postgresql:计算每个投资者每天的总投资份额
- sharepoint - 为 Sharepoint 文档添加自定义操作的最佳方法是什么?
- r - 删除有多个零的列
- reactjs - 带有谷歌地图对象的 useState 行为不符合预期
- python - 如果输入具有相似的值,我如何从中返回多个结果
- python - python - 如何使用python变量限制十进制数?