yacc statement recognition [PLY]

Francesco Bochicchio bockman at virgilio.it
Fri Jan 2 04:12:50 EST 2009


Slafs ha scritto:
> Hi ALL!
> 
> I have to write in yacc an acceptor of files with lines matching this
> regexp:
> '[0-9],[0-9]'
> and I don't know what I am doing wrong beacuse this:
> 
> --------
> tokens = (
>    'NUMBER',
>     )
> literals = [',']
> 
> t_NUMBER = r'\d'
> 
> ...
> 
> def p_statement_exp(p):
>     '''statement :  NUMBER ',' NUMBER
>     '''
>     print "OK!"
>     sys.exit()
> -------
> 
> also accepts lines like 2,abcdef3 which of
> could someone please tell me what's wrong in my code?
> 
> full source on http://paste-it.net/public/vba22d5/

Your code works for me (Python 2.5 and ply 2.3 on ubuntu 8.10), except 
that, from the rest of your code, I see that you parse separately each 
line of file. Since you put a sys.exit() in the parsing rule, it means 
that at the first line successfully parsed your program will quit.

Try putting a simple print in it and instead putting the sys.exit in 
your p_error function (if you want to exit at the first 'wrong' line line).

BTW, are you aware that exists a specific google group  for ply users? 
Specific ply questions could be answered here : 
http://groups.google.com/group/ply-hack?pli=1

Ciao
----
FB



More information about the Python-list mailing list