URIParsers

laika.parse.uri.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.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
URIParsers.type

Members list

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

Attributes

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

Attributes

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 ]

Attributes

val digit: Characters[String]

Parses digits according to RFC 2234.

Parses digits according to RFC 2234.

DIGIT =  %x30-39; 0-9

Attributes

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 "\"

Attributes

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.
                  "&" / "'" /
                  "*" / "+" /
                  "-" / "/" /
                  "=" / "?" /
                  "^" / "_" /
                  "`" / "{" /
                  "|" / "}" /
                  "~"

Attributes

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.

Attributes

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 ]

Attributes

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 / "/" / "?" )

Attributes

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"

Attributes

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  = "!" / "$" / "'" / "(" / ")" / "*"
             / "+" / "," / ";" / ":" / "@"

Attributes

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

Attributes

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

Attributes

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.

Attributes

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 ]

Attributes

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.

Attributes

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  ) "]"

Attributes

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.

Attributes

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

Attributes

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 / ":" )

Attributes

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

Attributes

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 / ":" / "@"

Attributes

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

Attributes

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

Attributes

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

Attributes

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 / "/" / "?" )

Attributes

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 )

Attributes

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 = "!" / "$" / "&" / "'" / "(" / ")"
                 / "*" / "+" / "," / ";" / "="

Attributes

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 )

Attributes

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 / "-" / "." / "_" / "~"

Attributes

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 / ":" )

Attributes