为什么此代码不从源返回另一个打印值
keywords = ['PRINT']
class Lexer:
def __init__(self, source):
self.source = source
self.sourceLen = len(source)
self.cur = 0
pass
def getChar(self):
if self.cur < self.sourceLen:
return self.source[self.cur]
return ""
def next(self):
self.cur += 1
pass
def skipNewline(self):
while self.getChar() == '\n':
self.next()
def skipWhitespace(self):
while self.getChar() == ' ':
self.next()
def skipBlanks(self):
while self.getChar() == ' ' or self.getChar() == '\n':
self.next()
def tokenize(self):
self.skipBlanks()
curToken = ''
char = self.getChar() # P
if char in '"Hello, world!"'.split():
curToken = ''
return
while char != ' ':
curToken += char
self.next()
char = self.getChar()
if curToken in keywords:
print({"Token":curToken})
curToken = ''
def start(self):
self.skipBlanks()
while self.cur < self.sourceLen:
self.tokenize()
source = """
PRINT "Hello, world!"
PRINT "second line!"
"""
lexme = Lexer(source)
lexme.start()
keywords = ['PRINT']
class Lexer:
def __init__(self, source):
self.source = source
self.sourceLen = len(source)
self.cur = 0
pass
def getChar(self):
if self.cur < self.sourceLen:
return self.source[self.cur]
return ""
def next(self):
self.cur += 1
pass
def skipNewline(self):
while self.getChar() == '\n':
self.next()
def skipWhitespace(self):
while self.getChar() == ' ':
self.next()
def skipBlanks(self):
while self.getChar() == ' ' or self.getChar() == '\n':
self.next()
def tokenize(self):
self.skipBlanks()
curToken = ''
char = self.getChar() # P
if char in '"Hello, world!"'.split():
curToken = ''
return
while char != ' ':
curToken += char
self.next()
char = self.getChar()
if curToken in keywords:
print({"Token":curToken})
curToken = ''
def start(self):
self.skipBlanks()
while self.cur < self.sourceLen:
self.tokenize()
source = """
PRINT "Hello, world!"
PRINT "second line!"
"""
lexme = Lexer(source)
lexme.start()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论