20
我想忽略空格和新线与我的语法所以它们在PEG.js输出失踪。另外,括号内的文字应该返回到新的数组中。忽略空格与PEG.js
语法
start
= 'a'? sep+ ('cat'/'dog') sep* '(' sep* stmt_list sep* ')'
stmt_list
= exp: [a-zA-Z]+ { return new Array(exp.join('')) }
sep
= [' '\t\r\n]
测试用例
a dog(Harry)
输出
[
"a",
[
" "
],
"dog",
[],
"(",
[
" "
],
[
"Harry"
],
[
" "
],
")"
]
输出我想
[
"a",
"dog",
[
"Harry"
]
]
谢谢!只有一件事:试试'狗(哈利)'。该文章应该是可选的。将''a''(文章)中的'?'引入'article'(开始时)仍然会返回一个空字符串......这是否与PEG.js有关? – Matthias
我想也许让“开始”规则有“文章?”有助于。然后,“文章”规则本身可能只是'''sep *' – Pointy
然后它也允许'adog(Harry)'。无论如何,也许我正在使用错误的工具......我有一个xdot [语法](http://www.graphviz.org/content/dot-language)(xdot基于点),我想解析和画到画布。你知道还有其他节省时间的方法来评估文件的语法吗(除了编写我自己的解析器或使用[canviz]之类的thigs(http://code.google.com/p/canviz/)(没有足够的功能))? – Matthias