# lex_state_try.py | |
# | |
# Declaration of a state for which no rules are defined | |
import sys | |
if ".." not in sys.path: sys.path.insert(0,"..") | |
import ply.lex as lex | |
tokens = [ | |
"PLUS", | |
"MINUS", | |
"NUMBER", | |
] | |
states = (('comment', 'exclusive'),) | |
t_PLUS = r'\+' | |
t_MINUS = r'-' | |
t_NUMBER = r'\d+' | |
t_ignore = " \t" | |
# Comments | |
def t_comment(t): | |
r'/\*' | |
t.lexer.begin('comment') | |
print("Entering comment state") | |
def t_comment_body_part(t): | |
r'(.|\n)*\*/' | |
print("comment body %s" % t) | |
t.lexer.begin('INITIAL') | |
def t_error(t): | |
pass | |
t_comment_error = t_error | |
t_comment_ignore = t_ignore | |
lex.lex() | |
data = "3 + 4 /* This is a comment */ + 10" | |
lex.runmain(data=data) |