diff options
author | Anthony Green <green@redhat.com> | 2004-03-09 19:14:23 +0000 |
---|---|---|
committer | Anthony Green <green@gcc.gnu.org> | 2004-03-09 19:14:23 +0000 |
commit | ec730df5fc5d0e879363556e6d9032f3104d0f49 (patch) | |
tree | d283cb10bc6a847ef8b3a81e1a9939e713be32eb /libjava/gnu/regexp/RETokenLookAhead.java | |
parent | c497b9764aebf09840ff574869ff86485fe1a8f3 (diff) | |
download | gcc-ec730df5fc5d0e879363556e6d9032f3104d0f49.zip gcc-ec730df5fc5d0e879363556e6d9032f3104d0f49.tar.gz gcc-ec730df5fc5d0e879363556e6d9032f3104d0f49.tar.bz2 |
Makefile.am: Build property resource files into libgcj.
2004-03-08 Anthony Green <green@redhat.com>
* Makefile.am: Build property resource files into libgcj.
* Makefile.in: Rebuilt.
* java/util/regex/Matcher.java, java/util/regex/Pattern.java,
java/util/regex/PatternSyntaxException.java,
gnu/regexp/CharIndexed.java,
gnu/regexp/CharIndexedCharArray.java,
gnu/regexp/CharIndexedInputStream.java,
gnu/regexp/CharIndexedReader.java,
gnu/regexp/CharIndexedString.java,
gnu/regexp/CharIndexedStringBuffer.java, gnu/regexp/RE.java,
gnu/regexp/REException.java,
gnu/regexp/REFilterInputStream.java,
gnu/regexp/REFilterReader.java, gnu/regexp/REMatch.java,
gnu/regexp/REMatchEnumeration.java, gnu/regexp/RESyntax.java,
gnu/regexp/REToken.java, gnu/regexp/RETokenAny.java,
gnu/regexp/RETokenBackRef.java, gnu/regexp/RETokenChar.java,
gnu/regexp/RETokenEnd.java, gnu/regexp/RETokenEndSub.java,
gnu/regexp/RETokenLookAhead.java,
gnu/regexp/RETokenOneOf.java, gnu/regexp/RETokenPOSIX.java,
gnu/regexp/RETokenRange.java, gnu/regexp/RETokenRepeated.java,
gnu/regexp/RETokenStart.java,
gnu/regexp/RETokenWordBoundary.java,
gnu/regexp/UncheckedRE.java: Files merged from GNU Classpath.
From-SVN: r79198
Diffstat (limited to 'libjava/gnu/regexp/RETokenLookAhead.java')
-rw-r--r-- | libjava/gnu/regexp/RETokenLookAhead.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/libjava/gnu/regexp/RETokenLookAhead.java b/libjava/gnu/regexp/RETokenLookAhead.java new file mode 100644 index 0000000..74a9bfe --- /dev/null +++ b/libjava/gnu/regexp/RETokenLookAhead.java @@ -0,0 +1,68 @@ +/* + * gnu/regexp/RETokenOneOf.java + * Copyright (C) 1998-2001 Wes Biggs + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +package gnu.regexp; + +/** + * @since gnu.regexp 1.1.3 + * @author Shashank Bapat + */ +final class RETokenLookAhead extends REToken +{ + REToken re; + boolean negative; + + RETokenLookAhead(REToken re, boolean negative) throws REException { + super(0); + this.re = re; + this.negative = negative; + } + + boolean match(CharIndexed input, REMatch mymatch) + { + REMatch trymatch = (REMatch)mymatch.clone(); + REMatch trymatch1 = (REMatch)mymatch.clone(); + REMatch newMatch = null; + if (re.match(input, trymatch)) { + if (negative) return false; + if (next(input, trymatch1)) + newMatch = trymatch1; + } + + if (newMatch != null) { + if (negative) return false; + //else + mymatch.assignFrom(newMatch); + return true; + } + else { // no match + if (negative) + return next(input, mymatch); + //else + return false; + } + } + + void dump(StringBuffer os) { + os.append("(?"); + os.append(negative ? '!' : '='); + re.dumpAll(os); + os.append(')'); + } +} + |