#include <XPathLex.h>
Public Types | |
enum | _XPathLexToken { XP_UNKNOWN = 0, XP_EOF = 1, XP_STRING = 2, XP_LPAR = 3, XP_RPAR = 4, XP_LBRAC = 5, XP_RBRAC = 6, XP_DOT = 7, XP_DOTDOT = 8, XP_AT = 9, XP_COMMA = 10, XP_COLONCOLON = 11, XP_INT = 12, XP_FLOAT = 13, XP_SLASH = 14, XP_SLASHSLASH = 15, XP_PIPE = 16, XP_PLUS = 17, XP_MIN = 18, XP_EQ = 19, XP_NEQ = 20, XP_LT = 21, XP_LTEQ = 22, XP_GT = 23, XP_GTEQ = 24, XP_AND = 25, XP_OR = 26, XP_MOD = 27, XP_DIV = 28, XP_STAR = 29, XP_DOLLAR = 30, XP_COLON = 31, XP_EQEQ = 32, XP_LITERAL = 33 } |
typedef enum XPathLex::_XPathLexToken | XPathLexToken |
Public Member Functions | |
XPathLex (const XPathLex &lex) | |
XPathLex & | operator= (const XPathLex &lex) |
void | Tokenize (const String &text) |
XPathLexToken | Match (XPathLex::XPathLexToken token) |
XPathLexToken | GetRelativeToken (int distance) const |
int | Count () const |
XPathLexToken | CurrentToken () const |
const String & | CurrentLexum () const |
int | CurrentLexumInputCharPos () const |
bool | HasMoreTokens () const |
bool | IsNameChar (char ch) const |
void | CheckMem () const |
void | ValidateMem () const |
XPath lexical analyizer.
XPaths are short, so this class analyzes all of the tokens in one pass.
Definition at line 30 of file XPathLex.h.
void XPathLex::Tokenize | ( | const String & | text | ) |
Tokenize the text; any existing tokens are replaced and the position is reset.
Definition at line 127 of file XPathLex.cpp.
References Vector< T >::Add(), and Vector< T >::Clear().