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