addy-0.1.0.0: A full-featured library for parsing, validating, and rendering email addresses

CopyrightThis file is part of the package addy. It is subject to the license
terms in the LICENSE file found in the top-level directory of this
distribution and at:

https://code.devalot.com/open/addy

No part of this package including this file may be copied
modified propagated or distributed except according to the terms
contained in the LICENSE file.
LicenseBSD-2-Clause
Safe HaskellNone
LanguageHaskell2010

Addy.Internal.Char

Description

Internal functions representing character classes in email addresses.

Obsolete characters are only supported in Lenient mode and are filtered out after parsing.

Synopsis

Documentation

utf8NonAscii :: Char -> Bool Source #

Is a character in the UTF8-non-ascii class from RFC 6532?

Since: 0.1.0.0

obsNoWsCtl :: Char -> Bool Source #

Obsolete control characters.

obs-NO-WS-CTL   =   %d1-8 /            ; US-ASCII control
                    %d11 /             ;  characters that do not
                    %d12 /             ;  include the carriage
                    %d14-31 /          ;  return, line feed, and
                    %d127              ;  white space characters

Since: 0.1.0.0

wsp :: Char -> Bool Source #

Whitepace.

Since: 0.1.0.0

vchar :: Char -> Bool Source #

RFC 5234: Visible character.

VCHAR          =  %x21-7E
                       ; visible (printing) characters

RFC 6532 §3.2

VCHAR   =/  UTF8-non-ascii

Since: 0.1.0.0

atext :: Char -> Bool Source #

RFC 5322 §3.2.3

atext =   ALPHA / DIGIT /    ; Printable US-ASCII
          "!" / "#" /        ;  characters not including
          "$" / "%" /        ;  specials.  Used for atoms.
          "&" / "'" /
          "*" / "+" /
          "-" / "/" /
          "=" / "?" /
          "^" / "_" /
          "`" / "{" /
          "|" / "}" /
          "~"

RFC 6532 §3.2

atext =/  UTF8-non-ascii

Since: 0.1.0.0

dtext :: Char -> Bool Source #

RFC 5322 dtext.

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

RFC 6532 §3.2

dtext   =/  UTF8-non-ascii

Since: 0.1.0.0

ctext :: Char -> Bool Source #

RFC 5322 ctext.

ctext           =   %d33-39 /          ; Printable US-ASCII
                    %d42-91 /          ;  characters not including
                    %d93-126 /         ;  "(", ")", or "\"
                    obs-ctext

obs-ctext       =   obs-NO-WS-CTL

RFC 6532 §3.2

ctext   =/  UTF8-non-ascii

Since: 0.1.0.0

ctextObs :: Char -> Bool Source #

Obsolete ctext.

obs-ctext = obs-NO-WS-CTL

Since: 0.1.0.0

qtext :: Char -> Bool Source #

Characters that can appear in a quoted string.

RFC 5322 §3.2.4:

qtext =   %d33 /             ; Printable US-ASCII
          %d35-91 /          ;  characters not including
          %d93-126 /         ;  "\" or the quote character
          obs-qtext

RFC 6532 §3.2:

qtext =/ UTF8-non-ascii

Since: 0.1.0.0

qtextObs :: Char -> Bool Source #

Obsolete qtext.

obs-qtext = obs-NO-WS-CTL

Since: 0.1.0.0

quotedPair :: Char -> Bool Source #

Characters that can follow a backslash.

quoted-pair     =   ("\" (VCHAR / WSP)) / obs-qp

Since: 0.1.0.0

quotedPairObs :: Char -> Bool Source #

Obsolete characters that can be escaped with a backslash.

obs-qp          =   "\" (%d0 / obs-NO-WS-CTL / LF / CR)

Since: 0.1.0.0