* arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
[official-gcc.git] / libjava / gnu / regexp / RETokenLookAhead.java
blob74a9bfe2465452951c27a6c1d4d98279edff15ba
1 /*
2 * gnu/regexp/RETokenOneOf.java
3 * Copyright (C) 1998-2001 Wes Biggs
5 * This library is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published
7 * by the Free Software Foundation; either version 2.1 of the License, or
8 * (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 package gnu.regexp;
21 /**
22 * @since gnu.regexp 1.1.3
23 * @author Shashank Bapat
25 final class RETokenLookAhead extends REToken
27 REToken re;
28 boolean negative;
30 RETokenLookAhead(REToken re, boolean negative) throws REException {
31 super(0);
32 this.re = re;
33 this.negative = negative;
36 boolean match(CharIndexed input, REMatch mymatch)
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;
47 if (newMatch != null) {
48 if (negative) return false;
49 //else
50 mymatch.assignFrom(newMatch);
51 return true;
53 else { // no match
54 if (negative)
55 return next(input, mymatch);
56 //else
57 return false;
61 void dump(StringBuffer os) {
62 os.append("(?");
63 os.append(negative ? '!' : '=');
64 re.dumpAll(os);
65 os.append(')');