2

我的任务是为Triangle Abstract Machine编写一个“Calc”编译器,它将 Calc 源文件转换为 TAM 程序集。

Calc 语言由变量声明(仅支持整数)组成,

var someID : integer;

作业

someID = 1+5-8+someID;

和打印功能。

print(someID-10)

目前,我正在使用 ANTLR4s 树行走设施,通过使用侦听器将 Calc 转换为 TAM 程序集(及其工作)。现在我想中止树遍历,如果发生上下文错误(例如使用未定义的变量)。

我怎样才能做到这一点?

4

1 回答 1

2

你可以扔一个CancellationException. 当BailErrorStrategy语法错误发生时,ANTLR 4 中的 中止解析,方法是抛出 a ParseCancellationException,它派生自CancellationException.

于 2013-02-27T20:11:36.007 回答