例外:“在内部分析表中找到无效的操作号。”多语言例外

时间:2010-04-29 07:24:17

标签: java compiler-construction parsing polyglot

我使用的是一个名为Polyglot的编译器,它是一个高度可扩展的Java编译器。

在尝试编译一些测试代码时,我似乎遇到了这个异常:

 "Invalid action number found in internal parse table." 

如何为解析表创建有效的操作号?

编辑:

我通过修改我的语法解决了这个问题......我遇到了调用没有类型的方法的问题。 (已经很晚了,我很抱歉) 现在我对上面的Exception被抛出时更加好奇吗? 什么是动作号码?

1 个答案:

答案 0 :(得分:0)

解析表是一个表,描述了当给定输入处于给定状态时其解析器应采取的操作。在每个步骤中,都会查询解析表以确定要采取的操作。 解析表由两部分组成,即动作表和goto表。 action表获取堆栈顶部的状态和输入缓冲区中的下一个符号(称为“lookahead”符号)并返回要采取的操作,以及下一个推入堆栈的状态。 Parsing table

所以我假设行动号是一个代表解析表可以采取的特定行动的数字。