summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/gnu/java/util/regex/RETokenRepeated.java')
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenRepeated.java590
1 files changed, 295 insertions, 295 deletions
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java b/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java
index 0ba880d3987..cd8635396a3 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java
@@ -59,11 +59,11 @@ final class RETokenRepeated extends REToken
this.max = max;
if (token.returnsFixedLengthMatches ())
{
- tokenFixedLength = token.getMaximumLength ();
+ tokenFixedLength = token.getMaximumLength ();
}
else
{
- tokenFixedLength = -1;
+ tokenFixedLength = -1;
}
}
@@ -125,7 +125,7 @@ final class RETokenRepeated extends REToken
{
this.tk = tk;
this.input = input;
- this.rematch = (REMatch) mymatch.clone (); // MUST make a clone
+ this.rematch = (REMatch) mymatch.clone (); // MUST make a clone
this.rematch.backtrackStack = new BacktrackStack ();
findFirst = true;
}
@@ -135,31 +135,31 @@ final class RETokenRepeated extends REToken
int origin = rematch.index;
REMatch rem;
if (findFirst)
- {
- rem = tk.findMatch (input, rematch);
- findFirst = false;
- }
+ {
+ rem = tk.findMatch (input, rematch);
+ findFirst = false;
+ }
else
- {
- while (true)
- {
- if (rematch.backtrackStack.empty ())
- {
- rem = null;
- break;
- }
- BacktrackStack.Backtrack bt = rematch.backtrackStack.pop ();
- rem = bt.token.backtrack (bt.input, bt.match, bt.param);
- if (rem != null)
- break;
- }
- }
+ {
+ while (true)
+ {
+ if (rematch.backtrackStack.empty ())
+ {
+ rem = null;
+ break;
+ }
+ BacktrackStack.Backtrack bt = rematch.backtrackStack.pop ();
+ rem = bt.token.backtrack (bt.input, bt.match, bt.param);
+ if (rem != null)
+ break;
+ }
+ }
if (rem == null)
- return null;
+ return null;
if (rem.index == origin)
- rem.empty = true;
+ rem.empty = true;
rematch = rem;
- return (REMatch) rem.clone (); // MUST make a clone.
+ return (REMatch) rem.clone (); // MUST make a clone.
}
boolean noMore ()
@@ -190,7 +190,7 @@ final class RETokenRepeated extends REToken
int[] visited;
DoablesFinder finder;
StackedInfo (CharIndexed input, int numRepeats, REMatch match,
- int[]visited, DoablesFinder finder)
+ int[]visited, DoablesFinder finder)
{
super (null, input, match, null);
this.numRepeats = numRepeats;
@@ -214,7 +214,7 @@ final class RETokenRepeated extends REToken
}
private REMatch findMatch (BacktrackStack stack,
- Deque < FindMatchControl > controlStack)
+ Deque < FindMatchControl > controlStack)
{
REMatch result = null;
StackedInfo si = null;
@@ -235,180 +235,180 @@ final class RETokenRepeated extends REToken
while (true)
{
- // This is the second entry point of this method.
- // If you want to call this method recursively but you do not need the
- // result returned, just continue from this point.
+ // This is the second entry point of this method.
+ // If you want to call this method recursively but you do not need the
+ // result returned, just continue from this point.
MAIN_LOOP:
- while (true)
- {
-
- if (stack.empty ())
- break MAIN_LOOP;
- si = (StackedInfo) (stack.peek ());
- input = si.input;
- numRepeats = si.numRepeats;
- mymatch = si.match;
- visited = si.visited;
- finder = si.finder;
-
- if (mymatch.backtrackStack == null)
- mymatch.backtrackStack = new BacktrackStack ();
-
- if (numRepeats >= max)
- {
- stack.pop ();
- REMatch m1 = matchRest (input, mymatch);
- if (m1 != null)
- {
- if (!stack.empty ())
- {
- m1.backtrackStack.push (new BacktrackStack.
- Backtrack (this, input,
- mymatch, stack));
- }
- result = m1;
- break MAIN_LOOP;
- }
- if (stingy)
- {
- continue MAIN_LOOP;
- }
- break MAIN_LOOP;
- }
-
- if (finder == null)
- {
- finder = new DoablesFinder (token, input, mymatch);
- si.finder = finder;
- }
-
- if (numRepeats < min)
- {
- while (true)
- {
- REMatch doable = finder.find ();
- if (doable == null)
- {
- if (stack.empty ())
- return null;
- stack.pop ();
- continue MAIN_LOOP;
- }
- if (finder.noMore ())
- stack.pop ();
- int newNumRepeats = (doable.empty ? min : numRepeats + 1);
- stack.
- push (new
- StackedInfo (input, newNumRepeats, doable,
- visited, null));
- continue MAIN_LOOP;
- }
- }
-
- if (visited == null)
- visited = initVisited ();
-
- if (stingy)
- {
- REMatch nextMatch = finder.find ();
- if (nextMatch != null && !nextMatch.empty)
- {
- stack.
- push (new
- StackedInfo (input, numRepeats + 1, nextMatch,
- visited, null));
- }
- else
- {
- stack.pop ();
- }
- REMatch m1 = matchRest (input, mymatch);
- if (m1 != null)
- {
- if (!stack.empty ())
- {
- m1.backtrackStack.push (new BacktrackStack.
- Backtrack (this, input,
- mymatch, stack));
- }
- result = m1;
- break MAIN_LOOP;
- }
- else
- {
- continue MAIN_LOOP;
- }
- }
-
- visited = addVisited (mymatch.index, visited);
-
- TryAnotherResult taresult =
- tryAnother (stack, input, mymatch, numRepeats, finder, visited);
- visited = taresult.visited;
- switch (taresult.status)
- {
- case TryAnotherResult.TRY_FURTHER:
- controlStack.push (new FindMatchControl (finder));
- continue MAIN_LOOP0;
- case TryAnotherResult.RESULT_FOUND:
- result = taresult.result;
- break MAIN_LOOP;
- }
-
- if (!stack.empty ())
- {
- stack.pop ();
- }
- if (possessive)
- {
- stack.clear ();
- }
- REMatch m1 = matchRest (input, mymatch);
- if (m1 != null)
- {
- if (!stack.empty ())
- {
- m1.backtrackStack.push (new BacktrackStack.
- Backtrack (this, input, mymatch,
- stack));
- }
- result = m1;
- break MAIN_LOOP;
- }
-
- } // MAIN_LOOP
-
- if (controlStack.isEmpty ())
- return result;
- FindMatchControl control = controlStack.pop ();
- if (possessive)
- {
- return result;
- }
- if (result != null)
- {
- result.backtrackStack.push (new BacktrackStack.
- Backtrack (this, input, mymatch,
- stack));
- return result;
- }
-
- finder = control.finder;
-
- TryAnotherResult taresult =
- tryAnother (stack, input, mymatch, numRepeats, finder, visited);
- visited = taresult.visited;
- switch (taresult.status)
- {
- case TryAnotherResult.TRY_FURTHER:
- controlStack.push (new FindMatchControl (finder));
- continue MAIN_LOOP0;
- case TryAnotherResult.RESULT_FOUND:
- return taresult.result;
- }
- continue MAIN_LOOP0;
-
- } // MAIN_LOOP0
+ while (true)
+ {
+
+ if (stack.empty ())
+ break MAIN_LOOP;
+ si = (StackedInfo) (stack.peek ());
+ input = si.input;
+ numRepeats = si.numRepeats;
+ mymatch = si.match;
+ visited = si.visited;
+ finder = si.finder;
+
+ if (mymatch.backtrackStack == null)
+ mymatch.backtrackStack = new BacktrackStack ();
+
+ if (numRepeats >= max)
+ {
+ stack.pop ();
+ REMatch m1 = matchRest (input, mymatch);
+ if (m1 != null)
+ {
+ if (!stack.empty ())
+ {
+ m1.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input,
+ mymatch, stack));
+ }
+ result = m1;
+ break MAIN_LOOP;
+ }
+ if (stingy)
+ {
+ continue MAIN_LOOP;
+ }
+ break MAIN_LOOP;
+ }
+
+ if (finder == null)
+ {
+ finder = new DoablesFinder (token, input, mymatch);
+ si.finder = finder;
+ }
+
+ if (numRepeats < min)
+ {
+ while (true)
+ {
+ REMatch doable = finder.find ();
+ if (doable == null)
+ {
+ if (stack.empty ())
+ return null;
+ stack.pop ();
+ continue MAIN_LOOP;
+ }
+ if (finder.noMore ())
+ stack.pop ();
+ int newNumRepeats = (doable.empty ? min : numRepeats + 1);
+ stack.
+ push (new
+ StackedInfo (input, newNumRepeats, doable,
+ visited, null));
+ continue MAIN_LOOP;
+ }
+ }
+
+ if (visited == null)
+ visited = initVisited ();
+
+ if (stingy)
+ {
+ REMatch nextMatch = finder.find ();
+ if (nextMatch != null && !nextMatch.empty)
+ {
+ stack.
+ push (new
+ StackedInfo (input, numRepeats + 1, nextMatch,
+ visited, null));
+ }
+ else
+ {
+ stack.pop ();
+ }
+ REMatch m1 = matchRest (input, mymatch);
+ if (m1 != null)
+ {
+ if (!stack.empty ())
+ {
+ m1.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input,
+ mymatch, stack));
+ }
+ result = m1;
+ break MAIN_LOOP;
+ }
+ else
+ {
+ continue MAIN_LOOP;
+ }
+ }
+
+ visited = addVisited (mymatch.index, visited);
+
+ TryAnotherResult taresult =
+ tryAnother (stack, input, mymatch, numRepeats, finder, visited);
+ visited = taresult.visited;
+ switch (taresult.status)
+ {
+ case TryAnotherResult.TRY_FURTHER:
+ controlStack.push (new FindMatchControl (finder));
+ continue MAIN_LOOP0;
+ case TryAnotherResult.RESULT_FOUND:
+ result = taresult.result;
+ break MAIN_LOOP;
+ }
+
+ if (!stack.empty ())
+ {
+ stack.pop ();
+ }
+ if (possessive)
+ {
+ stack.clear ();
+ }
+ REMatch m1 = matchRest (input, mymatch);
+ if (m1 != null)
+ {
+ if (!stack.empty ())
+ {
+ m1.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input, mymatch,
+ stack));
+ }
+ result = m1;
+ break MAIN_LOOP;
+ }
+
+ } // MAIN_LOOP
+
+ if (controlStack.isEmpty ())
+ return result;
+ FindMatchControl control = controlStack.pop ();
+ if (possessive)
+ {
+ return result;
+ }
+ if (result != null)
+ {
+ result.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input, mymatch,
+ stack));
+ return result;
+ }
+
+ finder = control.finder;
+
+ TryAnotherResult taresult =
+ tryAnother (stack, input, mymatch, numRepeats, finder, visited);
+ visited = taresult.visited;
+ switch (taresult.status)
+ {
+ case TryAnotherResult.TRY_FURTHER:
+ controlStack.push (new FindMatchControl (finder));
+ continue MAIN_LOOP0;
+ case TryAnotherResult.RESULT_FOUND:
+ return taresult.result;
+ }
+ continue MAIN_LOOP0;
+
+ } // MAIN_LOOP0
}
private static class TryAnotherResult
@@ -422,9 +422,9 @@ final class RETokenRepeated extends REToken
}
private TryAnotherResult tryAnother (BacktrackStack stack,
- CharIndexed input, REMatch mymatch,
- int numRepeats, DoablesFinder finder,
- int[]visited)
+ CharIndexed input, REMatch mymatch,
+ int numRepeats, DoablesFinder finder,
+ int[]visited)
{
TryAnotherResult taresult = new TryAnotherResult ();
@@ -437,58 +437,58 @@ final class RETokenRepeated extends REToken
DO_ONE_DOABLE:
while (true)
- {
-
- REMatch doable = finder.find ();
- if (doable == null)
- {
- break DO_THIS;
- }
- if (doable.empty)
- emptyMatchFound = true;
-
- if (!emptyMatchFound)
- {
- int n = doable.index;
- if (visitedContains (n, visited))
- {
- continue DO_ONE_DOABLE;
- }
- visited = addVisited (n, visited);
- stack.
- push (new
- StackedInfo (input, numRepeats + 1, doable, visited,
- null));
- taresult.visited = visited;
- taresult.status = TryAnotherResult.TRY_FURTHER;
- return taresult;
- }
- else
- {
- REMatch m1 = matchRest (input, doable);
- if (possessive)
- {
- taresult.result = m1;
- taresult.status = TryAnotherResult.RESULT_FOUND;
- return taresult;
- }
- if (m1 != null)
- {
- if (!stack.empty ())
- {
- m1.backtrackStack.push (new BacktrackStack.
- Backtrack (this, input, mymatch,
- stack));
- }
- taresult.result = m1;
- taresult.status = TryAnotherResult.RESULT_FOUND;
- return taresult;
- }
- }
-
- } // DO_ONE_DOABLE
-
- } // DO_THIS
+ {
+
+ REMatch doable = finder.find ();
+ if (doable == null)
+ {
+ break DO_THIS;
+ }
+ if (doable.empty)
+ emptyMatchFound = true;
+
+ if (!emptyMatchFound)
+ {
+ int n = doable.index;
+ if (visitedContains (n, visited))
+ {
+ continue DO_ONE_DOABLE;
+ }
+ visited = addVisited (n, visited);
+ stack.
+ push (new
+ StackedInfo (input, numRepeats + 1, doable, visited,
+ null));
+ taresult.visited = visited;
+ taresult.status = TryAnotherResult.TRY_FURTHER;
+ return taresult;
+ }
+ else
+ {
+ REMatch m1 = matchRest (input, doable);
+ if (possessive)
+ {
+ taresult.result = m1;
+ taresult.status = TryAnotherResult.RESULT_FOUND;
+ return taresult;
+ }
+ if (m1 != null)
+ {
+ if (!stack.empty ())
+ {
+ m1.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input, mymatch,
+ stack));
+ }
+ taresult.result = m1;
+ taresult.status = TryAnotherResult.RESULT_FOUND;
+ return taresult;
+ }
+ }
+
+ } // DO_ONE_DOABLE
+
+ } // DO_THIS
taresult.status = TryAnotherResult.NOTHING_FOUND;
return taresult;
@@ -501,8 +501,8 @@ final class RETokenRepeated extends REToken
REMatch m1 = findMatch (input, mymatch);
if (m1 != null)
{
- mymatch.assignFrom (m1);
- return true;
+ mymatch.assignFrom (m1);
+ return true;
}
return false;
}
@@ -523,8 +523,8 @@ final class RETokenRepeated extends REToken
// simple linear search is faster than binary search.
for (int i = 1; i < visited[0]; i++)
{
- if (n == visited[i])
- return true;
+ if (n == visited[i])
+ return true;
}
return false;
}
@@ -535,9 +535,9 @@ final class RETokenRepeated extends REToken
return visited;
if (visited[0] >= visited.length - 1)
{
- int[] newvisited = new int[visited.length + 32];
- System.arraycopy (visited, 0, newvisited, 0, visited.length);
- visited = newvisited;
+ int[] newvisited = new int[visited.length + 32];
+ System.arraycopy (visited, 0, newvisited, 0, visited.length);
+ visited = newvisited;
}
visited[0]++;
visited[visited[0]] = n;
@@ -548,7 +548,7 @@ final class RETokenRepeated extends REToken
{
if (next (input, newMatch))
{
- return newMatch;
+ return newMatch;
}
return null;
}
@@ -573,7 +573,7 @@ final class RETokenRepeated extends REToken
}
private REMatch backtrackFixedLength (CharIndexed input, REMatch mymatch,
- Object param)
+ Object param)
{
int[] params = (int[]) param;
int index = params[0];
@@ -582,34 +582,34 @@ final class RETokenRepeated extends REToken
}
private REMatch findMatchFixedLength (CharIndexed input, REMatch mymatch,
- int index, int count)
+ int index, int count)
{
REMatch tryMatch = (REMatch) mymatch.clone ();
while (true)
{
- tryMatch.index = index;
- REMatch m = matchRest (input, tryMatch);
- count--;
- if (stingy)
- index += tokenFixedLength;
- else
- index -= tokenFixedLength;
- if (possessive)
- return m;
- if (m != null)
- {
- if (count > 0)
- {
- m.backtrackStack.push (new BacktrackStack.
- Backtrack (this, input, mymatch,
- new int[]
- {
- index, count}));
- }
- return m;
- }
- if (count <= 0)
- return null;
+ tryMatch.index = index;
+ REMatch m = matchRest (input, tryMatch);
+ count--;
+ if (stingy)
+ index += tokenFixedLength;
+ else
+ index -= tokenFixedLength;
+ if (possessive)
+ return m;
+ if (m != null)
+ {
+ if (count > 0)
+ {
+ m.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input, mymatch,
+ new int[]
+ {
+ index, count}));
+ }
+ return m;
+ }
+ if (count <= 0)
+ return null;
}
}
@@ -624,14 +624,14 @@ final class RETokenRepeated extends REToken
os.append ('?');
else
{
- os.append ('{').append (min);
- if (max > min)
- {
- os.append (',');
- if (max != Integer.MAX_VALUE)
- os.append (max);
- }
- os.append ('}');
+ os.append ('{').append (min);
+ if (max > min)
+ {
+ os.append (',');
+ if (max != Integer.MAX_VALUE)
+ os.append (max);
+ }
+ os.append ('}');
}
if (stingy)
os.append ('?');
OpenPOWER on IntegriCloud