use ES6 default arguments
support exceptions throws in the parser which are not PEG.js exceptions
use repeating sequences to get the expected left-associatifity of operators
compactify the code