lex_state_try.py revision 4479:61d3ed46e373
112726Snikos.nikoleris@arm.com# lex_state2.py 212726Snikos.nikoleris@arm.com# 312726Snikos.nikoleris@arm.com# Declaration of a state for which no rules are defined 412726Snikos.nikoleris@arm.com 512726Snikos.nikoleris@arm.comimport sys 612726Snikos.nikoleris@arm.comsys.path.insert(0,"..") 712726Snikos.nikoleris@arm.com 812726Snikos.nikoleris@arm.comimport ply.lex as lex 912726Snikos.nikoleris@arm.com 1012726Snikos.nikoleris@arm.comtokens = [ 1112726Snikos.nikoleris@arm.com "PLUS", 1212726Snikos.nikoleris@arm.com "MINUS", 1312726Snikos.nikoleris@arm.com "NUMBER", 1412726Snikos.nikoleris@arm.com ] 1512726Snikos.nikoleris@arm.com 1612726Snikos.nikoleris@arm.comcomment = 1 1712726Snikos.nikoleris@arm.comstates = (('comment', 'exclusive'),) 1812726Snikos.nikoleris@arm.com 1912726Snikos.nikoleris@arm.comt_PLUS = r'\+' 2012726Snikos.nikoleris@arm.comt_MINUS = r'-' 2112726Snikos.nikoleris@arm.comt_NUMBER = r'\d+' 2212726Snikos.nikoleris@arm.com 2312726Snikos.nikoleris@arm.comt_ignore = " \t" 2412726Snikos.nikoleris@arm.com 2512726Snikos.nikoleris@arm.com# Comments 2612726Snikos.nikoleris@arm.comdef t_comment(t): 2712726Snikos.nikoleris@arm.com r'/\*' 2812726Snikos.nikoleris@arm.com t.lexer.begin('comment') 2912726Snikos.nikoleris@arm.com print "Entering comment state" 3012726Snikos.nikoleris@arm.com 3112726Snikos.nikoleris@arm.comdef t_comment_body_part(t): 3212726Snikos.nikoleris@arm.com r'(.|\n)*\*/' 3312726Snikos.nikoleris@arm.com print "comment body", t 3412726Snikos.nikoleris@arm.com t.lexer.begin('INITIAL') 3512726Snikos.nikoleris@arm.com 3612726Snikos.nikoleris@arm.comdef t_error(t): 3712726Snikos.nikoleris@arm.com pass 3812726Snikos.nikoleris@arm.com 3912726Snikos.nikoleris@arm.comt_comment_error = t_error 4012726Snikos.nikoleris@arm.comt_comment_ignore = t_ignore 4112726Snikos.nikoleris@arm.com 4212726Snikos.nikoleris@arm.comimport sys 4312726Snikos.nikoleris@arm.com 4412726Snikos.nikoleris@arm.comlex.lex() 4512726Snikos.nikoleris@arm.com 4612726Snikos.nikoleris@arm.comdata = "3 + 4 /* This is a comment */ + 10" 4712726Snikos.nikoleris@arm.com 4812726Snikos.nikoleris@arm.comlex.runmain(data=data) 4912726Snikos.nikoleris@arm.com