rewrite parser with PEG.js instead of Jison