You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by km...@apache.org on 2016/12/23 21:09:56 UTC
[03/25] geode git commit: GEODE-165: Removed OQL generated files and
added the target into geode-core/build.gradle.
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/parse/oql.g
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/parse/oql.g b/geode-core/src/main/java/org/apache/geode/cache/query/internal/parse/oql.g
deleted file mode 100644
index a743752..0000000
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/parse/oql.g
+++ /dev/null
@@ -1,1195 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
-** oql.g
-**
-** Built with Antlr 2.7.4
-** java antlr.Tool oql.g
-*/
-
-header {
-package org.apache.geode.cache.query.internal.parse;
-import java.util.*;
-import org.apache.geode.cache.query.internal.types.*;
-}
-
-options {
- language="Java";
-}
-
-class OQLLexer extends Lexer ;
-options {
- k=2;
- charVocabulary = '\u0000'..'\uFFFE';
- testLiterals=false; // don't automatically test for literals
- caseSensitive=false;
- caseSensitiveLiterals = false;
- defaultErrorHandler = false;
-}
-
-{
- static {
- // Set up type names for verbose AST printing
- antlr.BaseAST.setVerboseStringConversion(true, OQLParser._tokenNames);
- }
-
- protected Token makeToken(int t) {
- Token tok = super.makeToken(t);
- if (tok.getType() == EOF) tok.setText("EOF");
- if (tok.getText() == null) {
- tok.setText("(no text)");
- }
- return tok;
- }
-}
-
-
- /* punctuation */
-TOK_RPAREN : ')' ;
-TOK_LPAREN : '(' ;
-TOK_COMMA : ',' ;
-TOK_SEMIC : ';' ;
-TOK_DOTDOT : ".." ;
-TOK_COLON : ':' ;
-TOK_DOT : '.' ;
-TOK_INDIRECT: '-' '>' { $setType(TOK_DOT); } ;
-TOK_CONCAT : '|' '|' ;
-TOK_EQ : '=' ;
-TOK_PLUS : '+' ;
-TOK_MINUS : '-' ;
-TOK_SLASH : '/' ;
-TOK_STAR : '*' ;
-TOK_LE : '<' '=' ;
-TOK_GE : '>' '=' ;
-TOK_NE : '<' '>' ;
-TOK_NE_ALT : '!' '=' { $setType(TOK_NE); } ;
-TOK_LT : '<' ;
-TOK_GT : '>' ;
-TOK_LBRACK : '[' ;
-TOK_RBRACK : ']' ;
-TOK_DOLLAR : '$' ;
-
-/* Character Classes */
-protected
-LETTER : ('\u0061'..'\u007a' |
- '\u00c0'..'\u00d6' |
- '\u00a1'..'\u00bf' |
- '\u00d8'..'\u00f6' |
- '\u00f8'..'\u00ff' |
- '\u0100'..'\u065f' |
- '\u066a'..'\u06ef' |
- '\u06fa'..'\u0965' |
- '\u0970'..'\u09e5' |
- '\u09f0'..'\u0a65' |
- '\u0a70'..'\u0ae5' |
- '\u0af0'..'\u0b65' |
- '\u0b70'..'\u0be6' |
- '\u0bf0'..'\u0c65' |
- '\u0c70'..'\u0ce5' |
- '\u0cf0'..'\u0d65' |
- '\u0d70'..'\u0e4f' |
- '\u0e5a'..'\u0ecf' |
- '\u0eda'..'\u103f' |
- '\u104a'..'\u1fff' |
- '\u2000'..'\u206f' |
- '\u3040'..'\u318f' |
- '\u3300'..'\u337f' |
- '\u3400'..'\u3d2d' |
- '\u4e00'..'\u9fff' |
- '\uf900'..'\ufaff')
- ;
-
-protected
-DIGIT : ('\u0030'..'\u0039' |
- '\u0660'..'\u0669' |
- '\u06f0'..'\u06f9' |
- '\u0966'..'\u096f' |
- '\u09e6'..'\u09ef' |
- '\u0a66'..'\u0a6f' |
- '\u0ae6'..'\u0aef' |
- '\u0b66'..'\u0b6f' |
- '\u0be7'..'\u0bef' |
- '\u0c66'..'\u0c6f' |
- '\u0ce6'..'\u0cef' |
- '\u0d66'..'\u0d6f' |
- '\u0e50'..'\u0e59' |
- '\u0ed0'..'\u0ed9' |
- '\u1040'..'\u1049')
- ;
-
-protected
-ALL_UNICODE : ('\u0061'..'\ufffd')
- ;
-
-/*
- * Names
- */
-protected
-NameFirstCharacter:
- ( LETTER | '_' )
- ;
-
-protected
-NameCharacter:
- ( LETTER | '_' | DIGIT | '$') // an internal $ is used for internal use identifiers
- ;
-
-protected
-RegionNameCharacter:
- ( ALL_UNICODE | '_' | DIGIT | '+' | '-' | ':' | '#' | '@' | '$') // an internal $ is used for internal use identifiers
- ;
-
-QuotedIdentifier
- options {testLiterals=false;}
- :
-
- '"'! NameFirstCharacter ( NameCharacter )* '"'!
- ;
-
-
-
-Identifier
- options {testLiterals=true;}
- :
-
- NameFirstCharacter ( NameCharacter )*
- ;
-
-
-
-RegionPath : ( ( (TOK_SLASH ( RegionNameCharacter )+ )+ ) |
- ( (TOK_SLASH StringLiteral )+ ) )
- ;
-
-
-/* Numbers */
-// a numeric literal
-NUM_INT
- {boolean isDecimal=false; Token t=null;}
- : ( '0' {isDecimal = true;} // special case for just '0'
- ( 'x'
- ( // hex
- // the 'e'|'E' and float suffix stuff look
- // like hex digits, hence the (...)+ doesn't
- // know when to stop: ambig. ANTLR resolves
- // it correctly by matching immediately. It
- // is therefor ok to hush warning.
- options {
- warnWhenFollowAmbig=false;
- }
- : HEX_DIGIT
- )+
-
- | //float or double with leading zero
- (('0'..'9')+ ('.'|EXPONENT|FLOAT_SUFFIX)) => ('0'..'9')+
-
- | ('0'..'7')+ // octal
- )?
- | ('1'..'9') ('0'..'9')* {isDecimal=true;} // non-zero decimal
- )
- ( 'l' { _ttype = NUM_LONG; }
-
- // only check to see if it's a float if looks like decimal so far
- | {isDecimal}?
- ( '.' ('0'..'9')* (EXPONENT)? (f2:FLOAT_SUFFIX {t=f2;})?
- | EXPONENT (f3:FLOAT_SUFFIX {t=f3;})?
- | f4:FLOAT_SUFFIX {t=f4;}
- )
- {
- if (t != null && t.getText().toUpperCase() .indexOf('F') >= 0) {
- _ttype = NUM_FLOAT;
- }
- else {
- _ttype = NUM_DOUBLE; // assume double
- }
- }
- )?
- ;
-
-
-// a couple protected methods to assist in matching floating point numbers
-protected
-EXPONENT
- : 'e' ('+'|'-')? ('0'..'9')+
- ;
-
-
-protected
-FLOAT_SUFFIX
- : 'f'|'d'
- ;
-
-// hexadecimal digit
-protected
-HEX_DIGIT
- : ('0'..'9'| 'a'..'f')
- ;
-
-
-protected
-QUOTE
- : '\''
- ;
-
-StringLiteral :
- QUOTE!
- (
- QUOTE QUOTE!
- | '\n' { newline(); }
- | ~( '\'' | '\n' )
- )*
- QUOTE!
-
- ;
-
-
-// Whitespace -- ignored
-WS : ( ' '
- | '\t'
- | '\f'
- // handle newlines
- | ( options {generateAmbigWarnings=false;}
- : "\r\n" // Evil DOS
- | '\r' // Macintosh
- | '\n' // Unix (the right way)
- )
- { newline(); }
- )+
- { _ttype = Token.SKIP; }
- ;
-
-
-// Single-line comments
-SL_COMMENT
- : "--"
- (~('\n'|'\r'))* ('\n'|'\r'('\n')?)?
- {$setType(Token.SKIP); newline();}
- ;
-
-// multiple-line comments
-ML_COMMENT
- : "/*"
- ( /* '\r' '\n' can be matched in one alternative or by matching
- '\r' in one iteration and '\n' in another. I am trying to
- handle any flavor of newline that comes in, but the language
- that allows both "\r\n" and "\r" and "\n" to all be valid
- newline is ambiguous. Consequently, the resulting grammar
- must be ambiguous. I'm shutting this warning off.
- */
- options {
- generateAmbigWarnings=false;
- }
- :
- { LA(2)!='/' }? '*'
- | '\r' '\n' {newline();}
- | '\r' {newline();}
- | '\n' {newline();}
- | ~('*'|'\n'|'\r')
- )*
- "*/"
- {$setType(Token.SKIP);}
- ;
-
-
-
-
-/***************************** OQL PARSER *************************************/
-
-class OQLParser
-extends Parser("org.apache.geode.cache.query.internal.parse.UtilParser");
-
-options {
- buildAST = true;
- k = 2;
- codeGenMakeSwitchThreshold = 3;
- codeGenBitsetTestThreshold = 4;
- defaultErrorHandler = false;
-}
-
-tokens {
- QUERY_PROGRAM;
- QUALIFIED_NAME;
- QUERY_PARAM;
- ITERATOR_DEF;
- PROJECTION_ATTRS;
- PROJECTION;
- TYPECAST;
- COMBO;
- METHOD_INV;
- POSTFIX;
- OBJ_CONSTRUCTOR;
- IMPORTS;
- SORT_CRITERION;
- LIMIT;
- HINT;
- AGG_FUNC;
- SUM;
- AVG;
- COUNT;
- MAX;
- MIN;
-}
-
-queryProgram :
- ( traceCommand )?
- (
-
- ( declaration ( TOK_SEMIC! declaration )* ( TOK_SEMIC! query ) ) (TOK_SEMIC!)?
- |
- query (TOK_SEMIC!)?
- )
- EOF!
- { #queryProgram =
- #([QUERY_PROGRAM, "queryProgram",
- "org.apache.geode.cache.query.internal.parse.GemFireAST"],
- #queryProgram); }
- ;
-
-traceCommand:
- (
- TOK_LT!
- "trace"^<AST=org.apache.geode.cache.query.internal.parse.ASTTrace>
- TOK_GT!
- )
- ;
-
-
-loneFromClause :
- iteratorDef
- (
- TOK_COMMA!
- iteratorDef
- )* EOF!
- { #loneFromClause =
- #([LITERAL_from, "from",
- "org.apache.geode.cache.query.internal.parse.ASTCombination"],
- #loneFromClause); }
- ;
-
-loneProjectionAttributes :
- projectionAttributes EOF!
- ;
-
-declaration :
-
- defineQuery
- | importQuery
- | undefineQuery
- | paramTypeDecl
-
- ;
-
-importQuery :
-
- "import"^<AST=org.apache.geode.cache.query.internal.parse.ASTImport>
- qualifiedName
- (
- "as" identifier
- )?
-
- ;
-
-loneImports :
- importQuery ( TOK_SEMIC! importQuery )*
- (TOK_SEMIC!)?
- EOF!
- // combine into a single node
- { #loneImports = #([IMPORTS, "imports",
- "org.apache.geode.cache.query.internal.parse.GemFireAST"],
- #loneImports); }
- ;
-
-paramTypeDecl :
-
- "declare"^ (queryParam) (TOK_COMMA! queryParam)* type
- ;
-
-
-qualifiedName :
-
- identifier
- (
- TOK_DOT!
- identifier
- )*
- ;
-
-
-defineQuery :
-
- "define"^
- ( "query"! )?
- identifier
-
- (
- TOK_LPAREN!
- type
- identifier
- (
- TOK_COMMA!
- type
- identifier
- )*
- TOK_RPAREN!
- )?
-
- "as"!
- query
- ;
-
-undefineQuery :
-
- "undefine"^
- ( "query"! )?
- identifier
- ;
-
-query :
-
- (
- selectExpr
- | expr
- )
- ;
-
-selectExpr :
- ( hintCommand )?
- "select"^<AST=org.apache.geode.cache.query.internal.parse.ASTSelect>
-
- (
- // ambig. betweed this distinct and a distinct conversion expr
- // the first distinct keyword here must be for the select,
- // so take adv. of greedy and turn off warning
- options {
- warnWhenFollowAmbig = false;
- } :
-
- "distinct" <AST=org.apache.geode.cache.query.internal.parse.ASTDummy>
- | "all" <AST=org.apache.geode.cache.query.internal.parse.ASTDummy>
- )?
-
-
- (
- projectionAttributes
- )
- fromClause
- ( whereClause )?
- ( groupClause )?
- ( orderClause )?
- ( limitClause )?
- ;
-
-fromClause :
-
- "from"^<AST=org.apache.geode.cache.query.internal.parse.ASTCombination>
- iteratorDef
- (
- TOK_COMMA!
- iteratorDef
- )*
- ;
-
-iteratorDef! :
-
- (identifier "in" ) =>
-
- id1:identifier
- "in"!
- ex1:expr ( "type"! t1:type )?
- { #iteratorDef = #([ITERATOR_DEF, "iterDef", "org.apache.geode.cache.query.internal.parse.ASTIteratorDef"], #ex1, #id1, #t1); }
-
- | ex2:expr
- (
- ( "as"! )?
- id2:identifier
- )?
- ( "type"! t2:type )?
-
- { #iteratorDef = #([ITERATOR_DEF, "iterDef", "org.apache.geode.cache.query.internal.parse.ASTIteratorDef"], #ex2, #id2, #t2); }
- ;
-
-whereClause :
-
- "where"! expr
- ;
-
-limitClause! :
-
- "limit" (TOK_DOLLAR NUM_INT
- { #limitClause = #([LIMIT, "limitParam",
- "org.apache.geode.cache.query.internal.parse.ASTParameter"],
- #NUM_INT); }
- | n:NUM_INT{ #limitClause =#[LIMIT,n.getText(),"org.apache.geode.cache.query.internal.parse.ASTLimit"] ; })
- ;
-
-projectionAttributes :
-
- (
- projection
- (
- TOK_COMMA!
- projection
- )*
- { #projectionAttributes = #([PROJECTION_ATTRS, "projectionAttrs",
- "org.apache.geode.cache.query.internal.parse.ASTCombination"],
- #projectionAttributes); }
-
- | TOK_STAR <AST=org.apache.geode.cache.query.internal.parse.ASTDummy>
- )
- ;
-
-projection!{ AST node = null;}:
-
- lb1:identifier TOK_COLON! ( tok1:aggregateExpr{node = #tok1;} | tok2:expr{node = #tok2;})
- { #projection = #([PROJECTION, "projection",
- "org.apache.geode.cache.query.internal.parse.ASTProjection"], node, #lb1); }
- |
- (tok3:aggregateExpr{node = #tok3;} | tok4:expr{node = #tok4;})
- (
- "as"
- lb2: identifier
- )?
- { #projection = #([PROJECTION, "projection",
- "org.apache.geode.cache.query.internal.parse.ASTProjection"], node, #lb2); }
- ;
-
-
-
-
-groupClause :
-
- "group"^<AST=org.apache.geode.cache.query.internal.parse.ASTGroupBy>
- "by"! groupByList
-
- (
- "having"!
- expr
- )?
- ;
-
-hintCommand :
-
- TOK_LT!
- "hint"^<AST=org.apache.geode.cache.query.internal.parse.ASTHint>
- hintIdentifier
- (
- TOK_COMMA! hintIdentifier
- )*
- TOK_GT!
-
- ;
-
-
-hintIdentifier :
- n:StringLiteral{ #hintIdentifier =#[HINT,n.getText(),"org.apache.geode.cache.query.internal.parse.ASTHintIdentifier"] ; }
-;
-
-orderClause :
-
- "order"^<AST=org.apache.geode.cache.query.internal.parse.ASTOrderBy>
- "by"!
- sortCriterion
- (
- TOK_COMMA! sortCriterion
- )*
- ;
-
-sortCriterion :
-
- tok:expr { #sortCriterion = #([SORT_CRITERION, "asc", "org.apache.geode.cache.query.internal.parse.ASTSortCriterion"],
- tok); }
- (
- "asc"! {#sortCriterion.setText("asc");}
- | "desc"! {#sortCriterion.setText("desc");}
-
- )?
- ;
-
-expr :
-
- castExpr
-
- ;
-
-
-castExpr
- :
-
- // Have to backtrack to see if operator follows. If no operator
- // follows, it's a typecast. No semantic checking needed to parse.
- // if it _looks_ like a cast, it _is_ a cast; else it's a "(expr)"
- (TOK_LPAREN type TOK_RPAREN castExpr)=>
- lp:TOK_LPAREN^<AST=org.apache.geode.cache.query.internal.parse.ASTTypeCast>
- {#lp.setType(TYPECAST); #lp.setText("typecast");}
- type TOK_RPAREN!
- castExpr
-
- | orExpr
- ;
-
-orExpr
- { boolean cmplx = false; } :
-
- orelseExpr ( "or"! orelseExpr { cmplx = true; } )*
- { if (cmplx) {
- #orExpr = #([LITERAL_or, "or",
- "org.apache.geode.cache.query.internal.parse.ASTOr"],
- #orExpr); } }
- ;
-
-orelseExpr
- { boolean cmplx = false; } :
- andExpr ( "orelse"! andExpr { cmplx = true; } )*
- { if (cmplx) { #orelseExpr = #([LITERAL_orelse, "or"], #orelseExpr); } }
- ;
-
-
-andExpr
- { boolean cmplx = false; } :
- quantifierExpr ( "and"! quantifierExpr { cmplx = true; } )*
- { if (cmplx) {
- #andExpr = #([LITERAL_and, "and",
- "org.apache.geode.cache.query.internal.parse.ASTAnd"],
- #andExpr); } }
- ;
-
-quantifierExpr :
-
- "for"^
- "all"!
- inClause TOK_COLON! andthenExpr
-
- |
- ("exists" identifier "in" ) =>
- "exists"^
- inClause
- TOK_COLON! andthenExpr
-
- | andthenExpr
-
- ;
-
-
-inClause :
- identifier "in"! expr
- ;
-
-
-
-andthenExpr
- { boolean cmplx = false; } :
- equalityExpr ( "andthen"! equalityExpr { cmplx = true; } )*
- { if (cmplx) { #andthenExpr = #([LITERAL_andthen, "andthen"], #andthenExpr); } }
- ;
-
-
-equalityExpr :
-
- relationalExpr
-
- (
- ( (
- TOK_EQ^<AST=org.apache.geode.cache.query.internal.parse.ASTCompareOp>
- | TOK_NE^<AST=org.apache.geode.cache.query.internal.parse.ASTCompareOp>
- )
- ( "all"^
- | "any"^
- | "some"^
- )?
- relationalExpr )+
-
- | ( "like"^<AST=org.apache.geode.cache.query.internal.parse.ASTLike>
- relationalExpr )*
- )
- ;
-
-relationalExpr :
-
- additiveExpr
- (
- (
- TOK_LT^<AST=org.apache.geode.cache.query.internal.parse.ASTCompareOp>
- | TOK_GT^<AST=org.apache.geode.cache.query.internal.parse.ASTCompareOp>
- | TOK_LE^<AST=org.apache.geode.cache.query.internal.parse.ASTCompareOp>
- | TOK_GE^<AST=org.apache.geode.cache.query.internal.parse.ASTCompareOp>
- )
-
- (
- // Simple comparison of expressions
- additiveExpr
-
- // Comparison of queries
- | (
- "all"^
- | "any"^
- | "some"^
- )
- additiveExpr
- )
- )*
- ;
-
-additiveExpr :
-
- multiplicativeExpr
- (
- (
- TOK_PLUS^
- | TOK_MINUS^
- | TOK_CONCAT^
- | "union"^
- | "except"^
- )
- multiplicativeExpr
- )*
- ;
-
-multiplicativeExpr :
-
- inExpr
- (
- (
- TOK_STAR^
- | TOK_SLASH^
- | "mod"^
- | "intersect"^
- )
- inExpr
- )*
- ;
-
-inExpr :
-
- unaryExpr
- (
- "in"^<AST=org.apache.geode.cache.query.internal.parse.ASTIn> unaryExpr
- )?
- ;
-
-unaryExpr :
-
- (
- (
- TOK_PLUS!
- | TOK_MINUS^<AST=org.apache.geode.cache.query.internal.parse.ASTUnary>
- | "abs"^
- | "not"^<AST=org.apache.geode.cache.query.internal.parse.ASTUnary>
- )
- )*
- postfixExpr
-
- ;
-
-postfixExpr
- { boolean cmplx = false; } :
- primaryExpr
-
- (
- TOK_LBRACK!
- index TOK_RBRACK!
- { cmplx = true; }
-
- | ( TOK_DOT! | TOK_INDIRECT! )
- ( methodInvocation[false]
- | identifier )
- { cmplx = true; }
- )*
- { if (cmplx) {
- #postfixExpr = #([POSTFIX, "postfix",
- "org.apache.geode.cache.query.internal.parse.ASTPostfix"],
- #postfixExpr);
- }
- }
-
- ;
-
-methodInvocation! [boolean implicitReceiver] :
-
- methodName:identifier args:argList
- { #methodInvocation =
- #([METHOD_INV, "methodInv",
- "org.apache.geode.cache.query.internal.parse.ASTMethodInvocation"],
- #methodName, #args);
- ((ASTMethodInvocation)#methodInvocation).setImplicitReceiver(implicitReceiver); }
- ;
-
-index :
-
- // single element
- (
- expr
- (
- // multiple elements: OQL defines a comma-delimited list of
- // indexes in its grammar, but seemingly fails to define the
- // semantics.
- // This grammar is left in just in case someone figures out what
- // this means, but for now this will throw an UnsupportedOperationException
- // at query compilation time
- // (throw new UnsupportedOperationException("Only one index expression supported"))
- (
- TOK_COMMA!
- expr
- )*
-
- // Range of elements
- | TOK_COLON^ expr
- )
- | TOK_STAR
- )
- { #index = #([TOK_LBRACK, "index",
- "org.apache.geode.cache.query.internal.parse.ASTCombination"],
- #index);
- }
- ;
-
-argList :
-
- t:TOK_LPAREN^<AST=org.apache.geode.cache.query.internal.parse.ASTCombination>
- (
- expr
- (
- TOK_COMMA!
- expr
- )*
- )?
- TOK_RPAREN!
- ;
-
-primaryExpr :
-
- (
- conversionExpr
- | collectionExpr
- | aggregateExpr
- | undefinedExpr
- | ( identifier TOK_LPAREN identifier TOK_COLON ) =>
- objectConstruction
- | structConstruction
- | collectionConstruction
- | methodInvocation[true]
- | identifier
- | queryParam
- | literal
- | TOK_LPAREN! query TOK_RPAREN!
- | RegionPath<AST=org.apache.geode.cache.query.internal.parse.ASTRegionPath>
- )
- ;
-
-
-conversionExpr :
- (
-
- (
- "listtoset"^
- | "element"^<AST=org.apache.geode.cache.query.internal.parse.ASTConversionExpr>
-
- | "distinct"^
- | "flatten"^
- )
- TOK_LPAREN! query TOK_RPAREN!
- |
- (
- (
- "nvl"^<AST=org.apache.geode.cache.query.internal.parse.ASTConversionExpr>
- )
- TOK_LPAREN!
- expr TOK_COMMA! expr
- TOK_RPAREN!
- )
- |
- (
- (
- "to_date"^<AST=org.apache.geode.cache.query.internal.parse.ASTConversionExpr>
- )
- TOK_LPAREN!
- stringLiteral TOK_COMMA! stringLiteral
- TOK_RPAREN!
- )
- )
- ;
-
-collectionExpr :
-
- (
- "first"^
- | "last"^
- | "unique"^
- | "exists"^
- )
- TOK_LPAREN! query TOK_RPAREN!
-
- ;
-
-
-
-
-aggregateExpr { int aggFunc = -1; boolean distinctOnly = false; }:
-
- !("sum" {aggFunc = SUM;} | "avg" {aggFunc = AVG;} )
- TOK_LPAREN ("distinct"! {distinctOnly = true;} ) ? tokExpr1:expr TOK_RPAREN
- { #aggregateExpr = #([AGG_FUNC, "aggregate", "org.apache.geode.cache.query.internal.parse.ASTAggregateFunc"],
- #tokExpr1);
- ((ASTAggregateFunc)#aggregateExpr).setAggregateFunctionType(aggFunc);
- ((ASTAggregateFunc)#aggregateExpr).setDistinctOnly(distinctOnly);
- }
-
- |
- !("min" {aggFunc = MIN;} | "max" {aggFunc = MAX;} )
- TOK_LPAREN tokExpr2:expr TOK_RPAREN
- { #aggregateExpr = #([AGG_FUNC, "aggregate", "org.apache.geode.cache.query.internal.parse.ASTAggregateFunc"],
- #tokExpr2);
- ((ASTAggregateFunc)#aggregateExpr).setAggregateFunctionType(aggFunc);
- }
-
- |
- "count"^<AST=org.apache.geode.cache.query.internal.parse.ASTAggregateFunc>
- TOK_LPAREN! ( TOK_STAR <AST=org.apache.geode.cache.query.internal.parse.ASTDummy>
- | ("distinct"! {distinctOnly = true;} ) ? expr ) TOK_RPAREN!
- {
- ((ASTAggregateFunc)#aggregateExpr).setAggregateFunctionType(COUNT);
- #aggregateExpr.setText("aggregate");
- ((ASTAggregateFunc)#aggregateExpr).setDistinctOnly(distinctOnly);
- }
- ;
-
-undefinedExpr :
-
- (
- "is_undefined"^<AST=org.apache.geode.cache.query.internal.parse.ASTUndefinedExpr>
- | "is_defined"^<AST=org.apache.geode.cache.query.internal.parse.ASTUndefinedExpr>
- )
- TOK_LPAREN!
- query
- TOK_RPAREN!
- ;
-
-objectConstruction :
-
- identifier
- t:TOK_LPAREN^
- {#t.setType(OBJ_CONSTRUCTOR);}
- fieldList
- TOK_RPAREN!
- ;
-
-structConstruction :
-
- "struct"^
- TOK_LPAREN!
- fieldList
- TOK_RPAREN!
- ;
-
-
-groupByList :
-
- expr
- (
- TOK_COMMA!
- expr
- )*
- /*{ #groupByList = #([COMBO, "groupByList",
- "org.apache.geode.cache.query.internal.parse.ASTCombination"],
- #groupByList); }*/
- ;
-
-
-fieldList :
-
- identifier TOK_COLON! expr
- (
- TOK_COMMA!
- identifier
- TOK_COLON! expr
- )*
- { #fieldList = #([COMBO, "fieldList",
- "org.apache.geode.cache.query.internal.parse.ASTCombination"],
- #fieldList); }
- ;
-
-collectionConstruction :
- (
- (
- "array"^
- | "set"^<AST=org.apache.geode.cache.query.internal.parse.ASTConstruction>
- | "bag"^
- )
- argList
-
- | "list"^
- TOK_LPAREN
- (
- expr
- (
- TOK_DOTDOT expr
- | (
- TOK_COMMA expr
- )*
- )
- )?
- TOK_RPAREN
- )
- ;
-
-queryParam! :
-
- TOK_DOLLAR NUM_INT
- { #queryParam = #([QUERY_PARAM, "queryParam",
- "org.apache.geode.cache.query.internal.parse.ASTParameter"],
- #NUM_INT); }
-
- ;
-
-type :
-
- (
-// ( "unsigned" )? // ignored
-// (
- typ00:"short"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ00.setJavaType(TypeUtils.getObjectType(Short.class)); }
- | typ01:"long"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ01.setJavaType(TypeUtils.getObjectType(Long.class)); }
-// )
- | typ02:"int"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ02.setJavaType(TypeUtils.getObjectType(Integer.class)); }
- | typ03:"float"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ03.setJavaType(TypeUtils.getObjectType(Float.class)); }
- | typ04:"double"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ04.setJavaType(TypeUtils.getObjectType(Double.class)); }
- | typ05:"char"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ05.setJavaType(TypeUtils.getObjectType(Character.class)); }
- | typ06:"string"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ06.setJavaType(TypeUtils.getObjectType(String.class)); }
- | typ07:"boolean"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ07.setJavaType(TypeUtils.getObjectType(Boolean.class)); }
- | typ08:"byte"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ08.setJavaType(TypeUtils.getObjectType(Byte.class)); }
- | typ09:"octet"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ09.setJavaType(TypeUtils.getObjectType(Byte.class)); }
- | "enum"^ // unsupported
- (
- identifier
- TOK_DOT
- )?
- identifier
- | typ10:"date"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ10.setJavaType(TypeUtils.getObjectType(java.sql.Date.class)); }
- | typ11:"time"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ11.setJavaType(TypeUtils.getObjectType(java.sql.Time.class)); }
- | "interval" // unsupported
- | typ12:"timestamp"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ12.setJavaType(TypeUtils.getObjectType(java.sql.Timestamp.class)); }
- | typ13:"set"^<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- TOK_LT! type TOK_GT!
- { #typ13.setJavaType(new CollectionTypeImpl(Set.class, TypeUtils.OBJECT_TYPE /*resolved later*/)); }
- | typ14:"collection"^<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- TOK_LT! type TOK_GT!
- { #typ14.setJavaType(new CollectionTypeImpl(Collection.class, TypeUtils.OBJECT_TYPE /*resolved later*/)); }
- | "bag"^ TOK_LT! type TOK_GT! // not supported
- | typ15:"list"^<AST=org.apache.geode.cache.query.internal.parse.ASTType> TOK_LT! type TOK_GT!
- { #typ15.setJavaType(new CollectionTypeImpl(List.class, TypeUtils.OBJECT_TYPE /*resolved later*/)); }
- | typ16:"array"^<AST=org.apache.geode.cache.query.internal.parse.ASTType> TOK_LT! type TOK_GT!
- { #typ16.setJavaType(new CollectionTypeImpl(Object[].class, TypeUtils.OBJECT_TYPE /*resolved later*/)); }
- | (typ17:"dictionary"^<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ17.setJavaType(new MapTypeImpl(Map.class, TypeUtils.OBJECT_TYPE , TypeUtils.OBJECT_TYPE /*resolved later*/)); }
- | typ18:"map"^<AST=org.apache.geode.cache.query.internal.parse.ASTType>
- { #typ18.setJavaType(new MapTypeImpl(Map.class, TypeUtils.OBJECT_TYPE , TypeUtils.OBJECT_TYPE /*resolved later*/)); }
- )
- TOK_LT! type TOK_COMMA! type TOK_GT!
- |! id:identifier { String txt = #id.getText();
- #type = #[Identifier, txt, "org.apache.geode.cache.query.internal.parse.ASTType"];
- ((ASTType)#type).setTypeName(txt); }
- )
-
-
- ;
-
-literal :
-
- objectLiteral
- | booleanLiteral
- | numericLiteral
- | charLiteral
- | stringLiteral
- | dateLiteral
- | timeLiteral
- | timestampLiteral
- ;
-
-objectLiteral :
-
- "nil"<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- | "null"<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- | "undefined"<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- ;
-
-booleanLiteral :
-
- (
- "true"<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- | "false"<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- )
- ;
-
-numericLiteral :
-
- ( NUM_INT<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- | NUM_LONG<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- | NUM_FLOAT<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- | NUM_DOUBLE<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- )
-
- ;
-
-
-charLiteral :
-
- "char"^<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- StringLiteral
- ;
-
-
-stringLiteral :
-
- StringLiteral<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- ;
-
-dateLiteral :
-
- "date"^<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- StringLiteral
- ;
-
-timeLiteral :
-
- "time"^<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- StringLiteral
- ;
-
-timestampLiteral :
-
- "timestamp"^<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
- StringLiteral
- ;
-
-identifier :
- Identifier<AST=org.apache.geode.cache.query.internal.parse.ASTIdentifier>
- | q:QuotedIdentifier<AST=org.apache.geode.cache.query.internal.parse.ASTIdentifier>
- { #q.setType(Identifier); }
- ;
-
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/test/java/org/apache/geode/cache/query/functional/FunctionJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/functional/FunctionJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/functional/FunctionJUnitTest.java
index 4819e87..8bb2610 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/functional/FunctionJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/functional/FunctionJUnitTest.java
@@ -26,6 +26,7 @@ import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
+import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -41,7 +42,6 @@ import org.apache.geode.cache.query.internal.CompiledFunction;
import org.apache.geode.cache.query.internal.CompiledLiteral;
import org.apache.geode.cache.query.internal.CompiledValue;
import org.apache.geode.cache.query.internal.ExecutionContext;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.test.junit.categories.IntegrationTest;
@Category(IntegrationTest.class)
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/test/java/org/apache/geode/cache/query/internal/CompiledAggregateFunctionJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/CompiledAggregateFunctionJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/CompiledAggregateFunctionJUnitTest.java
index a2bc0b5..f3bcc02 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/CompiledAggregateFunctionJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/CompiledAggregateFunctionJUnitTest.java
@@ -20,6 +20,7 @@ import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
+import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.jmock.Mockery;
import org.junit.Before;
import org.junit.Test;
@@ -41,7 +42,6 @@ import org.apache.geode.cache.query.internal.aggregate.MaxMin;
import org.apache.geode.cache.query.internal.aggregate.Sum;
import org.apache.geode.cache.query.internal.aggregate.SumDistinct;
import org.apache.geode.cache.query.internal.aggregate.SumDistinctPRQueryNode;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.test.junit.categories.UnitTest;
@Category(UnitTest.class)
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/test/java/org/apache/geode/cache/query/internal/CompiledJunctionInternalsJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/CompiledJunctionInternalsJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/CompiledJunctionInternalsJUnitTest.java
index e94ea4f..21745d5 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/CompiledJunctionInternalsJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/CompiledJunctionInternalsJUnitTest.java
@@ -32,6 +32,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
@@ -47,7 +48,6 @@ import org.apache.geode.cache.query.data.Address;
import org.apache.geode.cache.query.data.Employee;
import org.apache.geode.cache.query.data.Portfolio;
import org.apache.geode.cache.query.internal.index.IndexManager;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.internal.cache.LocalRegion;
import org.apache.geode.test.junit.categories.IntegrationTest;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/test/java/org/apache/geode/cache/query/internal/QCompilerJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/QCompilerJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/QCompilerJUnitTest.java
index f0a4cac..9b32fda 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/QCompilerJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/QCompilerJUnitTest.java
@@ -27,6 +27,7 @@ import java.util.List;
import java.util.SortedMap;
import java.util.TreeMap;
+import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
@@ -34,7 +35,6 @@ import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.apache.geode.cache.query.CacheUtils;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.test.junit.categories.IntegrationTest;
/**
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/test/java/org/apache/geode/cache/query/internal/SelectResultsComparatorJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/SelectResultsComparatorJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/SelectResultsComparatorJUnitTest.java
index 9f3858f..3dbfc56 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/SelectResultsComparatorJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/SelectResultsComparatorJUnitTest.java
@@ -25,11 +25,11 @@ import java.util.Random;
import java.util.SortedSet;
import java.util.TreeSet;
+import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.apache.geode.cache.query.SelectResults;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.test.junit.categories.UnitTest;
@Category(UnitTest.class)
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/RangeIndexAPIJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/RangeIndexAPIJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/RangeIndexAPIJUnitTest.java
index f52f3aa..302a633 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/RangeIndexAPIJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/RangeIndexAPIJUnitTest.java
@@ -25,6 +25,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -48,7 +49,6 @@ import org.apache.geode.cache.query.internal.ExecutionContext;
import org.apache.geode.cache.query.internal.QCompiler;
import org.apache.geode.cache.query.internal.QueryExecutionContext;
import org.apache.geode.cache.query.internal.RuntimeIterator;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.pdx.PdxInstance;
import org.apache.geode.test.junit.categories.IntegrationTest;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/test/java/org/apache/geode/cache/query/internal/types/TypeUtilTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/types/TypeUtilTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/types/TypeUtilTest.java
index 7dcdf74..126d13b 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/types/TypeUtilTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/types/TypeUtilTest.java
@@ -16,10 +16,10 @@ package org.apache.geode.cache.query.internal.types;
import static org.junit.Assert.*;
+import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.pdx.internal.PdxString;
import org.apache.geode.test.junit.categories.UnitTest;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/gradle/rat.gradle
----------------------------------------------------------------------
diff --git a/gradle/rat.gradle b/gradle/rat.gradle
index 4b4a3cc..df2db2c 100644
--- a/gradle/rat.gradle
+++ b/gradle/rat.gradle
@@ -136,12 +136,6 @@ rat {
'geode-site/website/layouts/**',
- // ANTLR generated files
- 'geode-core/src/main/java/org/apache/geode/cache/query/internal/parse/OQLLexer.java',
- 'geode-core/src/main/java/org/apache/geode/cache/query/internal/parse/OQLLexerTokenTypes.java',
- 'geode-core/src/main/java/org/apache/geode/cache/query/internal/parse/OQLParser.java',
- 'geode-core/src/main/java/org/apache/geode/cache/query/internal/parse/OQLLexerTokenTypes.txt',
-
// Service META-INF
'**/META-INF/services/org.xml.sax.ext.EntityResolver2',
'**/META-INF/services/org.apache.geode.internal.cache.CacheService',