lex_state_try.py revision 4479
14479Sbinkertn@umich.edu# lex_state2.py 24479Sbinkertn@umich.edu# 34479Sbinkertn@umich.edu# Declaration of a state for which no rules are defined 44479Sbinkertn@umich.edu 54479Sbinkertn@umich.eduimport sys 64479Sbinkertn@umich.edusys.path.insert(0,"..") 74479Sbinkertn@umich.edu 84479Sbinkertn@umich.eduimport ply.lex as lex 94479Sbinkertn@umich.edu 104479Sbinkertn@umich.edutokens = [ 114479Sbinkertn@umich.edu "PLUS", 124479Sbinkertn@umich.edu "MINUS", 134479Sbinkertn@umich.edu "NUMBER", 144479Sbinkertn@umich.edu ] 154479Sbinkertn@umich.edu 164479Sbinkertn@umich.educomment = 1 174479Sbinkertn@umich.edustates = (('comment', 'exclusive'),) 184479Sbinkertn@umich.edu 194479Sbinkertn@umich.edut_PLUS = r'\+' 204479Sbinkertn@umich.edut_MINUS = r'-' 214479Sbinkertn@umich.edut_NUMBER = r'\d+' 224479Sbinkertn@umich.edu 234479Sbinkertn@umich.edut_ignore = " \t" 244479Sbinkertn@umich.edu 254479Sbinkertn@umich.edu# Comments 264479Sbinkertn@umich.edudef t_comment(t): 274479Sbinkertn@umich.edu r'/\*' 284479Sbinkertn@umich.edu t.lexer.begin('comment') 294479Sbinkertn@umich.edu print "Entering comment state" 304479Sbinkertn@umich.edu 314479Sbinkertn@umich.edudef t_comment_body_part(t): 324479Sbinkertn@umich.edu r'(.|\n)*\*/' 334479Sbinkertn@umich.edu print "comment body", t 344479Sbinkertn@umich.edu t.lexer.begin('INITIAL') 354479Sbinkertn@umich.edu 364479Sbinkertn@umich.edudef t_error(t): 374479Sbinkertn@umich.edu pass 384479Sbinkertn@umich.edu 394479Sbinkertn@umich.edut_comment_error = t_error 404479Sbinkertn@umich.edut_comment_ignore = t_ignore 414479Sbinkertn@umich.edu 424479Sbinkertn@umich.eduimport sys 434479Sbinkertn@umich.edu 444479Sbinkertn@umich.edulex.lex() 454479Sbinkertn@umich.edu 464479Sbinkertn@umich.edudata = "3 + 4 /* This is a comment */ + 10" 474479Sbinkertn@umich.edu 484479Sbinkertn@umich.edulex.runmain(data=data) 49