我需要解析 ANTLR 3 中的SQL Server if语句。 SQL Server if语句如下:
IF expression BEGIN? statements END?
由于 BEGIN 和 END 是可选的。我只需要在运行时在 ANTLR 标记流中添加 BEGIN 和 END 标记,如果标记流中未指定这些标记。
答案 0 :(得分:0)
通过添加谓词来解决问题:
IF表达式{input.LA(1)== BEGIN}? => BEGIN statements_list END | statements_list