Hello,
if you try the 'examples/calc/calc.py' example distributed with Ply: you
get something like this:
$ python calc.py
yacc: Generating LALR parsing table...
calc > 3+4
7
Now, if you change this line:
yacc.parse(s)
into this line:
yacc.parse(s, debug=2)
You get:
$ python calc.py
yacc: Generating LALR parsing table...
calc > 3+4
state 0
action 3
. LexToken(NUMBER,3,1,0) shift state 3
state 3
action -9
NUMBER . LexToken(+,'+',1,1) reduce 9
state 6
action 12
expression . LexToken(+,'+',1,1) shift state 12
state 12
action 3
expression + . LexToken(NUMBER,4,1,2) shift state 3
state 3
action -9
expression + NUMBER . $end reduce 9
state 18
action -3
expression + expression . $end reduce 3
state 6
action -2
expression . $end reduce 2
7
state 4
action 0
So, this way you can see the state of the parser. It's great for debugging.
Hope this answers your question.
Dennis
Nuno Lopes wrote:
>Hello all,
>
>Is there a way to find out which state we are in? For debugging
>purposes for instance when we are popping a state.
>
>I couldn't find info on this on the website neither on this ml.
>
>Thanks
>--
>Nuno Lopes
>
>>
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"ply-hack" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/ply-hack?hl=en
-~----------~----~----~----~------~----~------~--~---