unit grammar IRC::Client::Grammar; token TOP { + } token left-overs { \N* } token SPACE { ' '+ } token message { [':' ]? \n } token prefix { [ || ['!' ]? ['@' ]? ] > } token servername { } token nick { [ | | ]* } token user { <-[\ \x[0]\r\n]>+? | '@']>} token host { <-[\s!@]>+ } token command { + | **3 } token 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 { <[-_\[\]\\`^{}]> }