org.exolab.castor.jdo.oql

Class Lexer

Implemented Interfaces:
TokenTypes

public class Lexer
extends java.lang.Object
implements TokenTypes

Seperates an input string of OQL into a stream of Tokens.
Version:
$Revision: 1.1.1.1 $ $Date: 2003/03/03 07:08:22 $
Author:
Nissim Karpenstein

Field Summary

(package private) int
_pos
(package private) String
_queryString
(package private) boolean
endOfQueryPassed
(package private) Hashtable
keywords

Fields inherited from interface org.exolab.castor.jdo.oql.TokenTypes

ARROW, BOOLEAN_LITERAL, CHAR_LITERAL, COLON, COMMA, CONCAT, DATE_LITERAL, DIVIDE, DOLLAR, DOT, DOUBLE_LITERAL, END_OF_QUERY, EQUAL, GT, GTE, IDENTIFIER, KEYWORD_ABS, KEYWORD_AND, KEYWORD_AS, KEYWORD_ASC, KEYWORD_AVG, KEYWORD_BETWEEN, KEYWORD_BY, KEYWORD_COUNT, KEYWORD_DESC, KEYWORD_DISTINCT, KEYWORD_FROM, KEYWORD_IN, KEYWORD_IS_DEFINED, KEYWORD_IS_UNDEFINED, KEYWORD_LIKE, KEYWORD_LIMIT, KEYWORD_LIST, KEYWORD_MAX, KEYWORD_MIN, KEYWORD_MOD, KEYWORD_NIL, KEYWORD_NOT, KEYWORD_OR, KEYWORD_ORDER, KEYWORD_SELECT, KEYWORD_SUM, KEYWORD_UNDEFINED, KEYWORD_WHERE, LONG_LITERAL, LPAREN, LT, LTE, MINUS, NOT_EQUAL, PLUS, RPAREN, STRING_LITERAL, TIMES, TIMESTAMP_LITERAL, TIME_LITERAL

Constructor Summary

Lexer(String oqlQueryString)
Creates a lexer which will seperate a string query into a series of tokens.

Method Summary

boolean
hasMoreTokens()
Checks whether the query strin has been fully consumed.
Token
nextToken()
Returns the next Token from the stream.

Field Details

_pos

(package private)  int _pos

_queryString

(package private)  String _queryString

endOfQueryPassed

(package private)  boolean endOfQueryPassed

keywords

(package private)  Hashtable keywords

Constructor Details

Lexer

public Lexer(String oqlQueryString)
Creates a lexer which will seperate a string query into a series of tokens.
Parameters:
oqlQueryString - The string representation of the OQL Query

Method Details

hasMoreTokens

public boolean hasMoreTokens()
Checks whether the query strin has been fully consumed.
Returns:
True if there is text in the query which hasn't been tokenized, otherwise false.

nextToken

public Token nextToken()
            throws NoMoreTokensException,
                   InvalidCharException
Returns the next Token from the stream.
Returns:
The next token in the stream.
Throws:
NoMoreTokensException - if the last character was already consumed.
InvalidCharException - if an invalid character is found while generating the next Token.

Intalio Inc. (C) 1999-2003. All rights reserved http://www.intalio.com