com.aptana.ide.lexer.matcher
Class AbstractTextMatcher

java.lang.Object
  extended by com.aptana.xml.NodeBase
      extended by com.aptana.ide.lexer.matcher.model.MatcherElement
          extended by com.aptana.ide.lexer.matcher.AbstractTextMatcher
All Implemented Interfaces:
ITextMatcher, IMatcherElement, INode, java.lang.Comparable
Direct Known Subclasses:
AbstractCharacterMatcher, AndMatcher, CommentMatcher, EndOfFileMatcher, EndOfLineMatcher, HereDocument, IdentifierMatcher, LineTerminatorMatcher, LookaheadMatcher, MultiLineTerminatorMatcher, MultiLineTextMatcher, OneOrMoreMatcher, OptionalMatcher, OrMatcher, QuotedStringMatcher, RegExpMatcher, RepetitionMatcher, SingleLineTextMatcher, StartOfFileMatcher, StartOfLineMatcher, StringMatcher, ToDelimiterMatcher, ZeroOrMoreMatcher

public abstract class AbstractTextMatcher
extends MatcherElement
implements ITextMatcher

Author:
Kevin Lindsey

Constructor Summary
AbstractTextMatcher()
          AbstractMatcher
 
Method Summary
protected  void accept(char[] source, int startingOffset, int endingOffset)
          accept
protected  void accept(char[] source, int startingOffset, int endingOffset, IToken token)
          accept
abstract  void addChildTypes()
          addChildTypes
 void addFirstCharacters(MatcherMap map)
          addFirstCharacters
 void addFirstCharacters(MatcherMap map, ITextMatcher target)
          This functions the same as addFirstCharacter(MatcherMap); however, the matcher that will use this matcher's first character as a possible transition is specified in the target parameter.
 void addNameValueChangeListener(NameValueChangeListener listener)
          addNameValueChangeListener
 boolean canMatchNothing()
          Return a flag indicating if this matcher can return a positive match without consuming characters
protected  void createToken(ITokenList tokenList)
          createToken
protected  AbstractTextMatcher getExpressionRoot()
          getExpressionRoot
 IToken getMatchedToken()
          Gets the matched token, null is none matched
 java.lang.String getName()
          getName
protected  java.lang.String getNameValue(java.lang.String name)
          getNameValue
 IToken getToken()
          getToken
abstract  int match(char[] source, int offset, int eofOffset)
          Gets the ending position of the match starting at the offset.
 void removeNameValueChangeListener(NameValueChangeListener listener)
          removeNameValueChangeListener
protected  void setMatchedToken(IToken token)
          setMatchedToken
 void setName(java.lang.String name)
          setName
protected  void setNameValue(java.lang.String name, java.lang.String value)
          setNameValue
protected  void setParent(INode parent)
          setParent
protected  void setToken(IToken token)
          setToken
 java.lang.String toString()
           
protected  void validateLocal()
          validateLocalAttributes
protected  void wrapChildrenInAndElement()
          wrapChildrenInAndElement
 
Methods inherited from class com.aptana.ide.lexer.matcher.model.MatcherElement
appendChild, createChildrenTokens, createTokens, getCategory, getGroup, getSwitchTo, getType, getTypeDefinedInSubtree, setCategory, setGroup, setSwitchTo, setType, validate, validateChildren
 
Methods inherited from class com.aptana.xml.NodeBase
addChildType, appendText, compareTo, getChild, getChildCount, getColumnNumber, getDocument, getLineNumber, getParent, getText, removeChild, removeChildType, setColumnNumber, setLineNumber
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.aptana.xml.INode
appendChild, appendText, getChild, getChildCount, getColumnNumber, getDocument, getLineNumber, getParent, getText, removeChild, setColumnNumber, setLineNumber
 

Constructor Detail

AbstractTextMatcher

public AbstractTextMatcher()
AbstractMatcher

Method Detail

accept

protected void accept(char[] source,
                      int startingOffset,
                      int endingOffset)
accept

Parameters:
source -
startingOffset -
endingOffset -

accept

protected void accept(char[] source,
                      int startingOffset,
                      int endingOffset,
                      IToken token)
accept

Parameters:
source -
startingOffset -
endingOffset -
token -

addChildTypes

public abstract void addChildTypes()
addChildTypes


addFirstCharacters

public void addFirstCharacters(MatcherMap map)
addFirstCharacters

Specified by:
addFirstCharacters in interface ITextMatcher
Parameters:
map -

addFirstCharacters

public void addFirstCharacters(MatcherMap map,
                               ITextMatcher target)
Description copied from interface: ITextMatcher
This functions the same as addFirstCharacter(MatcherMap); however, the matcher that will use this matcher's first character as a possible transition is specified in the target parameter.

Specified by:
addFirstCharacters in interface ITextMatcher
See Also:
ITextMatcher.addFirstCharacters(com.aptana.ide.lexer.matcher.MatcherMap, com.aptana.ide.lexer.matcher.ITextMatcher)

addNameValueChangeListener

public void addNameValueChangeListener(NameValueChangeListener listener)
addNameValueChangeListener

Parameters:
listener -

canMatchNothing

public boolean canMatchNothing()
Description copied from interface: ITextMatcher
Return a flag indicating if this matcher can return a positive match without consuming characters

Specified by:
canMatchNothing in interface ITextMatcher
Returns:
boolean
See Also:
ITextMatcher.canMatchNothing()

createToken

protected void createToken(ITokenList tokenList)
Description copied from class: MatcherElement
createToken

Overrides:
createToken in class MatcherElement
See Also:
MatcherElement.createToken(com.aptana.ide.lexer.ITokenList)

getExpressionRoot

protected AbstractTextMatcher getExpressionRoot()
getExpressionRoot

Returns:
AbstractMatcher

getMatchedToken

public IToken getMatchedToken()
Description copied from interface: ITextMatcher
Gets the matched token, null is none matched

Specified by:
getMatchedToken in interface ITextMatcher
Returns:
- matched token or null
See Also:
ITextMatcher.getMatchedToken()

getName

public java.lang.String getName()
getName

Returns:
String or null

getNameValue

protected java.lang.String getNameValue(java.lang.String name)
getNameValue

Parameters:
name -
Returns:
String

getToken

public IToken getToken()
getToken

Returns:
IToken or null

match

public abstract int match(char[] source,
                          int offset,
                          int eofOffset)
Description copied from interface: ITextMatcher
Gets the ending position of the match starting at the offset. Return -1 if no match occured.

Specified by:
match in interface ITextMatcher
Parameters:
source - character array to walk
offset - offset into array
eofOffset - end of file offset
Returns:
Returns the offset where the match ended or -1 if no match occurred
See Also:
ITextMatcher.match(char[], int, int)

removeNameValueChangeListener

public void removeNameValueChangeListener(NameValueChangeListener listener)
removeNameValueChangeListener

Parameters:
listener -

setMatchedToken

protected void setMatchedToken(IToken token)
setMatchedToken

Parameters:
token -

setName

public void setName(java.lang.String name)
setName

Parameters:
name -

setNameValue

protected void setNameValue(java.lang.String name,
                            java.lang.String value)
setNameValue

Parameters:
name -
value -

setParent

protected void setParent(INode parent)
Description copied from class: NodeBase
setParent

Overrides:
setParent in class NodeBase
See Also:
NodeBase.setParent(com.aptana.xml.INode)

setToken

protected void setToken(IToken token)
setToken

Parameters:
token -

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
See Also:
Object.toString()

validateLocal

protected void validateLocal()
Description copied from class: MatcherElement
validateLocalAttributes

Overrides:
validateLocal in class MatcherElement
See Also:
MatcherElement.validateLocal()

wrapChildrenInAndElement

protected void wrapChildrenInAndElement()
wrapChildrenInAndElement