1 19 package gnu.regexp; 20 21 25 final class RETokenLookAhead extends REToken 26 { 27 REToken re; 28 boolean negative; 29 30 RETokenLookAhead(REToken re, boolean negative) throws REException { 31 super(0); 32 this.re = re; 33 this.negative = negative; 34 } 35 36 boolean match(CharIndexed input, REMatch mymatch) 37 { 38 REMatch trymatch = (REMatch)mymatch.clone(); 39 REMatch trymatch1 = (REMatch)mymatch.clone(); 40 REMatch newMatch = null; 41 if (re.match(input, trymatch)) { 42 if (negative) return false; 43 if (next(input, trymatch1)) 44 newMatch = trymatch1; 45 } 46 47 if (newMatch != null) { 48 if (negative) return false; 49 mymatch.assignFrom(newMatch); 51 return true; 52 } 53 else { if (negative) 55 return next(input, mymatch); 56 return false; 58 } 59 } 60 61 void dump(StringBuffer os) { 62 os.append("(?"); 63 os.append(negative ? '!' : '='); 64 re.dumpAll(os); 65 os.append(')'); 66 } 67 } 68 69 | Popular Tags |