// Flexer generator's input own lexer specification line-comment -> "//[^\n\r]+" flex-skip . block-comment -> "/\*(?ms:.)*?\*/" flex-skip . dot -> '\.' . literal-string -> `"` flex-esc-string . literal-raw -> "`" flex-string . literal-char -> "'" flex-string . terminal -> "[[:lower:]][[:alnum]_-]+" . epsilon -> "(?:epsilon|ε)" . arrow -> "(?:->|→)" . flexer-keyword -> "flex-skip|flex-string|flex-esc-string" . whitespace -> "[ \t\n\r]+" flex-skip . flexer-action -> `@{(?ms:.)*?}@` @{ // This is the rule action. @ { } @ }@ .