Class EJayParser

java.lang.Object
  extended byjava_cup.runtime.lr_parser
      extended byEJayParser

public class EJayParser
extends java_cup.runtime.lr_parser

CUP v0.10k generated parser.


Field Summary
protected static short[][] _action_table
          Parse-action table.
protected static short[][] _production_table
          Production table.
protected static short[][] _reduce_table
          reduce_goto table.
protected  CUP$EJayParser$actions action_obj
          Instance of action encapsulation class.
 int BLOCK_SYMTAB_SIZE
          Reasonable size for a block symbol table.
 int blockNum
          Incrementing counter for nested blocks.
 FunctionEntry entry
          Reference to the current function entry.
 int FUNC_SYMTAB_SIZE
          Reasonable size for a function symbol table.
 int structNum
          Incrementing counter for declared structs.
 SymbolTable symtab
          Reference to current symbol table.
 
Fields inherited from class java_cup.runtime.lr_parser
_done_parsing, _error_sync_size, action_tab, cur_token, lookahead, lookahead_pos, production_tab, reduce_tab, stack, tos
 
Constructor Summary
EJayParser()
          Default constructor.
EJayParser(java_cup.runtime.Scanner s)
          Constructor which sets the default scanner.
 
Method Summary
 short[][] action_table()
          Access to parse-action table.
 java_cup.runtime.Symbol do_action(int act_num, java_cup.runtime.lr_parser parser, java.util.Stack stack, int top)
          Invoke a user supplied parse action.
 void enterBlock(java.lang.String blockType)
          Enter an inner block by allocating a symtab for it, entering a unique-named BlockEntry for it in the current symtab, and descending into the new block symtab.
 void enterVars(TypeNode type, TreeNodeList vars)
          Enter the vars in the given tree node list in the current symtab.
 int EOF_sym()
          EOF Symbol index.
 int error_sym()
          error Symbol index.
 SymbolTable getSymbolTable()
           
protected  void init_actions()
          Action encapsulation object initializer.
 void initSymbolTable(int size)
           
 short[][] production_table()
          Access to production table.
 short[][] reduce_table()
          Access to reduce_goto table.
 int start_production()
          Indicates start production.
 int start_state()
          Indicates start state.
 void syntax_error(java_cup.runtime.Symbol cur_token)
           
 
Methods inherited from class java_cup.runtime.lr_parser
advance_lookahead, cur_err_token, debug_message, debug_parse, debug_reduce, debug_shift, debug_stack, done_parsing, dump_stack, error_recovery, error_sync_size, find_recovery_config, get_action, get_reduce, getScanner, parse_lookahead, parse, read_lookahead, report_error, report_fatal_error, restart_lookahead, scan, setScanner, shift_under_error, try_parse_ahead, unpackFromStrings, unrecovered_syntax_error, user_init
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_production_table

protected static final short[][] _production_table
Production table.


_action_table

protected static final short[][] _action_table
Parse-action table.


_reduce_table

protected static final short[][] _reduce_table
reduce_goto table.


action_obj

protected CUP$EJayParser$actions action_obj
Instance of action encapsulation class.


symtab

public SymbolTable symtab
Reference to current symbol table. This value changes as the program is parsed, such that symtab points to the symbol table for the scope in which the parse is currently active.


entry

public FunctionEntry entry
Reference to the current function entry. It is assigned each time a function entry is created.


FUNC_SYMTAB_SIZE

public final int FUNC_SYMTAB_SIZE
Reasonable size for a function symbol table.

See Also:
Constant Field Values

BLOCK_SYMTAB_SIZE

public final int BLOCK_SYMTAB_SIZE
Reasonable size for a block symbol table.

See Also:
Constant Field Values

structNum

public int structNum
Incrementing counter for declared structs. This number is used to create a unique name for each struct, so it can be entered and subsequently retrieved from a symbol table.


blockNum

public int blockNum
Incrementing counter for nested blocks. This number is used to create a unique name for each block, so it can be entered and subsequently retrieved from a symbol table.

Constructor Detail

EJayParser

public EJayParser()
Default constructor.


EJayParser

public EJayParser(java_cup.runtime.Scanner s)
Constructor which sets the default scanner.

Method Detail

production_table

public short[][] production_table()
Access to production table.


action_table

public short[][] action_table()
Access to parse-action table.


reduce_table

public short[][] reduce_table()
Access to reduce_goto table.


init_actions

protected void init_actions()
Action encapsulation object initializer.


do_action

public java_cup.runtime.Symbol do_action(int act_num,
                                         java_cup.runtime.lr_parser parser,
                                         java.util.Stack stack,
                                         int top)
                                  throws java.lang.Exception
Invoke a user supplied parse action.

Throws:
java.lang.Exception

start_state

public int start_state()
Indicates start state.


start_production

public int start_production()
Indicates start production.


EOF_sym

public int EOF_sym()
EOF Symbol index.


error_sym

public int error_sym()
error Symbol index.


syntax_error

public void syntax_error(java_cup.runtime.Symbol cur_token)

initSymbolTable

public void initSymbolTable(int size)

getSymbolTable

public SymbolTable getSymbolTable()

enterVars

public void enterVars(TypeNode type,
                      TreeNodeList vars)
Enter the vars in the given tree node list in the current symtab. The type of each var entry is the given type.


enterBlock

public void enterBlock(java.lang.String blockType)
Enter an inner block by allocating a symtab for it, entering a unique-named BlockEntry for it in the current symtab, and descending into the new block symtab. This function is used both for inner statement blocks and struct types; the String-valued blockType parameter is "block" or "struct" depending on the caller. NOTE: An acceptable solution to CSC 330 Assignment 3 does not need to generate the unique entry name.