Allison admirably summarized:
rule:
regex:
token:
skip:
- We keep :words as shorthand for :skip(/<ws>/)
- And :skip is shorthand for :skip(/<skip>/)
...where <skip> defaults to <ws>, but is distinct from it (i.e. it can be
redefined independently).
- To change skipping behavior: a) override <skip> in your grammar, b)
set :skip(/.../) on an individual rule, or c) set 'is skip(/.../)' on a
grammar
- <ws> is optional whitespace,
Not quite. <ws> is semi-optional whitespace. More precisely, it's not optional
between two identifier characters:
token ws { <after \w> \s+ <before \w>
| <after \w> \s* <before \W>
| <after \W> \s*
}
> following skippy behavior (and it always behaves the same no matter
> what the current :skip pattern is)
Damian