antlr-hibernate
2009-12-02 14:24
99 查看
A Gentle Introduction to ANTLR Syntax,在《程序员》2004年3月有中文的版本。
ExprLexer lexer = new ExprLexer(System.in); ExprParser parser = new ExprParser(lexer); parser.expr(); AST ast = parser.getAST(); ExprTreeParser treeParser = new ExprTreeParser(); int x = treeParser.expr(ast);
1.定义Lexer类,在类中定义各种Token如 From , Where,=,<>....... Lexer负责把读入的普通文本识别成Token串。 2.定义Parser类,在类中使用BNF语法,递归定义各种句子,如whereStatement、FromStatement、Select Statement。 Pattern负责把读入的Token串匹配成句子,翻译出AST(抽象语法树) 有些简单的应用,也可以在本层现炒现卖,完成所有动作,属于Single Pass Builder。 3.定义TreeParser类,根据Parser类分析出来的AST(抽象语法树)进行动作。 用Parser把AST抽取出来,再用TreeParser进行动作的Double Pass Builder模式, 解耦了Parser和Generation,再配合Template,是Antlr推荐的最佳模式。 log4j.logger.org.hibernate=debug #log4j.logger.org.hibernate.hql=debug #log4j.logger.org.hibernate.hql.ast.AST=debug #log4j.logger.org.hibernate.SQL=debug #log4j.logger.org.hibernate.type=debug #log4j.logger.org.hibernate.tool.hbm2ddl=debug #log4j.logger.org.hibernate.cache=debug #log4j.logger.org.hibernate.transaction=debug #log4j.logger.org.hibernate.jdbc=debug #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=debug
相关文章推荐
- hibernate执行hql查询出现java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I之解法
- org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl..
- Hibernate的Antlr在Weblogic中产生Jar冲突的原因及解决
- myeclipse2013删除antlr-2.7.2.jar--解决struts和hibernate包冲突
- hibernate:对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决办法
- Hibernate的Antlr在Weblogic中产生Jar冲突的历史缘故以及解决办法
- MyEclipse2014 删除Struts2中的antlr2.7.2.jar,解决Struts2和Hibernate中的antlr版本冲突
- Weblogic环境下hibernate、antlr类加载冲突问题分析及解决方案
- [Hibernate]在用hibernate3.0进行查询时,java.lang.NoClassDefFoundError: antlr/ANTLRException【问题记录】
- hibernate:对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()错误解决办法
- Hibernate与struts2合作开发的必然问题:java.lang.NoSuchMethodError: antlr.collections.AST.getLine(),请删多余jar包
- hibernate:对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决办法
- java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionExcepti
- 解决WebLogic12C与Hibernate3.3的Antlr包冲突问题
- hibernate:对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决办法
- 关于使用MyEclipse自动生成Hibernate和Struts出现的jar不兼容的问题(antlr.collections.AST.getLine()I)
- hibernate:对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决办法
- org.hibernate.hql.antlr包下是空
- MyEclipse2014 删除Struts2中的antlr2.7.2.jar,解决Struts2和Hibernate中的antlr版本冲突
- 关于Hibernate源码 org.hibernate.hql.antlr包为空的问题。