Package PyFoam :: Package ThirdParty :: Package ply :: Module yacc
[hide private]
[frames] | no frames]

Module yacc

source code


Version: 2.5

Classes [hide private]
  YaccError
  SyntaxError
  object
  YaccSymbol
  YaccProduction
  Parser
  Production
  MiniProduction
Functions [hide private]
 
validate_file(filename) source code
 
validate_dict(d) source code
 
initialize_vars() source code
 
add_production(f, file, line, prodname, syms) source code
 
add_function(f) source code
 
compute_reachable()
Find each symbol that can be reached from the start symbol.
source code
 
mark_reachable_from(s, Reachable)
Mark all symbols that are reachable from symbol s.
source code
 
compute_terminates()
Raise an error for any symbols that don't terminate.
source code
 
verify_productions(cycle_check=1) source code
 
build_lritems() source code
 
add_precedence(plist) source code
 
check_precedence() source code
 
augment_grammar(start=None) source code
 
first(beta) source code
 
compute_follow(start=None) source code
 
compute_first1() source code
 
lr_init_vars() source code
 
lr0_closure(I) source code
 
lr0_goto(I, x) source code
 
lr0_items() source code
 
compute_nullable_nonterminals() source code
 
find_nonterminal_transitions(C) source code
 
dr_relation(C, trans, nullable) source code
 
reads_relation(C, trans, empty) source code
 
compute_lookback_includes(C, trans, nullable) source code
 
digraph(X, R, FP) source code
 
traverse(x, N, stack, F, X, R, FP) source code
 
compute_read_sets(C, ntrans, nullable) source code
 
compute_follow_sets(ntrans, readsets, inclsets) source code
 
add_lookaheads(lookbacks, followset) source code
 
add_lalr_lookaheads(C) source code
 
lr_parse_table(method) source code
 
lr_write_tables(modulename='parsetab', outputdir='') source code
 
lr_read_tables(module='parsetab', optimize=0) source code
 
yacc(method='LALR', debug=1, module=None, tabmodule='parsetab', start=None, check_recursion=1, optimize=0, write_tables=1, debugfile='parser.out', outputdir='') source code
 
yacc_cleanup() source code
 
parse(*args, **kwargs) source code
Variables [hide private]
  __tabversion__ = '2.4'
  yaccdebug = 1
  debug_file = 'parser.out'
  tab_module = 'parsetab'
  default_lr = 'LALR'
  error_count = 3
  yaccdevel = 0
  _INSTANCETYPE = (<type 'instance'>, <type 'object'>)
  _is_identifier = re.compile(r'^[a-zA-Z0-9_-]+$')
  _add_count = 0
  _lr0_cidhash = {}

Imports: re, types, sys, cStringIO, md5, os


Function Details [hide private]

compute_reachable()

source code 

Find each symbol that can be reached from the start symbol. Print a warning for any nonterminals that can't be reached. (Unused terminals have already had their warning.)