@Override public <V> boolean match(final MatcherContext<V> context) { if (!context.fastStringMatching()) return super.match(context); if (!context.getInputBuffer().test(context.getCurrentIndex(), characters)) return false; context.advanceIndex(characters.length); context.createNode(); return true; }
@Override public <V> boolean match(final MatcherContext<V> context) { final InputBuffer buffer = context.getInputBuffer(); final boolean success = buffer.test(context.getCurrentIndex(), chars); if (success) { context.advanceIndex(2); context.createNode(); } return success; }
@Override public <V> boolean match(final MatcherContext<V> context) { final boolean condition = inner == null ? context.getMatcher().match(context) : inner.match(context); if (!condition) return false; if (errorIndex < context.getCurrentIndex() && notTestNot(context)) errorIndex = context.getCurrentIndex(); return true; }
public boolean match(MatcherContext context) { int lastIndex = context.getCurrentIndex(); Object valueStackSnapshot = context.getValueStack().takeSnapshot(); if (!subMatcher.getSubContext(context).runMatcher()) return false; // reset location, Test matchers never advance context.setCurrentIndex(lastIndex); // erase all value stack changes the the submatcher could have made context.getValueStack().restoreSnapshot(valueStackSnapshot); return true; }
@Override public <V> boolean match(final MatcherContext<V> context) { char tested; // Test the lead surrogate... tested = context.getCurrentChar(); if (tested != lead) return false; // OK, there may be a match; we need to test for the trailing surrogate. context.advanceIndex(1); tested = context.getCurrentChar(); if (tested >= lowTrail && tested <= highTrail) { // Match! context.advanceIndex(1); context.createNode(); return true; } // No match. Too bad. context.advanceIndex(-1); return false; }
private static boolean notTestNot(final MatcherContext<?> context) { if (context.getMatcher() instanceof TestNotMatcher) return false; return context.getParent() == null || notTestNot(context.getParent()); }