我在使用 PLY 时遇到了问题。我想通过 PLY 创建一个调用图生成器。在某些情况下,我需要丢弃语法文件中的一些标记。那是因为当解析器在我丢弃它之前识别该令牌时我需要做一些事情,所以我不能只丢弃在词法分析器文件中。例如,“IF”标记是我要丢弃的标记。所以我尝试做一些事情将其丢弃在语法文件中。就像:
def p_if(p):
'if : IF'
print "if"
parser.symstack.pop()
但事情并没有像我想的那样发展。我打印符号栈(它是解析器的属性,解析器是 yacc.py 的 LRParser 实例),符号栈列表只包含前面的标记,但不包含“if”。所以我想知道在这种情况下如何丢弃令牌。有人可以帮我吗?非常感谢!