-- | `DomainParserRFC1035` is a simple parser for domain names as described in RFC 1035. -- | See `DomainParser` for a more modern domain parser, accepting underscores in labels for example. module GenericParser.DomainParserRFC1035 where import Prelude (bind, not, pure, ($), (&&), (*>), (<<<), (<>), (>), (-)) import Control.Alt ((<|>)) import Control.Lazy (defer) import Data.Array as A import Data.Either (Either(..)) import Data.Maybe (Maybe(..), maybe) import Data.String as S import Data.String.CodeUnits as CU -- Import all common functions between RFC1035 and modern domain parsing. import GenericParser.DomainParser.Common (DomainError(..), eof, ldh_str, let_dig, max_domain_length, max_label_length) import GenericParser.Parser (Parser(..) , failureError , current_position , char, parse, string , tryMaybe) import GenericParser.SomeParsers (letter) -- | From RFC 1035: