Class UriParser
java.lang.Object
org.parboiled2.RuleDSL
org.parboiled2.Parser
org.apache.pekko.http.impl.model.parser.UriParser
- All Implemented Interfaces:
IpAddressParsing
,org.parboiled2.ParserMacroMethods
,org.parboiled2.RuleDSLActions
,org.parboiled2.RuleDSLBasics
,org.parboiled2.RuleDSLCombinators
,org.parboiled2.StringBuilding
public final class UriParser
extends org.parboiled2.Parser
implements IpAddressParsing, org.parboiled2.StringBuilding
INTERNAL API
http://tools.ietf.org/html/rfc3986
-
Nested Class Summary
Nested classes/interfaces inherited from class org.parboiled2.Parser
org.parboiled2.Parser.__SubParserInput, org.parboiled2.Parser.AlternativeDeliverySchemes, org.parboiled2.Parser.CutError$, org.parboiled2.Parser.DeliveryScheme<L extends org.parboiled2.support.hlist.HList>, org.parboiled2.Parser.DeliveryScheme$, org.parboiled2.Parser.Fail, org.parboiled2.Parser.Mark, org.parboiled2.Parser.Mark$, org.parboiled2.Parser.StartTracingException$, org.parboiled2.Parser.TracingBubbleException, org.parboiled2.Parser.UnquietMismatch$
Nested classes/interfaces inherited from interface org.parboiled2.RuleDSLActions
org.parboiled2.RuleDSLActions.ActionOperator<I extends org.parboiled2.support.hlist.HList,
O extends org.parboiled2.support.hlist.HList, Ops extends Object> Nested classes/interfaces inherited from interface org.parboiled2.RuleDSLBasics
org.parboiled2.RuleDSLBasics.CharRangeSupport
Nested classes/interfaces inherited from interface org.parboiled2.RuleDSLCombinators
org.parboiled2.RuleDSLCombinators.NTimes, org.parboiled2.RuleDSLCombinators.WithSeparatedBy<I extends org.parboiled2.support.hlist.HList,
O extends org.parboiled2.support.hlist.HList> -
Constructor Summary
ConstructorsConstructorDescriptionUriParser
(org.parboiled2.ParserInput input, Charset uriParsingCharset, Uri.ParsingMode uriParsingMode) UriParser
(org.parboiled2.ParserInput _input, Charset uriParsingCharset, Uri.ParsingMode uriParsingMode, int maxValueStackSize) -
Method Summary
Modifier and TypeMethodDescriptionorg.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> scala.runtime.Nothing$
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> fragment()
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> host()
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> org.parboiled2.ParserInput
input()
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> ipv4Host()
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> ipv6Host()
int
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> origin()
parseSafeRawQueryString
(String rawQueryString) org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> pchar()
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> port()
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.$colon$colon<Uri.Query, org.parboiled2.support.hlist.HNil>> query()
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> A relaxed host rule to use in `parseHost` that also recognizes IPv6 address without the brackets.void
reset
(org.parboiled2.ParserInput newInput) Allows to reuse this parser.protected StringBuilder
sb()
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> scheme()
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> segment()
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> URI()
org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,
org.parboiled2.support.hlist.HNil> userinfo()
Methods inherited from class org.parboiled2.Parser
__advance, __bubbleUp, __bubbleUp, __enterAtomic, __enterNotPredicate, __enterQuiet, __exitAtomic, __exitNotPredicate, __exitQuiet, __hardFail, __inErrorAnalysis, __matchAnyOf, __matchAnyOf$default$2, __matchIgnoreCaseString, __matchIgnoreCaseString$default$2, __matchIgnoreCaseStringWrapped, __matchIgnoreCaseStringWrapped$default$2, __matchMap, __matchMapWrapped, __matchNoneOf, __matchNoneOf$default$2, __matchString, __matchString$default$2, __matchStringWrapped, __matchStringWrapped$default$2, __push, __registerMismatch, __restoreState, __run, __saveState, __subParserInput, __updateMaxCursor, $lessinit$greater$default$1, $lessinit$greater$default$2, charAt, charAtRC, copyStateFrom, cursor, cursorChar, errorTraceCollectionLimit, formatError, formatError$default$2, lastChar, org$parboiled2$Parser$$_cursor, org$parboiled2$Parser$$phase, valueStack
Methods inherited from class org.parboiled2.RuleDSL
$amp, ANY, anyOf, atomic, capture, ch, drop, EOI, fail, failX, ignoreCase, ignoreCase, int2NTimes, MATCH, MISMATCH, MISMATCH0, noneOf, oneOrMore, optional, predicate, push, quiet, range2NTimes, rule2ActionOperator, rule2WithSeparatedBy, run, runSubParser, str, str2CharRangeSupport, test, valueMap, valueMap, valueMap$default$2, zeroOrMore
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.parboiled2.StringBuilding
appendSB, appendSB, appendSB, appendSB, clearSB, org$parboiled2$StringBuilding$_setter_$sb_$eq, prependSB, prependSB, prependSB, prependSB, setSB
-
Constructor Details
-
UriParser
public UriParser(org.parboiled2.ParserInput _input, Charset uriParsingCharset, Uri.ParsingMode uriParsingMode, int maxValueStackSize) -
UriParser
public UriParser(org.parboiled2.ParserInput input, Charset uriParsingCharset, Uri.ParsingMode uriParsingMode)
-
-
Method Details
-
sb
- Specified by:
sb
in interfaceorg.parboiled2.StringBuilding
-
uriParsingCharset
-
uriParsingMode
-
maxValueStackSize
public int maxValueStackSize() -
input
public org.parboiled2.ParserInput input()- Specified by:
input
in classorg.parboiled2.Parser
-
parseAbsoluteUri
-
parseUriReference
-
parseAndResolveUriReference
-
parseOrigin
-
parseHost
-
parseRawQueryString
- Returns:
- a 'raw' (percent-encoded) query string that does not contain invalid characters.
-
parseSafeRawQueryString
- Parameters:
rawQueryString
- 'raw' (percent-encoded) query string that in Relaxed mode may contain characters not allowed by https://tools.ietf.org/html/rfc3986#section-3.4 but is guaranteed not to have invalid percent-encoded characters- Returns:
- a 'raw' (percent-encoded) query string that does not contain invalid characters.
-
parseQuery
-
parseAuthority
-
fail
-
reset
public void reset(org.parboiled2.ParserInput newInput) Allows to reuse this parser. -
URI
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> URI() -
origin
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> origin() -
scheme
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> scheme() -
authority
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> authority() -
userinfo
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> userinfo() -
hostAndPort
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> hostAndPort() -
host
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> host() -
relaxedHost
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> relaxedHost()A relaxed host rule to use in `parseHost` that also recognizes IPv6 address without the brackets. -
port
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> port() -
ipv4Host
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> ipv4Host() -
ipv6Host
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> ipv6Host() -
slashSegments
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> slashSegments() -
segment
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> segment() -
pchar
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> pchar() -
rawQueryString
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> rawQueryString() -
query
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.$colon$colon<Uri.Query, query()org.parboiled2.support.hlist.HNil>> -
fragment
public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> fragment() -
parseHttpRequestTarget
-
parseHttp2AuthorityPseudoHeader
-
parseHttp2PathPseudoHeader
- Returns:
- path and percent-encoded query string. When in in 'relaxed' mode, characters not permitted by https://tools.ietf.org/html/rfc3986#section-3.4 are already automatically percent-encoded here
-