test_class.file: base/lang/src/test/java/leap/lang/jsoup/select/QueryParserTest.java
test_class.identifier: QueryParserTest
test_case.body: @Test public void testOrGetsCorrectPrecedence() {
          // tests that a selector "a b, c d, e f" evals to (a AND b) OR (c AND d) OR (e AND f)"
          // top level or, three child ands
          Evaluator eval = QueryParser.parse("a b, c d, e f");
          assertTrue(eval instanceof CombiningEvaluator.Or);
          CombiningEvaluator.Or or = (CombiningEvaluator.Or) eval;
          assertEquals(3, or.evaluators.size());
          for (Evaluator innerEval: or.evaluators) {
              assertTrue(innerEval instanceof CombiningEvaluator.And);
              CombiningEvaluator.And and = (CombiningEvaluator.And) innerEval;
              assertEquals(2, and.evaluators.size());
              assertTrue(and.evaluators.get(0) instanceof Evaluator.Tag);
              assertTrue(and.evaluators.get(1) instanceof StructuralEvaluator.Parent);
          }
      }
test_case.class_method_signature: QueryParserTest.testOrGetsCorrectPrecedence()
test_case.full_signature: @Test public void testOrGetsCorrectPrecedence()
test_case.identifier: testOrGetsCorrectPrecedence
test_case.invocations: parse assertTrue assertEquals size assertTrue assertEquals size assertTrue get assertTrue get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testOrGetsCorrectPrecedence()
focal_class.declarator: combinators = {",", ">", "+", "~", " "}
focal_class.modifier: private final static
focal_class.original_string: private final static String[] combinators = {",", ">", "+", "~", " "};
focal_class.type: String[]
focal_class.var_name: combinators
focal_class.declarator: AttributeEvals = new String[]{"=", "!=", "^=", "$=", "*=", "~="}
focal_class.modifier: private static final
focal_class.original_string: private static final String[] AttributeEvals = new String[]{"=", "!=", "^=", "$=", "*=", "~="};
focal_class.type: String[]
focal_class.var_name: AttributeEvals
focal_class.declarator: tq
focal_class.modifier: private
focal_class.original_string: private TokenQueue tq;
focal_class.type: TokenQueue
focal_class.var_name: tq
focal_class.declarator: query
focal_class.modifier: private
focal_class.original_string: private String query;
focal_class.type: String
focal_class.var_name: query
focal_class.declarator: evals = new ArrayList<Evaluator>()
focal_class.modifier: private
focal_class.original_string: private List<Evaluator> evals = new ArrayList<Evaluator>();
focal_class.type: List<Evaluator>
focal_class.var_name: evals
focal_class.declarator: NTH_AB = Pattern.compile("((\\+|-)?(\\d+)?)n(\\s*(\\+|-)?\\s*\\d+)?", Pattern.CASE_INSENSITIVE)
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern NTH_AB = Pattern.compile("((\\+|-)?(\\d+)?)n(\\s*(\\+|-)?\\s*\\d+)?", Pattern.CASE_INSENSITIVE);
focal_class.type: Pattern
focal_class.var_name: NTH_AB
focal_class.declarator: NTH_B  = Pattern.compile("(\\+|-)?(\\d+)")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern NTH_B  = Pattern.compile("(\\+|-)?(\\d+)");
focal_class.type: Pattern
focal_class.var_name: NTH_B
focal_class.file: base/lang/src/main/java/leap/lang/jsoup/select/QueryParser.java
focal_class.identifier: QueryParser
focal_class.class_method_signature: QueryParser.QueryParser(String query)
focal_class.full_signature: private  QueryParser(String query)
focal_class.identifier: QueryParser
focal_class.modifiers: private
focal_class.parameters: (String query)
focal_class.signature:  QueryParser(String query)
focal_class.class_method_signature: QueryParser.parse(String query)
focal_class.full_signature: public static Evaluator parse(String query)
focal_class.identifier: parse
focal_class.modifiers: public static
focal_class.parameters: (String query)
focal_class.return: Evaluator
focal_class.signature: Evaluator parse(String query)
focal_class.class_method_signature: QueryParser.parse()
focal_class.full_signature:  Evaluator parse()
focal_class.identifier: parse
focal_class.parameters: ()
focal_class.return: Evaluator
focal_class.signature: Evaluator parse()
focal_class.class_method_signature: QueryParser.combinator(char combinator)
focal_class.full_signature: private void combinator(char combinator)
focal_class.identifier: combinator
focal_class.modifiers: private
focal_class.parameters: (char combinator)
focal_class.return: void
focal_class.signature: void combinator(char combinator)
focal_class.class_method_signature: QueryParser.consumeSubQuery()
focal_class.full_signature: private String consumeSubQuery()
focal_class.identifier: consumeSubQuery
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String consumeSubQuery()
focal_class.class_method_signature: QueryParser.findElements()
focal_class.full_signature: private void findElements()
focal_class.identifier: findElements
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void findElements()
focal_class.class_method_signature: QueryParser.byId()
focal_class.full_signature: private void byId()
focal_class.identifier: byId
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void byId()
focal_class.class_method_signature: QueryParser.byClass()
focal_class.full_signature: private void byClass()
focal_class.identifier: byClass
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void byClass()
focal_class.class_method_signature: QueryParser.byTag()
focal_class.full_signature: private void byTag()
focal_class.identifier: byTag
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void byTag()
focal_class.class_method_signature: QueryParser.byAttribute()
focal_class.full_signature: private void byAttribute()
focal_class.identifier: byAttribute
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void byAttribute()
focal_class.class_method_signature: QueryParser.allElements()
focal_class.full_signature: private void allElements()
focal_class.identifier: allElements
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void allElements()
focal_class.class_method_signature: QueryParser.indexLessThan()
focal_class.full_signature: private void indexLessThan()
focal_class.identifier: indexLessThan
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void indexLessThan()
focal_class.class_method_signature: QueryParser.indexGreaterThan()
focal_class.full_signature: private void indexGreaterThan()
focal_class.identifier: indexGreaterThan
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void indexGreaterThan()
focal_class.class_method_signature: QueryParser.indexEquals()
focal_class.full_signature: private void indexEquals()
focal_class.identifier: indexEquals
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void indexEquals()
focal_class.class_method_signature: QueryParser.cssNthChild(boolean backwards, boolean ofType)
focal_class.full_signature: private void cssNthChild(boolean backwards, boolean ofType)
focal_class.identifier: cssNthChild
focal_class.modifiers: private
focal_class.parameters: (boolean backwards, boolean ofType)
focal_class.return: void
focal_class.signature: void cssNthChild(boolean backwards, boolean ofType)
focal_class.class_method_signature: QueryParser.consumeIndex()
focal_class.full_signature: private int consumeIndex()
focal_class.identifier: consumeIndex
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int consumeIndex()
focal_class.class_method_signature: QueryParser.has()
focal_class.full_signature: private void has()
focal_class.identifier: has
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void has()
focal_class.class_method_signature: QueryParser.contains(boolean own)
focal_class.full_signature: private void contains(boolean own)
focal_class.identifier: contains
focal_class.modifiers: private
focal_class.parameters: (boolean own)
focal_class.return: void
focal_class.signature: void contains(boolean own)
focal_class.class_method_signature: QueryParser.matches(boolean own)
focal_class.full_signature: private void matches(boolean own)
focal_class.identifier: matches
focal_class.modifiers: private
focal_class.parameters: (boolean own)
focal_class.return: void
focal_class.signature: void matches(boolean own)
focal_class.class_method_signature: QueryParser.not()
focal_class.full_signature: private void not()
focal_class.identifier: not
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void not()
focal_method.body: public static Evaluator parse(String query) {
          QueryParser p = new QueryParser(query);
          return p.parse();
      }
focal_method.class_method_signature: QueryParser.parse(String query)
focal_method.full_signature: public static Evaluator parse(String query)
focal_method.identifier: parse
focal_method.invocations: parse
focal_method.modifiers: public static
focal_method.parameters: (String query)
focal_method.return: Evaluator
focal_method.signature: Evaluator parse(String query)