summaryrefslogtreecommitdiff
path: root/libjava/classpath/gnu/regexp/RETokenNamedProperty.java
diff options
context:
space:
mode:
authormark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2006-05-18 17:29:21 +0000
committermark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2006-05-18 17:29:21 +0000
commit64089cc9f030d8ef7972adb5d117e0b23f47d62b (patch)
tree9f9c470de62ee62fba1331a396450d728d2b1fad /libjava/classpath/gnu/regexp/RETokenNamedProperty.java
parent96034e28360d660d7a7708807fcbc4b519574d8e (diff)
downloadgcc-64089cc9f030d8ef7972adb5d117e0b23f47d62b.tar.gz
Imported GNU Classpath 0.90
* scripts/makemake.tcl: LocaleData.java moved to gnu/java/locale. * sources.am: Regenerated. * gcj/javaprims.h: Regenerated. * Makefile.in: Regenerated. * gcj/Makefile.in: Regenerated. * include/Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. * gnu/java/lang/VMInstrumentationImpl.java: New override. * gnu/java/net/local/LocalSocketImpl.java: Likewise. * gnu/classpath/jdwp/VMMethod.java: Likewise. * gnu/classpath/jdwp/VMVirtualMachine.java: Update to latest interface. * java/lang/Thread.java: Add UncaughtExceptionHandler. * java/lang/reflect/Method.java: Implements GenericDeclaration and isSynthetic(), * java/lang/reflect/Field.java: Likewise. * java/lang/reflect/Constructor.java * java/lang/Class.java: Implements Type, GenericDeclaration, getSimpleName() and getEnclosing*() methods. * java/lang/Class.h: Add new public methods. * java/lang/Math.java: Add signum(), ulp() and log10(). * java/lang/natMath.cc (log10): New function. * java/security/VMSecureRandom.java: New override. * java/util/logging/Logger.java: Updated to latest classpath version. * java/util/logging/LogManager.java: New override. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113887 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/gnu/regexp/RETokenNamedProperty.java')
-rw-r--r--libjava/classpath/gnu/regexp/RETokenNamedProperty.java42
1 files changed, 28 insertions, 14 deletions
diff --git a/libjava/classpath/gnu/regexp/RETokenNamedProperty.java b/libjava/classpath/gnu/regexp/RETokenNamedProperty.java
index 13c1e418a09..6147e87dc37 100644
--- a/libjava/classpath/gnu/regexp/RETokenNamedProperty.java
+++ b/libjava/classpath/gnu/regexp/RETokenNamedProperty.java
@@ -105,24 +105,43 @@ final class RETokenNamedProperty extends REToken {
return 1;
}
- boolean match(CharIndexed input, REMatch mymatch) {
- char ch = input.charAt(mymatch.index);
+ REMatch matchThis(CharIndexed input, REMatch mymatch) {
+ char ch = input.charAt(mymatch.index);
+ boolean retval = matchOneChar(ch);
+ if (retval) {
+ ++mymatch.index;
+ return mymatch;
+ }
+ return null;
+ }
+
+ private boolean matchOneChar(char ch) {
if (ch == CharIndexed.OUT_OF_BOUNDS)
return false;
boolean retval = handler.includes(ch);
if (insens) {
retval = retval ||
- handler.includes(Character.toUpperCase(ch)) ||
- handler.includes(Character.toLowerCase(ch));
+ handler.includes(toUpperCase(ch, unicodeAware)) ||
+ handler.includes(toLowerCase(ch, unicodeAware));
}
if (negate) retval = !retval;
- if (retval) {
- ++mymatch.index;
- return next(input, mymatch);
+ return retval;
+ }
+
+ boolean returnsFixedLengthMatches() { return true; }
+
+ int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
+ int index = mymatch.index;
+ int numRepeats = 0;
+ while (true) {
+ if (numRepeats >= max) break;
+ char ch = input.charAt(index++);
+ if (! matchOneChar(ch)) break;
+ numRepeats++;
}
- else return false;
+ return numRepeats;
}
void dump(StringBuffer os) {
@@ -246,9 +265,6 @@ final class RETokenNamedProperty extends REToken {
private static class POSIXHandler extends Handler {
private RETokenPOSIX retoken;
- private REMatch mymatch = new REMatch(0,0,0);
- private char[] chars = new char[1];
- private CharIndexedCharArray ca = new CharIndexedCharArray(chars, 0);
public POSIXHandler(String name) {
int posixId = RETokenPOSIX.intValue(name.toLowerCase());
if (posixId != -1)
@@ -257,9 +273,7 @@ final class RETokenNamedProperty extends REToken {
throw new RuntimeException("Unknown posix ID: " + name);
}
public boolean includes(char c) {
- chars[0] = c;
- mymatch.index = 0;
- return retoken.match(ca, mymatch);
+ return retoken.matchOneChar(c);
}
}