unit module IUtils::Regexes; my token type { 'test' | 'bench' } my token output-type { '()' | 'Bool' | 'Either' } my token comment-start { \- \- } my token flag { \@ \@ <type> } my token name { <[\w \-]>+ } my token test-name { \V+ } my token comment-line { \h* <&comment-start> \V* \v } my regex flagged-expression is export { \h* <&comment-start> \h* <flag> \h* <test-name> \V* \v <comment-line>* \h* <expression-name=&name> \h+ \: \h+ 'IO' \h+ <output-type> \V* \v } my regex module-name is export { 'module' \h* $<name>=(\S+) }