struct RecognizedCommand { char const* text; IrcCommand command; std::size_t min_args; std::size_t max_args; }; %% 001, IrcCommand::RPL_WELCOME, 2, 2 002, IrcCommand::RPL_YOURHOST, 2, 2 003, IrcCommand::RPL_CREATED, 2, 2 004, IrcCommand::RPL_MYINFO, 5, 6 005, IrcCommand::RPL_ISUPPORT, 2, 15 008, IrcCommand::RPL_SNOMASK, 3, 3 010, IrcCommand::RPL_REDIR, 4, 4 015, IrcCommand::RPL_MAP, 2, 2 017, IrcCommand::RPL_MAPEND, 2, 2 043, IrcCommand::RPL_SAVENICK, 3, 3 200, IrcCommand::RPL_TRACELINK, 5, 5 201, IrcCommand::RPL_TRACECONNECTING, 4, 4 202, IrcCommand::RPL_TRACEHANDSHAKE, 4, 4 203, IrcCommand::RPL_TRACEUNKNOWN, 6, 6 204, IrcCommand::RPL_TRACEOPERATOR, 7, 7 205, IrcCommand::RPL_TRACEUSER, 7, 7 206, IrcCommand::RPL_TRACESERVER, 8, 8 208, IrcCommand::RPL_TRACENEWTYPE, 4, 4 209, IrcCommand::RPL_TRACECLASS, 4, 4 211, IrcCommand::RPL_STATSLINKINFO, 8, 8 212, IrcCommand::RPL_STATSCOMMANDS, 5, 5 213, IrcCommand::RPL_STATSCLINE, 8, 8 215, IrcCommand::RPL_STATSILINE, 8, 8 216, IrcCommand::RPL_STATSKLINE, 6, 6 217, IrcCommand::RPL_STATSQLINE, 5, 5 218, IrcCommand::RPL_STATSYLINE, 10, 10 219, IrcCommand::RPL_ENDOFSTATS, 3, 3 220, IrcCommand::RPL_STATSPLINE, 6, 6 221, IrcCommand::RPL_UMODEIS, 2, 2 225, IrcCommand::RPL_STATSDLINE, 4, 4 241, IrcCommand::RPL_STATSLLINE, 7, 7 242, IrcCommand::RPL_STATSUPTIME, 2, 2 243, IrcCommand::RPL_STATSOLINE, 7, 7 244, IrcCommand::RPL_STATSHLINE, 7, 7 247, IrcCommand::RPL_STATSXLINE, 5, 5 248, IrcCommand::RPL_STATSULINE, 5, 5 249, IrcCommand::RPL_STATSDEBUG, 3, 3 250, IrcCommand::RPL_STATSCONN, 2, 2 251, IrcCommand::RPL_LUSERCLIENT, 2, 2 252, IrcCommand::RPL_LUSEROP, 3, 3 253, IrcCommand::RPL_LUSERUNKNOWN, 3, 3 254, IrcCommand::RPL_LUSERCHANNELS, 3, 3 255, IrcCommand::RPL_LUSERME, 2, 2 256, IrcCommand::RPL_ADMINME, 3, 3 257, IrcCommand::RPL_ADMINLOC1, 2, 2 258, IrcCommand::RPL_ADMINLOC2, 2, 2 259, IrcCommand::RPL_ADMINEMAIL, 2, 2 262, IrcCommand::RPL_ENDOFTRACE, 3, 3 263, IrcCommand::RPL_LOAD2HI, 3, 3 265, IrcCommand::RPL_LOCALUSERS, 4, 4 266, IrcCommand::RPL_GLOBALUSERS, 4, 4 270, IrcCommand::RPL_PRIVS, 3, 3 276, IrcCommand::RPL_WHOISCERTFP, 3, 3 281, IrcCommand::RPL_ACCEPTLIST, 1, 15 282, IrcCommand::RPL_ENDOFACCEPT, 2, 2 301, IrcCommand::RPL_AWAY, 3, 3 302, IrcCommand::RPL_USERHOST, 2, 2 303, IrcCommand::RPL_ISON, 2, 2 305, IrcCommand::RPL_UNAWAY, 2, 2 306, IrcCommand::RPL_NOWAWAY, 2, 2 310, IrcCommand::RPL_WHOISHELPOP, 3, 3 311, IrcCommand::RPL_WHOISUSER, 6, 6 312, IrcCommand::RPL_WHOISSERVER, 4, 4 313, IrcCommand::RPL_WHOISOPERATOR, 3, 3 314, IrcCommand::RPL_WHOWASUSER, 6, 6 369, IrcCommand::RPL_ENDOFWHOWAS, 3, 3 317, IrcCommand::RPL_WHOISIDLE, 5, 5 318, IrcCommand::RPL_ENDOFWHOIS, 3, 3 319, IrcCommand::RPL_WHOISCHANNELS, 3, 3 320, IrcCommand::RPL_WHOISSPECIAL, 3, 3 321, IrcCommand::RPL_LISTSTART, 3, 3 322, IrcCommand::RPL_LIST, 4, 4 323, IrcCommand::RPL_LISTEND, 2, 2 324, IrcCommand::RPL_CHANNELMODEIS, 3, 3 325, IrcCommand::RPL_CHANNELMLOCK, 4, 4 328, IrcCommand::RPL_CHANNELURL, 2, 2 329, IrcCommand::RPL_CREATIONTIME, 3, 3 330, IrcCommand::RPL_WHOISLOGGEDIN, 4, 4 331, IrcCommand::RPL_NOTOPIC, 3, 3 332, IrcCommand::RPL_TOPIC, 3, 3 333, IrcCommand::RPL_TOPICWHOTIME, 4, 4 338, IrcCommand::RPL_WHOISACTUALLY, 4, 4 341, IrcCommand::RPL_INVITING, 3, 3 346, IrcCommand::RPL_INVITELIST, 5, 5 347, IrcCommand::RPL_ENDOFINVITELIST, 3, 3 348, IrcCommand::RPL_EXCEPTLIST, 5, 5 349, IrcCommand::RPL_ENDOFEXCEPTLIST, 3, 3 351, IrcCommand::RPL_VERSION, 4, 4 352, IrcCommand::RPL_WHOREPLY, 8, 8 354, IrcCommand::RPL_WHOSPCRPL, 1, 15 315, IrcCommand::RPL_ENDOFWHO, 3, 3 353, IrcCommand::RPL_NAMREPLY, 4, 4 360, IrcCommand::RPL_WHOWASREAL, 3, 3 366, IrcCommand::RPL_ENDOFNAMES, 3, 3 362, IrcCommand::RPL_CLOSING, 3, 3 363, IrcCommand::RPL_CLOSEEND, 3, 3 364, IrcCommand::RPL_LINKS, 4, 4 365, IrcCommand::RPL_ENDOFLINKS, 3, 3 367, IrcCommand::RPL_BANLIST, 5, 5 368, IrcCommand::RPL_ENDOFBANLIST, 3, 3 371, IrcCommand::RPL_INFO, 2, 2 372, IrcCommand::RPL_MOTD, 2, 2 374, IrcCommand::RPL_ENDOFINFO, 2, 2 375, IrcCommand::RPL_MOTDSTART, 2, 2 376, IrcCommand::RPL_ENDOFMOTD, 2, 2 378, IrcCommand::RPL_WHOISHOST, 3, 3 381, IrcCommand::RPL_YOUREOPER, 2, 2 382, IrcCommand::RPL_REHASHING, 3, 3 386, IrcCommand::RPL_RSACHALLENGE, 2, 2 391, IrcCommand::RPL_TIME, 3, 3 396, IrcCommand::RPL_HOSTHIDDEN, 2, 2 401, IrcCommand::ERR_NOSUCHNICK, 3, 3 402, IrcCommand::ERR_NOSUCHSERVER, 3, 3 403, IrcCommand::ERR_NOSUCHCHANNEL, 3, 3 404, IrcCommand::ERR_CANNOTSENDTOCHAN, 3, 3 405, IrcCommand::ERR_TOOMANYCHANNELS, 3, 3 406, IrcCommand::ERR_WASNOSUCHNICK, 3, 3 407, IrcCommand::ERR_TOOMANYTARGETS, 3, 3 409, IrcCommand::ERR_NOORIGIN, 2, 2 410, IrcCommand::ERR_INVALIDCAPCMD, 3, 3 411, IrcCommand::ERR_NORECIPIENT, 2, 2 412, IrcCommand::ERR_NOTEXTTOSEND, 2, 2 413, IrcCommand::ERR_NOTOPLEVEL, 3, 3 414, IrcCommand::ERR_WILDTOPLEVEL, 3, 3 415, IrcCommand::ERR_MSGNEEDREGGEDNICK, 3, 3 416, IrcCommand::ERR_TOOMANYMATCHES, 3, 3 421, IrcCommand::ERR_UNKNOWNCOMMAND, 3, 3 422, IrcCommand::ERR_NOMOTD, 2, 2 431, IrcCommand::ERR_NONICKNAMEGIVEN, 2, 2 432, IrcCommand::ERR_ERRONEUSNICKNAME, 3, 3 433, IrcCommand::ERR_NICKNAMEINUSE, 3, 3 435, IrcCommand::ERR_BANNICKCHANGE, 3, 3 436, IrcCommand::ERR_NICKCOLLISION, 3, 3 437, IrcCommand::ERR_UNAVAILRESOURCE, 3, 3 438, IrcCommand::ERR_NICKTOOFAST, 4, 4 440, IrcCommand::ERR_SERVICESDOWN, 3, 3 441, IrcCommand::ERR_USERNOTINCHANNEL, 4, 4 442, IrcCommand::ERR_NOTONCHANNEL, 3, 3 443, IrcCommand::ERR_USERONCHANNEL, 4, 4 451, IrcCommand::ERR_NOTREGISTERED, 2, 2 456, IrcCommand::ERR_ACCEPTFULL, 2, 2 457, IrcCommand::ERR_ACCEPTEXIST, 3, 3 458, IrcCommand::ERR_ACCEPTNOT, 3, 3 461, IrcCommand::ERR_NEEDMOREPARAMS, 3, 3 462, IrcCommand::ERR_ALREADYREGISTRED, 2, 2 464, IrcCommand::ERR_PASSWDMISMATCH, 2, 2 465, IrcCommand::ERR_YOUREBANNEDCREEP, 2, 2 470, IrcCommand::ERR_LINKCHANNEL, 4, 4 471, IrcCommand::ERR_CHANNELISFULL, 3, 3 472, IrcCommand::ERR_UNKNOWNMODE, 3, 3 473, IrcCommand::ERR_INVITEONLYCHAN, 3, 3 474, IrcCommand::ERR_BANNEDFROMCHAN, 3, 3 475, IrcCommand::ERR_BADCHANNELKEY, 3, 3 477, IrcCommand::ERR_NEEDREGGEDNICK, 3, 3 478, IrcCommand::ERR_BANLISTFULL, 4, 4 479, IrcCommand::ERR_BADCHANNAME, 3, 3 480, IrcCommand::ERR_THROTTLE, 3, 3 481, IrcCommand::ERR_NOPRIVILEGES, 2, 2 482, IrcCommand::ERR_CHANOPRIVSNEEDED, 3, 3 483, IrcCommand::ERR_CANTKILLSERVER, 2, 2 484, IrcCommand::ERR_ISCHANSERVICE, 4, 4 486, IrcCommand::ERR_NONONREG, 3, 3 489, IrcCommand::ERR_VOICENEEDED, 3, 3 491, IrcCommand::ERR_NOOPERHOST, 2, 2 492, IrcCommand::ERR_CANNOTSENDTOUSER, 2, 2 494, IrcCommand::ERR_OWNMODE, 3, 3 501, IrcCommand::ERR_UMODEUNKNOWNFLAG, 2, 2 502, IrcCommand::ERR_USERSDONTMATCH, 2, 2 504, IrcCommand::ERR_USERNOTONSERV, 3, 3 513, IrcCommand::ERR_WRONGPONG, 2, 2 517, IrcCommand::ERR_DISABLED, 3, 3 524, IrcCommand::ERR_HELPNOTFOUND, 3, 3 670, IrcCommand::RPL_STARTTLS, 2, 2 671, IrcCommand::RPL_WHOISSECURE, 3, 3 691, IrcCommand::ERR_STARTTLS, 2, 2 702, IrcCommand::RPL_MODLIST, 5, 5 703, IrcCommand::RPL_ENDOFMODLIST, 2, 2 704, IrcCommand::RPL_HELPSTART, 3, 3 705, IrcCommand::RPL_HELPTXT, 3, 3 706, IrcCommand::RPL_ENDOFHELP, 3, 3 707, IrcCommand::ERR_TARGCHANGE, 3, 3 708, IrcCommand::RPL_ETRACEFULL, 10, 10 709, IrcCommand::RPL_ETRACE, 8, 8 710, IrcCommand::RPL_KNOCK, 4, 4 711, IrcCommand::RPL_KNOCKDLVR, 3, 3 712, IrcCommand::ERR_TOOMANYKNOCK, 3, 3 713, IrcCommand::ERR_CHANOPEN, 3, 3 714, IrcCommand::ERR_KNOCKONCHAN, 3, 3 715, IrcCommand::ERR_KNOCKDISABLED, 2, 2 716, IrcCommand::ERR_TARGUMODEG, 3, 3 717, IrcCommand::RPL_TARGNOTIFY, 3, 3 718, IrcCommand::RPL_UMODEGMSG, 4, 4 720, IrcCommand::RPL_OMOTDSTART, 2, 2 721, IrcCommand::RPL_OMOTD, 2, 2 722, IrcCommand::RPL_ENDOFOMOTD, 2, 2 723, IrcCommand::ERR_NOPRIVS, 3, 3 725, IrcCommand::RPL_TESTLINE, 5, 5 726, IrcCommand::RPL_NOTESTLINE, 3, 3 727, IrcCommand::RPL_TESTMASKGECOS, 6, 6 728, IrcCommand::RPL_QUIETLIST, 6, 6 729, IrcCommand::RPL_ENDOFQUIETLIS, 4, 4 730, IrcCommand::RPL_MONONLINE, 2, 2 731, IrcCommand::RPL_MONOFFLINE, 2, 2 732, IrcCommand::RPL_MONLIST, 2, 2 733, IrcCommand::RPL_ENDOFMONLIS, 2, 2 734, IrcCommand::ERR_MONLISTFULL, 4, 4 740, IrcCommand::RPL_RSACHALLENGE2, 2, 2 741, IrcCommand::RPL_ENDOFRSACHALLENGE2, 2, 2 742, IrcCommand::ERR_MLOCKRESTRICTE, 5, 5 743, IrcCommand::ERR_INVALIDBAN, 5, 5 750, IrcCommand::RPL_SCANMATCHED, 3, 3 751, IrcCommand::RPL_SCANUMODES, 8, 8 900, IrcCommand::RPL_LOGGEDIN, 4, 4 901, IrcCommand::RPL_LOGGEDOUT, 3, 3 902, IrcCommand::ERR_NICKLOCKED, 2, 2 903, IrcCommand::RPL_SASLSUCCESS, 2, 2 904, IrcCommand::ERR_SASLFAIL, 2, 2 905, IrcCommand::ERR_SASLTOOLONG, 2, 2 906, IrcCommand::ERR_SASLABORTED, 2, 2 907, IrcCommand::ERR_SASLALREADY, 2, 2 908, IrcCommand::RPL_SASLMECHS, 3, 3 ACCOUNT, IrcCommand::ACCOUNT, 1, 1 AUTHENTICATE, IrcCommand::AUTHENTICATE, 1, 1 AWAY, IrcCommand::AWAY, 0, 1 BATCH, IrcCommand::BATCH, 1, 15 BOUNCER, IrcCommand::BOUNCER, 1, 15 CAP, IrcCommand::CAP, 1, 15 CHGHOST, IrcCommand::CHGHOST, 2, 2 ERROR, IrcCommand::ERROR, 1, 1 INVITE, IrcCommand::INVITE, 2, 2 JOIN, IrcCommand::JOIN, 1, 3 KICK, IrcCommand::KICK, 3, 3 KILL, IrcCommand::KILL, 2, 2 MODE, IrcCommand::MODE, 2, 15 NICK, IrcCommand::NICK, 1, 1 NOTICE, IrcCommand::NOTICE, 2, 2 PART, IrcCommand::PART, 1, 2 PING, IrcCommand::PING, 1, 1 PONG, IrcCommand::PONG, 2, 2 PRIVMSG, IrcCommand::PRIVMSG, 2, 2 QUIT, IrcCommand::QUIT, 1, 1 SETNAME, IrcCommand::SETNAME, 1, 1 TAGMSG, IrcCommand::TAGMSG, 1, 1 TOPIC, IrcCommand::TOPIC, 2, 2 WALLOPS, IrcCommand::WALLOPS, 1, 1