Parsing Antlr4如何启动

Parsing Antlr4如何启动,parsing,grammar,antlr4,Parsing,Grammar,Antlr4,我正在为自己的语言开发一个类似SQL的语言解析器(我们称之为MySQL。它包含SQL结构,但添加了一些额外的东西) 我的工具获取一个MySQL查询,对其进行解析,更改内容并生成一个普通的SQL查询,就像Hibernate一样 我创建了语法文件,看起来不错,但我不知道下一步该怎么做 例如:让我们以这一行为例: 从tbl1中选择a作为aa,b 并将其更改为 从server1[tbl1]中选择string1、integer2 我有一个转换tbl1.a->string1,tbl1.b->integer2

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

我的工具获取一个MySQL查询,对其进行解析,更改内容并生成一个普通的SQL查询,就像Hibernate一样

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

例如:让我们以这一行为例:
从tbl1中选择a作为aa,b

并将其更改为

从server1[tbl1]中选择string1、integer2

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

我该怎么做

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

我的语法有以下规则:

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

结果
创建一个额外的解析器规则,该规则包括可选的
别名

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

result
 : result_column (AS? alias )?
 ;
监听器中的
enterSelect\u语句
方法现在可以通过上下文访问
列表
。然后可以检查这些
ResultContext
s的
result\u列
和可选的
别名