1583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata# lex_dup3.py 2583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata# 3583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata# Duplicated rule specifiers 4583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata 5583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granataimport sys 6583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granataif ".." not in sys.path: sys.path.insert(0,"..") 7583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata 8583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granataimport ply.lex as lex 9583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata 10583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granatatokens = [ 11583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata "PLUS", 12583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata "MINUS", 13583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata "NUMBER", 14583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata ] 15583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata 16583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granatat_PLUS = r'\+' 17583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granatat_MINUS = r'-' 18583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granatat_NUMBER = r'\d+' 19583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata 20583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granatadef t_NUMBER(t): 21583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata r'\d+' 22583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata pass 23583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata 24583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granatadef t_error(t): 25583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata pass 26583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata 27583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata 28583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata 29583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granatalex.lex() 30583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata 31583d33c593896afeb8486a25fabfcf6e9dc9ca75Enrico Granata 32