@Override protected PatternExpr optimize() { List<PatternExpr> newPatterns = new ArrayList<>(patterns.size()); for (PatternExpr p:patterns) { newPatterns.add(p.optimize()); } return new AndPatternExpr(newPatterns); }
@Override public PatternExpr optimize() { List<PatternExpr> newPatterns = new ArrayList<>(patterns.size()); for (PatternExpr p:patterns) { newPatterns.add(p.optimize()); } return new SequencePatternExpr(newPatterns); }
@Override protected PatternExpr optimize() { if (patterns.size() <= OPTIMIZE_MIN_SIZE) { // Not enough patterns for fancy optimization List<PatternExpr> newPatterns = new ArrayList<>(patterns.size()); for (PatternExpr p:patterns) { newPatterns.add(p.optimize()); } return new OrPatternExpr(newPatterns); } else { // More fancy optimization return optimizeOr(); } }
@Override protected PatternExpr optimize() { return new GroupPatternExpr(pattern.optimize(), capture, captureGroupId, varname); }
@Override public PatternExpr optimize() { List<PatternExpr> newPatterns = new ArrayList<PatternExpr>(patterns.size()); for (PatternExpr p:patterns) { newPatterns.add(p.optimize()); } return new SequencePatternExpr(newPatterns); }
@Override protected PatternExpr optimize() { return new RepeatPatternExpr(pattern.optimize(), minMatch, maxMatch, greedyMatch); } @Override
@Override protected PatternExpr optimize() { return new ValuePatternExpr(expr.optimize(), value); }
@Override public PatternExpr optimize() { List<PatternExpr> newPatterns = new ArrayList<>(patterns.size()); for (PatternExpr p:patterns) { newPatterns.add(p.optimize()); } return new SequencePatternExpr(newPatterns); }
@Override public PatternExpr optimize() { List<PatternExpr> newPatterns = new ArrayList<>(patterns.size()); for (PatternExpr p:patterns) { newPatterns.add(p.optimize()); } return new SequencePatternExpr(newPatterns); }
@Override protected PatternExpr optimize() { return new RepeatPatternExpr(pattern.optimize(), minMatch, maxMatch, greedyMatch); }
@Override protected PatternExpr optimize() { List<PatternExpr> newPatterns = new ArrayList<>(patterns.size()); for (PatternExpr p:patterns) { newPatterns.add(p.optimize()); } return new AndPatternExpr(newPatterns); }
@Override protected PatternExpr optimize() { List<PatternExpr> newPatterns = new ArrayList<PatternExpr>(patterns.size()); for (PatternExpr p:patterns) { newPatterns.add(p.optimize()); } return new AndPatternExpr(newPatterns); }
@Override protected PatternExpr optimize() { List<PatternExpr> newPatterns = new ArrayList<>(patterns.size()); for (PatternExpr p:patterns) { newPatterns.add(p.optimize()); } return new AndPatternExpr(newPatterns); }
@Override protected PatternExpr optimize() { return new RepeatPatternExpr(pattern.optimize(), minMatch, maxMatch, greedyMatch); } @Override
PatternExpr opt = p.optimize(); opts.add(opt);
private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException { patternStr = (String)ois.readObject(); patternExpr = (PatternExpr) ois.readObject(); //this.patternStr = patternStr; //this.patternExpr = nodeSequencePattern; action = (SequenceMatchAction) ois.readObject(); patternExpr = new GroupPatternExpr(patternExpr, true); patternExpr = patternExpr.optimize(); this.totalGroups = patternExpr.assignGroupIds(0); Frag f = patternExpr.build(); f.connect(MATCH_STATE); this.root = f.start; varGroupBindings = new VarGroupBindings(totalGroups+1); patternExpr.updateBindings(varGroupBindings); }
protected SequencePattern(String patternStr, SequencePattern.PatternExpr nodeSequencePattern, SequenceMatchAction<T> action) { this.patternStr = patternStr; this.patternExpr = nodeSequencePattern; this.action = action; nodeSequencePattern = new GroupPatternExpr(nodeSequencePattern, true); nodeSequencePattern = nodeSequencePattern.optimize(); this.totalGroups = nodeSequencePattern.assignGroupIds(0); Frag f = nodeSequencePattern.build(); f.connect(MATCH_STATE); this.root = f.start; varGroupBindings = new VarGroupBindings(totalGroups+1); nodeSequencePattern.updateBindings(varGroupBindings); }
@Override protected PatternExpr optimize() { return new ValuePatternExpr(expr.optimize(), value); }
@Override protected PatternExpr optimize() { return new GroupPatternExpr(pattern.optimize(), capture, captureGroupId, varname); }
@Override protected PatternExpr optimize() { return new RepeatPatternExpr(pattern.optimize(), minMatch, maxMatch, greedyMatch); } @Override