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, 5 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 205, IrcCommand::RPL_TRACEUSER 206, IrcCommand::RPL_TRACESERVER 208, IrcCommand::RPL_TRACENEWTYPE 209, IrcCommand::RPL_TRACECLASS 211, IrcCommand::RPL_STATSLINKINFO 212, IrcCommand::RPL_STATSCOMMANDS 213, IrcCommand::RPL_STATSCLINE 214, IrcCommand::RPL_STATSNLINE 215, IrcCommand::RPL_STATSILINE 216, IrcCommand::RPL_STATSKLINE 217, IrcCommand::RPL_STATSQLINE 218, IrcCommand::RPL_STATSYLINE 219, IrcCommand::RPL_ENDOFSTATS 220, IrcCommand::RPL_STATSPLINE 221, IrcCommand::RPL_UMODEIS, 2, 2 224, IrcCommand::RPL_STATSFLINE 225, IrcCommand::RPL_STATSDLINE 234, IrcCommand::RPL_SERVLIST 235, IrcCommand::RPL_SERVLISTEND 241, IrcCommand::RPL_STATSLLINE 242, IrcCommand::RPL_STATSUPTIME 243, IrcCommand::RPL_STATSOLINE 244, IrcCommand::RPL_STATSHLINE 245, IrcCommand::RPL_STATSSLINE 247, IrcCommand::RPL_STATSXLINE 248, IrcCommand::RPL_STATSULINE 249, IrcCommand::RPL_STATSDEBUG 250, IrcCommand::RPL_STATSCONN 251, IrcCommand::RPL_LUSERCLIENT 252, IrcCommand::RPL_LUSEROP 253, IrcCommand::RPL_LUSERUNKNOWN 254, IrcCommand::RPL_LUSERCHANNELS 255, IrcCommand::RPL_LUSERME 256, IrcCommand::RPL_ADMINME 257, IrcCommand::RPL_ADMINLOC1 258, IrcCommand::RPL_ADMINLOC2 259, IrcCommand::RPL_ADMINEMAIL 261, IrcCommand::RPL_TRACELOG 262, IrcCommand::RPL_ENDOFTRACE, 3, 3 263, IrcCommand::RPL_LOAD2HI 265, IrcCommand::RPL_LOCALUSERS 266, IrcCommand::RPL_GLOBALUSERS 270, IrcCommand::RPL_PRIVS 276, IrcCommand::RPL_WHOISCERTFP 281, IrcCommand::RPL_ACCEPTLIST 282, IrcCommand::RPL_ENDOFACCEPT 300, IrcCommand::RPL_NONE 301, IrcCommand::RPL_AWAY 302, IrcCommand::RPL_USERHOST 303, IrcCommand::RPL_ISON 304, IrcCommand::RPL_TEXT 305, IrcCommand::RPL_UNAWAY 306, IrcCommand::RPL_NOWAWAY 310, IrcCommand::RPL_WHOISHELPOP 311, IrcCommand::RPL_WHOISUSER 312, IrcCommand::RPL_WHOISSERVER 313, IrcCommand::RPL_WHOISOPERATOR 314, IrcCommand::RPL_WHOWASUSER 369, IrcCommand::RPL_ENDOFWHOWAS 316, IrcCommand::RPL_WHOISCHANOP 317, IrcCommand::RPL_WHOISIDLE 318, IrcCommand::RPL_ENDOFWHOIS 319, IrcCommand::RPL_WHOISCHANNELS 320, IrcCommand::RPL_WHOISSPECIAL 321, IrcCommand::RPL_LISTSTART 322, IrcCommand::RPL_LIST 323, IrcCommand::RPL_LISTEND 324, IrcCommand::RPL_CHANNELMODEIS 325, IrcCommand::RPL_CHANNELMLOCK 328, IrcCommand::RPL_CHANNELURL 329, IrcCommand::RPL_CREATIONTIME 330, IrcCommand::RPL_WHOISLOGGEDIN 331, IrcCommand::RPL_NOTOPIC 332, IrcCommand::RPL_TOPIC, 3, 3 333, IrcCommand::RPL_TOPICWHOTIME, 4, 4 337, IrcCommand::RPL_WHOISTEXT 338, IrcCommand::RPL_WHOISACTUALLY 341, IrcCommand::RPL_INVITING 342, IrcCommand::RPL_SUMMONING 346, IrcCommand::RPL_INVITELIST 347, IrcCommand::RPL_ENDOFINVITELIST 348, IrcCommand::RPL_EXCEPTLIST 349, IrcCommand::RPL_ENDOFEXCEPTLIST 351, IrcCommand::RPL_VERSION 352, IrcCommand::RPL_WHOREPLY 354, IrcCommand::RPL_WHOSPCRPL 315, IrcCommand::RPL_ENDOFWHO 353, IrcCommand::RPL_NAMREPLY 360, IrcCommand::RPL_WHOWASREAL 366, IrcCommand::RPL_ENDOFNAMES 361, IrcCommand::RPL_KILLDONE 362, IrcCommand::RPL_CLOSING 363, IrcCommand::RPL_CLOSEEND 364, IrcCommand::RPL_LINKS 365, IrcCommand::RPL_ENDOFLINKS 367, IrcCommand::RPL_BANLIST 368, IrcCommand::RPL_ENDOFBANLIST 371, IrcCommand::RPL_INFO 372, IrcCommand::RPL_MOTD 373, IrcCommand::RPL_INFOSTART 374, IrcCommand::RPL_ENDOFINFO 375, IrcCommand::RPL_MOTDSTART 376, IrcCommand::RPL_ENDOFMOTD 378, IrcCommand::RPL_WHOISHOST 381, IrcCommand::RPL_YOUREOPER 382, IrcCommand::RPL_REHASHING 384, IrcCommand::RPL_MYPORTIS 385, IrcCommand::RPL_NOTOPERANYMORE 386, IrcCommand::RPL_RSACHALLENGE 391, IrcCommand::RPL_TIME 392, IrcCommand::RPL_USERSSTART 393, IrcCommand::RPL_USERS 394, IrcCommand::RPL_ENDOFUSERS 395, IrcCommand::RPL_NOUSERS 396, IrcCommand::RPL_HOSTHIDDEN 401, IrcCommand::ERR_NOSUCHNICK, 3, 3 402, IrcCommand::ERR_NOSUCHSERVER 403, IrcCommand::ERR_NOSUCHCHANNEL 404, IrcCommand::ERR_CANNOTSENDTOCHAN 405, IrcCommand::ERR_TOOMANYCHANNELS 406, IrcCommand::ERR_WASNOSUCHNICK 407, IrcCommand::ERR_TOOMANYTARGETS 409, IrcCommand::ERR_NOORIGIN 410, IrcCommand::ERR_INVALIDCAPCMD 411, IrcCommand::ERR_NORECIPIENT 412, IrcCommand::ERR_NOTEXTTOSEND 413, IrcCommand::ERR_NOTOPLEVEL 414, IrcCommand::ERR_WILDTOPLEVEL 415, IrcCommand::ERR_MSGNEEDREGGEDNICK 416, IrcCommand::ERR_TOOMANYMATCHES 421, IrcCommand::ERR_UNKNOWNCOMMAND 422, IrcCommand::ERR_NOMOTD, 2, 2 423, IrcCommand::ERR_NOADMININFO 424, IrcCommand::ERR_FILEERROR 431, IrcCommand::ERR_NONICKNAMEGIVEN 432, IrcCommand::ERR_ERRONEUSNICKNAME 433, IrcCommand::ERR_NICKNAMEINUSE 435, IrcCommand::ERR_BANNICKCHANGE 436, IrcCommand::ERR_NICKCOLLISION 437, IrcCommand::ERR_UNAVAILRESOURCE 438, IrcCommand::ERR_NICKTOOFAST 440, IrcCommand::ERR_SERVICESDOWN 441, IrcCommand::ERR_USERNOTINCHANNEL 442, IrcCommand::ERR_NOTONCHANNEL 443, IrcCommand::ERR_USERONCHANNEL 444, IrcCommand::ERR_NOLOGIN 445, IrcCommand::ERR_SUMMONDISABLED 446, IrcCommand::ERR_USERSDISABLED 451, IrcCommand::ERR_NOTREGISTERED 456, IrcCommand::ERR_ACCEPTFULL 457, IrcCommand::ERR_ACCEPTEXIST 458, IrcCommand::ERR_ACCEPTNOT 461, IrcCommand::ERR_NEEDMOREPARAMS 462, IrcCommand::ERR_ALREADYREGISTRED 463, IrcCommand::ERR_NOPERMFORHOST 464, IrcCommand::ERR_PASSWDMISMATCH 465, IrcCommand::ERR_YOUREBANNEDCREEP 466, IrcCommand::ERR_YOUWILLBEBANNED 467, IrcCommand::ERR_KEYSET 470, IrcCommand::ERR_LINKCHANNEL 471, IrcCommand::ERR_CHANNELISFULL 472, IrcCommand::ERR_UNKNOWNMODE 473, IrcCommand::ERR_INVITEONLYCHAN 474, IrcCommand::ERR_BANNEDFROMCHAN 475, IrcCommand::ERR_BADCHANNELKEY 476, IrcCommand::ERR_BADCHANMASK 477, IrcCommand::ERR_NEEDREGGEDNICK 478, IrcCommand::ERR_BANLISTFULL 479, IrcCommand::ERR_BADCHANNAME 480, IrcCommand::ERR_THROTTLE 481, IrcCommand::ERR_NOPRIVILEGES 482, IrcCommand::ERR_CHANOPRIVSNEEDED 483, IrcCommand::ERR_CANTKILLSERVER 484, IrcCommand::ERR_ISCHANSERVICE 485, IrcCommand::ERR_BANNEDNICK 486, IrcCommand::ERR_NONONREG 489, IrcCommand::ERR_VOICENEEDED 491, IrcCommand::ERR_NOOPERHOST 492, IrcCommand::ERR_CANNOTSENDTOUSER 494, IrcCommand::ERR_OWNMODE 501, IrcCommand::ERR_UMODEUNKNOWNFLAG 502, IrcCommand::ERR_USERSDONTMATCH 503, IrcCommand::ERR_GHOSTEDCLIENT 504, IrcCommand::ERR_USERNOTONSERV 513, IrcCommand::ERR_WRONGPONG 517, IrcCommand::ERR_DISABLED 524, IrcCommand::ERR_HELPNOTFOUND 670, IrcCommand::RPL_STARTTLS 671, IrcCommand::RPL_WHOISSECURE 691, IrcCommand::ERR_STARTTLS 702, IrcCommand::RPL_MODLIST 703, IrcCommand::RPL_ENDOFMODLIST 704, IrcCommand::RPL_HELPSTART 705, IrcCommand::RPL_HELPTXT 706, IrcCommand::RPL_ENDOFHELP 707, IrcCommand::ERR_TARGCHANGE 708, IrcCommand::RPL_ETRACEFULL, 10, 10 709, IrcCommand::RPL_ETRACE 710, IrcCommand::RPL_KNOCK 711, IrcCommand::RPL_KNOCKDLVR 712, IrcCommand::ERR_TOOMANYKNOCK 713, IrcCommand::ERR_CHANOPEN 714, IrcCommand::ERR_KNOCKONCHAN 715, IrcCommand::ERR_KNOCKDISABLED 716, IrcCommand::ERR_TARGUMODEG 717, IrcCommand::RPL_TARGNOTIFY 718, IrcCommand::RPL_UMODEGMSG 720, IrcCommand::RPL_OMOTDSTART 721, IrcCommand::RPL_OMOTD 722, IrcCommand::RPL_ENDOFOMOTD 723, IrcCommand::ERR_NOPRIVS 724, IrcCommand::RPL_TESTMASK 725, IrcCommand::RPL_TESTLINE 726, IrcCommand::RPL_NOTESTLINE 727, IrcCommand::RPL_TESTMASKGECO 728, IrcCommand::RPL_QUIETLIST 729, IrcCommand::RPL_ENDOFQUIETLIS 730, IrcCommand::RPL_MONONLINE 731, IrcCommand::RPL_MONOFFLINE 732, IrcCommand::RPL_MONLIST 733, IrcCommand::RPL_ENDOFMONLIS 734, IrcCommand::ERR_MONLISTFULL 740, IrcCommand::RPL_RSACHALLENGE2 741, IrcCommand::RPL_ENDOFRSACHALLENGE2 742, IrcCommand::ERR_MLOCKRESTRICTE 743, IrcCommand::ERR_INVALIDBAN 744, IrcCommand::ERR_TOPICLOCK 750, IrcCommand::RPL_SCANMATCHED 751, IrcCommand::RPL_SCANUMODES 900, IrcCommand::RPL_LOGGEDIN 901, IrcCommand::RPL_LOGGEDOUT 902, IrcCommand::ERR_NICKLOCKED 903, IrcCommand::RPL_SASLSUCCESS 904, IrcCommand::ERR_SASLFAIL 905, IrcCommand::ERR_SASLTOOLONG 906, IrcCommand::ERR_SASLABORTED 907, IrcCommand::ERR_SASLALREADY 908, IrcCommand::RPL_SASLMECHS ACCOUNT, IrcCommand::ACCOUNT, 1, 1 AUTHENTICATE, IrcCommand::AUTHENTICATE, 1, 1 AWAY, IrcCommand::AWAY, 0, 1 BATCH, IrcCommand::BATCH BOUNCER, IrcCommand::BOUNCER CAP, IrcCommand::CAP, 1, 15 CHGHOST, IrcCommand::CHGHOST, 2, 2 ERROR, IrcCommand::ERROR, 1, 1 JOIN, IrcCommand::JOIN, 1, 3 KICK, IrcCommand::KICK, 3, 3 MODE, IrcCommand::MODE, 2, 15 NICK, IrcCommand::NICK, 1, 1 NOTICE, IrcCommand::NOTICE, 2, 2 PART, IrcCommand::PART, 2, 2 PING, IrcCommand::PING, 1, 1 PRIVMSG, IrcCommand::PRIVMSG, 2, 2 QUIT, IrcCommand::QUIT, 1, 1 SETNAME, IrcCommand::SETNAME, 1, 1 TOPIC, IrcCommand::TOPIC, 2, 2