regenerated the parser
add dependencies to the Makefile so that it will (re)build the parser when necessary
minimal reorg of the grammar (lexical rules all together now once again) + regenerated the parser
Doc/readme language corrections for the range work by @Mingun
when using {code} in the predicates make sure to flag the predicate as active by incrementing the silentFail flag as usual: that way, any generic code (re)used in the predicate can correctly detect that it is executing inside a predicate rather than an action block.
minimal comment tweak
Use the `@annotations` grammar definition feature for defining which rules should cache their results and which should not (`@nocache`): these are not 'cuts' but serve a similar purpose: caching small work units and/or work units which are not expected to be revisited is a waste of time and code.

WARNING: only the recursive-descent parser (optimization: speed) benefits from this grammar spec option as the state machine (optimization: size) is applied to ALL rules and has to cache or not cache regardless; this could have been encoded into the generator to conditionally execute the cache store + check code per interpreted bytecoded rule, but I decided that was too much work for little benefit there.
tweaked the grammars to use the new @nocache rule annotation where applicable. (The JavaScript pegjs grammar would need more work to get faster; the current speed increase is only minimal, but than again it does not even complete in reasonable time without --cache on any medium sized sample input, while the --no-cache CSS and JSON grammars are faster than their --cache equivalent. At least the @no-cache annotation in the latter two improve the --cache parser performance noticably already.
add extra check for duplicate rules; I noticed while experimenting (and making a copypasta error) that PEG happily compiles rulesets with duplicate definitions; this is more difficult to spot for larger grammars so an automated check is called for.