Hive.g文件的编译

对hive进行二次开发的过程中可能需要修改hive.g文件,需要使用antrl重新编译生成HiveLexer.java和HiveLexer.java文件,对编译过程做一个简单的记录


编译需要文件:


antlr-2.7.7.jar  http://www.java2s.com/Code/Jar/a/Downloadantlr277jar.htm 下载
antlr-3.0.1.jar http://www.java2s.com/Code/Jar/a/Downloadantlr311jar.htm 下载
Hive.g     从hive中copy过来


使用如下命令编译:

D:\work\antlr\hive_compiler>java -cp antlr-2.7.7.jar;antlr-3.0.1.jar;stringtemplate-3.1b1.jar org.antlr.Tool Hive.g

输出如下:
D:\work\antlr\hive_compiler>java -cp antlr-2.7.7.jar;antlr-3.0.1.jar;stringtempl
ate-3.1b1.jar org.antlr.Tool Hive.g
ANTLR Parser Generator  Version 3.0.1 (August 13, 2007)  1989-2007
warning(200): Hive.g:569:5: Decision can match input such as "Identifier KW_RENA
ME KW_TO" using multiple alternatives: 1, 10
As a result, alternative(s) 10 were disabled for that input
warning(200): Hive.g:1552:5: Decision can match input such as "Identifier DOT Id
entifier" using multiple alternatives: 1, 2
As a result, alternative(s) 2 were disabled for that input

编译后目录下文件:

D:\work\antlr\hive_compiler>dir
 驱动器 D 中的卷没有标签。
 卷的序列号是 2AD3-3864


 D:\work\antlr\hive_compiler 的目录


2012/04/17  10:41    <DIR>          .
2012/04/17  10:41    <DIR>          ..
2011/08/08  15:41           445,288 antlr-2.7.7.jar
2012/04/17  10:19           562,325 antlr-3.0.1.jar
2012/01/24  03:54            61,565 Hive.g
2012/04/17  10:41             8,116 Hive.tokens
2012/04/17  10:41           251,921 HiveLexer.java
2012/04/17  10:41         1,491,588 HiveParser.java
2012/04/17  10:41            13,397 Hive__.g
2011/10/19  10:56           229,928 stringtemplate-3.1b1.jar

HiveLexer.java和HiveParser.java即为需要的文件。




你可能感兴趣的:(input,generator,compiler)