diff options
author | Zoffix Znet <zoffixznet@users.noreply.github.com> | 2016-07-26 08:50:02 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-26 08:50:02 -0400 |
commit | e0478c07e2096d85e20764c08c83a3d16c002e94 (patch) | |
tree | 592510005886adaadb49848d289c5c712279ecee /lib/IRC/Client/Grammar.pm6 | |
parent | e997c1b0b5ad796425abfc9f81b91947357172ce (diff) | |
parent | cc19189ff6b74bea5211d521a59dbff0c71a0749 (diff) |
Merge Rewrite 2.0 version into master
Old version should not be used anymore and 2.0 is ready to go, sans some bugs
Diffstat (limited to 'lib/IRC/Client/Grammar.pm6')
-rw-r--r-- | lib/IRC/Client/Grammar.pm6 | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/IRC/Client/Grammar.pm6 b/lib/IRC/Client/Grammar.pm6 new file mode 100644 index 0000000..feec9fd --- /dev/null +++ b/lib/IRC/Client/Grammar.pm6 @@ -0,0 +1,21 @@ +unit grammar IRC::Client::Grammar; +token TOP { <message>+ <left-overs> } +token left-overs { \N* } +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 { <-[\ \x[0]\r\n]>+? <before [<SPACE> | '@']>} + token host { <-[\s!@]>+ } + token command { <letter>+ | <number>**3 } + token params { <SPACE>* [ ':' <trailing> | <middle> <params> ]? } + token middle { <-[:\ \x[0]\r\n]> <-[\ \x[0]\r\n]>* } + token trailing { <-[\x[0]\r\n]>* } + + token letter { <[a..zA..Z]> } + token number { <[0..9]> } + token special { <[-_\[\]\\`^{}]> } |