Antlr4如何开始



我正在为我自己的语言开发一个类似SQL的语言解析器(让我们称之为MySQL。它包含SQL结构,但添加了一些额外的东西。

我的工具得到一个MySQL查询,解析它,更改内容并生成一个普通的SQL查询。就像Hibernate一样。

我创建了语法文件,看起来不错,但我不知道下一步该怎么办。

例如:让我们这样做:SELECT a AS aa, b FROM tbl1

并将其更改为

CCD_ 2。

我有一个映射,可以转换tbl1.a->string1,tbl1.b->integer2。

我该怎么做?

我创建了侦听器,但如何将结果列连接到其别名(例如)?

我的语法有以下规则:

select_statement :  
    SELECT  result_column (AS? alias )? ( ',' result_column (AS? alias )? )* 
    FROM    from_cluase  ( ',' from_cluase (AS? alias )? )*

result创建一个额外的解析器规则,其中包括可选的alias:

select_statement 
 : SELECT  result ( ',' result )* 
   FROM    from_cluase  ( ',' from_cluase (AS? alias )? )*
 ;
result
 : result_column (AS? alias )?
 ;

侦听器中的enterSelect_statement方法现在将允许您通过其上下文访问List<ResultContext>。然后可以检查这些ResultContextresult_column和可选的alias

相关内容

  • 没有找到相关文章

最新更新