MCPcopy Create free account
hub / github.com/jhy/jsoup / parseSelector

Method parseSelector

src/main/java/org/jsoup/select/QueryParser.java:95–124  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

93 }
94
95 Evaluator parseSelector() {
96 // Selector ::= [ Combinator ] SimpleSequence ( Combinator SimpleSequence )*
97 tq.consumeWhitespace();
98
99 Evaluator left;
100 if (tq.matchesAny(Combinators)) {
101 // e.g. query is "> div"; left side is root element
102 left = new StructuralEvaluator.Root();
103 } else {
104 left = parseSimpleSequence();
105 }
106
107 while (true) {
108 char combinator = 0;
109 if (tq.consumeWhitespace())
110 combinator = ' '; // maybe descendant?
111 if (tq.matchesAny(Combinators)) // no, explicit
112 combinator = tq.consume();
113 else if (tq.matchesAny(SequenceEnders)) // , - space after simple like "foo , bar"; ) - close of :has()
114 break;
115
116 if (combinator != 0) {
117 Evaluator right = parseSimpleSequence();
118 left = combinator(left, combinator, right);
119 } else {
120 break;
121 }
122 }
123 return left;
124 }
125
126 Evaluator parseSimpleSequence() {
127 // SimpleSequence ::= TypeSelector? ( Hash | Class | Pseudo )*

Callers 1

parseSelectorGroupMethod · 0.95

Calls 5

parseSimpleSequenceMethod · 0.95
combinatorMethod · 0.95
consumeWhitespaceMethod · 0.80
matchesAnyMethod · 0.45
consumeMethod · 0.45

Tested by

no test coverage detected