org.jacorb.idl
public class lexer extends Object
All symbol constants are defined in sym.java which is generated by JavaCup from parser.cup.
In addition to the scanner proper (called first via init() then with next_token() to get each token) this class provides simple error and warning routines and keeps a count of errors and warnings that is publicly accessible. It also provides basic preprocessing facilties, i.e. it does handle preprocessor directives such as #define, #undef, #include, etc. although it does not provide full C++ preprocessing This class is "static" (i.e., it has only static members and methods).
Version: $Id: lexer.java,v 1.53 2006/10/13 19:56:48 andre.spiegel Exp $
Field Summary | |
---|---|
protected static Hashtable | char_symbols Table of single character symbols. |
protected static boolean | conditionalCompilation |
static String | currentFile current file name |
static String | currentPragmaPrefix currently active pragma prefix |
protected static int | current_line Current line number for use in error messages. |
protected static int | current_position Character position in current line. |
protected static Hashtable | defines Defined symbols (preprocessor) |
protected static int | EOF_CHAR EOF constant. |
protected static boolean | in_string Have we already read a '"' ? |
protected static Hashtable | java_keywords Table of Java reserved names. |
protected static Hashtable | keywords
Table of keywords. |
protected static Hashtable | keywords_lower_case Table of keywords, stored in lower case. |
protected static StringBuffer | line Current line for use in error messages. |
protected static int | next_char First and second character of lookahead. |
protected static int | next_char2 |
static int | warning_count Count of warnings issued so far |
protected static boolean | wide Are we processing a wide char or string ? |
Method Summary | |
---|---|
protected static void | advance()
Advance the scanner one character in the input stream. |
static String | checkIdentifier(String str)
Checks whether Identifier str is legal and returns it. |
static int | currentLine()
record information about the last lexical scope so that it can be
restored later |
static void | define(String symbol, String value) |
static String | defined(String symbol) |
protected static token | do_symbol()
Process an identifier.
|
static void | emit_error(String message)
Emit an error message. |
static void | emit_error(String message, str_token t) |
static void | emit_warn(String message)
Emit a warning message. |
static void | emit_warn(String message, str_token t) |
protected static int | find_single_char(int ch)
Try to look up a single character symbol, returns -1 for not found. |
static PositionInfo | getPosition()
return the current reading position |
protected static boolean | id_char(int ch)
Determine if a character is ok for the middle of an id. |
protected static boolean | id_start_char(int ch)
Determine if a character is ok to start an id. |
static void | init()
Initialize the scanner. |
static boolean | needsJavaEscape(Module m) |
static token | next_token()
Return one token. |
protected static void | preprocess()
Preprocessor directives are handled here. |
protected static token | real_next_token()
The actual routine to return one token.
|
static void | reset() reset the scanner state |
static void | restorePosition(PositionInfo p) |
static boolean | strictJavaEscapeCheck(String s)
called during the parse phase to catch clashes with
Java reserved words. |
protected static void | swallow_comment()
Handle swallowing up a comment. |
static void | undefine(String symbol) |
Parameters: str - the IDL identifier
Prints an error msg if the identifier collides with an IDL
keyword.
Identifiers begin with a letter, underscore, or dollar sign, which is followed by zero or more letters, numbers, underscores or dollar signs. This routine returns a str_token suitable for return by the scanner or null, if the string that was read expanded to a symbol that was #defined. In this case, the symbol is expanded in place
Parameters: message the message to print.
Parameters: message the message to print.
Parameters: ch the character in question.
Parameters: ch the character in question.
Parameters: ch the character in question.
Returns: token
Throws: java.io.IOException