diff options
| author | Louis Burda <quent.burda@gmail.com> | 2024-03-14 21:30:16 +0100 |
|---|---|---|
| committer | Louis Burda <quent.burda@gmail.com> | 2024-03-14 21:30:16 +0100 |
| commit | 4007ea18f294aefb6128cbe82c5446cd8cb72c50 (patch) | |
| tree | 0d6e38d202ac7be9a59192cd881a4de5d1713a71 /chall/ply-2.2/test/lex_state_try.py | |
| download | cscg24-lolpython-4007ea18f294aefb6128cbe82c5446cd8cb72c50.tar.gz cscg24-lolpython-4007ea18f294aefb6128cbe82c5446cd8cb72c50.zip | |
Add solution
Diffstat (limited to 'chall/ply-2.2/test/lex_state_try.py')
| -rw-r--r-- | chall/ply-2.2/test/lex_state_try.py | 48 |
1 files changed, 48 insertions, 0 deletions
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) |
