<p>我正在尝试实现一个解析函数。”从令牌的中缀流和令牌流的当前索引,构造并返回树,作为节点集合,表示表达式“This is what i have up to have to the token stream:</p>
<pre><code>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
</code></pre>
<p>所以一般来说,<code>token.isdigit</code>意味着这个命令必须返回一个整数,即<code>mkLiteralNode</code>,<code>token.isidentifier</code>应该返回变量,或者<code>mkVariableNode</code>。测试此函数时出现错误,错误为:</p>
<pre><code> token = lst[i]
TypeError: 'int' object is not subscriptable
</code></pre>
<p>我怎样才能解决这个问题?你知道吗</p>