本文整理汇总了Python中lexer.Lexer.getToken方法的典型用法代码示例。如果您正苦于以下问题:Python Lexer.getToken方法的具体用法?Python Lexer.getToken怎么用?Python Lexer.getToken使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lexer.Lexer
的用法示例。
在下文中一共展示了Lexer.getToken方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: parse
# 需要导入模块: from lexer import Lexer [as 别名]
# 或者: from lexer.Lexer import getToken [as 别名]
def parse(filename, context):
file = open(filename, 'r')
try:
lexer = Lexer(file, context)
token = lexer.getToken()
while token.type != 'EOF':
if token.type != 'STRING':
raise UnexpectedTokenError(token.value, 'STRING', 'STRING', line=lexer.getLine())
cmd_name = token.value
token = lexer.getToken()
if token.type != '(':
raise UnexpectedTokenError(token.value, '(', 'STRING', line=lexer.getLine())
cmd_args = []
token = lexer.getToken()
while token.type != ')':
if token.type != 'STRING':
raise UnexpectedTokenError(token.value, 'STRING', line=lexer.getLine())
cmd_args.append(token.value)
token = lexer.getToken()
context.run_cmd(cmd_name, cmd_args)
token = lexer.getToken()
except LanguageError as e:
# fixup filename and line number if needed and re-raise
if not e.getLine(): e.setLine(lexer.getLine())
if not e.getFile(): e.setFile(filename)
raise e
finally:
file.close()