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

Reply via email to