Module parser :: Class LALRtable1
[show private | hide private]
[frames | no frames]

Class LALRtable1

LRtable --+
          |
         LALRtable1

Known Subclasses:
LALRtable

Class for construction of LALR(1) tables
Method Summary
  AfterDot(self, item, items)
returns FIRST of strings after the dot concatenated with lookahead
  closure(self, items)
The closure of a set of LR(1) items I is the set of items construted from I by the two rules:
  core_merge(self, c, j)
  dotatend(self, item, c, i)
  get_union(self, c, j)
  goto(self, items, s)
goto(I,X) where I is a set of items and X a grammar symbol is the closure of the set of all items (A -> sX.r,a) such that (A -> s.Xr,a) in I
  items(self)
An LALR(1) item of a grammar G is a production of Gwith a dot at some position of the right hand side and a list of terminals: is coded as a dictonary with key (rule_number,dot_position) and value a set of terminals
  make_action_goto(self)
Make action[i,X] and goto[i,X] all pairs (i,s) not in action and goto dictionaries are 'error'
  NextToDot(self, item)
returns symbol next to the dot or empty string
  print_items(self, c)
Print LALR(1) items
    Inherited from LRtable
  __init__(self, cfgr, operators, noconflicts, expect)
  add_action(self, i, a, action, j)
Set (action,j) for state i and symbol a or raise conflict error.
  resolve_shift_reduce(self, i, a, s, r)
Operators precedence resolution or standard option: shift
  rules_precedence(self)
Rule precedence obtained as the precedence of the right most terminal.

Instance Variable Summary
    Inherited from LRtable
  gr: a context-free grammar
  Log: Log report for LR table construction
  operators: operators

Method Details

AfterDot(self, item, items)

returns FIRST of strings after the dot concatenated with lookahead

closure(self, items)

The closure of a set of LR(1) items I is the set of items construted from I by the two rules:
  • every item of I is in closure(I)
  • If [A -> s.Bt,a] in closure(I),for B ->r and each terminal b in first(ta), add [B ->.r,b] to closure(I)

goto(self, items, s)

goto(I,X) where I is a set of items and X a grammar symbol is the closure of the set of all items (A -> sX.r,a) such that (A -> s.Xr,a) in I

items(self)

An LALR(1) item of a grammar G is a production of Gwith a dot at some position of the right hand side and a list of terminals: is coded as a dictonary with key (rule_number,dot_position) and value a set of terminals

make_action_goto(self)

Make action[i,X] and goto[i,X] all pairs (i,s) not in action and goto dictionaries are 'error'
Overrides:
parser.LRtable.make_action_goto

NextToDot(self, item)

returns symbol next to the dot or empty string

print_items(self, c)

Print LALR(1) items

Generated by Epydoc 2.1 on Wed Jul 19 10:36:01 2006 http://epydoc.sf.net