我的任务是为Triangle Abstract Machine编写一个'Calc'编译器,将Calc源文件转换为TAM程序集。
Calc语言由变量声明(仅支持整数)组成,
var someID : integer;
分配
someID = 1+5-8+someID;
和打印功能。
print(someID-10)
目前我正在使用ANTLR4s树行走设施,通过使用侦听器将Calc转换为TAM程序集(及其工作)。 如果发生上下文错误(例如使用未定义的变量),我现在想中止树遍历。
我该怎么做?
答案 0 :(得分:2)
你可以扔CancellationException
。 ANTLR 4中的BailErrorStrategy
通过抛出从CancellationException
派生的ParseCancellationException
来中止语法错误时解析。