com.aptana.ide.lexer
Class RegexLexerBuilderBase

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by com.aptana.sax.ValidatingReader
          extended by com.aptana.ide.lexer.RegexLexerBuilderBase
All Implemented Interfaces:
ILexerBuilder, org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler
Direct Known Subclasses:
AsciiLexerBuilder, UnicodeLexerBuilder

public abstract class RegexLexerBuilderBase
extends ValidatingReader
implements ILexerBuilder

Author:
Kevin Lindsey

Field Summary
 
Fields inherited from class com.aptana.sax.ValidatingReader
_schema
 
Constructor Summary
RegexLexerBuilderBase()
          Create a new instance of LexerBuilder
 
Method Summary
 void addTokenList(ITokenList list)
          Add a new language token list to this builder.
 ILexer buildLexer()
           
 void characters(char[] buffer, int offset, int length)
          Process character data
protected abstract  ILexer createLexer()
          Create a new lexer.
protected abstract  ITokenList createTokenList(java.lang.String language)
          Create a new token list for the specified language
 void enterGroup(java.lang.String ns, java.lang.String name, java.lang.String qname, org.xml.sax.Attributes attributes)
          Process the start of a new group element
 void enterLexer(java.lang.String ns, java.lang.String name, java.lang.String qname, org.xml.sax.Attributes attributes)
          Process the start of a new lexer element
 void enterRegex(java.lang.String ns, java.lang.String name, java.lang.String qname, org.xml.sax.Attributes attributes)
          Process the start of a new regex element
 void enterToken(java.lang.String ns, java.lang.String name, java.lang.String qname, org.xml.sax.Attributes attributes)
          Process the start of a new token element
 void exitRegex(java.lang.String ns, java.lang.String name, java.lang.String qname)
          Complete the processing of the regex element
 ITokenList getTokens(java.lang.String language)
          Get the list of tokens for the specified language
 void loadXML(java.io.InputStream in)
          Load the XML file in the InputStream
 void loadXML(java.lang.String filename)
          Load the specified XML file
 
Methods inherited from class com.aptana.sax.ValidatingReader
endElement, read, read, startDocument, startElement
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RegexLexerBuilderBase

public RegexLexerBuilderBase()
                      throws LexerInitializationException
Create a new instance of LexerBuilder

Throws:
LexerInitializationException
Method Detail

getTokens

public ITokenList getTokens(java.lang.String language)
Description copied from interface: ILexerBuilder
Get the list of tokens for the specified language

Specified by:
getTokens in interface ILexerBuilder
Parameters:
language - The language MIME type
Returns:
Returns a TokenList for the given language
See Also:
ILexerBuilder.getTokens(java.lang.String)

addTokenList

public void addTokenList(ITokenList list)
Description copied from interface: ILexerBuilder
Add a new language token list to this builder. This list will be included in the final lexer created by buildLexer()

Specified by:
addTokenList in interface ILexerBuilder
Parameters:
list - The token list to add to this builder
See Also:
ILexerBuilder.addTokenList(com.aptana.ide.lexer.ITokenList)

buildLexer

public ILexer buildLexer()
                  throws LexerException
Specified by:
buildLexer in interface ILexerBuilder
Returns:
The completed lexer
Throws:
LexerException
See Also:
ILexerBuilder.buildLexer()

characters

public void characters(char[] buffer,
                       int offset,
                       int length)
Process character data

Specified by:
characters in interface org.xml.sax.ContentHandler
Overrides:
characters in class org.xml.sax.helpers.DefaultHandler
Parameters:
buffer -
offset -
length -

createLexer

protected abstract ILexer createLexer()
Create a new lexer. Sub-classes will need to override this method to create their own Lexer sub-classes

Returns:
Returns a newly instantiated lexer

createTokenList

protected abstract ITokenList createTokenList(java.lang.String language)
Create a new token list for the specified language

Parameters:
language -
Returns:
ITokenList

enterGroup

public void enterGroup(java.lang.String ns,
                       java.lang.String name,
                       java.lang.String qname,
                       org.xml.sax.Attributes attributes)
Process the start of a new group element

Parameters:
ns -
name -
qname -
attributes -

enterLexer

public void enterLexer(java.lang.String ns,
                       java.lang.String name,
                       java.lang.String qname,
                       org.xml.sax.Attributes attributes)
Process the start of a new lexer element

Parameters:
ns -
name -
qname -
attributes -

enterRegex

public void enterRegex(java.lang.String ns,
                       java.lang.String name,
                       java.lang.String qname,
                       org.xml.sax.Attributes attributes)
Process the start of a new regex element

Parameters:
ns -
name -
qname -
attributes -

enterToken

public void enterToken(java.lang.String ns,
                       java.lang.String name,
                       java.lang.String qname,
                       org.xml.sax.Attributes attributes)
Process the start of a new token element

Parameters:
ns -
name -
qname -
attributes -

exitRegex

public void exitRegex(java.lang.String ns,
                      java.lang.String name,
                      java.lang.String qname)
Complete the processing of the regex element

Parameters:
ns -
name -
qname -

loadXML

public void loadXML(java.lang.String filename)
             throws LexerException
Load the specified XML file

Parameters:
filename -
Throws:
LexerException

loadXML

public void loadXML(java.io.InputStream in)
             throws LexerException
Load the XML file in the InputStream

Parameters:
in -
Throws:
LexerException