From 4007ea18f294aefb6128cbe82c5446cd8cb72c50 Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Thu, 14 Mar 2024 21:30:16 +0100 Subject: Add solution --- chall/ply-2.2/test/lex_state_try.py | 48 +++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 chall/ply-2.2/test/lex_state_try.py (limited to 'chall/ply-2.2/test/lex_state_try.py') diff --git a/chall/ply-2.2/test/lex_state_try.py b/chall/ply-2.2/test/lex_state_try.py new file mode 100644 index 0000000..a16403e --- /dev/null +++ b/chall/ply-2.2/test/lex_state_try.py @@ -0,0 +1,48 @@ +# lex_state2.py +# +# Declaration of a state for which no rules are defined + +import sys +sys.path.insert(0,"..") + +import ply.lex as lex + +tokens = [ + "PLUS", + "MINUS", + "NUMBER", + ] + +comment = 1 +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", t + t.lexer.begin('INITIAL') + +def t_error(t): + pass + +t_comment_error = t_error +t_comment_ignore = t_ignore + +import sys + +lex.lex() + +data = "3 + 4 /* This is a comment */ + 10" + +lex.runmain(data=data) -- cgit v1.2.3-71-gd317