Created
December 5, 2015 20:14
-
-
Save zoffixznet/306e95627aae4fa4487e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use v6; | |
# use Grammar::Tracer; | |
grammar IRC::Grammar:ver<1.001001> { | |
token TOP { <message>+ } | |
token SPACE { ' '+ } | |
token message { [':' <prefix> <SPACE> ]? <command> <params> \n } | |
token prefix { <servername> | <nick> ['!' <user>]? ['@' <host>]? } | |
token servername { <host> } | |
token nick { <letter> [ <letter> | <number> | <special> ]* } | |
token user { <-[\ \0\r\n]>+ } | |
token host { <-[\s!@]>+ } | |
token command { <letter>+ | <number>**3 } | |
token params { <SPACE> [ ':' <trailing> | <middle> <params> ]? } | |
token middle { <-[:\ \0\r\n]> <-[\ \0\r\n]>* } | |
token trailing { <-[\0\r\n]>* } | |
token letter { <[a..zA..Z]> } | |
token number { <[0..9]> } | |
token special { <[-\[\]\\`^{}]> } | |
} | |
say IRC::Grammar.parse(":verne.freenode.net 372 Perl6IRC :- running for their sustained support.\r\n"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment