Parsing Antlr4如何启动
我正在为自己的语言开发一个类似SQL的语言解析器(我们称之为MySQL。它包含SQL结构,但添加了一些额外的东西) 我的工具获取一个MySQL查询,对其进行解析,更改内容并生成一个普通的SQL查询,就像Hibernate一样 我创建了语法文件,看起来不错,但我不知道下一步该怎么做 例如:让我们以这一行为例: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
从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列
和可选的别名