使用ParseTreeWalker中止树遍历

时间:2013-02-27 11:40:18

标签: antlr antlr4

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

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

var someID : integer;

分配

someID = 1+5-8+someID;

和打印功能。

print(someID-10)

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

我该怎么做?

1 个答案:

答案 0 :(得分:2)

你可以扔CancellationException。 ANTLR 4中的BailErrorStrategy通过抛出从CancellationException派生的ParseCancellationException来中止语法错误时解析。