Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

gnu.regexp
Class RETokenRepeated  view RETokenRepeated download RETokenRepeated.java

java.lang.Object
  extended bygnu.regexp.REToken
      extended bygnu.regexp.RETokenRepeated
All Implemented Interfaces:
java.lang.Cloneable, java.io.Serializable

final class RETokenRepeated
extends REToken


Nested Class Summary
private static class RETokenRepeated.DoablesFinder
           
private static class RETokenRepeated.StackedInfo
           
 
Field Summary
private  int max
           
private  int min
           
protected  REToken next
           
private  boolean possessive
           
private  boolean stingy
           
protected  int subIndex
           
private  REToken token
           
private  int tokenFixedLength
           
protected  REToken uncle
           
protected  boolean unicodeAware
           
 
Constructor Summary
(package private) RETokenRepeated(int subIndex, REToken token, int min, int max)
           
 
Method Summary
private static int[] addVisited(int n, int[] visited)
           
(package private)  REMatch backtrack(CharIndexed input, REMatch mymatch, java.lang.Object param)
          Backtrack to another possibility.
private  REMatch backtrackFixedLength(CharIndexed input, REMatch mymatch, java.lang.Object param)
           
(package private)  boolean chain(REToken token)
           
 java.lang.Object clone()
          This method may be called to create a new copy of the Object.
(package private)  void dump(java.lang.StringBuffer os)
           
(package private)  void dumpAll(java.lang.StringBuffer os)
           
(package private)  int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max)
           
private  REMatch findMatch(BacktrackStack stack)
           
(package private)  REMatch findMatch(CharIndexed input, REMatch mymatch)
          Finds a match at the position specified by the given REMatch.
private  REMatch findMatchFixedLength(CharIndexed input, REMatch mymatch)
           
private  REMatch findMatchFixedLength(CharIndexed input, REMatch mymatch, int index, int count)
           
(package private)  int getMaximumLength()
           
(package private)  int getMinimumLength()
          The minimum length of a repeated token is the minimum length of the token multiplied by the minimum number of times it must match.
(package private)  REToken getNext()
          Returns the next REToken chained to this REToken.
private static int[] initVisited()
           
(package private)  boolean isPossessive()
          Queries if this token has possessive matching enabled.
(package private)  boolean isStingy()
          Queries if this token has minimal matching enabled.
(package private)  void makePossessive()
          Sets possessive matching mode to true.
(package private)  void makeStingy()
          Sets the minimal matching mode to true.
(package private)  boolean match(CharIndexed input, REMatch mymatch)
          Returns true if the match succeeded, false if it failed.
private  REMatch matchRest(CharIndexed input, REMatch newMatch)
           
(package private)  REMatch matchThis(CharIndexed input, REMatch mymatch)
          Returns true if the match succeeded, false if it failed.
protected  boolean next(CharIndexed input, REMatch mymatch)
          Returns true if the rest of the tokens match, false if they fail.
(package private)  boolean returnsFixedLengthMatches()
           
(package private)  void setUncle(REToken anUncle)
           
static char toLowerCase(char ch, boolean unicodeAware)
          Converts the character argument to lowercase.
 java.lang.String toString()
          Convert this Object to a human-readable String.
static char toUpperCase(char ch, boolean unicodeAware)
          Converts the character argument to uppercase.
private static boolean visitedContains(int n, int[] visited)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

token

private REToken token

min

private int min

max

private int max

stingy

private boolean stingy

possessive

private boolean possessive

tokenFixedLength

private int tokenFixedLength

next

protected REToken next

uncle

protected REToken uncle

subIndex

protected int subIndex

unicodeAware

protected boolean unicodeAware
Constructor Detail

RETokenRepeated

RETokenRepeated(int subIndex,
                REToken token,
                int min,
                int max)
Method Detail

makeStingy

void makeStingy()
Sets the minimal matching mode to true.


isStingy

boolean isStingy()
Queries if this token has minimal matching enabled.


makePossessive

void makePossessive()
Sets possessive matching mode to true.


isPossessive

boolean isPossessive()
Queries if this token has possessive matching enabled.


getMinimumLength

int getMinimumLength()
The minimum length of a repeated token is the minimum length of the token multiplied by the minimum number of times it must match.

Overrides:
getMinimumLength in class REToken

getMaximumLength

int getMaximumLength()
Overrides:
getMaximumLength in class REToken

findMatch

REMatch findMatch(CharIndexed input,
                  REMatch mymatch)
Description copied from class: REToken
Finds a match at the position specified by the given REMatch. If necessary, adds a BacktrackStack.Backtrack object to backtrackStack of the REmatch found this time so that another possible match may be found when backtrack is called. By default, nothing is added to the backtrackStack.

Overrides:
findMatch in class REToken

backtrack

REMatch backtrack(CharIndexed input,
                  REMatch mymatch,
                  java.lang.Object param)
Description copied from class: REToken
Backtrack to another possibility. Ordinary REToken cannot do anything if this method is called.

Overrides:
backtrack in class REToken

findMatch

private REMatch findMatch(BacktrackStack stack)

match

boolean match(CharIndexed input,
              REMatch mymatch)
Description copied from class: REToken
Returns true if the match succeeded, false if it failed.

Overrides:
match in class REToken

initVisited

private static int[] initVisited()

visitedContains

private static boolean visitedContains(int n,
                                       int[] visited)

addVisited

private static int[] addVisited(int n,
                                int[] visited)

matchRest

private REMatch matchRest(CharIndexed input,
                          REMatch newMatch)

findMatchFixedLength

private REMatch findMatchFixedLength(CharIndexed input,
                                     REMatch mymatch)

backtrackFixedLength

private REMatch backtrackFixedLength(CharIndexed input,
                                     REMatch mymatch,
                                     java.lang.Object param)

findMatchFixedLength

private REMatch findMatchFixedLength(CharIndexed input,
                                     REMatch mymatch,
                                     int index,
                                     int count)

dump

void dump(java.lang.StringBuffer os)
Specified by:
dump in class REToken

clone

public java.lang.Object clone()
Description copied from class: java.lang.Object
This method may be called to create a new copy of the Object. The typical behavior is as follows:
  • o == o.clone() is false
  • o.getClass() == o.clone().getClass() is true
  • o.equals(o) is true

However, these are not strict requirements, and may be violated if necessary. Of the three requirements, the last is the most commonly violated, particularly if the subclass does not override Object.equals(Object)>Object.equals(Object) 55 .

If the Object you call clone() on does not implement java.lang.Cloneable (which is a placeholder interface), then a CloneNotSupportedException is thrown. Notice that Object does not implement Cloneable; this method exists as a convenience for subclasses that do.

Object's implementation of clone allocates space for the new Object using the correct class, without calling any constructors, and then fills in all of the new field values with the old field values. Thus, it is a shallow copy. However, subclasses are permitted to make a deep copy.

All array types implement Cloneable, and override this method as follows (it should never fail):

 public Object clone()
 {
   try
     {
       super.clone();
     }
   catch (CloneNotSupportedException e)
     {
       throw new InternalError(e.getMessage());
     }
 }
 


setUncle

void setUncle(REToken anUncle)

matchThis

REMatch matchThis(CharIndexed input,
                  REMatch mymatch)
Returns true if the match succeeded, false if it failed. The matching is done against this REToken only. Chained tokens are not checked. This method is used to define the default match method. Simple subclasses of REToken, for example, such that matches only one character, should implement this method. Then the default match method will work. But complicated subclasses of REToken, which needs a special match method, do not have to implement this method.


next

protected boolean next(CharIndexed input,
                       REMatch mymatch)
Returns true if the rest of the tokens match, false if they fail.


getNext

REToken getNext()
Returns the next REToken chained to this REToken.


returnsFixedLengthMatches

boolean returnsFixedLengthMatches()

findFixedLengthMatches

int findFixedLengthMatches(CharIndexed input,
                           REMatch mymatch,
                           int max)

chain

boolean chain(REToken token)

dumpAll

void dumpAll(java.lang.StringBuffer os)

toString

public java.lang.String toString()
Description copied from class: java.lang.Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() 55 and such.

It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).


toLowerCase

public static char toLowerCase(char ch,
                               boolean unicodeAware)
Converts the character argument to lowercase.


toUpperCase

public static char toUpperCase(char ch,
                               boolean unicodeAware)
Converts the character argument to uppercase.