diff options
| author | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2008-09-01 17:19:54 +0000 |
|---|---|---|
| committer | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2008-09-01 17:19:54 +0000 |
| commit | 5f55de7aeceb54ed19113fcda5decbfb21d3c8f9 (patch) | |
| tree | 1498de7d21de9f6138c217484f3bef4a695179c8 /gnu/java/util/regex/RETokenStart.java | |
| parent | e6b426c06016fe3f2c5ad814caf42d486564b9a0 (diff) | |
| download | classpath-5f55de7aeceb54ed19113fcda5decbfb21d3c8f9.tar.gz | |
2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
* gnu/java/util/regex/BacktrackStack.java,
* gnu/java/util/regex/CharIndexed.java,
* gnu/java/util/regex/CharIndexedCharArray.java,
* gnu/java/util/regex/CharIndexedCharSequence.java,
* gnu/java/util/regex/CharIndexedInputStream.java,
* gnu/java/util/regex/CharIndexedString.java,
* gnu/java/util/regex/CharIndexedStringBuffer.java,
* gnu/java/util/regex/RE.java,
* gnu/java/util/regex/REException.java,
* gnu/java/util/regex/REFilterInputStream.java,
* gnu/java/util/regex/REMatch.java,
* gnu/java/util/regex/REMatchEnumeration.java,
* gnu/java/util/regex/RESyntax.java,
* gnu/java/util/regex/REToken.java,
* gnu/java/util/regex/RETokenAny.java,
* gnu/java/util/regex/RETokenBackRef.java,
* gnu/java/util/regex/RETokenChar.java,
* gnu/java/util/regex/RETokenEnd.java,
* gnu/java/util/regex/RETokenEndOfPreviousMatch.java,
* gnu/java/util/regex/RETokenEndSub.java,
* gnu/java/util/regex/RETokenIndependent.java,
* gnu/java/util/regex/RETokenLookAhead.java,
* gnu/java/util/regex/RETokenLookBehind.java,
* gnu/java/util/regex/RETokenNamedProperty.java,
* gnu/java/util/regex/RETokenOneOf.java,
* gnu/java/util/regex/RETokenPOSIX.java,
* gnu/java/util/regex/RETokenRange.java,
* gnu/java/util/regex/RETokenRepeated.java,
* gnu/java/util/regex/RETokenStart.java,
* gnu/java/util/regex/RETokenWordBoundary.java,
* gnu/java/util/regex/UncheckedRE.java:
Fix indentation.
Diffstat (limited to 'gnu/java/util/regex/RETokenStart.java')
| -rw-r--r-- | gnu/java/util/regex/RETokenStart.java | 185 |
1 files changed, 105 insertions, 80 deletions
diff --git a/gnu/java/util/regex/RETokenStart.java b/gnu/java/util/regex/RETokenStart.java index 9f5fa73b9..6a8d247c9 100644 --- a/gnu/java/util/regex/RETokenStart.java +++ b/gnu/java/util/regex/RETokenStart.java @@ -39,90 +39,115 @@ package gnu.java.util.regex; import gnu.java.lang.CPStringBuilder; -class RETokenStart extends REToken { - private String newline; // matches after a newline - private boolean check_java_line_terminators; - - RETokenStart(int subIndex, String newline) { - super(subIndex); - this.newline = newline; - this.check_java_line_terminators = false; - } - - RETokenStart(int subIndex, String newline, boolean b) { - super(subIndex); - this.newline = newline; - this.check_java_line_terminators = b; - } +class RETokenStart extends REToken +{ + private String newline; // matches after a newline + private boolean check_java_line_terminators; - @Override - int getMaximumLength() { - return 0; - } + RETokenStart (int subIndex, String newline) + { + super (subIndex); + this.newline = newline; + this.check_java_line_terminators = false; + } - @Override - REMatch matchThis(CharIndexed input, REMatch mymatch) { - // charAt(index-n) may be unknown on a Reader/InputStream. FIXME - // Match after a newline if in multiline mode - - if (check_java_line_terminators) { - char ch = input.charAt(mymatch.index - 1); - if (ch != CharIndexed.OUT_OF_BOUNDS) { - if (ch == '\n') return mymatch; - if (ch == '\r') { - char ch1 = input.charAt(mymatch.index); - if (ch1 != '\n') return mymatch; - return null; - } - if (ch == '\u0085') return mymatch; // A next-line character - if (ch == '\u2028') return mymatch; // A line-separator character - if (ch == '\u2029') return mymatch; // A paragraph-separator character - } - } - - if (newline != null) { - int len = newline.length(); - if (mymatch.offset >= len) { - boolean found = true; - char z; - int i = 0; // position in REToken.newline - char ch = input.charAt(mymatch.index - len); - do { - z = newline.charAt(i); - if (ch != z) { - found = false; - break; - } - ++i; - ch = input.charAt(mymatch.index - len + i); - } while (i < len); - - if (found) return mymatch; - } - } - - // Don't match at all if REG_NOTBOL is set. - if ((mymatch.eflags & RE.REG_NOTBOL) > 0) return null; - - if ((mymatch.eflags & RE.REG_ANCHORINDEX) > 0) - return (mymatch.anchor == mymatch.offset) ? - mymatch : null; - else - return ((mymatch.index == 0) && (mymatch.offset == 0)) ? - mymatch : null; - } + RETokenStart (int subIndex, String newline, boolean b) + { + super (subIndex); + this.newline = newline; + this.check_java_line_terminators = b; + } - @Override - boolean returnsFixedLengthMatches() { return true; } + @Override + int getMaximumLength () + { + return 0; + } + + @Override + REMatch matchThis (CharIndexed input, REMatch mymatch) + { + // charAt(index-n) may be unknown on a Reader/InputStream. FIXME + // Match after a newline if in multiline mode + + if (check_java_line_terminators) + { + char ch = input.charAt (mymatch.index - 1); + if (ch != CharIndexed.OUT_OF_BOUNDS) + { + if (ch == '\n') + return mymatch; + if (ch == '\r') + { + char ch1 = input.charAt (mymatch.index); + if (ch1 != '\n') + return mymatch; + return null; + } + if (ch == '\u0085') + return mymatch; // A next-line character + if (ch == '\u2028') + return mymatch; // A line-separator character + if (ch == '\u2029') + return mymatch; // A paragraph-separator character + } + } + + if (newline != null) + { + int len = newline.length (); + if (mymatch.offset >= len) + { + boolean found = true; + char z; + int i = 0; // position in REToken.newline + char ch = input.charAt (mymatch.index - len); + do + { + z = newline.charAt (i); + if (ch != z) + { + found = false; + break; + } + ++i; + ch = input.charAt (mymatch.index - len + i); + } + while (i < len); + + if (found) + return mymatch; + } + } + + // Don't match at all if REG_NOTBOL is set. + if ((mymatch.eflags & RE.REG_NOTBOL) > 0) + return null; + + if ((mymatch.eflags & RE.REG_ANCHORINDEX) > 0) + return (mymatch.anchor == mymatch.offset) ? mymatch : null; + else + return ((mymatch.index == 0) && (mymatch.offset == 0)) ? mymatch : null; + } + + @Override + boolean returnsFixedLengthMatches () + { + return true; + } @Override - int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) { - if (matchThis(input, mymatch) != null) return max; - else return 0; - } - + int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max) + { + if (matchThis (input, mymatch) != null) + return max; + else + return 0; + } + @Override - void dump(CPStringBuilder os) { - os.append('^'); - } + void dump (CPStringBuilder os) + { + os.append ('^'); + } } |
