Module: Butler::IRC::Parser::Expressions

Defined in:
lib/butler/irc/parser.rb

Overview

RFC 2812, Parser itself uses a simplified matching

Constant Summary collapse

Special =
/[\[\]\\`_^{|}]/
Letter =
/[A-Za-z]/
Hex =
/[\dA-Fa-f]/
ChannelID =
/[A-Z\d]{5}/
Chanstring =
/[^\x00\x07\x10\x0D\x20,:]/
Channel =
/(?:[#+&]|!#{ChannelID})#{Chanstring}(?::#{Chanstring})?/
User =
/[^\x00\x10\x0D\x20@]/
Nick =
/[A-Za-z\[\]\\`_^{|}][A-Za-z\d\[\]\\`_^{|}-]*/
Command =
/[A-Za-z]+|\d{3}/
IP4addr =
/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
IP6addr =
/[\dA-Fa-f](?::[\dA-Fa-f]){7}|0:0:0:0:0:(?:0|[Ff]{4}):#{IP4addr}/
Hostaddr =
/#{IP4addr}|#{IP6addr}/
Shortname =
/[A-Za-z0-9][A-Za-z0-9-]*/
Hostname =
/#{Shortname}(?:\.#{Shortname})*/
Host =
/#{Hostname}|#{Hostaddr}/
Prefix =
/#{Hostname}|#{Nick}(?:(?:!#{User})?@#{Host})?/
Params =

 FIXME

/.*/
Message =
/(:#{Prefix} )?#{Command}(#{Params})?/