|
File labs/lab10.html
Author McKeeman
Copyright © 2008
index
Understanding LR(k)
- Look at Cfg tables for E.cfg (5 min)
>> cd mxcom/m
>> type E.cfg
>> c = Cfg(xread('E.cfg'))
>> c.Vi
>> c.Vn
>> c.dumpReduce()
>> c.dumpShift()
- Hand-execute LR tables (20 min).
Starting in state 1 for string i*i eof
in state 1, see i, stack i, goto state 3 stack = i input = *i eof
in state 3, see *, reduce rule 4 stack = F input = *i eof
start over, input = F*i eof
in state 1, see F, stack F, goto state 4 stack = F input = *i eof
in state 4, see *, reduce rule 2 stack = T input = *i eof
start over input = T*i eof
in state 1, see T, stack T, goto state 5 stack = T input = *i eof
in state 5, see *, stack *, goto state 10 stack = T* input = i eof
in state 10, see i, stack i, goto state 3, stack = T*i input = eof
in state 3, see eof, reduce rule 4 stack = T*F input = eof
start over stack = input = T*F eof
in state 1,... you finish it
- Starting in state 1 for string (i) eof
in state 1, see (, stack (, goto state 2 stack = ( input = i) eof
in state 2, ... you finish it
- Starting in state 1 for (incorrect) string i**i eof
in state... you finish it
| |