Module MrMime_msgID.Decoder

module Decoder: sig .. end

val p_msg_id : MrMime_msgID.msg_id MrMime_parser.t
See RFC5322 ยง 3.6.4 and RFC822 4.1:

      dtext           =   %d33-90 /          ; Printable US-ASCII
                          %d94-126 /         ;  characters not including
                          obs-dtext          ;  "[""]"or "\\"
      obs-dtext       =   obs-NO-WS-CTL / quoted-pair

      msg-id          =   [CFWS"<" id-left "@" id-right ">" [CFWS]
      id-left         =   dot-atom-text / obs-id-left
      id-right        =   dot-atom-text / no-fold-literal / obs-id-right

      no-fold-literal =   "[" *dtext "]"
      dot-atom-text   =   1*atext *("." 1*atext)

      local-part      =   dot-atom / quoted-string / obs-local-part

      domain          =   dot-atom / domain-literal / obs-domain
      domain-literal  =   [CFWS"[" *([FWS] dtext) [FWS"]" [CFWS]

      obs-id-left     =   local-part
      obs-id-right    =   domain
      obs-local-part  =   word *("." word)
      obs-domain      =   atom *("." atom)
      

See MrMime_msgID.word for atext, obs-NO-WS-CTL, quoted-pair, quoted-string, atom and word.