diff options
Diffstat (limited to 'lib/old-IRC/Grammar.pm6')
-rw-r--r-- | lib/old-IRC/Grammar.pm6 | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/old-IRC/Grammar.pm6 b/lib/old-IRC/Grammar.pm6 new file mode 100644 index 0000000..c05322c --- /dev/null +++ b/lib/old-IRC/Grammar.pm6 @@ -0,0 +1,20 @@ +unit grammar IRC::Grammar; +token TOP { <message>+ } +token SPACE { ' '+ } +token message { [':' <prefix> <SPACE> ]? <command> <params> \n } + token prefix { + [ <servername> || <nick> ['!' <user>]? ['@' <host>]? ] + <before <SPACE>> + } + token servername { <host> } + token nick { <letter> [ <letter> | <number> | <special> ]* } + token user { <-[\ \x0\r\n]>+? <before [<SPACE> | '@']>} + token host { <-[\s!@]>+ } + token command { <letter>+ | <number>**3 } + token params { <SPACE>* [ ':' <trailing> | <middle> <params> ]? } + token middle { <-[:\ \x0\r\n]> <-[\ \x0\r\n]>* } + token trailing { <-[\x0\r\n]>* } + + token letter { <[a..zA..Z]> } + token number { <[0..9]> } + token special { <[-_\[\]\\`^{}]> } |