我正在尝试实现一个解析函数。”从令牌的中缀流和令牌流的当前索引,构造并返回树,作为节点集合,表示表达式“This is what i have up to have to the token stream:
def parse(tokens, i = 0):
lst = []
token = lst[i]
left, i = parse(lst, i+1)
right, i = parse(lst, i+1)
if token.isdigit():
return mkLiteralNode(token)
elif token.isidentifier():
return mkVariableNode(token)
else:
left, i = parse(lst, i+1)
right, i = parse(lst, i+1)
return True
所以一般来说,token.isdigit
意味着这个命令必须返回一个整数,即mkLiteralNode
,token.isidentifier
应该返回变量,或者mkVariableNode
。测试此函数时出现错误,错误为:
token = lst[i]
TypeError: 'int' object is not subscriptable
我怎样才能解决这个问题?你知道吗
错误就在前一行:
您正在将
lst
设为int
,然后尝试将其作为抛出所看到错误的列表进行访问。token = lst[i]
可能应该是:很抱歉给您带来不便,但我研究并找到了解决此问题的另一种方法:
相关问题 更多 >
编程相关推荐