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
-~----------~----~----~----~------~----~------~--~---

Reply via email to