com.JLex
Class CLexGen

java.lang.Object
  extended by com.JLex.CLexGen

 class CLexGen
extends java.lang.Object

Class: CLexGen


Field Summary
private  JavaLexBitSet all_states
          Function: getStates Description: Parses the state area of a rule, from the beginning of a line
(package private) static int ANY
           
(package private) static int AT_BOL
           
(package private) static int AT_EOL
           
private static int BUFFER_SIZE
           
(package private) static int CCL_END
           
(package private) static int CCL_START
           
private static int CLASS_CODE
           
(package private) static int CLOSE_CURLY
           
(package private) static int CLOSE_PAREN
           
(package private) static int CLOSURE
           
(package private) static int DASH
           
(package private) static int END_OF_INPUT
           
private static int EOF_CODE
           
private static int EOF_THROW_CODE
           
private static int EOF_VALUE_CODE
           
(package private) static int EOS
          Constants: Token Types
private static boolean ERROR
          Constants
private static int INIT_CODE
           
private static int INIT_THROW_CODE
           
(package private) static int L
           
private  boolean m_advance_stop
          Function: advance Description: Returns code for next token.
private  char[] m_char_dir
           
private  char[] m_class_code_dir
           
private  char[] m_class_code_end_dir
           
private  char[] m_class_dir
           
private  char[] m_cup_dir
           
private  CEmit m_emit
           
private  char[] m_eof_code_dir
           
private  char[] m_eof_code_end_dir
           
private  char[] m_eof_throw_code_dir
           
private  char[] m_eof_throw_code_end_dir
           
private  char[] m_eof_value_code_dir
           
private  char[] m_eof_value_code_end_dir
           
private  char[] m_full_dir
           
private  char[] m_function_dir
           
private  char[] m_ignorecase_dir
           
private  char[] m_implements_dir
           
private  char[] m_init_code_dir
           
private  char[] m_init_code_end_dir
           
private  boolean m_init_flag
           
private  char[] m_init_throw_code_dir
           
private  char[] m_init_throw_code_end_dir
           
private  CInput m_input
           
private  java.io.InputStream m_instream
          Member Variables
private  char[] m_integer_dir
           
private  char[] m_intwrap_dir
           
private  char[] m_line_dir
           
private  CMakeNfa m_makeNfa
           
private  CMinimize m_minimize
           
private  CNfa2Dfa m_nfa2dfa
           
private  char[] m_notunix_dir
           
private  java.io.DataOutputStream m_outstream
           
private  char[] m_public_dir
           
private  CSpec m_spec
           
private  char[] m_state_dir
          Member Variables: JLex directives.
private  java.util.Hashtable m_tokens
           
private  char[] m_type_dir
           
private  char[] m_unicode_dir
           
private  char[] m_yyeof_dir
           
private  char[] m_yylex_throw_code_dir
           
private  char[] m_yylex_throw_code_end_dir
           
private static boolean NOT_ERROR
           
(package private) static int OPEN_CURLY
           
(package private) static int OPEN_PAREN
           
(package private) static int OPTIONAL
           
(package private) static int OR
           
(package private) static int PLUS_CLOSE
           
private static int YYLEX_THROW_CODE
           
 
Constructor Summary
CLexGen(java.lang.String filename)
          Function: CLexGen
 
Method Summary
(package private)  int advance()
           
private  void details()
          Function: details Description: High level debugging routine.
private  char expandEscape()
          Function: expandEscape Description: Takes escape sequence and returns corresponding character code.
private  boolean expandMacro()
          Function: expandMacro Description: Returns false on error, true otherwise.
(package private)  void generate()
          Function: generate Description:
private  char[] getName()
          Function: getName
(package private)  JavaLexBitSet getStates()
           
private  java.lang.String interp_int(int i)
          Function: interp_int Description:
(package private)  CAccept packAccept()
          Function: packAccept Description: Packages and returns CAccept for action next in input stream.
private  char[] packCode(char[] start_dir, char[] end_dir, char[] prev_code, int prev_read, int specified)
          Function: packCode Description:
private  java.lang.String plab(CNfa state)
          Function: plab Description:
private  void print_header()
          Function: print_header
(package private)  void print_nfa()
          Function: print_nfa Description:
(package private)  void print_set(java.util.Vector nfa_set)
          function: print_set
private  void printccl(CSet set)
          Function: printccl Description: Debugging routine that outputs readable form of character class.
private  void saveMacro()
          Function: saveMacro Description: Saves macro definition of form: macro_name = macro_definition
private  void saveStates()
          Function: saveStates Description: Takes state declaration and makes entries for them in state hashtable in CSpec structure.
private  void userCode()
          Function: userCode Description: Process first section of specification, echoing it into output file.
private  void userDeclare()
          Function: userDeclare Description:
private  void userRules()
          Function: userRules Description: Processes third section of JLex specification and creates minimized transition table.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_instream

private java.io.InputStream m_instream
Member Variables


m_outstream

private java.io.DataOutputStream m_outstream

m_input

private CInput m_input

m_tokens

private java.util.Hashtable m_tokens

m_spec

private CSpec m_spec

m_init_flag

private boolean m_init_flag

m_makeNfa

private CMakeNfa m_makeNfa

m_nfa2dfa

private CNfa2Dfa m_nfa2dfa

m_minimize

private CMinimize m_minimize

m_emit

private CEmit m_emit

ERROR

private static final boolean ERROR
Constants

See Also:
Constant Field Values

NOT_ERROR

private static final boolean NOT_ERROR
See Also:
Constant Field Values

BUFFER_SIZE

private static final int BUFFER_SIZE
See Also:
Constant Field Values

EOS

static final int EOS
Constants: Token Types

See Also:
Constant Field Values

ANY

static final int ANY
See Also:
Constant Field Values

AT_BOL

static final int AT_BOL
See Also:
Constant Field Values

AT_EOL

static final int AT_EOL
See Also:
Constant Field Values

CCL_END

static final int CCL_END
See Also:
Constant Field Values

CCL_START

static final int CCL_START
See Also:
Constant Field Values

CLOSE_CURLY

static final int CLOSE_CURLY
See Also:
Constant Field Values

CLOSE_PAREN

static final int CLOSE_PAREN
See Also:
Constant Field Values

CLOSURE

static final int CLOSURE
See Also:
Constant Field Values

DASH

static final int DASH
See Also:
Constant Field Values

END_OF_INPUT

static final int END_OF_INPUT
See Also:
Constant Field Values

L

static final int L
See Also:
Constant Field Values

OPEN_CURLY

static final int OPEN_CURLY
See Also:
Constant Field Values

OPEN_PAREN

static final int OPEN_PAREN
See Also:
Constant Field Values

OPTIONAL

static final int OPTIONAL
See Also:
Constant Field Values

OR

static final int OR
See Also:
Constant Field Values

PLUS_CLOSE

static final int PLUS_CLOSE
See Also:
Constant Field Values

CLASS_CODE

private static final int CLASS_CODE
See Also:
Constant Field Values

INIT_CODE

private static final int INIT_CODE
See Also:
Constant Field Values

EOF_CODE

private static final int EOF_CODE
See Also:
Constant Field Values

INIT_THROW_CODE

private static final int INIT_THROW_CODE
See Also:
Constant Field Values

YYLEX_THROW_CODE

private static final int YYLEX_THROW_CODE
See Also:
Constant Field Values

EOF_THROW_CODE

private static final int EOF_THROW_CODE
See Also:
Constant Field Values

EOF_VALUE_CODE

private static final int EOF_VALUE_CODE
See Also:
Constant Field Values

m_state_dir

private char[] m_state_dir
Member Variables: JLex directives.


m_char_dir

private char[] m_char_dir

m_line_dir

private char[] m_line_dir

m_cup_dir

private char[] m_cup_dir

m_class_dir

private char[] m_class_dir

m_implements_dir

private char[] m_implements_dir

m_function_dir

private char[] m_function_dir

m_type_dir

private char[] m_type_dir

m_integer_dir

private char[] m_integer_dir

m_intwrap_dir

private char[] m_intwrap_dir

m_full_dir

private char[] m_full_dir

m_unicode_dir

private char[] m_unicode_dir

m_ignorecase_dir

private char[] m_ignorecase_dir

m_notunix_dir

private char[] m_notunix_dir

m_init_code_dir

private char[] m_init_code_dir

m_init_code_end_dir

private char[] m_init_code_end_dir

m_init_throw_code_dir

private char[] m_init_throw_code_dir

m_init_throw_code_end_dir

private char[] m_init_throw_code_end_dir

m_yylex_throw_code_dir

private char[] m_yylex_throw_code_dir

m_yylex_throw_code_end_dir

private char[] m_yylex_throw_code_end_dir

m_eof_code_dir

private char[] m_eof_code_dir

m_eof_code_end_dir

private char[] m_eof_code_end_dir

m_eof_value_code_dir

private char[] m_eof_value_code_dir

m_eof_value_code_end_dir

private char[] m_eof_value_code_end_dir

m_eof_throw_code_dir

private char[] m_eof_throw_code_dir

m_eof_throw_code_end_dir

private char[] m_eof_throw_code_end_dir

m_class_code_dir

private char[] m_class_code_dir

m_class_code_end_dir

private char[] m_class_code_end_dir

m_yyeof_dir

private char[] m_yyeof_dir

m_public_dir

private char[] m_public_dir

all_states

private JavaLexBitSet all_states
Function: getStates Description: Parses the state area of a rule, from the beginning of a line. < state1, state2 ... > regular_expression { action } Returns null on only EOF. Returns all_states, initialized properly to correspond to all states, if no states are found. Special Notes: This function treats commas as optional and permits states to be spread over multiple lines.


m_advance_stop

private boolean m_advance_stop
Function: advance Description: Returns code for next token.

Constructor Detail

CLexGen

CLexGen(java.lang.String filename)
  throws java.io.FileNotFoundException,
         java.io.IOException
Function: CLexGen

Throws:
java.io.FileNotFoundException
java.io.IOException
Method Detail

generate

void generate()
        throws java.io.IOException,
               java.io.FileNotFoundException
Function: generate Description:

Throws:
java.io.IOException
java.io.FileNotFoundException

userCode

private void userCode()
               throws java.io.IOException
Function: userCode Description: Process first section of specification, echoing it into output file.

Throws:
java.io.IOException

getName

private char[] getName()
Function: getName


packCode

private char[] packCode(char[] start_dir,
                        char[] end_dir,
                        char[] prev_code,
                        int prev_read,
                        int specified)
                 throws java.io.IOException
Function: packCode Description:

Throws:
java.io.IOException

userDeclare

private void userDeclare()
                  throws java.io.IOException
Function: userDeclare Description:

Throws:
java.io.IOException

userRules

private void userRules()
                throws java.io.IOException
Function: userRules Description: Processes third section of JLex specification and creates minimized transition table.

Throws:
java.io.IOException

printccl

private void printccl(CSet set)
Function: printccl Description: Debugging routine that outputs readable form of character class.


plab

private java.lang.String plab(CNfa state)
Function: plab Description:


interp_int

private java.lang.String interp_int(int i)
Function: interp_int Description:


print_nfa

void print_nfa()
Function: print_nfa Description:


getStates

JavaLexBitSet getStates()
                  throws java.io.IOException
Throws:
java.io.IOException

expandMacro

private boolean expandMacro()
Function: expandMacro Description: Returns false on error, true otherwise.


saveMacro

private void saveMacro()
Function: saveMacro Description: Saves macro definition of form: macro_name = macro_definition


saveStates

private void saveStates()
Function: saveStates Description: Takes state declaration and makes entries for them in state hashtable in CSpec structure. State declaration should be of the form: %state name0[, name1, name2 ...] (But commas are actually optional as long as there is white space in between them.)


expandEscape

private char expandEscape()
Function: expandEscape Description: Takes escape sequence and returns corresponding character code.


packAccept

CAccept packAccept()
             throws java.io.IOException
Function: packAccept Description: Packages and returns CAccept for action next in input stream.

Throws:
java.io.IOException

advance

int advance()
      throws java.io.IOException
Throws:
java.io.IOException

details

private void details()
Function: details Description: High level debugging routine.


print_set

void print_set(java.util.Vector nfa_set)
function: print_set


print_header

private void print_header()
Function: print_header