The ANVL Internet-Draft of 14 February, 2005 is inspecific as to the
definition of 'blank line' and 'newline'. This parser implementation
assumes CRNL
.
Says "An element consists of a label, a colon, and an optional value". Should that be: "An element consists of a label and an optional value, or a comment."
Specification is unclear regards CR or NL in label or comment (This implementation disallows CR or NL in labels but lets them pass in comments).
A grammar would help. Here is RFC822:
field = field-name ":" [ field-body ] CRLF field-name = 1*<any CHAR, excluding CTLs, SPACE, and ":"> field-body = field-body-contents [CRLF LWSP-char field-body] field-body-contents = <the ASCII characters making up the field-body, as defined in the following sections, and consisting of combinations of atom, quoted-string, and specials tokens, or else consisting of texts>