首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

hive中antlr语法资料的编译

2012-07-15 
hive中antlr语法文件的编译最近项目需要想用到hive中antlr的sql语法解析做二次开发,之前看hive源码的时候

hive中antlr语法文件的编译
最近项目需要想用到hive中antlr的sql语法解析做二次开发,之前看hive源码的时候编译过,也遇到不少问题,现在居然忘了,看来好记性不如烂笔头,差记性就更加得多写写了。

编译是在windows xp环境下进行的,下载所需要的文件如下:



antlr-2.7.7.jar

antlr-3.0.1.jar

stringtemplate-3.1b1.jar

Hive.g



文件放在目录C:\hive\BAK目录下,DOS命令行进入到目录,输入:


再看目录下会增加几个文件
HiveParser.java
Hive.tokens
Hive__.g
HiveLexer.java

  HiveLexer.java和 HiveParser.java分别是生成的对应词法和语法分析类文件
  Hive__.g对应HiveLexer.java的词法分析规范
  Hive.tokens定义了词法分析后的所有token

需要说明的是antlr-3.0.1.jar是在antlr-2.7.7.jar的基础上进行的开发,有依赖关系。

编译中遇到的错误:
1、有帖子说编译格式为:


3、NoClassDefFoundError错误

是因为用到的stringtemplate-3.1b1.jar包没有导入到classpath中

总的来说antlr和flex+yacc比较像,使用起来还算比较方便,细心点就行~

热点排行