diff options
author | Ziga Mahkovec <ziga.mahkovec@klika.si> | 2005-06-02 00:11:00 +0200 |
---|---|---|
committer | Ziga Mahkovec <ziga@gcc.gnu.org> | 2005-06-01 22:11:00 +0000 |
commit | 7e1603c0f0dea72c62f5b78cbfbcbeaf4ac05207 (patch) | |
tree | c21882d9affe68b641900cf6ea85eb1ec0847f80 /libjava/gnu/regexp/RETokenRepeated.java | |
parent | cce7074710fc4712506c58a183034e53b87262fa (diff) | |
download | gcc-7e1603c0f0dea72c62f5b78cbfbcbeaf4ac05207.zip gcc-7e1603c0f0dea72c62f5b78cbfbcbeaf4ac05207.tar.gz gcc-7e1603c0f0dea72c62f5b78cbfbcbeaf4ac05207.tar.bz2 |
re PR libgcj/20435 (regex pattern compiling bug)
2005-06-01 Ziga Mahkovec <ziga.mahkovec@klika.si>
PR libgcj/20435:
* gnu/regexp/RESyntax.java (RE_POSSESSIVE_OPS): New field.
(static): Add possessive matching to JAVA_1_4 syntax.
* gnu/regexp/RETokenRepeated.java (possessive): New field.
(makePossessive, isPossessive): New methods.
(match): Don't back off during possessive matching.
* gnu/regexp/RE.java (initalize): Accept possessive quantifier.
* java/util/regex/Pattern.java (constructor): Switch syntax from PERL5
to JAVA_1_4.
From-SVN: r100466
Diffstat (limited to 'libjava/gnu/regexp/RETokenRepeated.java')
-rw-r--r-- | libjava/gnu/regexp/RETokenRepeated.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libjava/gnu/regexp/RETokenRepeated.java b/libjava/gnu/regexp/RETokenRepeated.java index 8c78927..821e4c5 100644 --- a/libjava/gnu/regexp/RETokenRepeated.java +++ b/libjava/gnu/regexp/RETokenRepeated.java @@ -44,6 +44,7 @@ final class RETokenRepeated extends REToken { private REToken token; private int min,max; private boolean stingy; + private boolean possessive; RETokenRepeated(int subIndex, REToken token, int min, int max) { super(subIndex); @@ -61,6 +62,16 @@ final class RETokenRepeated extends REToken { boolean isStingy() { return stingy; } + + /** Sets possessive matching mode to true. */ + void makePossessive() { + possessive = true; + } + + /** Queries if this token has possessive matching enabled. */ + boolean isPossessive() { + return possessive; + } /** * The minimum length of a repeated token is the minimum length @@ -172,6 +183,8 @@ final class RETokenRepeated extends REToken { } } // else did not match rest of the tokens, try again on smaller sample + // or break out when performing possessive matching + if (possessive) break; } if (allResults != null) { mymatch.assignFrom(allResults); // does this get all? |