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