擅长:python、mysql、java
<p>可能发生的情况是,测试字符串(<code>Rank[Person:Height]</code>)末尾的<code>]</code>字符作为<code>dbRef</code>标记的一部分被使用,因为该标记中超过初始<code>:</code>的部分被声明为由Word(可打印文件)组成(不幸的是,这个字符集包括方括号字符)</p>
<p>然后解析器试图生成一个<code>functionCall</code>,但是缺少结束的<code>]</code>,因此出现了错误消息。在</p>
<p>一个暂时的解决办法是使用不包括方括号的字符集,可能是更明确的,例如:</p>
<pre><code>dbRef = Combine(Word(alphas) + ":" + Word(alphas, alphas+"-_./") + \
Optional(" " + Word(alphas) + " " + Word(alphas)))
</code></pre>
<p><strong>编辑</strong>:<br/>
仔细看,上面的内容大致正确,但令牌层次结构是错误的(例如,解析器试图将<code>functionCall</code>作为an <code>expr</code>的一个操作数等)<br/>
另外,由于<code>-</code>符号的模糊性,我建议的修复方法也不起作用,因为在<code>dbRef</code>内,它应该被理解为一个普通字符,而在<code>expr</code>中则应该理解为plusOp。不过,pym的语法分析方法并不常见。在</p>