为什么pegjs无法处理空白规则""*
Why does pegjs fail to process the whitespace rule " "*
以下简单的pegjs语法运行良好:
start
= sentence
sentence
= word ws sentence
/ word
word
= [a-z]*
ws
= " "
可在http://jsfiddle.net/4V3Zt/。留声机也可以粘贴到http://pegjs.majda.cz/online。
如果我更改ws规则以允许空白任意空间:
ws
= " "* // add an asterisk to allow " ", " ", " ", ...
解析失败,引发最大调用堆栈异常。(如果使用jsfiddle,您可以在浏览器工具中看到异常。该异常也出现在node.js环境中,因此它肯定与pegjs有关)。
此ws规则中的*有什么问题
使用+
而不是*
(对于word
也是如此)。
*
可以匹配空字符串;+
至少需要一个实例。
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 用Javascript修改内部标记的CSS规则
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 如何禁用和启用css规则
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- "工具提示"jQuery插件坏了
- Javascript.替换元素“<termref/>"用规则的“;文本”;
- 为什么pegjs无法处理空白规则""*
- 如何使用jquery来更改"!“重要”;规则