URIParsers

object URIParsers

Parses URIs as defined in RFC 3986 and email addresses as defined in RFC 6068, 5322 and 3986 with base types defined in RFC 2234.

class Object
trait Matchable
class Any

Value members

Concrete fields

val addrSpec: Parser[String]

Parses a single email address as defined in RFC 6068.

Parses a single email address as defined in RFC 6068.

addr-spec = local-part "@" domain
val alpha: Characters[String]

Parses letters according to RFC 2234.

Parses letters according to RFC 2234.

ALPHA =  %x41-5A / %x61-7A ; A-Z / a-z
val authority: Parser[String]

Parses the authority part of a URI as defined in RFC 3986.

Parses the authority part of a URI as defined in RFC 3986.

authority = [ userinfo "@" ] host [ ":" port ]
val digit: Characters[String]

Parses digits according to RFC 2234.

Parses digits according to RFC 2234.

DIGIT =  %x30-39; 0-9
val domain: Parser[String]

Parses the domain portion of an email address as defined in RFC 6068.

Parses the domain portion of an email address as defined in RFC 6068.

domain       = dot-atom-text / "[" *dtext-no-obs "]"
dtext-no-obs = %d33-90 / ; Printable US-ASCII
               %d94-126  ; characters not including
                         ; "[", "]", or "\"
val dotAtomText: Parser[String]

Parses a dot-atom-text sequence as defined in RFC 5322.

Parses a dot-atom-text sequence as defined in RFC 5322.

dot-atom-text   =   1*atext *("." 1*atext)

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

Parses a mailto URI without the scheme part as defined in RFC 6068.

Parses a mailto URI without the scheme part as defined in RFC 6068.

val emailURI: Parser[String]

Parses a full mailto URI as defined in RFC 6068.

Parses a full mailto URI as defined in RFC 6068.

mailtoURI = "mailto:" [ to ] [ hfields ]
val fragment: Parser[String]

Parses the fragment part of a URI as defined in RFC 3986.

Parses the fragment part of a URI as defined in RFC 3986.

fragment = *( pchar / "/" / "?" )
val hexdig: Characters[String]

Parses a hexadecimal value according to RFC 2234.

Parses a hexadecimal value according to RFC 2234.

HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
val hfields: Parser[String]

Parses header fields of an email address as defined in RFC 6068.

Parses header fields of an email address as defined in RFC 6068.

hfields      = "?" hfield *( "&" hfield )
hfield       = hfname "=" hfvalue
hfname       = *qchar
hfvalue      = *qchar

qchar        = unreserved / pct-encoded / some-delims
some-delims  = "!" / "$" / "'" / "(" / ")" / "*"
             / "+" / "," / ";" / ":" / "@"
val hierPart: Parser[String]

Parses the hierarchical part of a URI with an authority component as defined in RFC 3986, but only the variant including an authority component.

Parses the hierarchical part of a URI with an authority component as defined in RFC 3986, but only the variant including an authority component.

hier-part     = "//" authority path-abempty
              / path-absolute ; excluded
              / path-rootless ; excluded
              / path-empty    ; excluded
val host: Parser[String]

Parses a host as defined in RFC 3986.

Parses a host as defined in RFC 3986.

host = IP-literal / IPv4address / reg-name
val httpUri: Parser[String]

Parses a full HTTP URI including the scheme part and an authority component as defined in RFC 3986.

Parses a full HTTP URI including the scheme part and an authority component as defined in RFC 3986.

val httpUriNoScheme: Parser[String]

Parses an HTTP or HTTPS URI with an authority component, but without the scheme part (therefore starting with "//") as defined in RFC 3986.

Parses an HTTP or HTTPS URI with an authority component, but without the scheme part (therefore starting with "//") as defined in RFC 3986.

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
val httpsUri: Parser[String]

Parses a full HTTPS URI including the scheme part and an authority component as defined in RFC 3986.

Parses a full HTTPS URI including the scheme part and an authority component as defined in RFC 3986.

val ipLiteral: Parser[String]

Parses an ip literal as defined in RFC 3986.

Parses an ip literal as defined in RFC 3986.

IP-literal = "[" ( IPv6address / IPvFuture  ) "]"
val ipv4address: Parser[String]

Parses an IPv4 address as defined in RFC 3986.

Parses an IPv4 address as defined in RFC 3986.

IPv4address   = dec-octet "." dec-octet "." dec-octet "." dec-octet

dec-octet     = DIGIT                 ; 0-9
              / %x31-39 DIGIT         ; 10-99
              / "1" 2DIGIT            ; 100-199
              / "2" %x30-34 DIGIT     ; 200-249
              / "25" %x30-35          ; 250-255

The implementation has been simplified to parse a 3-digit number and check its value.

val ipv6address: Parser[String]

Parses an IPv6 address as defined in RFC 3986.

Parses an IPv6 address as defined in RFC 3986.

IPv6address  =                            6( h16 ":" ) ls32
             /                       "::" 5( h16 ":" ) ls32
             / [               h16 ] "::" 4( h16 ":" ) ls32
             / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
             / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
             / [ *3( h16 ":" ) h16 ] "::"    h16 ":"   ls32
             / [ *4( h16 ":" ) h16 ] "::"              ls32
             / [ *5( h16 ":" ) h16 ] "::"              h16
             / [ *6( h16 ":" ) h16 ] "::"

h16          = 1*4HEXDIG

ls32         = ( h16 ":" h16 ) / IPv4address
val ipvFuture: Parser[String]

Parses a future IP address as defined in RFC 3986.

Parses a future IP address as defined in RFC 3986.

IPvFuture = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" )
val localPart: Parser[String]

Parses the local part of an email address (before the @), with one deviation from RFC 6068: a quoted string is not allowed. It is rarely used, not supported by the reStructuredText reference parser and would be hard to combine within text markup as it allows for whitespace and line break characters.

Parses the local part of an email address (before the @), with one deviation from RFC 6068: a quoted string is not allowed. It is rarely used, not supported by the reStructuredText reference parser and would be hard to combine within text markup as it allows for whitespace and line break characters.

local-part = dot-atom-text / quoted-string ; quoted-string omitted
val pChar: Parser[String]

Parses one path character as defined in RFC 3986.

Parses one path character as defined in RFC 3986.

pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
val path: Parser[String]

Parses the path of a URI as defined in RFC 3986, but only the path variant following an authority component.

Parses the path of a URI as defined in RFC 3986, but only the path variant following an authority component.

path-abempty  = *( "/" segment )

segment       = *pchar
val pctEncoded: Parser[String]

Parses a percent-encoded character as defined in RFC 3986.

Parses a percent-encoded character as defined in RFC 3986.

pct-encoded = "%" HEXDIG HEXDIG
val port: Parser[String]

Parses a port as defined in RFC 3986, except for requiring at least one digit; instead the port is defined as optional in a higher level combinator.

Parses a port as defined in RFC 3986, except for requiring at least one digit; instead the port is defined as optional in a higher level combinator.

port = *DIGIT
val query: Parser[String]

Parses the query part of a URI as defined in RFC 3986.

Parses the query part of a URI as defined in RFC 3986.

query = *( pchar / "/" / "?" )
val regName: Parser[String]

Parses a server name as defined in RFC 3986.

Parses a server name as defined in RFC 3986.

reg-name = *( unreserved / pct-encoded / sub-delims )
val subDelims: Parser[String]

Parses a single sub-delimiter as defined in RFC 3986.

Parses a single sub-delimiter as defined in RFC 3986.

sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
                 / "*" / "+" / "," / ";" / "="
val to: Parser[String]

Parses a sequence of email addresses as defined in RFC 6068.

Parses a sequence of email addresses as defined in RFC 6068.

to = addr-spec *("," addr-spec )
val unreserved: Parser[String]

Parses a single unreserved character as defined in RFC 3986.

Parses a single unreserved character as defined in RFC 3986.

unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"
val userInfo: Parser[String]

Parses the user info portion of a URI as defined in RFC 3986.

Parses the user info portion of a URI as defined in RFC 3986.

userinfo = *( unreserved / pct-encoded / sub-delims / ":" )