Ignore whitespace with 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"
   ]
]

19
задан Matthias 24 November 2011 в 12:37
поделиться