# see for example: # - http://textx.github.io/Arpeggio/ # - https://nim-lang.org/docs/pegs.html # - https://github.com/erikrose/parsimonious # can't handle parsimonious-style regex while ~ is a cut operator ---input--- ~"regex" i"insensitive" "multimod"ilx ("not modified") ---tokens--- '~' Operator '"regex"' Literal.String.Double ' ' Text 'i"insensitive"' Literal.String.Double ' ' Text '"multimod"ilx' Literal.String.Double ' ' Text '(' Punctuation '"not modified"' Literal.String.Double ')' Punctuation '\n' Text.Whitespace