const _PEST_GRAMMAR_Rfc3501: &'static str = "streamed_response = { response ~ ANY* }\n\n// formal syntax from https://tools.ietf.org/html/rfc3501#section-9\naddr_adl = { nstring }\naddr_host = { nstring }\naddr_mailbox = { nstring }\naddr_name = { nstring }\naddress = { \"(\" ~ addr_name ~ sp ~ addr_adl ~ sp ~ addr_mailbox ~ sp ~ addr_host ~ \")\" }\nastring = @{ astring_char{1,} | string }\nastring_char = @{ atom_char | resp_specials }\natom = @{ atom_char{1,} }\natom_char = @{ !atom_specials ~ char }\natom_specials = @{ \"(\" | \")\" | \"{\" | sp | ctl | list_wildcards | quoted_specials | resp_specials }\nauth_type = { atom }\nbase64 = @{ (base64_char{4})* ~ base64_terminal }\nbase64_char = @{ alpha | digit | \"+\" | \"/\" }\nbase64_terminal = @{ (base64_char{2} ~ \"==\") | (base64_char{3} ~ \"=\") }\nbody = { \"(\" ~ (body_type_1part | body_type_mpart) ~ \")\" }\nbody_ext_1part = { body_fld_md5 ~ (sp ~ body_fld_dsp ~ (sp ~ body_fld_lang ~ (sp ~ body_fld_loc ~ (sp ~ body_extension)*)?)?)? }\nbody_ext_mpart = { body_fld_param ~ (sp ~ body_fld_dsp ~ (sp ~ body_fld_lang ~ (sp ~ body_fld_loc ~ (sp ~ body_extension)*)?)?)? }\nbody_extension = { nstring | number | \"(\" ~ body_extension ~ (sp ~ body_extension)* ~ \")\" }\nbody_fields = { body_fld_param ~ sp ~ body_fld_id ~ sp ~ body_fld_desc ~ sp ~ body_fld_enc ~ sp ~ body_fld_octets }\nbody_fld_desc = { nstring }\nbody_fld_dsp = { \"(\" ~ string ~ sp ~ body_fld_param ~ \")\" | nil }\nbody_fld_enc = { (dquote ~ (^\"7BIT\" | ^\"8BIT\" | ^\"BINARY\" | ^\"BASE64\" | ^\"QUOTED-PRINTABLE\") ~ dquote) | string }\nbody_fld_id = { nstring }\nbody_fld_lang = { nstring | \"(\" ~ string ~ (sp ~ string)* ~ \")\" }\nbody_fld_lines = { number }\nbody_fld_loc = { nstring }\nbody_fld_md5 = { nstring }\nbody_fld_octets = { number }\nbody_fld_param = { \"(\" ~ string ~ sp ~ string ~ (sp ~ string ~ sp ~ string)* ~ \")\" | nil}\nbody_type_1part = { (body_type_basic | body_type_msg | body_type_text) ~ (sp ~ body_ext_1part)? }\nbody_type_basic = { media_basic ~ sp ~ body_fields }\nbody_type_mpart = { body{1,} ~ sp ~ media_subtype ~ (sp ~ body_ext_mpart)? }\nbody_type_msg = { media_message ~ sp ~ body_fields ~ sp ~ envelope ~ sp ~ body ~ sp ~ body_fld_lines }\nbody_type_text = { media_text ~ sp ~ body_fields ~ sp ~ body_fld_lines }\ncapability = ${ ^\"AUTH=\" ~ auth_type | atom }\ncapability_data = { ^\"CAPABILITY\" ~ (sp ~ (\"IMAP4rev1\" ~ capability))* ~ sp ~ \"IMAP4rev1\" ~ (sp ~ capability)* }\nchar8 = @{ \'\\x01\'..\'\\xff\' }\ncontinue_req = { \"+\" ~ sp ~ (resp_text | base64) ~ crlf }\ndate_day_fixed = { (sp ~ digit) | digit{2} }\ndate_month = { \"Jan\" | \"Feb\" | \"Mar\" | \"Apr\" | \"May\" | \"Jun\" | \"Jul\" | \"Aug\" | \"Sep\" | \"Oct\" | \"Nov\" | \"Dec\" }\ndate_time = { dquote_ ~ date_day_fixed ~ \"-\" ~ date_month ~ \"-\" ~ date_year ~ sp ~ time ~ sp ~ zone ~ dquote_ }\ndate_year = @{ digit{4} }\ndigit_nz = @{ \'\\x31\'..\'\\x39\' }\nenv_address1 = { \"(\" ~ address ~ (sp? ~ address)* ~ \")\" }\nenv_bcc = { env_address1 | nil }\nenv_cc = { env_address1 | nil }\nenv_date = { nstring }\nenv_from = { env_address1 | nil }\nenv_in_reply_to = { nstring }\nenv_message_id = { nstring }\nenv_reply_to = { env_address1 | nil }\nenv_sender = { env_address1 | nil }\nenv_subject = { nstring }\nenv_to = { env_address1 | nil }\nenvelope = { \"(\" ~ env_date ~ sp ~ env_subject ~ sp ~ env_from ~ sp ~ env_sender ~ sp ~ env_reply_to ~ sp ~ env_to ~ sp ~ env_cc ~ sp ~ env_bcc ~ sp ~ env_in_reply_to ~ sp ~ env_message_id ~ \")\" }\nflag = { \"\\\\Answered\" | \"\\\\Flagged\" | \"\\\\Deleted\" | \"\\\\Seen\" | \"\\\\Draft\" | flag_keyword | flag_extension }\nflag_extension = @{ \"\\\\\" ~ atom }\nflag_fetch = { flag | flag_fetch_recent }\nflag_fetch_recent = { \"\\\\Recent\" }\nflag_keyword = @{ atom }\nflag_list = { \"(\" ~ (flag ~ (sp ~ flag)*)? ~ \")\" }\nflag_perm = { flag | \"\\\\*\" }\nheader_fld_name = { astring }\nheader_list = { \"(\" ~ header_fld_name ~ (sp ~ header_fld_name)* ~ \")\" }\nlist_wildcards = @{ \"%\" | \"*\" }\nmailbox = { ^\"INBOX\" | astring }\nmailbox_data = { mailbox_data_flags | mailbox_data_list | (^\"LSUB\" ~ sp ~ mailbox_list) | mailbox_data_search | (^\"STATUS\" ~ sp ~ mailbox ~ sp ~ ^\"(\" ~ status_att_list? ~ ^\")\") | mailbox_data_exists | mailbox_data_recent }\nmailbox_data_exists = { number ~ sp ~ ^\"EXISTS\" }\nmailbox_data_flags = { ^\"FLAGS\" ~ sp ~ flag_list }\nmailbox_data_list = { ^\"LIST\" ~ sp ~ mailbox_list }\nmailbox_data_recent = { number ~ sp ~ ^\"RECENT\" }\nmailbox_data_search = { ^\"SEARCH\" ~ (sp ~ nz_number)* }\nmailbox_list = { mailbox_list_flags ~ sp ~ mailbox_list_string ~ sp ~ mailbox }\nmailbox_list_flags = { \"(\" ~ mbx_list_flags* ~ \")\" }\nmailbox_list_string = ${ nstring }\nmbx_list_flags = { (mbx_list_oflag ~ sp)* ~ mbx_list_sflag ~ (sp ~ mbx_list_oflag)* | mbx_list_oflag ~ (sp ~ mbx_list_oflag)* }\nmbx_list_oflag = { \"\\\\NoInferiors\" | flag_extension }\nmbx_list_sflag = { \"\\\\NoSelect\" | \"\\\\Marked\" | \"\\\\Unmarked\" }\nmedia_basic = { ((dquote ~ (\"APPLICATION\" | \"AUDIO\" | \"IMAGE\" | \"MESSAGE\" | \"VIDEO\") ~ dquote) | string) ~ sp ~ media_subtype }\nmedia_message = { dquote ~ \"MESSAGE\" ~ dquote ~ sp ~ dquote ~ \"RFC822\" ~ dquote }\nmedia_subtype = { string }\nmedia_text = { dquote ~ \"TEXT\" ~ dquote ~ sp ~ media_subtype }\nmessage_data = { nz_number ~ sp ~ (message_data_expunge | message_data_fetch) }\nmessage_data_expunge = { ^\"EXPUNGE\" }\nmessage_data_fetch = { ^\"FETCH\" ~ sp ~ msg_att }\nmsg_att = { \"(\" ~ msg_att_dyn_or_stat ~ (sp ~ msg_att_dyn_or_stat)* ~ \")\" }\nmsg_att_dyn_or_stat = { msg_att_dynamic | msg_att_static }\nmsg_att_dynamic = { ^\"FLAGS\" ~ sp ~ \"(\" ~ (flag_fetch ~ (sp ~ flag_fetch)*)? ~ \")\" }\nmsg_att_static = { msg_att_static_envelope | msg_att_static_internaldate | (^\"RFC822\" ~ (^\".HEADER\" | ^\".TEXT\") ~ sp ~ nstring) | msg_att_static_rfc822_size | msg_att_static_body_structure | msg_att_static_body_section | msg_att_static_uid }\nmsg_att_static_body_section = { ^\"BODY\" ~ section ~ (\"<\" ~ number ~ \">\")? ~ sp ~ nstring }\nmsg_att_static_body_structure = { ^\"BODY\" ~ ^\"STRUCTURE\"? ~ sp ~ body }\nmsg_att_static_envelope = { ^\"ENVELOPE\" ~ sp ~ envelope }\nmsg_att_static_internaldate = { ^\"INTERNALDATE\" ~ sp ~ date_time }\nmsg_att_static_rfc822_size = { ^\"RFC822.SIZE\" ~ sp ~ number }\nmsg_att_static_uid = { ^\"UID\" ~ sp ~ uniqueid }\nnil = { ^\"NIL\" }\nnstring = { nil | string }\nnumber = @{ digit{1,} }\nnz_number = @{ digit_nz ~ digit* }\nquoted = @{ dquote ~ quoted_char* ~ dquote }\nquoted_char = @{ (!quoted_specials ~ char) | (\"\\\\\" ~ quoted_specials) }\nquoted_specials = @{ dquote | \"\\\\\" }\nresp_cond_bye = { ^\"BYE\" ~ sp ~ resp_text }\nresp_cond_state = { resp_status ~ sp ~ resp_text }\nresp_specials = @{ \"]\" }\nresp_status = { (^\"OK\" | ^\"NO\" | ^\"BAD\") }\nresp_text = { (\"[\" ~ resp_text_code ~ \"]\" ~ sp)? ~ text }\nresp_text_code = { ^\"ALERT\" | (^\"BADCHARSET\" ~ (sp ~ \"(\" ~ astring ~ (sp ~ astring)* ~ \")\")?) | capability_data | ^\"PARSE\" | resp_text_code_permanentflags | ^\"READ-ONLY\" | resp_text_code_readwrite | ^\"TRYCREATE\" | resp_text_code_uidnext | resp_text_code_uidvalidity | resp_text_code_unseen | resp_text_code_other }\nresp_text_code_atom = @{ (!\"]\" ~ text_char){1,} }\nresp_text_code_other = { (atom ~ (sp ~ resp_text_code_atom)?) }\nresp_text_code_permanentflags = { ^\"PERMANENTFLAGS\" ~ sp ~ \"(\" ~ (flag_perm ~ (sp ~ flag_perm)*)? ~ \")\" }\nresp_text_code_readwrite = { ^\"READ-WRITE\" }\nresp_text_code_uidnext = { ^\"UIDNEXT\" ~ sp ~ nz_number }\nresp_text_code_uidvalidity = { ^\"UIDVALIDITY\" ~ sp ~ nz_number }\nresp_text_code_unseen = { ^\"UNSEEN\" ~ sp ~ nz_number }\nresponse = { continue_req | response_data | response_done }\nresponse_data = { \"*\" ~ sp ~ (resp_cond_state | resp_cond_bye | mailbox_data | message_data | capability_data) ~ crlf }\nresponse_done = { response_tagged | response_fatal }\nresponse_fatal = { \"*\" ~ sp ~ resp_cond_bye ~ crlf }\nresponse_tagged = { tag ~ sp ~ resp_cond_state ~ crlf }\nsection = { \"[\" ~ section_spec? ~ \"]\" }\nsection_msgtext = { ^\"HEADER\" | (^\"HEADER.FIELDS\" ~ ^\".NOT\"? ~ sp ~ header_list) | ^\"TEXT\" }\nsection_part = { nz_number ~ (\".\" ~ nz_number)* }\nsection_spec = { section_msgtext | (section_part ~ (\".\" ~ section_text)?) }\nsection_text = { section_msgtext | \"MIME\" }\nstatus_att = { ^\"MESSAGES\" | ^\"RECENT\" | ^\"UIDNEXT\" | ^\"UIDVALIDITY\" | ^\"UNSEEN\" }\nstatus_att_list = { status_att ~ sp ~ number ~ (sp ~ status_att ~ sp ~ number)* }\nstring = ${ quoted | literal }\ntag = @{ tag_char{1,} }\ntag_char = @{ !\"+\" ~ astring_char }\ntext = @{ text_char{1,} }\ntext_char = @{ !cr ~ !lf ~ char }\ntime = @{ digit{2} ~ \":\" ~ digit{2} ~ \":\" ~ digit{2} }\nuniqueid = { nz_number }\nzone = @{ (\"+\" | \"-\") ~ digit{4} }\n\n// custom-implemented functions\nliteral = { #crate::parser::literal_internal }\nliteral_str = { #crate::parser::literal::noop }\n\n// core rules from https://tools.ietf.org/html/rfc2234#section-6.1\nalpha = @{ \'\\x41\'..\'\\x5a\' | \'\\x61\'..\'\\x7a\' }\nchar = @{ \'\\x01\'..\'\\x7f\' }\ncr = _{ \"\\x0d\" }\ncrlf = _{ cr ~ lf }\nctl = @{ \'\\x00\'..\'\\x1f\' | \"\\x7f\" }\ndigit = @{ \'\\x30\'..\'\\x39\' }\ndquote = @{ \"\\\"\" }\ndquote_ = _{ \"\\\"\" }\nlf = _{ \"\\x0a\" }\nsp = _{ \" \" }\n\n";