diff options
author | Zoffix Znet <cpan@zoffix.com> | 2016-05-19 19:49:39 -0400 |
---|---|---|
committer | Zoffix Znet <cpan@zoffix.com> | 2016-05-19 19:49:39 -0400 |
commit | 3f65d48264430428a2165f6a9f5a4e16f823f6b8 (patch) | |
tree | 6da1f46181c3070b3eeb4ede56c3cba3623d0258 /lib/old-IRC/Grammar.pm6 | |
parent | e997c1b0b5ad796425abfc9f81b91947357172ce (diff) |
Start new design docs
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 { <[-_\[\]\\`^{}]> } |