Adding gem5 source to svn.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1819 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
45
simulators/gem5/ext/ply/test/lex_state_try.py
Normal file
45
simulators/gem5/ext/ply/test/lex_state_try.py
Normal file
@ -0,0 +1,45 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user