可以在运行时更改令牌流吗?

时间:2015-04-21 06:26:38

标签: java sql antlr3

我需要解析 ANTLR 3 中的SQL Server if语句。 SQL Server if语句如下:

IF expression BEGIN? statements END?

由于 BEGIN END 是可选的。我只需要在运行时在 ANTLR 标记流中添加 BEGIN END 标记,如果标记流中未指定这些标记。

1 个答案:

答案 0 :(得分:0)

通过添加谓词来解决问题:

  

IF表达式{input.LA(1)== BEGIN}? => BEGIN statements_list END   | statements_list