[hibernate-commits] Hibernate SVN: r16429 - in core/branches/antlr3: src/main/antlr3/org/hibernate/sql/ast/phase/hql/parse and 9 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Thu Apr 23 12:31:31 EDT 2009


Author: steve.ebersole at jboss.com
Date: 2009-04-23 12:31:31 -0400 (Thu, 23 Apr 2009)
New Revision: 16429

Added:
   core/branches/antlr3/src/test/antlr3/
   core/branches/antlr3/src/test/antlr3/org/
   core/branches/antlr3/src/test/antlr3/org/hibernate/
   core/branches/antlr3/src/test/antlr3/org/hibernate/sql/
   core/branches/antlr3/src/test/antlr3/org/hibernate/sql/ast/
   core/branches/antlr3/src/test/antlr3/org/hibernate/sql/ast/phase/
   core/branches/antlr3/src/test/antlr3/org/hibernate/sql/ast/phase/hql/
   core/branches/antlr3/src/test/antlr3/org/hibernate/sql/ast/phase/hql/parse/
   core/branches/antlr3/src/test/antlr3/org/hibernate/sql/ast/phase/hql/parse/TestHQLTreeWalker.g
Removed:
   core/branches/antlr3/src/main/antlr3/org/hibernate/sql/ast/phase/hql/parse/TestHQLTreeWalker.g
Modified:
   core/branches/antlr3/pom.xml
Log:
moved TestHQLTreeWalker to src/test/antlr3 + appropriate pom changes

Modified: core/branches/antlr3/pom.xml
===================================================================
--- core/branches/antlr3/pom.xml	2009-04-23 16:28:09 UTC (rev 16428)
+++ core/branches/antlr3/pom.xml	2009-04-23 16:31:31 UTC (rev 16429)
@@ -196,6 +196,18 @@
                             <goal>gunit</goal>
                         </goals>
                     </execution>
+                    <execution>
+                        <id>test-grammar-processing</id>
+                        <phase>generate-test-sources</phase>
+                        <goals>
+                            <goal>antlr</goal>
+                        </goals>
+                        <configuration>
+                            <sourceDirectory>${basedir}/src/test/antlr3</sourceDirectory>
+                            <outputDirectory>${basedir}/target/generated-test-sources/antlr3</outputDirectory>
+                            <libDirectory>${basedir}/target/generated-sources/antlr3</libDirectory>
+                        </configuration>
+                    </execution>
                 </executions>
             </plugin>
 

Deleted: core/branches/antlr3/src/main/antlr3/org/hibernate/sql/ast/phase/hql/parse/TestHQLTreeWalker.g
===================================================================
--- core/branches/antlr3/src/main/antlr3/org/hibernate/sql/ast/phase/hql/parse/TestHQLTreeWalker.g	2009-04-23 16:28:09 UTC (rev 16428)
+++ core/branches/antlr3/src/main/antlr3/org/hibernate/sql/ast/phase/hql/parse/TestHQLTreeWalker.g	2009-04-23 16:31:31 UTC (rev 16429)
@@ -1,499 +0,0 @@
-tree grammar TestHQLTreeWalker;
-
-options{
-	output=AST;
-	rewrite=true;
-	tokenVocab=HQL;
-	ASTLabelType=CommonTree;
-	TokenLabelType=CommonToken;
-}
-
- at header {
-/*
- * Hibernate, Relational Persistence for Idiomatic Java
- *
- * Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
- * indicated by the @author tags or express copyright attribution
- * statements applied by the authors.  All third-party contributions are
- * distributed under license by Red Hat Middleware LLC.
- *
- * This copyrighted material is made available to anyone wishing to use, modify,
- * copy, or redistribute it subject to the terms and conditions of the GNU
- * Lesser General Public License, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this distribution; if not, write to:
- * Free Software Foundation, Inc.
- * 51 Franklin Street, Fifth Floor
- * Boston, MA  02110-1301  USA
- *
- * Portions of SQL grammar parsing copyright (C) 2003 by Lubos Vnuk.  All rights
- * reserved.  These portions are distributed under license by Red Hat Middleware
- * LLC and are covered by the above LGPL notice.  If you redistribute this material,
- * with or without modification, you must preserve this copyright notice in its
- * entirety.
- */
-package org.hibernate.sql.ast.phase.hql.parse;
-}
-
-filterStatement[String collectionRole]
-	:	^(QUERY ^(QUERY_SPEC FILTER 
-				selectClause? whereClause? ( groupByClause havingClause?)? orderByClause?))
-	;
-
-statement
-	:	updateStatementSet
-	|	deleteStatementSet
-	|	insertStatementSet
-	|	queryStatementSet
-	;
-
-updateStatementSet
-	:	updateStatement+
-	;
-
-updateStatement
-	:	^(UPDATE entityName ^(SET assignment+) whereClause?)
-	;
-
-assignment
-	:	^(EQUALS propertyReference valueExpression)
-	|	^(EQUALS VERSIONED_VALUE STRING_LITERAL)
-	;
-
-deleteStatementSet
-	:	deleteStatement+
-	;
-
-deleteStatement
-	:	^(DELETE entityName whereClause?)
-	;
-
-insertStatementSet
-	:	insertStatement+
-	;
-
-insertStatement
-	:	^(INSERT intoClause queryStatementSet)
-	;
-
-intoClause
-	:	^(INTO entityName ^(INSERTABILITY_SPEC propertyReference+ ) )
-	;
-
-queryStatementSet
-	:	queryStatement+
-	;
-
-queryStatement
-	:	^(QUERY queryExpression orderByClause?)
-	;
-
-queryExpression
-	:	^(UNION ALL? queryExpression queryExpression)
-	|	^(INTERSECT ALL? queryExpression queryExpression)
-	|	^(EXCEPT ALL? queryExpression queryExpression)
-	|	querySpec	
-	;
-
-querySpec
-	:	^(QUERY_SPEC selectFrom whereClause? groupByClause? havingClause?)
-	;
-
-whereClause
-	:	^(WHERE searchCondition)
-	;
-
-groupByClause
-	:	^(GROUP_BY groupingValue+)
-	;
-
-groupingValue
-	:	^(GROUPING_VALUE valueExpression COLLATE?)
-	;
-
-havingClause
-	:	^(HAVING searchCondition)
-	;
-
-selectFrom
-	:	^(SELECT_FROM fromClause selectClause)
-	;
-
-fromClause
-	:	^(FROM persisterSpaces+)
-	;
-
-persisterSpaces
-	:	^(PERSISTER_SPACE persisterSpace)
-	;
-
-persisterSpace
-	:	persisterSpaceRoot joins*
-	;
-
-persisterSpaceRoot
-	:	^(ENTITY_PERSISTER_REF entityName PROP_FETCH?)
-	;
-
-joins
-	:	^(PROPERTY_JOIN joinType FETCH? ALIAS_NAME PROP_FETCH? (collectionExpression|propertyReference) withClause?)
-	|	^(PERSISTER_JOIN joinType persisterSpaceRoot onClause?)
-	;
-
-withClause
-	:	^(WITH searchCondition)
-	;
-
-onClause
-	:	^(ON searchCondition)
-	;
-
-joinType
-	:	CROSS
-	|	INNER
-	|	(LEFT |	RIGHT | FULL) OUTER?
-	;
-
-selectClause
-	:	^(SELECT DISTINCT? rootSelectExpression) 
-	;
-
-rootSelectExpression
-	:	^(SELECT_LIST rootSelectExpression+)
-	|	^(SELECT_ITEM rootSelectExpression)
-	|	^(DYNAMIC_INSTANTIATION rootSelectExpression+)
-	|	^(DYNAMIC_INSTANTIATION_ARG rootSelectExpression)
-	|	valueExpression ALIAS_NAME?
-	;
-
-orderByClause
-	:	^(ORDER_BY sortSpecification+)
-	;
-
-sortSpecification
-	:	^(SORT_SPEC valueExpression COLLATE? (ASC|DESC))
-	;
-
-searchCondition
-	:	^( OR searchCondition searchCondition )
-	|	^( AND searchCondition searchCondition )
-	|	^( NOT searchCondition )
-	|	predicate
-	;
-
-predicate
-	:	^( EQUALS rowValueConstructor comparativePredicateValue )
-	|	^( NOT_EQUAL rowValueConstructor comparativePredicateValue )
-	|	^( LESS rowValueConstructor comparativePredicateValue )
-	|	^( LESS_EQUAL rowValueConstructor comparativePredicateValue )
-	|	^( GREATER rowValueConstructor comparativePredicateValue )
-	|	^( GREATER_EQUAL rowValueConstructor comparativePredicateValue )
-	|	^( IS_NULL rowValueConstructor )
-	|	^( IS_NOT_NULL rowValueConstructor )
-	|	^( LIKE valueExpression valueExpression escapeSpecification? )
-	|	^( NOT_LIKE valueExpression valueExpression escapeSpecification? )
-	|	^( BETWEEN rowValueConstructor betweenList )
-	|	^( NOT_BETWEEN rowValueConstructor betweenList )
-	|	^( IN rowValueConstructor inPredicateValue )
-	|	^( NOT_IN rowValueConstructor inPredicateValue )
-	|	^( MEMBER_OF rowValueConstructor rowValueConstructor )
-	|	^( NOT_MEMBER_OF rowValueConstructor rowValueConstructor  )
-	|	^( IS_EMPTY rowValueConstructor )
-	|	^( IS_NOT_EMPTY rowValueConstructor )
-	|	rowValueConstructor
-	;
-
-betweenList
-	:	^( BETWEEN_LIST rowValueConstructor rowValueConstructor )
-	;	
-
-comparativePredicateValue
-	:	rowValueConstructor
-	;
-
-rowValueConstructor
-	:	valueExpression
-	;
-
-escapeSpecification
-	:	^(ESCAPE characterValueExpression)
-	;
-
-inPredicateValue
-	:	^(IN_LIST valueExpression+)
-	;
-
-numericValueExpression
-	:	valueExpression
-	;
-
-characterValueExpression
-	:	valueExpression
-	;
-
-datetimeValueExpression
-	:	valueExpression
-	;
-
-valueExpression
-	:	^( DOUBLE_PIPE characterValueExpression+ )
-	|	^( UNARY_MINUS numericValueExpression )
-	|	^( UNARY_PLUS numericValueExpression )
-	|	^( PLUS valueExpression valueExpression )
-	|	^( MINUS valueExpression valueExpression )
-	|	^( ASTERISK numericValueExpression numericValueExpression )
-	|	^( SOLIDUS numericValueExpression numericValueExpression )
-	|	^( EXISTS rowValueConstructor)
-    |	^( SOME valueExpression )
-    |	^( ALL valueExpression )
-    |	^( ANY valueExpression )
-	|	^( VECTOR_EXPR valueExpression+) // or a tuples or ^(AND or IN statement 
-	|	valueExpressionPrimary
-	;
-
-valueExpressionPrimary
-	:	caseExpression
-	|	function
-	|	collectionFunction
-	|	collectionExpression
-	|	constant
-	|	parameter
-	|	propertyReference
-	|	^(SUB_QUERY queryStatementSet)
-	|	ALIAS_REF //ID COLUMN, full property column list 
-	|	^(DOT_CLASS identPrimary) // crazy 
-	|	^(GENERAL_FUNCTION_CALL identPrimary)
-	|	^(JAVA_CONSTANT identPrimary) //It will generate at SQL a parameter element (?) -> 'cos we do not need to care about char escaping
-	|	^(PATH identPrimary)
-	;
-
-caseExpression
-	:	^(NULLIF valueExpression valueExpression)
-	|	^(COALESCE valueExpression valueExpression*)
-	|	^(SIMPLE_CASE valueExpression simpleCaseWhenClause+ elseClause?)
-	|	^(SEARCHED_CASE searchedWhenClause+ elseClause?)
-	;
-
-simpleCaseWhenClause
-	:	^(WHEN valueExpression valueExpression)
-	;
-
-searchedWhenClause
-	:	^(WHEN searchCondition valueExpression)
-	;
-
-elseClause
-	:	^(ELSE valueExpression)
-	;
-
-function
-	:	standardFunction
-	|	setFunction
-	;
-
-standardFunction
-	:	castFunction
-	|	concatFunction
-	|	substringFunction
-	|	trimFunction
-	|	upperFunction
-	|	lowerFunction
-	|	lengthFunction
-	|	locateFunction
-	|	absFunction
-	|	sqrtFunction
-	|	modFunction
-	|	sizeFunction
-	|	indexFunction
-	|	currentDateFunction
-	|	currentTimeFunction
-	|	currentTimestampFunction
-	|	extractFunction
-	|	positionFunction
-	|	charLengthFunction
-	|	octetLengthFunction
-	|	bitLengthFunction
-	;
-
-castFunction
-	:	^(CAST valueExpression IDENTIFIER)
-	;
-
-concatFunction
-	:	^(CONCAT valueExpression+)
-	;
-
-substringFunction
-	:	^(SUBSTRING characterValueExpression numericValueExpression numericValueExpression?)
-	;
-
-trimFunction
-	:	^(TRIM trimOperands)
-	;
-
-trimOperands
-	:	^((LEADING|TRAILING|BOTH) characterValueExpression characterValueExpression)
-	;
-
-upperFunction
-	:	^(UPPER characterValueExpression)
-	;
-
-lowerFunction
-	:	^(LOWER characterValueExpression)
-	;
-
-lengthFunction
-	:	^(LENGTH characterValueExpression)
-	;
-
-locateFunction
-	:	^(LOCATE characterValueExpression characterValueExpression numericValueExpression?)
-	;
-
-absFunction
-	:	^(ABS numericValueExpression)
-	;
-
-sqrtFunction
-	:	^(SQRT numericValueExpression)
-	;
-
-modFunction
-	:	^(MOD numericValueExpression numericValueExpression)
-	;
-
-sizeFunction
-	:	^(SIZE propertyReference)
-	;
-
-indexFunction
-	:	^(INDEX ALIAS_REF)
-	;
-
-currentDateFunction
-	:	CURRENT_DATE
-	;
-
-currentTimeFunction
-	:	CURRENT_TIME
-	;
-
-currentTimestampFunction
-	:	CURRENT_TIMESTAMP
-	;
-
-extractFunction
-	:	^(EXTRACT extractField datetimeValueExpression)
-	;
-
-extractField
-	:	datetimeField
-	|	timeZoneField
-	;
-
-datetimeField
-	:	YEAR
-	|	MONTH
-	|	DAY
-	|	HOUR
-	|	MINUTE
-	|	SECOND
-	;
-
-timeZoneField
-	:	TIMEZONE_HOUR
-	|	TIMEZONE_MINUTE
-	;
-
-positionFunction
-	:	^(POSITION characterValueExpression characterValueExpression)
-	;
-
-charLengthFunction
-	:	^(CHARACTER_LENGTH characterValueExpression)
-	;
-
-octetLengthFunction
-	:	^(OCTET_LENGTH characterValueExpression)	
-	;
-
-bitLengthFunction
-	:	^(BIT_LENGTH characterValueExpression)
-	;
-
-setFunction
-	:	^(SUM numericValueExpression)
-	|	^(AVG numericValueExpression)
-	|	^(MAX numericValueExpression)
-	|	^(MIN numericValueExpression)
-	|	^(COUNT (ASTERISK | (DISTINCT|ALL) countFunctionArguments))
-	;
-
-countFunctionArguments
-	:	collectionExpression
-	|	propertyReference
-	|	numeric_literal
-	;
-
-collectionFunction
-	:	^((MAXELEMENT|MAXINDEX|MINELEMENT|MININDEX) collectionPropertyReference)
-		//it will generate a SELECT MAX (m.column) form Table xxx -> it is realted to Hibernate mappings to Table->Map
-	;
-
-collectionPropertyReference
-	:	propertyReference
-	;
-
-collectionExpression
-	:	^(ELEMENTS propertyReference) //it will generate a SELECT m.column form Table xxx -> it is realted to Hibernate mappings to Table->Map
-	|	^(INDICES propertyReference)
-	;
-
-parameter
-	:	NAMED_PARAM
-	|	JPA_PARAM
-	|	PARAM
-	;
-
-constant
-	:	literal
-	|	NULL
-	|	TRUE
-	|	FALSE
-	;
-
-literal
-	:	numeric_literal
-	|	HEX_LITERAL
-	|	OCTAL_LITERAL
-	|	CHARACTER_LITERAL
-	|	STRING_LITERAL
-	;
-
-numeric_literal
-	:	INTEGER_LITERAL
-	|	DECIMAL_LITERAL
-	|	FLOATING_POINT_LITERAL
-	;
-
-entityName
-	:	ENTITY_NAME ALIAS_NAME
-	;
-
-propertyReference
-	:	^(PROPERTY_REFERENCE identPrimary)
-	;
-
-identPrimary
-	: 	IDENTIFIER
-	|	^(DOT identPrimary identPrimary )
-	|	^(LEFT_SQUARE identPrimary valueExpression* )
-	|	^(LEFT_PAREN identPrimary valueExpression* )
-	;
\ No newline at end of file

Copied: core/branches/antlr3/src/test/antlr3/org/hibernate/sql/ast/phase/hql/parse/TestHQLTreeWalker.g (from rev 16425, core/branches/antlr3/src/main/antlr3/org/hibernate/sql/ast/phase/hql/parse/TestHQLTreeWalker.g)
===================================================================
--- core/branches/antlr3/src/test/antlr3/org/hibernate/sql/ast/phase/hql/parse/TestHQLTreeWalker.g	                        (rev 0)
+++ core/branches/antlr3/src/test/antlr3/org/hibernate/sql/ast/phase/hql/parse/TestHQLTreeWalker.g	2009-04-23 16:31:31 UTC (rev 16429)
@@ -0,0 +1,499 @@
+tree grammar TestHQLTreeWalker;
+
+options{
+	output=AST;
+	rewrite=true;
+	tokenVocab=HQL;
+	ASTLabelType=CommonTree;
+	TokenLabelType=CommonToken;
+}
+
+ at header {
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors.  All third-party contributions are
+ * distributed under license by Red Hat Middleware LLC.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA  02110-1301  USA
+ *
+ * Portions of SQL grammar parsing copyright (C) 2003 by Lubos Vnuk.  All rights
+ * reserved.  These portions are distributed under license by Red Hat Middleware
+ * LLC and are covered by the above LGPL notice.  If you redistribute this material,
+ * with or without modification, you must preserve this copyright notice in its
+ * entirety.
+ */
+package org.hibernate.sql.ast.phase.hql.parse;
+}
+
+filterStatement[String collectionRole]
+	:	^(QUERY ^(QUERY_SPEC FILTER 
+				selectClause? whereClause? ( groupByClause havingClause?)? orderByClause?))
+	;
+
+statement
+	:	updateStatementSet
+	|	deleteStatementSet
+	|	insertStatementSet
+	|	queryStatementSet
+	;
+
+updateStatementSet
+	:	updateStatement+
+	;
+
+updateStatement
+	:	^(UPDATE entityName ^(SET assignment+) whereClause?)
+	;
+
+assignment
+	:	^(EQUALS propertyReference valueExpression)
+	|	^(EQUALS VERSIONED_VALUE STRING_LITERAL)
+	;
+
+deleteStatementSet
+	:	deleteStatement+
+	;
+
+deleteStatement
+	:	^(DELETE entityName whereClause?)
+	;
+
+insertStatementSet
+	:	insertStatement+
+	;
+
+insertStatement
+	:	^(INSERT intoClause queryStatementSet)
+	;
+
+intoClause
+	:	^(INTO entityName ^(INSERTABILITY_SPEC propertyReference+ ) )
+	;
+
+queryStatementSet
+	:	queryStatement+
+	;
+
+queryStatement
+	:	^(QUERY queryExpression orderByClause?)
+	;
+
+queryExpression
+	:	^(UNION ALL? queryExpression queryExpression)
+	|	^(INTERSECT ALL? queryExpression queryExpression)
+	|	^(EXCEPT ALL? queryExpression queryExpression)
+	|	querySpec	
+	;
+
+querySpec
+	:	^(QUERY_SPEC selectFrom whereClause? groupByClause? havingClause?)
+	;
+
+whereClause
+	:	^(WHERE searchCondition)
+	;
+
+groupByClause
+	:	^(GROUP_BY groupingValue+)
+	;
+
+groupingValue
+	:	^(GROUPING_VALUE valueExpression COLLATE?)
+	;
+
+havingClause
+	:	^(HAVING searchCondition)
+	;
+
+selectFrom
+	:	^(SELECT_FROM fromClause selectClause)
+	;
+
+fromClause
+	:	^(FROM persisterSpaces+)
+	;
+
+persisterSpaces
+	:	^(PERSISTER_SPACE persisterSpace)
+	;
+
+persisterSpace
+	:	persisterSpaceRoot joins*
+	;
+
+persisterSpaceRoot
+	:	^(ENTITY_PERSISTER_REF entityName PROP_FETCH?)
+	;
+
+joins
+	:	^(PROPERTY_JOIN joinType FETCH? ALIAS_NAME PROP_FETCH? (collectionExpression|propertyReference) withClause?)
+	|	^(PERSISTER_JOIN joinType persisterSpaceRoot onClause?)
+	;
+
+withClause
+	:	^(WITH searchCondition)
+	;
+
+onClause
+	:	^(ON searchCondition)
+	;
+
+joinType
+	:	CROSS
+	|	INNER
+	|	(LEFT |	RIGHT | FULL) OUTER?
+	;
+
+selectClause
+	:	^(SELECT DISTINCT? rootSelectExpression) 
+	;
+
+rootSelectExpression
+	:	^(SELECT_LIST rootSelectExpression+)
+	|	^(SELECT_ITEM rootSelectExpression)
+	|	^(DYNAMIC_INSTANTIATION rootSelectExpression+)
+	|	^(DYNAMIC_INSTANTIATION_ARG rootSelectExpression)
+	|	valueExpression ALIAS_NAME?
+	;
+
+orderByClause
+	:	^(ORDER_BY sortSpecification+)
+	;
+
+sortSpecification
+	:	^(SORT_SPEC valueExpression COLLATE? (ASC|DESC))
+	;
+
+searchCondition
+	:	^( OR searchCondition searchCondition )
+	|	^( AND searchCondition searchCondition )
+	|	^( NOT searchCondition )
+	|	predicate
+	;
+
+predicate
+	:	^( EQUALS rowValueConstructor comparativePredicateValue )
+	|	^( NOT_EQUAL rowValueConstructor comparativePredicateValue )
+	|	^( LESS rowValueConstructor comparativePredicateValue )
+	|	^( LESS_EQUAL rowValueConstructor comparativePredicateValue )
+	|	^( GREATER rowValueConstructor comparativePredicateValue )
+	|	^( GREATER_EQUAL rowValueConstructor comparativePredicateValue )
+	|	^( IS_NULL rowValueConstructor )
+	|	^( IS_NOT_NULL rowValueConstructor )
+	|	^( LIKE valueExpression valueExpression escapeSpecification? )
+	|	^( NOT_LIKE valueExpression valueExpression escapeSpecification? )
+	|	^( BETWEEN rowValueConstructor betweenList )
+	|	^( NOT_BETWEEN rowValueConstructor betweenList )
+	|	^( IN rowValueConstructor inPredicateValue )
+	|	^( NOT_IN rowValueConstructor inPredicateValue )
+	|	^( MEMBER_OF rowValueConstructor rowValueConstructor )
+	|	^( NOT_MEMBER_OF rowValueConstructor rowValueConstructor  )
+	|	^( IS_EMPTY rowValueConstructor )
+	|	^( IS_NOT_EMPTY rowValueConstructor )
+	|	rowValueConstructor
+	;
+
+betweenList
+	:	^( BETWEEN_LIST rowValueConstructor rowValueConstructor )
+	;	
+
+comparativePredicateValue
+	:	rowValueConstructor
+	;
+
+rowValueConstructor
+	:	valueExpression
+	;
+
+escapeSpecification
+	:	^(ESCAPE characterValueExpression)
+	;
+
+inPredicateValue
+	:	^(IN_LIST valueExpression+)
+	;
+
+numericValueExpression
+	:	valueExpression
+	;
+
+characterValueExpression
+	:	valueExpression
+	;
+
+datetimeValueExpression
+	:	valueExpression
+	;
+
+valueExpression
+	:	^( DOUBLE_PIPE characterValueExpression+ )
+	|	^( UNARY_MINUS numericValueExpression )
+	|	^( UNARY_PLUS numericValueExpression )
+	|	^( PLUS valueExpression valueExpression )
+	|	^( MINUS valueExpression valueExpression )
+	|	^( ASTERISK numericValueExpression numericValueExpression )
+	|	^( SOLIDUS numericValueExpression numericValueExpression )
+	|	^( EXISTS rowValueConstructor)
+    |	^( SOME valueExpression )
+    |	^( ALL valueExpression )
+    |	^( ANY valueExpression )
+	|	^( VECTOR_EXPR valueExpression+) // or a tuples or ^(AND or IN statement 
+	|	valueExpressionPrimary
+	;
+
+valueExpressionPrimary
+	:	caseExpression
+	|	function
+	|	collectionFunction
+	|	collectionExpression
+	|	constant
+	|	parameter
+	|	propertyReference
+	|	^(SUB_QUERY queryStatementSet)
+	|	ALIAS_REF //ID COLUMN, full property column list 
+	|	^(DOT_CLASS identPrimary) // crazy 
+	|	^(GENERAL_FUNCTION_CALL identPrimary)
+	|	^(JAVA_CONSTANT identPrimary) //It will generate at SQL a parameter element (?) -> 'cos we do not need to care about char escaping
+	|	^(PATH identPrimary)
+	;
+
+caseExpression
+	:	^(NULLIF valueExpression valueExpression)
+	|	^(COALESCE valueExpression valueExpression*)
+	|	^(SIMPLE_CASE valueExpression simpleCaseWhenClause+ elseClause?)
+	|	^(SEARCHED_CASE searchedWhenClause+ elseClause?)
+	;
+
+simpleCaseWhenClause
+	:	^(WHEN valueExpression valueExpression)
+	;
+
+searchedWhenClause
+	:	^(WHEN searchCondition valueExpression)
+	;
+
+elseClause
+	:	^(ELSE valueExpression)
+	;
+
+function
+	:	standardFunction
+	|	setFunction
+	;
+
+standardFunction
+	:	castFunction
+	|	concatFunction
+	|	substringFunction
+	|	trimFunction
+	|	upperFunction
+	|	lowerFunction
+	|	lengthFunction
+	|	locateFunction
+	|	absFunction
+	|	sqrtFunction
+	|	modFunction
+	|	sizeFunction
+	|	indexFunction
+	|	currentDateFunction
+	|	currentTimeFunction
+	|	currentTimestampFunction
+	|	extractFunction
+	|	positionFunction
+	|	charLengthFunction
+	|	octetLengthFunction
+	|	bitLengthFunction
+	;
+
+castFunction
+	:	^(CAST valueExpression IDENTIFIER)
+	;
+
+concatFunction
+	:	^(CONCAT valueExpression+)
+	;
+
+substringFunction
+	:	^(SUBSTRING characterValueExpression numericValueExpression numericValueExpression?)
+	;
+
+trimFunction
+	:	^(TRIM trimOperands)
+	;
+
+trimOperands
+	:	^((LEADING|TRAILING|BOTH) characterValueExpression characterValueExpression)
+	;
+
+upperFunction
+	:	^(UPPER characterValueExpression)
+	;
+
+lowerFunction
+	:	^(LOWER characterValueExpression)
+	;
+
+lengthFunction
+	:	^(LENGTH characterValueExpression)
+	;
+
+locateFunction
+	:	^(LOCATE characterValueExpression characterValueExpression numericValueExpression?)
+	;
+
+absFunction
+	:	^(ABS numericValueExpression)
+	;
+
+sqrtFunction
+	:	^(SQRT numericValueExpression)
+	;
+
+modFunction
+	:	^(MOD numericValueExpression numericValueExpression)
+	;
+
+sizeFunction
+	:	^(SIZE propertyReference)
+	;
+
+indexFunction
+	:	^(INDEX ALIAS_REF)
+	;
+
+currentDateFunction
+	:	CURRENT_DATE
+	;
+
+currentTimeFunction
+	:	CURRENT_TIME
+	;
+
+currentTimestampFunction
+	:	CURRENT_TIMESTAMP
+	;
+
+extractFunction
+	:	^(EXTRACT extractField datetimeValueExpression)
+	;
+
+extractField
+	:	datetimeField
+	|	timeZoneField
+	;
+
+datetimeField
+	:	YEAR
+	|	MONTH
+	|	DAY
+	|	HOUR
+	|	MINUTE
+	|	SECOND
+	;
+
+timeZoneField
+	:	TIMEZONE_HOUR
+	|	TIMEZONE_MINUTE
+	;
+
+positionFunction
+	:	^(POSITION characterValueExpression characterValueExpression)
+	;
+
+charLengthFunction
+	:	^(CHARACTER_LENGTH characterValueExpression)
+	;
+
+octetLengthFunction
+	:	^(OCTET_LENGTH characterValueExpression)	
+	;
+
+bitLengthFunction
+	:	^(BIT_LENGTH characterValueExpression)
+	;
+
+setFunction
+	:	^(SUM numericValueExpression)
+	|	^(AVG numericValueExpression)
+	|	^(MAX numericValueExpression)
+	|	^(MIN numericValueExpression)
+	|	^(COUNT (ASTERISK | (DISTINCT|ALL) countFunctionArguments))
+	;
+
+countFunctionArguments
+	:	collectionExpression
+	|	propertyReference
+	|	numeric_literal
+	;
+
+collectionFunction
+	:	^((MAXELEMENT|MAXINDEX|MINELEMENT|MININDEX) collectionPropertyReference)
+		//it will generate a SELECT MAX (m.column) form Table xxx -> it is realted to Hibernate mappings to Table->Map
+	;
+
+collectionPropertyReference
+	:	propertyReference
+	;
+
+collectionExpression
+	:	^(ELEMENTS propertyReference) //it will generate a SELECT m.column form Table xxx -> it is realted to Hibernate mappings to Table->Map
+	|	^(INDICES propertyReference)
+	;
+
+parameter
+	:	NAMED_PARAM
+	|	JPA_PARAM
+	|	PARAM
+	;
+
+constant
+	:	literal
+	|	NULL
+	|	TRUE
+	|	FALSE
+	;
+
+literal
+	:	numeric_literal
+	|	HEX_LITERAL
+	|	OCTAL_LITERAL
+	|	CHARACTER_LITERAL
+	|	STRING_LITERAL
+	;
+
+numeric_literal
+	:	INTEGER_LITERAL
+	|	DECIMAL_LITERAL
+	|	FLOATING_POINT_LITERAL
+	;
+
+entityName
+	:	ENTITY_NAME ALIAS_NAME
+	;
+
+propertyReference
+	:	^(PROPERTY_REFERENCE identPrimary)
+	;
+
+identPrimary
+	: 	IDENTIFIER
+	|	^(DOT identPrimary identPrimary )
+	|	^(LEFT_SQUARE identPrimary valueExpression* )
+	|	^(LEFT_PAREN identPrimary valueExpression* )
+	;
\ No newline at end of file


Property changes on: core/branches/antlr3/src/test/antlr3/org/hibernate/sql/ast/phase/hql/parse/TestHQLTreeWalker.g
___________________________________________________________________
Name: svn:eol-style
   + native




More information about the hibernate-commits mailing list