1 3 5 22 23 package edu.neu.ccs.jmk; 24 25 33 final class Pattern 34 { 35 private Matcher matcher; 36 private String [] prerequisites; 37 private Command[] commands; 38 private int lineNumber; 39 40 43 Pattern(String target, String [] prerequisites, 44 Command[] commands, int lineNumber) { 45 matcher = new Matcher(target); 46 this.prerequisites = prerequisites; 47 this.commands = commands; 48 this.lineNumber = lineNumber; 49 } 50 51 55 boolean merge(Rule rule) { 56 String target = rule.getTarget(); 57 String match = matcher.match(target); 58 if (match == null) 59 return false; 60 String [] dependencies = new String [prerequisites.length]; 61 for (int i = 0; i < prerequisites.length; i++) 62 dependencies[i] = Matcher.subst(match, prerequisites[i]); 63 return rule.tryPattern(match, dependencies, commands, lineNumber); 64 } 65 } 66 | Popular Tags |