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

Class LR1table

LRtable --+
          |
         LR1table


Class for construction of a LR1 table

Items are represented by a pair of integers (number of rule, position of dot)
Method Summary
  AfterDot(self, item)
returns symbol next to the dot or empty string
  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:
  dotatend(self, item, 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 LR(1) item of a grammar G is a production of G with a dot at some position of the right hand side and a terminal: (rule_number,dot_position,terminal) (aho86:_compil page 231)
  NextToDot(self, item)
returns symbol next to the dot or empty string
  print_items(self, c)
Print LR(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.
  make_action_goto(self)
make action[i,X] and goto[i,X] All pairs (i,s) not in action and goto dictionaries are '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)

returns symbol next to the dot or empty string

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 LR(1) item of a grammar G is a production of G with a dot at some position of the right hand side and a terminal: (rule_number,dot_position,terminal) (aho86:_compil page 231)

NextToDot(self, item)

returns symbol next to the dot or empty string

print_items(self, c)

Print LR(1) items

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