|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.xpath.compiler.Lexer
class Lexer
This class is in charge of lexical processing of the XPath expression into tokens.
| Field Summary | |
|---|---|
private Compiler |
m_compiler
The target XPath. |
(package private) PrefixResolver |
m_namespaceContext
The prefix resolver to map prefixes to namespaces in the XPath. |
private int[] |
m_patternMap
Ignore this, it is going away. |
private int |
m_patternMapSize
Ignore this, it is going away. |
(package private) XPathParser |
m_processor
The XPath processor object. |
(package private) static int |
TARGETEXTRA
This value is added to each element name in the TARGETEXTRA that is a 'target' (right-most top-level element name). |
| Constructor Summary | |
|---|---|
Lexer(Compiler compiler,
PrefixResolver resolver,
XPathParser xpathProcessor)
Create a Lexer object. |
|
| Method Summary | |
|---|---|
private void |
addToTokenQueue(java.lang.String s)
Add a token to the token queue. |
(package private) int |
getKeywordToken(java.lang.String key)
Given a string, return the corresponding keyword token. |
private int |
getTokenQueuePosFromMap(int i)
Given a map pos, return the corresponding token queue pos. |
private int |
mapNSTokens(java.lang.String pat,
int startSubstring,
int posOfNSSep,
int posOfScan)
When a seperator token is found, see if there's a element name or the like to map. |
private boolean |
mapPatternElemPos(int nesting,
boolean isStart,
boolean isAttrName)
Record the current position on the token queue as long as this is a top-level element. |
private void |
recordTokenString(java.util.Vector targetStrings)
Record the current token in the passed vector. |
private void |
resetTokenMark(int mark)
Reset token queue mark and m_token to a given position. |
(package private) void |
tokenize(java.lang.String pat)
Walk through the expression and build a token queue, and a map of the top-level elements. |
(package private) void |
tokenize(java.lang.String pat,
java.util.Vector targetStrings)
Walk through the expression and build a token queue, and a map of the top-level elements. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private Compiler m_compiler
PrefixResolver m_namespaceContext
XPathParser m_processor
static final int TARGETEXTRA
private int[] m_patternMap
private int m_patternMapSize
| Constructor Detail |
|---|
Lexer(Compiler compiler,
PrefixResolver resolver,
XPathParser xpathProcessor)
compiler - The owning compiler for this lexer.resolver - The prefix resolver for mapping qualified name prefixes
to namespace URIs.xpathProcessor - The parser that is processing strings to opcodes.| Method Detail |
|---|
void tokenize(java.lang.String pat)
throws javax.xml.transform.TransformerException
pat - XSLT Expression.
javax.xml.transform.TransformerException
void tokenize(java.lang.String pat,
java.util.Vector targetStrings)
throws javax.xml.transform.TransformerException
pat - XSLT Expression.targetStrings - Vector to hold Strings, may be null.
javax.xml.transform.TransformerException
private boolean mapPatternElemPos(int nesting,
boolean isStart,
boolean isAttrName)
nesting - The nesting count for the pattern element.isStart - true if this is the start of a pattern.isAttrName - true if we have determined that this is an attribute name.
private int getTokenQueuePosFromMap(int i)
i - The index in the m_patternMap.
private final void resetTokenMark(int mark)
mark - The new position.final int getKeywordToken(java.lang.String key)
key - The keyword.
private void recordTokenString(java.util.Vector targetStrings)
targetStrings - Vector of string.private final void addToTokenQueue(java.lang.String s)
s - The token.
private int mapNSTokens(java.lang.String pat,
int startSubstring,
int posOfNSSep,
int posOfScan)
throws javax.xml.transform.TransformerException
pat - The XPath name string.startSubstring - The start of the name string.posOfNSSep - The position of the namespace seperator (':').posOfScan - The end of the name index.
javax.xml.transform.TransformerException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||