如何在antlr语法中做别名

时间:2012-07-06 14:05:38

标签: antlr antlr3

假设我试图为一个简单的JPA查询语法做一个语法,如此

select e from Entity e where e.name=:name and e.data>:time

是否有关于如何进行别名部分的文档(基本上是“e”)?

如果用户输入

,我基本上会尝试收到错误
select a from Entity e where a.name=:name

注意a未定义,因此应该失败。我应该在语法中做这个吗?或者我在走树时解析语法后应该这样做吗?

1 个答案:

答案 0 :(得分:1)

  

我应该在语法中做这个吗?

您应该或不应该做的是您的业务,当然:)

  

或者我在走树时解析语法后应该这样做吗?

是的,这通常在评估AST时完成,而不是在AST创建期间(因此在解析期间不会)。