我使用的是一个名为Polyglot的编译器,它是一个高度可扩展的Java编译器。
在尝试编译一些测试代码时,我似乎遇到了这个异常:
"Invalid action number found in internal parse table."
如何为解析表创建有效的操作号?
编辑:
我通过修改我的语法解决了这个问题......我遇到了调用没有类型的方法的问题。 (已经很晚了,我很抱歉) 现在我对上面的Exception被抛出时更加好奇吗? 什么是动作号码?
答案 0 :(得分:0)
解析表是一个表,描述了当给定输入处于给定状态时其解析器应采取的操作。在每个步骤中,都会查询解析表以确定要采取的操作。 解析表由两部分组成,即动作表和goto表。 action表获取堆栈顶部的状态和输入缓冲区中的下一个符号(称为“lookahead”符号)并返回要采取的操作,以及下一个推入堆栈的状态。 Parsing table
所以我假设行动号是一个代表解析表可以采取的特定行动的数字。