From 3161db19ec70b338337423d69bd3bad3ca294405 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Sun, 12 Feb 2017 17:15:18 +1300 Subject: [PATCH 1/3] NH-3945 - Update Antlr3.Runtime to v 3.5.1 --- .../CollectionFilterTest/CollectionFilterQueriesTest.cs | 3 --- src/NHibernate.Test/NHibernate.Test.csproj | 4 ++-- src/NHibernate.Test/packages.config | 2 +- src/NHibernate/NHibernate.csproj | 2 +- src/NHibernate/packages.config | 2 +- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/NHibernate.Test/CollectionFilterTest/CollectionFilterQueriesTest.cs b/src/NHibernate.Test/CollectionFilterTest/CollectionFilterQueriesTest.cs index a6f5573ccfb..f74ad5fbefa 100644 --- a/src/NHibernate.Test/CollectionFilterTest/CollectionFilterQueriesTest.cs +++ b/src/NHibernate.Test/CollectionFilterTest/CollectionFilterQueriesTest.cs @@ -1,8 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using Antlr.Runtime; using NHibernate.Hql.Ast.ANTLR; using NUnit.Framework; using System.Collections; diff --git a/src/NHibernate.Test/NHibernate.Test.csproj b/src/NHibernate.Test/NHibernate.Test.csproj index fe5dc1a8b12..9c8bd6d397d 100644 --- a/src/NHibernate.Test/NHibernate.Test.csproj +++ b/src/NHibernate.Test/NHibernate.Test.csproj @@ -67,8 +67,8 @@ false - - ..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll + + ..\packages\Antlr3.Runtime.3.5.1\lib\net40-client\Antlr3.Runtime.dll True diff --git a/src/NHibernate.Test/packages.config b/src/NHibernate.Test/packages.config index 9966f2b2d76..4c41501a08e 100644 --- a/src/NHibernate.Test/packages.config +++ b/src/NHibernate.Test/packages.config @@ -1,6 +1,6 @@  - + diff --git a/src/NHibernate/NHibernate.csproj b/src/NHibernate/NHibernate.csproj index 27ac6f28676..d04b1d71ba6 100644 --- a/src/NHibernate/NHibernate.csproj +++ b/src/NHibernate/NHibernate.csproj @@ -71,7 +71,7 @@ - ..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll + ..\packages\Antlr3.Runtime.3.5.1\lib\net40-client\Antlr3.Runtime.dll True diff --git a/src/NHibernate/packages.config b/src/NHibernate/packages.config index 05b1621c09a..ceb11f9b7d1 100644 --- a/src/NHibernate/packages.config +++ b/src/NHibernate/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file From 9292e6e88788e7a496f13592f31d60aac0a1d26b Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Sun, 12 Feb 2017 17:22:04 +1300 Subject: [PATCH 2/3] NH-3945 - Build Antlr3 grammars using MsBuild target --- ShowBuildMenu.bat | 81 +- src/NHibernate/Hql/Ast/ANTLR/AntlrHql.bat | 5 - .../Hql/Ast/ANTLR/AntlrHqlDebug.bat | 5 - .../Hql/Ast/ANTLR/AntlrHqlSqlWalker.bat | 5 - .../Hql/Ast/ANTLR/AntlrHqlSqlWalkerDebug.bat | 5 - .../Hql/Ast/ANTLR/AntlrSqlGenerator.bat | 5 - .../Hql/Ast/ANTLR/AntlrSqlGeneratorDebug.bat | 5 - .../Hql/Ast/ANTLR/Generated/HqlLexer.cs | 6450 -------- .../Hql/Ast/ANTLR/Generated/HqlParser.cs | 12654 ---------------- .../Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs | 12398 --------------- .../Hql/Ast/ANTLR/Generated/SqlGenerator.cs | 8526 ----------- src/NHibernate/NHibernate.csproj | 19 +- src/NHibernate/packages.config | 1 + 13 files changed, 16 insertions(+), 40143 deletions(-) delete mode 100644 src/NHibernate/Hql/Ast/ANTLR/AntlrHql.bat delete mode 100644 src/NHibernate/Hql/Ast/ANTLR/AntlrHqlDebug.bat delete mode 100644 src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalker.bat delete mode 100644 src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalkerDebug.bat delete mode 100644 src/NHibernate/Hql/Ast/ANTLR/AntlrSqlGenerator.bat delete mode 100644 src/NHibernate/Hql/Ast/ANTLR/AntlrSqlGeneratorDebug.bat delete mode 100644 src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs delete mode 100644 src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs delete mode 100644 src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs delete mode 100644 src/NHibernate/Hql/Ast/ANTLR/Generated/SqlGenerator.cs diff --git a/ShowBuildMenu.bat b/ShowBuildMenu.bat index 8f5faa1007f..72a5861bac0 100644 --- a/ShowBuildMenu.bat +++ b/ShowBuildMenu.bat @@ -22,9 +22,6 @@ echo E. Build NHibernate (Debug) echo F. Build NHibernate (Release) echo G. Build Release Package (Also runs tests and creates documentation) echo. -echo --- GRAMMAR --- -echo H. Grammar operations (related to Hql.g and HqlSqlWalker.g) -echo. echo --- TeamCity (CI) build options echo I. TeamCity build menu echo. @@ -32,10 +29,9 @@ echo --- Exit --- echo X. Make the beautiful build menu go away. echo. -%BUILDTOOL% prompt ABCDEFGHIX -if errorlevel 9 goto end -if errorlevel 8 goto teamcity-menu -if errorlevel 7 goto grammar-menu +%BUILDTOOL% prompt ABCDEFGIX +if errorlevel 8 goto end +if errorlevel 7 goto teamcity-menu if errorlevel 6 goto build-release-package if errorlevel 5 goto build-release if errorlevel 4 goto build-debug @@ -194,77 +190,6 @@ echo including NuGet packages and tools to push them. echo. goto main-menu -:grammar-menu -echo. -echo --- GRAMMAR --- -echo A. Regenerate all grammars. -echo Hql.g to HqlLexer.cs -echo Hql.g to HqlParser.cs -echo HqlSqlWalker.g to HqlSqlWalker.cs -echo SqlGenerator.g to SqlGenerator.cs -echo B. Regenerate all grammars, with Hql.g in debug mode. -echo C. Regenerate all grammars, with HqlSqlWalker.g in debug mode. -echo D. Regenerate all grammars, with SqlGenerator.g in debug mode. -echo E. Quick instructions on using debug mode. -echo. -echo X. Exit to main menu. -echo. - -%BUILDTOOL% prompt ABCDEX -if errorlevel 5 goto main-menu -if errorlevel 4 goto antlr-debug -if errorlevel 3 goto antlr-sqlgenerator-debug -if errorlevel 2 goto antlr-hqlsqlwalker-debug -if errorlevel 1 goto antlr-hql-debug -if errorlevel 0 goto antlr-all - -:antlr-all -echo *** Regenerating from Hql.g -call src\NHibernate\Hql\Ast\ANTLR\AntlrHql.bat -echo *** Regenerating from HqlSqlWalker.g -call src\NHibernate\Hql\Ast\ANTLR\AntlrHqlSqlWalker.bat -echo *** Regenerating from SqlGenerator.g -call src\NHibernate\Hql\Ast\ANTLR\AntlrSqlGenerator.bat -goto main-menu - -:antlr-hql-debug -echo *** Regenerating from Hql.g (Debug Enabled) -call src\NHibernate\Hql\Ast\ANTLR\AntlrHqlDebug.bat -echo *** Regenerating from HqlSqlWalker.g -call src\NHibernate\Hql\Ast\ANTLR\AntlrHqlSqlWalker.bat -echo *** Regenerating from SqlGenerator.g -call src\NHibernate\Hql\Ast\ANTLR\AntlrSqlGenerator.bat -goto main-menu - -:antlr-hqlsqlwalker-debug -echo *** Regenerating from Hql.g -call src\NHibernate\Hql\Ast\ANTLR\AntlrHql.bat -echo *** Regenerating from HqlSqlWalker.g (Debug Enabled) -call src\NHibernate\Hql\Ast\ANTLR\AntlrHqlSqlWalkerDebug.bat -echo *** Regenerating from SqlGenerator.g -call src\NHibernate\Hql\Ast\ANTLR\AntlrSqlGenerator.bat -goto main-menu - -:antlr-sqlgenerator-debug -echo *** Regenerating from Hql.g -call src\NHibernate\Hql\Ast\ANTLR\AntlrHql.bat -echo *** Regenerating from HqlSqlWalker.g -call src\NHibernate\Hql\Ast\ANTLR\AntlrHqlSqlWalker.bat -echo *** Regenerating from SqlGenerator.g (Debug Enabled) -call src\NHibernate\Hql\Ast\ANTLR\AntlrSqlGeneratorDebug.bat -goto main-menu - -:antlr-debug -echo To use the debug grammar: -echo 1. Create a unit test that runs the hql parser on the input you're interested in. -echo The one you want to debug must be the first grammar parsed. -echo 2. Run the unit test. It will appear to stall. -echo 3. Download and run AntlrWorks (java -jar AntlrWorks.jar). -echo 4. Open the grammar you intend to debug in AntlrWorks. -echo 5. Choose "Debug Remote" and accept the default port. -echo 6. You should now be connected and able to step through your grammar. -goto main-menu - :teamcity-menu echo. echo --- TeamCity (CI) build options diff --git a/src/NHibernate/Hql/Ast/ANTLR/AntlrHql.bat b/src/NHibernate/Hql/Ast/ANTLR/AntlrHql.bat deleted file mode 100644 index 51da0e4a7f0..00000000000 --- a/src/NHibernate/Hql/Ast/ANTLR/AntlrHql.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -rem I wanted to put this in the nant build file, but I had very annoying problems with 64-bit java running from the 32-bit nant process. -pushd %~dp0 -..\..\..\..\..\Tools\Antlr\Antlr3.exe -o Generated Hql.g -popd \ No newline at end of file diff --git a/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlDebug.bat b/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlDebug.bat deleted file mode 100644 index d8d5b6c2403..00000000000 --- a/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlDebug.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -rem I wanted to put this in the nant build file, but I had very annoying problems with 64-bit java running from the 32-bit nant process. -pushd %~dp0 -..\..\..\..\..\Tools\Antlr\Antlr3.exe -debug -o Generated Hql.g -popd \ No newline at end of file diff --git a/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalker.bat b/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalker.bat deleted file mode 100644 index 9f5a0432324..00000000000 --- a/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalker.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -rem I wanted to put this in the nant build file, but I had very annoying problems with 64-bit java running from the 32-bit nant process. -pushd %~dp0 -..\..\..\..\..\Tools\Antlr\Antlr3.exe -o Generated HqlSqlWalker.g -popd \ No newline at end of file diff --git a/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalkerDebug.bat b/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalkerDebug.bat deleted file mode 100644 index 4c04f3f5acf..00000000000 --- a/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalkerDebug.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -rem I wanted to put this in the nant build file, but I had very annoying problems with 64-bit java running from the 32-bit nant process. -pushd %~dp0 -..\..\..\..\..\Tools\Antlr\Antlr3.exe -debug -o Generated HqlSqlWalker.g -popd \ No newline at end of file diff --git a/src/NHibernate/Hql/Ast/ANTLR/AntlrSqlGenerator.bat b/src/NHibernate/Hql/Ast/ANTLR/AntlrSqlGenerator.bat deleted file mode 100644 index 0fcd5997578..00000000000 --- a/src/NHibernate/Hql/Ast/ANTLR/AntlrSqlGenerator.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -rem I wanted to put this in the nant build file, but I had very annoying problems with 64-bit java running from the 32-bit nant process. -pushd %~dp0 -..\..\..\..\..\Tools\Antlr\Antlr3.exe -o Generated SqlGenerator.g -popd \ No newline at end of file diff --git a/src/NHibernate/Hql/Ast/ANTLR/AntlrSqlGeneratorDebug.bat b/src/NHibernate/Hql/Ast/ANTLR/AntlrSqlGeneratorDebug.bat deleted file mode 100644 index 00aef526c31..00000000000 --- a/src/NHibernate/Hql/Ast/ANTLR/AntlrSqlGeneratorDebug.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -rem I wanted to put this in the nant build file, but I had very annoying problems with 64-bit java running from the 32-bit nant process. -pushd %~dp0 -..\..\..\..\..\Tools\Antlr\Antlr3.exe -debug -o Generated SqlGenerator.g -popd \ No newline at end of file diff --git a/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs b/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs deleted file mode 100644 index 33641fcaa9f..00000000000 --- a/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs +++ /dev/null @@ -1,6450 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// ANTLR Version: 3.5.0.2 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -// $ANTLR 3.5.0.2 Hql.g 2015-05-03 23:15:27 - -// The variable 'variable' is assigned but its value is never used. -#pragma warning disable 219 -// Unreachable code detected. -#pragma warning disable 162 -// Missing XML comment for publicly visible type or member 'Type_or_Member' -#pragma warning disable 1591 -// CLS compliance checking will not be performed on 'type' because it is not visible from outside this assembly. -#pragma warning disable 3019 - - -using System.Collections.Generic; -using Antlr.Runtime; -using Antlr.Runtime.Misc; - -namespace NHibernate.Hql.Ast.ANTLR -{ -[System.CodeDom.Compiler.GeneratedCode("ANTLR", "3.5.0.2")] -[System.CLSCompliant(false)] -public partial class HqlLexer : Antlr.Runtime.Lexer -{ - public const int EOF=-1; - public const int AGGREGATE=4; - public const int ALIAS=5; - public const int ALL=6; - public const int AND=7; - public const int ANY=8; - public const int AS=9; - public const int ASCENDING=10; - public const int AVG=11; - public const int BAND=12; - public const int BETWEEN=13; - public const int BNOT=14; - public const int BOR=15; - public const int BOTH=16; - public const int BXOR=17; - public const int CASE=18; - public const int CASE2=19; - public const int CLASS=20; - public const int CLOSE=21; - public const int CLOSE_BRACKET=22; - public const int COLON=23; - public const int COMMA=24; - public const int CONCAT=25; - public const int CONSTANT=26; - public const int CONSTRUCTOR=27; - public const int COUNT=28; - public const int DELETE=29; - public const int DESCENDING=30; - public const int DISTINCT=31; - public const int DIV=32; - public const int DOT=33; - public const int ELEMENTS=34; - public const int ELSE=35; - public const int EMPTY=36; - public const int END=37; - public const int EQ=38; - public const int ESCAPE=39; - public const int ESCqs=40; - public const int EXISTS=41; - public const int EXPONENT=42; - public const int EXPR_LIST=43; - public const int FALSE=44; - public const int FETCH=45; - public const int FILTER_ENTITY=46; - public const int FLOAT_SUFFIX=47; - public const int FROM=48; - public const int FULL=49; - public const int GE=50; - public const int GROUP=51; - public const int GT=52; - public const int HAVING=53; - public const int HEX_DIGIT=54; - public const int IDENT=55; - public const int ID_LETTER=56; - public const int ID_START_LETTER=57; - public const int IN=58; - public const int INDEX_OP=59; - public const int INDICES=60; - public const int INNER=61; - public const int INSERT=62; - public const int INTO=63; - public const int IN_LIST=64; - public const int IS=65; - public const int IS_NOT_NULL=66; - public const int IS_NULL=67; - public const int JAVA_CONSTANT=68; - public const int JOIN=69; - public const int LE=70; - public const int LEADING=71; - public const int LEFT=72; - public const int LIKE=73; - public const int LITERAL_by=74; - public const int LT=75; - public const int MAX=76; - public const int MEMBER=77; - public const int METHOD_CALL=78; - public const int MIN=79; - public const int MINUS=80; - public const int NE=81; - public const int NEW=82; - public const int NOT=83; - public const int NOT_BETWEEN=84; - public const int NOT_IN=85; - public const int NOT_LIKE=86; - public const int NULL=87; - public const int NUM_DECIMAL=88; - public const int NUM_DOUBLE=89; - public const int NUM_FLOAT=90; - public const int NUM_INT=91; - public const int NUM_LONG=92; - public const int OBJECT=93; - public const int OF=94; - public const int ON=95; - public const int OPEN=96; - public const int OPEN_BRACKET=97; - public const int OR=98; - public const int ORDER=99; - public const int ORDER_ELEMENT=100; - public const int OUTER=101; - public const int PARAM=102; - public const int PLUS=103; - public const int PROPERTIES=104; - public const int QUERY=105; - public const int QUOTED_String=106; - public const int RANGE=107; - public const int RIGHT=108; - public const int ROW_STAR=109; - public const int SELECT=110; - public const int SELECT_FROM=111; - public const int SET=112; - public const int SKIP=113; - public const int SOME=114; - public const int SQL_NE=115; - public const int STAR=116; - public const int SUM=117; - public const int TAKE=118; - public const int THEN=119; - public const int TRAILING=120; - public const int TRUE=121; - public const int UNARY_MINUS=122; - public const int UNARY_PLUS=123; - public const int UNION=124; - public const int UPDATE=125; - public const int VECTOR_EXPR=126; - public const int VERSIONED=127; - public const int WEIRD_IDENT=128; - public const int WHEN=129; - public const int WHERE=130; - public const int WITH=131; - public const int WS=132; - public const int T__133=133; - public const int T__134=134; - - // delegates - // delegators - - public HqlLexer() - { - OnCreated(); - } - - public HqlLexer(ICharStream input ) - : this(input, new RecognizerSharedState()) - { - } - - public HqlLexer(ICharStream input, RecognizerSharedState state) - : base(input, state) - { - - OnCreated(); - } - public override string GrammarFileName { get { return "Hql.g"; } } - - - partial void OnCreated(); - partial void EnterRule(string ruleName, int ruleIndex); - partial void LeaveRule(string ruleName, int ruleIndex); - - partial void EnterRule_ALL(); - partial void LeaveRule_ALL(); - - // $ANTLR start "ALL" - [GrammarRule("ALL")] - private void mALL() - { - EnterRule_ALL(); - EnterRule("ALL", 1); - TraceIn("ALL", 1); - try - { - int _type = ALL; - int _channel = DefaultTokenChannel; - // Hql.g:9:5: ( 'all' ) - DebugEnterAlt(1); - // Hql.g:9:7: 'all' - { - DebugLocation(9, 7); - Match("all"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("ALL", 1); - LeaveRule("ALL", 1); - LeaveRule_ALL(); - } - } - // $ANTLR end "ALL" - - partial void EnterRule_AND(); - partial void LeaveRule_AND(); - - // $ANTLR start "AND" - [GrammarRule("AND")] - private void mAND() - { - EnterRule_AND(); - EnterRule("AND", 2); - TraceIn("AND", 2); - try - { - int _type = AND; - int _channel = DefaultTokenChannel; - // Hql.g:10:5: ( 'and' ) - DebugEnterAlt(1); - // Hql.g:10:7: 'and' - { - DebugLocation(10, 7); - Match("and"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("AND", 2); - LeaveRule("AND", 2); - LeaveRule_AND(); - } - } - // $ANTLR end "AND" - - partial void EnterRule_ANY(); - partial void LeaveRule_ANY(); - - // $ANTLR start "ANY" - [GrammarRule("ANY")] - private void mANY() - { - EnterRule_ANY(); - EnterRule("ANY", 3); - TraceIn("ANY", 3); - try - { - int _type = ANY; - int _channel = DefaultTokenChannel; - // Hql.g:11:5: ( 'any' ) - DebugEnterAlt(1); - // Hql.g:11:7: 'any' - { - DebugLocation(11, 7); - Match("any"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("ANY", 3); - LeaveRule("ANY", 3); - LeaveRule_ANY(); - } - } - // $ANTLR end "ANY" - - partial void EnterRule_AS(); - partial void LeaveRule_AS(); - - // $ANTLR start "AS" - [GrammarRule("AS")] - private void mAS() - { - EnterRule_AS(); - EnterRule("AS", 4); - TraceIn("AS", 4); - try - { - int _type = AS; - int _channel = DefaultTokenChannel; - // Hql.g:12:4: ( 'as' ) - DebugEnterAlt(1); - // Hql.g:12:6: 'as' - { - DebugLocation(12, 6); - Match("as"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("AS", 4); - LeaveRule("AS", 4); - LeaveRule_AS(); - } - } - // $ANTLR end "AS" - - partial void EnterRule_ASCENDING(); - partial void LeaveRule_ASCENDING(); - - // $ANTLR start "ASCENDING" - [GrammarRule("ASCENDING")] - private void mASCENDING() - { - EnterRule_ASCENDING(); - EnterRule("ASCENDING", 5); - TraceIn("ASCENDING", 5); - try - { - int _type = ASCENDING; - int _channel = DefaultTokenChannel; - // Hql.g:13:11: ( 'asc' ) - DebugEnterAlt(1); - // Hql.g:13:13: 'asc' - { - DebugLocation(13, 13); - Match("asc"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("ASCENDING", 5); - LeaveRule("ASCENDING", 5); - LeaveRule_ASCENDING(); - } - } - // $ANTLR end "ASCENDING" - - partial void EnterRule_AVG(); - partial void LeaveRule_AVG(); - - // $ANTLR start "AVG" - [GrammarRule("AVG")] - private void mAVG() - { - EnterRule_AVG(); - EnterRule("AVG", 6); - TraceIn("AVG", 6); - try - { - int _type = AVG; - int _channel = DefaultTokenChannel; - // Hql.g:14:5: ( 'avg' ) - DebugEnterAlt(1); - // Hql.g:14:7: 'avg' - { - DebugLocation(14, 7); - Match("avg"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("AVG", 6); - LeaveRule("AVG", 6); - LeaveRule_AVG(); - } - } - // $ANTLR end "AVG" - - partial void EnterRule_BETWEEN(); - partial void LeaveRule_BETWEEN(); - - // $ANTLR start "BETWEEN" - [GrammarRule("BETWEEN")] - private void mBETWEEN() - { - EnterRule_BETWEEN(); - EnterRule("BETWEEN", 7); - TraceIn("BETWEEN", 7); - try - { - int _type = BETWEEN; - int _channel = DefaultTokenChannel; - // Hql.g:15:9: ( 'between' ) - DebugEnterAlt(1); - // Hql.g:15:11: 'between' - { - DebugLocation(15, 11); - Match("between"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("BETWEEN", 7); - LeaveRule("BETWEEN", 7); - LeaveRule_BETWEEN(); - } - } - // $ANTLR end "BETWEEN" - - partial void EnterRule_BOTH(); - partial void LeaveRule_BOTH(); - - // $ANTLR start "BOTH" - [GrammarRule("BOTH")] - private void mBOTH() - { - EnterRule_BOTH(); - EnterRule("BOTH", 8); - TraceIn("BOTH", 8); - try - { - int _type = BOTH; - int _channel = DefaultTokenChannel; - // Hql.g:16:6: ( 'both' ) - DebugEnterAlt(1); - // Hql.g:16:8: 'both' - { - DebugLocation(16, 8); - Match("both"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("BOTH", 8); - LeaveRule("BOTH", 8); - LeaveRule_BOTH(); - } - } - // $ANTLR end "BOTH" - - partial void EnterRule_CASE(); - partial void LeaveRule_CASE(); - - // $ANTLR start "CASE" - [GrammarRule("CASE")] - private void mCASE() - { - EnterRule_CASE(); - EnterRule("CASE", 9); - TraceIn("CASE", 9); - try - { - int _type = CASE; - int _channel = DefaultTokenChannel; - // Hql.g:17:6: ( 'case' ) - DebugEnterAlt(1); - // Hql.g:17:8: 'case' - { - DebugLocation(17, 8); - Match("case"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("CASE", 9); - LeaveRule("CASE", 9); - LeaveRule_CASE(); - } - } - // $ANTLR end "CASE" - - partial void EnterRule_CLASS(); - partial void LeaveRule_CLASS(); - - // $ANTLR start "CLASS" - [GrammarRule("CLASS")] - private void mCLASS() - { - EnterRule_CLASS(); - EnterRule("CLASS", 10); - TraceIn("CLASS", 10); - try - { - int _type = CLASS; - int _channel = DefaultTokenChannel; - // Hql.g:18:7: ( 'class' ) - DebugEnterAlt(1); - // Hql.g:18:9: 'class' - { - DebugLocation(18, 9); - Match("class"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("CLASS", 10); - LeaveRule("CLASS", 10); - LeaveRule_CLASS(); - } - } - // $ANTLR end "CLASS" - - partial void EnterRule_COUNT(); - partial void LeaveRule_COUNT(); - - // $ANTLR start "COUNT" - [GrammarRule("COUNT")] - private void mCOUNT() - { - EnterRule_COUNT(); - EnterRule("COUNT", 11); - TraceIn("COUNT", 11); - try - { - int _type = COUNT; - int _channel = DefaultTokenChannel; - // Hql.g:19:7: ( 'count' ) - DebugEnterAlt(1); - // Hql.g:19:9: 'count' - { - DebugLocation(19, 9); - Match("count"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("COUNT", 11); - LeaveRule("COUNT", 11); - LeaveRule_COUNT(); - } - } - // $ANTLR end "COUNT" - - partial void EnterRule_DELETE(); - partial void LeaveRule_DELETE(); - - // $ANTLR start "DELETE" - [GrammarRule("DELETE")] - private void mDELETE() - { - EnterRule_DELETE(); - EnterRule("DELETE", 12); - TraceIn("DELETE", 12); - try - { - int _type = DELETE; - int _channel = DefaultTokenChannel; - // Hql.g:20:8: ( 'delete' ) - DebugEnterAlt(1); - // Hql.g:20:10: 'delete' - { - DebugLocation(20, 10); - Match("delete"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("DELETE", 12); - LeaveRule("DELETE", 12); - LeaveRule_DELETE(); - } - } - // $ANTLR end "DELETE" - - partial void EnterRule_DESCENDING(); - partial void LeaveRule_DESCENDING(); - - // $ANTLR start "DESCENDING" - [GrammarRule("DESCENDING")] - private void mDESCENDING() - { - EnterRule_DESCENDING(); - EnterRule("DESCENDING", 13); - TraceIn("DESCENDING", 13); - try - { - int _type = DESCENDING; - int _channel = DefaultTokenChannel; - // Hql.g:21:12: ( 'desc' ) - DebugEnterAlt(1); - // Hql.g:21:14: 'desc' - { - DebugLocation(21, 14); - Match("desc"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("DESCENDING", 13); - LeaveRule("DESCENDING", 13); - LeaveRule_DESCENDING(); - } - } - // $ANTLR end "DESCENDING" - - partial void EnterRule_DISTINCT(); - partial void LeaveRule_DISTINCT(); - - // $ANTLR start "DISTINCT" - [GrammarRule("DISTINCT")] - private void mDISTINCT() - { - EnterRule_DISTINCT(); - EnterRule("DISTINCT", 14); - TraceIn("DISTINCT", 14); - try - { - int _type = DISTINCT; - int _channel = DefaultTokenChannel; - // Hql.g:22:10: ( 'distinct' ) - DebugEnterAlt(1); - // Hql.g:22:12: 'distinct' - { - DebugLocation(22, 12); - Match("distinct"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("DISTINCT", 14); - LeaveRule("DISTINCT", 14); - LeaveRule_DISTINCT(); - } - } - // $ANTLR end "DISTINCT" - - partial void EnterRule_ELEMENTS(); - partial void LeaveRule_ELEMENTS(); - - // $ANTLR start "ELEMENTS" - [GrammarRule("ELEMENTS")] - private void mELEMENTS() - { - EnterRule_ELEMENTS(); - EnterRule("ELEMENTS", 15); - TraceIn("ELEMENTS", 15); - try - { - int _type = ELEMENTS; - int _channel = DefaultTokenChannel; - // Hql.g:23:10: ( 'elements' ) - DebugEnterAlt(1); - // Hql.g:23:12: 'elements' - { - DebugLocation(23, 12); - Match("elements"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("ELEMENTS", 15); - LeaveRule("ELEMENTS", 15); - LeaveRule_ELEMENTS(); - } - } - // $ANTLR end "ELEMENTS" - - partial void EnterRule_ELSE(); - partial void LeaveRule_ELSE(); - - // $ANTLR start "ELSE" - [GrammarRule("ELSE")] - private void mELSE() - { - EnterRule_ELSE(); - EnterRule("ELSE", 16); - TraceIn("ELSE", 16); - try - { - int _type = ELSE; - int _channel = DefaultTokenChannel; - // Hql.g:24:6: ( 'else' ) - DebugEnterAlt(1); - // Hql.g:24:8: 'else' - { - DebugLocation(24, 8); - Match("else"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("ELSE", 16); - LeaveRule("ELSE", 16); - LeaveRule_ELSE(); - } - } - // $ANTLR end "ELSE" - - partial void EnterRule_EMPTY(); - partial void LeaveRule_EMPTY(); - - // $ANTLR start "EMPTY" - [GrammarRule("EMPTY")] - private void mEMPTY() - { - EnterRule_EMPTY(); - EnterRule("EMPTY", 17); - TraceIn("EMPTY", 17); - try - { - int _type = EMPTY; - int _channel = DefaultTokenChannel; - // Hql.g:25:7: ( 'empty' ) - DebugEnterAlt(1); - // Hql.g:25:9: 'empty' - { - DebugLocation(25, 9); - Match("empty"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("EMPTY", 17); - LeaveRule("EMPTY", 17); - LeaveRule_EMPTY(); - } - } - // $ANTLR end "EMPTY" - - partial void EnterRule_END(); - partial void LeaveRule_END(); - - // $ANTLR start "END" - [GrammarRule("END")] - private void mEND() - { - EnterRule_END(); - EnterRule("END", 18); - TraceIn("END", 18); - try - { - int _type = END; - int _channel = DefaultTokenChannel; - // Hql.g:26:5: ( 'end' ) - DebugEnterAlt(1); - // Hql.g:26:7: 'end' - { - DebugLocation(26, 7); - Match("end"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("END", 18); - LeaveRule("END", 18); - LeaveRule_END(); - } - } - // $ANTLR end "END" - - partial void EnterRule_ESCAPE(); - partial void LeaveRule_ESCAPE(); - - // $ANTLR start "ESCAPE" - [GrammarRule("ESCAPE")] - private void mESCAPE() - { - EnterRule_ESCAPE(); - EnterRule("ESCAPE", 19); - TraceIn("ESCAPE", 19); - try - { - int _type = ESCAPE; - int _channel = DefaultTokenChannel; - // Hql.g:27:8: ( 'escape' ) - DebugEnterAlt(1); - // Hql.g:27:10: 'escape' - { - DebugLocation(27, 10); - Match("escape"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("ESCAPE", 19); - LeaveRule("ESCAPE", 19); - LeaveRule_ESCAPE(); - } - } - // $ANTLR end "ESCAPE" - - partial void EnterRule_EXISTS(); - partial void LeaveRule_EXISTS(); - - // $ANTLR start "EXISTS" - [GrammarRule("EXISTS")] - private void mEXISTS() - { - EnterRule_EXISTS(); - EnterRule("EXISTS", 20); - TraceIn("EXISTS", 20); - try - { - int _type = EXISTS; - int _channel = DefaultTokenChannel; - // Hql.g:28:8: ( 'exists' ) - DebugEnterAlt(1); - // Hql.g:28:10: 'exists' - { - DebugLocation(28, 10); - Match("exists"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("EXISTS", 20); - LeaveRule("EXISTS", 20); - LeaveRule_EXISTS(); - } - } - // $ANTLR end "EXISTS" - - partial void EnterRule_FALSE(); - partial void LeaveRule_FALSE(); - - // $ANTLR start "FALSE" - [GrammarRule("FALSE")] - private void mFALSE() - { - EnterRule_FALSE(); - EnterRule("FALSE", 21); - TraceIn("FALSE", 21); - try - { - int _type = FALSE; - int _channel = DefaultTokenChannel; - // Hql.g:29:7: ( 'false' ) - DebugEnterAlt(1); - // Hql.g:29:9: 'false' - { - DebugLocation(29, 9); - Match("false"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("FALSE", 21); - LeaveRule("FALSE", 21); - LeaveRule_FALSE(); - } - } - // $ANTLR end "FALSE" - - partial void EnterRule_FETCH(); - partial void LeaveRule_FETCH(); - - // $ANTLR start "FETCH" - [GrammarRule("FETCH")] - private void mFETCH() - { - EnterRule_FETCH(); - EnterRule("FETCH", 22); - TraceIn("FETCH", 22); - try - { - int _type = FETCH; - int _channel = DefaultTokenChannel; - // Hql.g:30:7: ( 'fetch' ) - DebugEnterAlt(1); - // Hql.g:30:9: 'fetch' - { - DebugLocation(30, 9); - Match("fetch"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("FETCH", 22); - LeaveRule("FETCH", 22); - LeaveRule_FETCH(); - } - } - // $ANTLR end "FETCH" - - partial void EnterRule_FROM(); - partial void LeaveRule_FROM(); - - // $ANTLR start "FROM" - [GrammarRule("FROM")] - private void mFROM() - { - EnterRule_FROM(); - EnterRule("FROM", 23); - TraceIn("FROM", 23); - try - { - int _type = FROM; - int _channel = DefaultTokenChannel; - // Hql.g:31:6: ( 'from' ) - DebugEnterAlt(1); - // Hql.g:31:8: 'from' - { - DebugLocation(31, 8); - Match("from"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("FROM", 23); - LeaveRule("FROM", 23); - LeaveRule_FROM(); - } - } - // $ANTLR end "FROM" - - partial void EnterRule_FULL(); - partial void LeaveRule_FULL(); - - // $ANTLR start "FULL" - [GrammarRule("FULL")] - private void mFULL() - { - EnterRule_FULL(); - EnterRule("FULL", 24); - TraceIn("FULL", 24); - try - { - int _type = FULL; - int _channel = DefaultTokenChannel; - // Hql.g:32:6: ( 'full' ) - DebugEnterAlt(1); - // Hql.g:32:8: 'full' - { - DebugLocation(32, 8); - Match("full"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("FULL", 24); - LeaveRule("FULL", 24); - LeaveRule_FULL(); - } - } - // $ANTLR end "FULL" - - partial void EnterRule_GROUP(); - partial void LeaveRule_GROUP(); - - // $ANTLR start "GROUP" - [GrammarRule("GROUP")] - private void mGROUP() - { - EnterRule_GROUP(); - EnterRule("GROUP", 25); - TraceIn("GROUP", 25); - try - { - int _type = GROUP; - int _channel = DefaultTokenChannel; - // Hql.g:33:7: ( 'group' ) - DebugEnterAlt(1); - // Hql.g:33:9: 'group' - { - DebugLocation(33, 9); - Match("group"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("GROUP", 25); - LeaveRule("GROUP", 25); - LeaveRule_GROUP(); - } - } - // $ANTLR end "GROUP" - - partial void EnterRule_HAVING(); - partial void LeaveRule_HAVING(); - - // $ANTLR start "HAVING" - [GrammarRule("HAVING")] - private void mHAVING() - { - EnterRule_HAVING(); - EnterRule("HAVING", 26); - TraceIn("HAVING", 26); - try - { - int _type = HAVING; - int _channel = DefaultTokenChannel; - // Hql.g:34:8: ( 'having' ) - DebugEnterAlt(1); - // Hql.g:34:10: 'having' - { - DebugLocation(34, 10); - Match("having"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("HAVING", 26); - LeaveRule("HAVING", 26); - LeaveRule_HAVING(); - } - } - // $ANTLR end "HAVING" - - partial void EnterRule_IN(); - partial void LeaveRule_IN(); - - // $ANTLR start "IN" - [GrammarRule("IN")] - private void mIN() - { - EnterRule_IN(); - EnterRule("IN", 27); - TraceIn("IN", 27); - try - { - int _type = IN; - int _channel = DefaultTokenChannel; - // Hql.g:35:4: ( 'in' ) - DebugEnterAlt(1); - // Hql.g:35:6: 'in' - { - DebugLocation(35, 6); - Match("in"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("IN", 27); - LeaveRule("IN", 27); - LeaveRule_IN(); - } - } - // $ANTLR end "IN" - - partial void EnterRule_INDICES(); - partial void LeaveRule_INDICES(); - - // $ANTLR start "INDICES" - [GrammarRule("INDICES")] - private void mINDICES() - { - EnterRule_INDICES(); - EnterRule("INDICES", 28); - TraceIn("INDICES", 28); - try - { - int _type = INDICES; - int _channel = DefaultTokenChannel; - // Hql.g:36:9: ( 'indices' ) - DebugEnterAlt(1); - // Hql.g:36:11: 'indices' - { - DebugLocation(36, 11); - Match("indices"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("INDICES", 28); - LeaveRule("INDICES", 28); - LeaveRule_INDICES(); - } - } - // $ANTLR end "INDICES" - - partial void EnterRule_INNER(); - partial void LeaveRule_INNER(); - - // $ANTLR start "INNER" - [GrammarRule("INNER")] - private void mINNER() - { - EnterRule_INNER(); - EnterRule("INNER", 29); - TraceIn("INNER", 29); - try - { - int _type = INNER; - int _channel = DefaultTokenChannel; - // Hql.g:37:7: ( 'inner' ) - DebugEnterAlt(1); - // Hql.g:37:9: 'inner' - { - DebugLocation(37, 9); - Match("inner"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("INNER", 29); - LeaveRule("INNER", 29); - LeaveRule_INNER(); - } - } - // $ANTLR end "INNER" - - partial void EnterRule_INSERT(); - partial void LeaveRule_INSERT(); - - // $ANTLR start "INSERT" - [GrammarRule("INSERT")] - private void mINSERT() - { - EnterRule_INSERT(); - EnterRule("INSERT", 30); - TraceIn("INSERT", 30); - try - { - int _type = INSERT; - int _channel = DefaultTokenChannel; - // Hql.g:38:8: ( 'insert' ) - DebugEnterAlt(1); - // Hql.g:38:10: 'insert' - { - DebugLocation(38, 10); - Match("insert"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("INSERT", 30); - LeaveRule("INSERT", 30); - LeaveRule_INSERT(); - } - } - // $ANTLR end "INSERT" - - partial void EnterRule_INTO(); - partial void LeaveRule_INTO(); - - // $ANTLR start "INTO" - [GrammarRule("INTO")] - private void mINTO() - { - EnterRule_INTO(); - EnterRule("INTO", 31); - TraceIn("INTO", 31); - try - { - int _type = INTO; - int _channel = DefaultTokenChannel; - // Hql.g:39:6: ( 'into' ) - DebugEnterAlt(1); - // Hql.g:39:8: 'into' - { - DebugLocation(39, 8); - Match("into"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("INTO", 31); - LeaveRule("INTO", 31); - LeaveRule_INTO(); - } - } - // $ANTLR end "INTO" - - partial void EnterRule_IS(); - partial void LeaveRule_IS(); - - // $ANTLR start "IS" - [GrammarRule("IS")] - private void mIS() - { - EnterRule_IS(); - EnterRule("IS", 32); - TraceIn("IS", 32); - try - { - int _type = IS; - int _channel = DefaultTokenChannel; - // Hql.g:40:4: ( 'is' ) - DebugEnterAlt(1); - // Hql.g:40:6: 'is' - { - DebugLocation(40, 6); - Match("is"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("IS", 32); - LeaveRule("IS", 32); - LeaveRule_IS(); - } - } - // $ANTLR end "IS" - - partial void EnterRule_JOIN(); - partial void LeaveRule_JOIN(); - - // $ANTLR start "JOIN" - [GrammarRule("JOIN")] - private void mJOIN() - { - EnterRule_JOIN(); - EnterRule("JOIN", 33); - TraceIn("JOIN", 33); - try - { - int _type = JOIN; - int _channel = DefaultTokenChannel; - // Hql.g:41:6: ( 'join' ) - DebugEnterAlt(1); - // Hql.g:41:8: 'join' - { - DebugLocation(41, 8); - Match("join"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("JOIN", 33); - LeaveRule("JOIN", 33); - LeaveRule_JOIN(); - } - } - // $ANTLR end "JOIN" - - partial void EnterRule_LEADING(); - partial void LeaveRule_LEADING(); - - // $ANTLR start "LEADING" - [GrammarRule("LEADING")] - private void mLEADING() - { - EnterRule_LEADING(); - EnterRule("LEADING", 34); - TraceIn("LEADING", 34); - try - { - int _type = LEADING; - int _channel = DefaultTokenChannel; - // Hql.g:42:9: ( 'leading' ) - DebugEnterAlt(1); - // Hql.g:42:11: 'leading' - { - DebugLocation(42, 11); - Match("leading"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("LEADING", 34); - LeaveRule("LEADING", 34); - LeaveRule_LEADING(); - } - } - // $ANTLR end "LEADING" - - partial void EnterRule_LEFT(); - partial void LeaveRule_LEFT(); - - // $ANTLR start "LEFT" - [GrammarRule("LEFT")] - private void mLEFT() - { - EnterRule_LEFT(); - EnterRule("LEFT", 35); - TraceIn("LEFT", 35); - try - { - int _type = LEFT; - int _channel = DefaultTokenChannel; - // Hql.g:43:6: ( 'left' ) - DebugEnterAlt(1); - // Hql.g:43:8: 'left' - { - DebugLocation(43, 8); - Match("left"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("LEFT", 35); - LeaveRule("LEFT", 35); - LeaveRule_LEFT(); - } - } - // $ANTLR end "LEFT" - - partial void EnterRule_LIKE(); - partial void LeaveRule_LIKE(); - - // $ANTLR start "LIKE" - [GrammarRule("LIKE")] - private void mLIKE() - { - EnterRule_LIKE(); - EnterRule("LIKE", 36); - TraceIn("LIKE", 36); - try - { - int _type = LIKE; - int _channel = DefaultTokenChannel; - // Hql.g:44:6: ( 'like' ) - DebugEnterAlt(1); - // Hql.g:44:8: 'like' - { - DebugLocation(44, 8); - Match("like"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("LIKE", 36); - LeaveRule("LIKE", 36); - LeaveRule_LIKE(); - } - } - // $ANTLR end "LIKE" - - partial void EnterRule_LITERAL_by(); - partial void LeaveRule_LITERAL_by(); - - // $ANTLR start "LITERAL_by" - [GrammarRule("LITERAL_by")] - private void mLITERAL_by() - { - EnterRule_LITERAL_by(); - EnterRule("LITERAL_by", 37); - TraceIn("LITERAL_by", 37); - try - { - int _type = LITERAL_by; - int _channel = DefaultTokenChannel; - // Hql.g:45:12: ( 'by' ) - DebugEnterAlt(1); - // Hql.g:45:14: 'by' - { - DebugLocation(45, 14); - Match("by"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("LITERAL_by", 37); - LeaveRule("LITERAL_by", 37); - LeaveRule_LITERAL_by(); - } - } - // $ANTLR end "LITERAL_by" - - partial void EnterRule_MAX(); - partial void LeaveRule_MAX(); - - // $ANTLR start "MAX" - [GrammarRule("MAX")] - private void mMAX() - { - EnterRule_MAX(); - EnterRule("MAX", 38); - TraceIn("MAX", 38); - try - { - int _type = MAX; - int _channel = DefaultTokenChannel; - // Hql.g:46:5: ( 'max' ) - DebugEnterAlt(1); - // Hql.g:46:7: 'max' - { - DebugLocation(46, 7); - Match("max"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("MAX", 38); - LeaveRule("MAX", 38); - LeaveRule_MAX(); - } - } - // $ANTLR end "MAX" - - partial void EnterRule_MEMBER(); - partial void LeaveRule_MEMBER(); - - // $ANTLR start "MEMBER" - [GrammarRule("MEMBER")] - private void mMEMBER() - { - EnterRule_MEMBER(); - EnterRule("MEMBER", 39); - TraceIn("MEMBER", 39); - try - { - int _type = MEMBER; - int _channel = DefaultTokenChannel; - // Hql.g:47:8: ( 'member' ) - DebugEnterAlt(1); - // Hql.g:47:10: 'member' - { - DebugLocation(47, 10); - Match("member"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("MEMBER", 39); - LeaveRule("MEMBER", 39); - LeaveRule_MEMBER(); - } - } - // $ANTLR end "MEMBER" - - partial void EnterRule_MIN(); - partial void LeaveRule_MIN(); - - // $ANTLR start "MIN" - [GrammarRule("MIN")] - private void mMIN() - { - EnterRule_MIN(); - EnterRule("MIN", 40); - TraceIn("MIN", 40); - try - { - int _type = MIN; - int _channel = DefaultTokenChannel; - // Hql.g:48:5: ( 'min' ) - DebugEnterAlt(1); - // Hql.g:48:7: 'min' - { - DebugLocation(48, 7); - Match("min"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("MIN", 40); - LeaveRule("MIN", 40); - LeaveRule_MIN(); - } - } - // $ANTLR end "MIN" - - partial void EnterRule_NEW(); - partial void LeaveRule_NEW(); - - // $ANTLR start "NEW" - [GrammarRule("NEW")] - private void mNEW() - { - EnterRule_NEW(); - EnterRule("NEW", 41); - TraceIn("NEW", 41); - try - { - int _type = NEW; - int _channel = DefaultTokenChannel; - // Hql.g:49:5: ( 'new' ) - DebugEnterAlt(1); - // Hql.g:49:7: 'new' - { - DebugLocation(49, 7); - Match("new"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("NEW", 41); - LeaveRule("NEW", 41); - LeaveRule_NEW(); - } - } - // $ANTLR end "NEW" - - partial void EnterRule_NOT(); - partial void LeaveRule_NOT(); - - // $ANTLR start "NOT" - [GrammarRule("NOT")] - private void mNOT() - { - EnterRule_NOT(); - EnterRule("NOT", 42); - TraceIn("NOT", 42); - try - { - int _type = NOT; - int _channel = DefaultTokenChannel; - // Hql.g:50:5: ( 'not' ) - DebugEnterAlt(1); - // Hql.g:50:7: 'not' - { - DebugLocation(50, 7); - Match("not"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("NOT", 42); - LeaveRule("NOT", 42); - LeaveRule_NOT(); - } - } - // $ANTLR end "NOT" - - partial void EnterRule_NULL(); - partial void LeaveRule_NULL(); - - // $ANTLR start "NULL" - [GrammarRule("NULL")] - private void mNULL() - { - EnterRule_NULL(); - EnterRule("NULL", 43); - TraceIn("NULL", 43); - try - { - int _type = NULL; - int _channel = DefaultTokenChannel; - // Hql.g:51:6: ( 'null' ) - DebugEnterAlt(1); - // Hql.g:51:8: 'null' - { - DebugLocation(51, 8); - Match("null"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("NULL", 43); - LeaveRule("NULL", 43); - LeaveRule_NULL(); - } - } - // $ANTLR end "NULL" - - partial void EnterRule_OBJECT(); - partial void LeaveRule_OBJECT(); - - // $ANTLR start "OBJECT" - [GrammarRule("OBJECT")] - private void mOBJECT() - { - EnterRule_OBJECT(); - EnterRule("OBJECT", 44); - TraceIn("OBJECT", 44); - try - { - int _type = OBJECT; - int _channel = DefaultTokenChannel; - // Hql.g:52:8: ( 'object' ) - DebugEnterAlt(1); - // Hql.g:52:10: 'object' - { - DebugLocation(52, 10); - Match("object"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("OBJECT", 44); - LeaveRule("OBJECT", 44); - LeaveRule_OBJECT(); - } - } - // $ANTLR end "OBJECT" - - partial void EnterRule_OF(); - partial void LeaveRule_OF(); - - // $ANTLR start "OF" - [GrammarRule("OF")] - private void mOF() - { - EnterRule_OF(); - EnterRule("OF", 45); - TraceIn("OF", 45); - try - { - int _type = OF; - int _channel = DefaultTokenChannel; - // Hql.g:53:4: ( 'of' ) - DebugEnterAlt(1); - // Hql.g:53:6: 'of' - { - DebugLocation(53, 6); - Match("of"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("OF", 45); - LeaveRule("OF", 45); - LeaveRule_OF(); - } - } - // $ANTLR end "OF" - - partial void EnterRule_ON(); - partial void LeaveRule_ON(); - - // $ANTLR start "ON" - [GrammarRule("ON")] - private void mON() - { - EnterRule_ON(); - EnterRule("ON", 46); - TraceIn("ON", 46); - try - { - int _type = ON; - int _channel = DefaultTokenChannel; - // Hql.g:54:4: ( 'on' ) - DebugEnterAlt(1); - // Hql.g:54:6: 'on' - { - DebugLocation(54, 6); - Match("on"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("ON", 46); - LeaveRule("ON", 46); - LeaveRule_ON(); - } - } - // $ANTLR end "ON" - - partial void EnterRule_OR(); - partial void LeaveRule_OR(); - - // $ANTLR start "OR" - [GrammarRule("OR")] - private void mOR() - { - EnterRule_OR(); - EnterRule("OR", 47); - TraceIn("OR", 47); - try - { - int _type = OR; - int _channel = DefaultTokenChannel; - // Hql.g:55:4: ( 'or' ) - DebugEnterAlt(1); - // Hql.g:55:6: 'or' - { - DebugLocation(55, 6); - Match("or"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("OR", 47); - LeaveRule("OR", 47); - LeaveRule_OR(); - } - } - // $ANTLR end "OR" - - partial void EnterRule_ORDER(); - partial void LeaveRule_ORDER(); - - // $ANTLR start "ORDER" - [GrammarRule("ORDER")] - private void mORDER() - { - EnterRule_ORDER(); - EnterRule("ORDER", 48); - TraceIn("ORDER", 48); - try - { - int _type = ORDER; - int _channel = DefaultTokenChannel; - // Hql.g:56:7: ( 'order' ) - DebugEnterAlt(1); - // Hql.g:56:9: 'order' - { - DebugLocation(56, 9); - Match("order"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("ORDER", 48); - LeaveRule("ORDER", 48); - LeaveRule_ORDER(); - } - } - // $ANTLR end "ORDER" - - partial void EnterRule_OUTER(); - partial void LeaveRule_OUTER(); - - // $ANTLR start "OUTER" - [GrammarRule("OUTER")] - private void mOUTER() - { - EnterRule_OUTER(); - EnterRule("OUTER", 49); - TraceIn("OUTER", 49); - try - { - int _type = OUTER; - int _channel = DefaultTokenChannel; - // Hql.g:57:7: ( 'outer' ) - DebugEnterAlt(1); - // Hql.g:57:9: 'outer' - { - DebugLocation(57, 9); - Match("outer"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("OUTER", 49); - LeaveRule("OUTER", 49); - LeaveRule_OUTER(); - } - } - // $ANTLR end "OUTER" - - partial void EnterRule_PROPERTIES(); - partial void LeaveRule_PROPERTIES(); - - // $ANTLR start "PROPERTIES" - [GrammarRule("PROPERTIES")] - private void mPROPERTIES() - { - EnterRule_PROPERTIES(); - EnterRule("PROPERTIES", 50); - TraceIn("PROPERTIES", 50); - try - { - int _type = PROPERTIES; - int _channel = DefaultTokenChannel; - // Hql.g:58:12: ( 'properties' ) - DebugEnterAlt(1); - // Hql.g:58:14: 'properties' - { - DebugLocation(58, 14); - Match("properties"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("PROPERTIES", 50); - LeaveRule("PROPERTIES", 50); - LeaveRule_PROPERTIES(); - } - } - // $ANTLR end "PROPERTIES" - - partial void EnterRule_RIGHT(); - partial void LeaveRule_RIGHT(); - - // $ANTLR start "RIGHT" - [GrammarRule("RIGHT")] - private void mRIGHT() - { - EnterRule_RIGHT(); - EnterRule("RIGHT", 51); - TraceIn("RIGHT", 51); - try - { - int _type = RIGHT; - int _channel = DefaultTokenChannel; - // Hql.g:59:7: ( 'right' ) - DebugEnterAlt(1); - // Hql.g:59:9: 'right' - { - DebugLocation(59, 9); - Match("right"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("RIGHT", 51); - LeaveRule("RIGHT", 51); - LeaveRule_RIGHT(); - } - } - // $ANTLR end "RIGHT" - - partial void EnterRule_SELECT(); - partial void LeaveRule_SELECT(); - - // $ANTLR start "SELECT" - [GrammarRule("SELECT")] - private void mSELECT() - { - EnterRule_SELECT(); - EnterRule("SELECT", 52); - TraceIn("SELECT", 52); - try - { - int _type = SELECT; - int _channel = DefaultTokenChannel; - // Hql.g:60:8: ( 'select' ) - DebugEnterAlt(1); - // Hql.g:60:10: 'select' - { - DebugLocation(60, 10); - Match("select"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("SELECT", 52); - LeaveRule("SELECT", 52); - LeaveRule_SELECT(); - } - } - // $ANTLR end "SELECT" - - partial void EnterRule_SET(); - partial void LeaveRule_SET(); - - // $ANTLR start "SET" - [GrammarRule("SET")] - private void mSET() - { - EnterRule_SET(); - EnterRule("SET", 53); - TraceIn("SET", 53); - try - { - int _type = SET; - int _channel = DefaultTokenChannel; - // Hql.g:61:5: ( 'set' ) - DebugEnterAlt(1); - // Hql.g:61:7: 'set' - { - DebugLocation(61, 7); - Match("set"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("SET", 53); - LeaveRule("SET", 53); - LeaveRule_SET(); - } - } - // $ANTLR end "SET" - - partial void EnterRule_SKIP(); - partial void LeaveRule_SKIP(); - - // $ANTLR start "SKIP" - [GrammarRule("SKIP")] - private void mSKIP() - { - EnterRule_SKIP(); - EnterRule("SKIP", 54); - TraceIn("SKIP", 54); - try - { - int _type = SKIP; - int _channel = DefaultTokenChannel; - // Hql.g:62:6: ( 'skip' ) - DebugEnterAlt(1); - // Hql.g:62:8: 'skip' - { - DebugLocation(62, 8); - Match("skip"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("SKIP", 54); - LeaveRule("SKIP", 54); - LeaveRule_SKIP(); - } - } - // $ANTLR end "SKIP" - - partial void EnterRule_SOME(); - partial void LeaveRule_SOME(); - - // $ANTLR start "SOME" - [GrammarRule("SOME")] - private void mSOME() - { - EnterRule_SOME(); - EnterRule("SOME", 55); - TraceIn("SOME", 55); - try - { - int _type = SOME; - int _channel = DefaultTokenChannel; - // Hql.g:63:6: ( 'some' ) - DebugEnterAlt(1); - // Hql.g:63:8: 'some' - { - DebugLocation(63, 8); - Match("some"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("SOME", 55); - LeaveRule("SOME", 55); - LeaveRule_SOME(); - } - } - // $ANTLR end "SOME" - - partial void EnterRule_SUM(); - partial void LeaveRule_SUM(); - - // $ANTLR start "SUM" - [GrammarRule("SUM")] - private void mSUM() - { - EnterRule_SUM(); - EnterRule("SUM", 56); - TraceIn("SUM", 56); - try - { - int _type = SUM; - int _channel = DefaultTokenChannel; - // Hql.g:64:5: ( 'sum' ) - DebugEnterAlt(1); - // Hql.g:64:7: 'sum' - { - DebugLocation(64, 7); - Match("sum"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("SUM", 56); - LeaveRule("SUM", 56); - LeaveRule_SUM(); - } - } - // $ANTLR end "SUM" - - partial void EnterRule_TAKE(); - partial void LeaveRule_TAKE(); - - // $ANTLR start "TAKE" - [GrammarRule("TAKE")] - private void mTAKE() - { - EnterRule_TAKE(); - EnterRule("TAKE", 57); - TraceIn("TAKE", 57); - try - { - int _type = TAKE; - int _channel = DefaultTokenChannel; - // Hql.g:65:6: ( 'take' ) - DebugEnterAlt(1); - // Hql.g:65:8: 'take' - { - DebugLocation(65, 8); - Match("take"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("TAKE", 57); - LeaveRule("TAKE", 57); - LeaveRule_TAKE(); - } - } - // $ANTLR end "TAKE" - - partial void EnterRule_THEN(); - partial void LeaveRule_THEN(); - - // $ANTLR start "THEN" - [GrammarRule("THEN")] - private void mTHEN() - { - EnterRule_THEN(); - EnterRule("THEN", 58); - TraceIn("THEN", 58); - try - { - int _type = THEN; - int _channel = DefaultTokenChannel; - // Hql.g:66:6: ( 'then' ) - DebugEnterAlt(1); - // Hql.g:66:8: 'then' - { - DebugLocation(66, 8); - Match("then"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("THEN", 58); - LeaveRule("THEN", 58); - LeaveRule_THEN(); - } - } - // $ANTLR end "THEN" - - partial void EnterRule_TRAILING(); - partial void LeaveRule_TRAILING(); - - // $ANTLR start "TRAILING" - [GrammarRule("TRAILING")] - private void mTRAILING() - { - EnterRule_TRAILING(); - EnterRule("TRAILING", 59); - TraceIn("TRAILING", 59); - try - { - int _type = TRAILING; - int _channel = DefaultTokenChannel; - // Hql.g:67:10: ( 'trailing' ) - DebugEnterAlt(1); - // Hql.g:67:12: 'trailing' - { - DebugLocation(67, 12); - Match("trailing"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("TRAILING", 59); - LeaveRule("TRAILING", 59); - LeaveRule_TRAILING(); - } - } - // $ANTLR end "TRAILING" - - partial void EnterRule_TRUE(); - partial void LeaveRule_TRUE(); - - // $ANTLR start "TRUE" - [GrammarRule("TRUE")] - private void mTRUE() - { - EnterRule_TRUE(); - EnterRule("TRUE", 60); - TraceIn("TRUE", 60); - try - { - int _type = TRUE; - int _channel = DefaultTokenChannel; - // Hql.g:68:6: ( 'true' ) - DebugEnterAlt(1); - // Hql.g:68:8: 'true' - { - DebugLocation(68, 8); - Match("true"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("TRUE", 60); - LeaveRule("TRUE", 60); - LeaveRule_TRUE(); - } - } - // $ANTLR end "TRUE" - - partial void EnterRule_UNION(); - partial void LeaveRule_UNION(); - - // $ANTLR start "UNION" - [GrammarRule("UNION")] - private void mUNION() - { - EnterRule_UNION(); - EnterRule("UNION", 61); - TraceIn("UNION", 61); - try - { - int _type = UNION; - int _channel = DefaultTokenChannel; - // Hql.g:69:7: ( 'union' ) - DebugEnterAlt(1); - // Hql.g:69:9: 'union' - { - DebugLocation(69, 9); - Match("union"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("UNION", 61); - LeaveRule("UNION", 61); - LeaveRule_UNION(); - } - } - // $ANTLR end "UNION" - - partial void EnterRule_UPDATE(); - partial void LeaveRule_UPDATE(); - - // $ANTLR start "UPDATE" - [GrammarRule("UPDATE")] - private void mUPDATE() - { - EnterRule_UPDATE(); - EnterRule("UPDATE", 62); - TraceIn("UPDATE", 62); - try - { - int _type = UPDATE; - int _channel = DefaultTokenChannel; - // Hql.g:70:8: ( 'update' ) - DebugEnterAlt(1); - // Hql.g:70:10: 'update' - { - DebugLocation(70, 10); - Match("update"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("UPDATE", 62); - LeaveRule("UPDATE", 62); - LeaveRule_UPDATE(); - } - } - // $ANTLR end "UPDATE" - - partial void EnterRule_VERSIONED(); - partial void LeaveRule_VERSIONED(); - - // $ANTLR start "VERSIONED" - [GrammarRule("VERSIONED")] - private void mVERSIONED() - { - EnterRule_VERSIONED(); - EnterRule("VERSIONED", 63); - TraceIn("VERSIONED", 63); - try - { - int _type = VERSIONED; - int _channel = DefaultTokenChannel; - // Hql.g:71:11: ( 'versioned' ) - DebugEnterAlt(1); - // Hql.g:71:13: 'versioned' - { - DebugLocation(71, 13); - Match("versioned"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("VERSIONED", 63); - LeaveRule("VERSIONED", 63); - LeaveRule_VERSIONED(); - } - } - // $ANTLR end "VERSIONED" - - partial void EnterRule_WHEN(); - partial void LeaveRule_WHEN(); - - // $ANTLR start "WHEN" - [GrammarRule("WHEN")] - private void mWHEN() - { - EnterRule_WHEN(); - EnterRule("WHEN", 64); - TraceIn("WHEN", 64); - try - { - int _type = WHEN; - int _channel = DefaultTokenChannel; - // Hql.g:72:6: ( 'when' ) - DebugEnterAlt(1); - // Hql.g:72:8: 'when' - { - DebugLocation(72, 8); - Match("when"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("WHEN", 64); - LeaveRule("WHEN", 64); - LeaveRule_WHEN(); - } - } - // $ANTLR end "WHEN" - - partial void EnterRule_WHERE(); - partial void LeaveRule_WHERE(); - - // $ANTLR start "WHERE" - [GrammarRule("WHERE")] - private void mWHERE() - { - EnterRule_WHERE(); - EnterRule("WHERE", 65); - TraceIn("WHERE", 65); - try - { - int _type = WHERE; - int _channel = DefaultTokenChannel; - // Hql.g:73:7: ( 'where' ) - DebugEnterAlt(1); - // Hql.g:73:9: 'where' - { - DebugLocation(73, 9); - Match("where"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("WHERE", 65); - LeaveRule("WHERE", 65); - LeaveRule_WHERE(); - } - } - // $ANTLR end "WHERE" - - partial void EnterRule_WITH(); - partial void LeaveRule_WITH(); - - // $ANTLR start "WITH" - [GrammarRule("WITH")] - private void mWITH() - { - EnterRule_WITH(); - EnterRule("WITH", 66); - TraceIn("WITH", 66); - try - { - int _type = WITH; - int _channel = DefaultTokenChannel; - // Hql.g:74:6: ( 'with' ) - DebugEnterAlt(1); - // Hql.g:74:8: 'with' - { - DebugLocation(74, 8); - Match("with"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("WITH", 66); - LeaveRule("WITH", 66); - LeaveRule_WITH(); - } - } - // $ANTLR end "WITH" - - partial void EnterRule_T__133(); - partial void LeaveRule_T__133(); - - // $ANTLR start "T__133" - [GrammarRule("T__133")] - private void mT__133() - { - EnterRule_T__133(); - EnterRule("T__133", 67); - TraceIn("T__133", 67); - try - { - int _type = T__133; - int _channel = DefaultTokenChannel; - // Hql.g:75:8: ( 'ascending' ) - DebugEnterAlt(1); - // Hql.g:75:10: 'ascending' - { - DebugLocation(75, 10); - Match("ascending"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("T__133", 67); - LeaveRule("T__133", 67); - LeaveRule_T__133(); - } - } - // $ANTLR end "T__133" - - partial void EnterRule_T__134(); - partial void LeaveRule_T__134(); - - // $ANTLR start "T__134" - [GrammarRule("T__134")] - private void mT__134() - { - EnterRule_T__134(); - EnterRule("T__134", 68); - TraceIn("T__134", 68); - try - { - int _type = T__134; - int _channel = DefaultTokenChannel; - // Hql.g:76:8: ( 'descending' ) - DebugEnterAlt(1); - // Hql.g:76:10: 'descending' - { - DebugLocation(76, 10); - Match("descending"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("T__134", 68); - LeaveRule("T__134", 68); - LeaveRule_T__134(); - } - } - // $ANTLR end "T__134" - - partial void EnterRule_EQ(); - partial void LeaveRule_EQ(); - - // $ANTLR start "EQ" - [GrammarRule("EQ")] - private void mEQ() - { - EnterRule_EQ(); - EnterRule("EQ", 69); - TraceIn("EQ", 69); - try - { - int _type = EQ; - int _channel = DefaultTokenChannel; - // Hql.g:699:3: ( '=' ) - DebugEnterAlt(1); - // Hql.g:699:5: '=' - { - DebugLocation(699, 5); - Match('='); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("EQ", 69); - LeaveRule("EQ", 69); - LeaveRule_EQ(); - } - } - // $ANTLR end "EQ" - - partial void EnterRule_LT(); - partial void LeaveRule_LT(); - - // $ANTLR start "LT" - [GrammarRule("LT")] - private void mLT() - { - EnterRule_LT(); - EnterRule("LT", 70); - TraceIn("LT", 70); - try - { - int _type = LT; - int _channel = DefaultTokenChannel; - // Hql.g:700:3: ( '<' ) - DebugEnterAlt(1); - // Hql.g:700:5: '<' - { - DebugLocation(700, 5); - Match('<'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("LT", 70); - LeaveRule("LT", 70); - LeaveRule_LT(); - } - } - // $ANTLR end "LT" - - partial void EnterRule_GT(); - partial void LeaveRule_GT(); - - // $ANTLR start "GT" - [GrammarRule("GT")] - private void mGT() - { - EnterRule_GT(); - EnterRule("GT", 71); - TraceIn("GT", 71); - try - { - int _type = GT; - int _channel = DefaultTokenChannel; - // Hql.g:701:3: ( '>' ) - DebugEnterAlt(1); - // Hql.g:701:5: '>' - { - DebugLocation(701, 5); - Match('>'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("GT", 71); - LeaveRule("GT", 71); - LeaveRule_GT(); - } - } - // $ANTLR end "GT" - - partial void EnterRule_SQL_NE(); - partial void LeaveRule_SQL_NE(); - - // $ANTLR start "SQL_NE" - [GrammarRule("SQL_NE")] - private void mSQL_NE() - { - EnterRule_SQL_NE(); - EnterRule("SQL_NE", 72); - TraceIn("SQL_NE", 72); - try - { - int _type = SQL_NE; - int _channel = DefaultTokenChannel; - // Hql.g:702:7: ( '<>' ) - DebugEnterAlt(1); - // Hql.g:702:9: '<>' - { - DebugLocation(702, 9); - Match("<>"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("SQL_NE", 72); - LeaveRule("SQL_NE", 72); - LeaveRule_SQL_NE(); - } - } - // $ANTLR end "SQL_NE" - - partial void EnterRule_NE(); - partial void LeaveRule_NE(); - - // $ANTLR start "NE" - [GrammarRule("NE")] - private void mNE() - { - EnterRule_NE(); - EnterRule("NE", 73); - TraceIn("NE", 73); - try - { - int _type = NE; - int _channel = DefaultTokenChannel; - // Hql.g:703:3: ( '!=' | '^=' ) - int alt1=2; - try { DebugEnterDecision(1, false); - int LA1_1 = input.LA(1); - - if ((LA1_1=='!')) - { - alt1 = 1; - } - else if ((LA1_1=='^')) - { - alt1 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 1, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(1); } - switch (alt1) - { - case 1: - DebugEnterAlt(1); - // Hql.g:703:5: '!=' - { - DebugLocation(703, 5); - Match("!="); if (state.failed) return; - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:703:12: '^=' - { - DebugLocation(703, 12); - Match("^="); if (state.failed) return; - - - } - break; - - } - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("NE", 73); - LeaveRule("NE", 73); - LeaveRule_NE(); - } - } - // $ANTLR end "NE" - - partial void EnterRule_LE(); - partial void LeaveRule_LE(); - - // $ANTLR start "LE" - [GrammarRule("LE")] - private void mLE() - { - EnterRule_LE(); - EnterRule("LE", 74); - TraceIn("LE", 74); - try - { - int _type = LE; - int _channel = DefaultTokenChannel; - // Hql.g:704:3: ( '<=' ) - DebugEnterAlt(1); - // Hql.g:704:5: '<=' - { - DebugLocation(704, 5); - Match("<="); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("LE", 74); - LeaveRule("LE", 74); - LeaveRule_LE(); - } - } - // $ANTLR end "LE" - - partial void EnterRule_GE(); - partial void LeaveRule_GE(); - - // $ANTLR start "GE" - [GrammarRule("GE")] - private void mGE() - { - EnterRule_GE(); - EnterRule("GE", 75); - TraceIn("GE", 75); - try - { - int _type = GE; - int _channel = DefaultTokenChannel; - // Hql.g:705:3: ( '>=' ) - DebugEnterAlt(1); - // Hql.g:705:5: '>=' - { - DebugLocation(705, 5); - Match(">="); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("GE", 75); - LeaveRule("GE", 75); - LeaveRule_GE(); - } - } - // $ANTLR end "GE" - - partial void EnterRule_BOR(); - partial void LeaveRule_BOR(); - - // $ANTLR start "BOR" - [GrammarRule("BOR")] - private void mBOR() - { - EnterRule_BOR(); - EnterRule("BOR", 76); - TraceIn("BOR", 76); - try - { - int _type = BOR; - int _channel = DefaultTokenChannel; - // Hql.g:707:5: ( '|' ) - DebugEnterAlt(1); - // Hql.g:707:8: '|' - { - DebugLocation(707, 8); - Match('|'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("BOR", 76); - LeaveRule("BOR", 76); - LeaveRule_BOR(); - } - } - // $ANTLR end "BOR" - - partial void EnterRule_BXOR(); - partial void LeaveRule_BXOR(); - - // $ANTLR start "BXOR" - [GrammarRule("BXOR")] - private void mBXOR() - { - EnterRule_BXOR(); - EnterRule("BXOR", 77); - TraceIn("BXOR", 77); - try - { - int _type = BXOR; - int _channel = DefaultTokenChannel; - // Hql.g:708:6: ( '^' ) - DebugEnterAlt(1); - // Hql.g:708:8: '^' - { - DebugLocation(708, 8); - Match('^'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("BXOR", 77); - LeaveRule("BXOR", 77); - LeaveRule_BXOR(); - } - } - // $ANTLR end "BXOR" - - partial void EnterRule_BAND(); - partial void LeaveRule_BAND(); - - // $ANTLR start "BAND" - [GrammarRule("BAND")] - private void mBAND() - { - EnterRule_BAND(); - EnterRule("BAND", 78); - TraceIn("BAND", 78); - try - { - int _type = BAND; - int _channel = DefaultTokenChannel; - // Hql.g:709:6: ( '&' ) - DebugEnterAlt(1); - // Hql.g:709:8: '&' - { - DebugLocation(709, 8); - Match('&'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("BAND", 78); - LeaveRule("BAND", 78); - LeaveRule_BAND(); - } - } - // $ANTLR end "BAND" - - partial void EnterRule_BNOT(); - partial void LeaveRule_BNOT(); - - // $ANTLR start "BNOT" - [GrammarRule("BNOT")] - private void mBNOT() - { - EnterRule_BNOT(); - EnterRule("BNOT", 79); - TraceIn("BNOT", 79); - try - { - int _type = BNOT; - int _channel = DefaultTokenChannel; - // Hql.g:710:6: ( '!' ) - DebugEnterAlt(1); - // Hql.g:710:8: '!' - { - DebugLocation(710, 8); - Match('!'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("BNOT", 79); - LeaveRule("BNOT", 79); - LeaveRule_BNOT(); - } - } - // $ANTLR end "BNOT" - - partial void EnterRule_COMMA(); - partial void LeaveRule_COMMA(); - - // $ANTLR start "COMMA" - [GrammarRule("COMMA")] - private void mCOMMA() - { - EnterRule_COMMA(); - EnterRule("COMMA", 80); - TraceIn("COMMA", 80); - try - { - int _type = COMMA; - int _channel = DefaultTokenChannel; - // Hql.g:712:6: ( ',' ) - DebugEnterAlt(1); - // Hql.g:712:8: ',' - { - DebugLocation(712, 8); - Match(','); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("COMMA", 80); - LeaveRule("COMMA", 80); - LeaveRule_COMMA(); - } - } - // $ANTLR end "COMMA" - - partial void EnterRule_OPEN(); - partial void LeaveRule_OPEN(); - - // $ANTLR start "OPEN" - [GrammarRule("OPEN")] - private void mOPEN() - { - EnterRule_OPEN(); - EnterRule("OPEN", 81); - TraceIn("OPEN", 81); - try - { - int _type = OPEN; - int _channel = DefaultTokenChannel; - // Hql.g:714:5: ( '(' ) - DebugEnterAlt(1); - // Hql.g:714:7: '(' - { - DebugLocation(714, 7); - Match('('); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("OPEN", 81); - LeaveRule("OPEN", 81); - LeaveRule_OPEN(); - } - } - // $ANTLR end "OPEN" - - partial void EnterRule_CLOSE(); - partial void LeaveRule_CLOSE(); - - // $ANTLR start "CLOSE" - [GrammarRule("CLOSE")] - private void mCLOSE() - { - EnterRule_CLOSE(); - EnterRule("CLOSE", 82); - TraceIn("CLOSE", 82); - try - { - int _type = CLOSE; - int _channel = DefaultTokenChannel; - // Hql.g:715:6: ( ')' ) - DebugEnterAlt(1); - // Hql.g:715:8: ')' - { - DebugLocation(715, 8); - Match(')'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("CLOSE", 82); - LeaveRule("CLOSE", 82); - LeaveRule_CLOSE(); - } - } - // $ANTLR end "CLOSE" - - partial void EnterRule_OPEN_BRACKET(); - partial void LeaveRule_OPEN_BRACKET(); - - // $ANTLR start "OPEN_BRACKET" - [GrammarRule("OPEN_BRACKET")] - private void mOPEN_BRACKET() - { - EnterRule_OPEN_BRACKET(); - EnterRule("OPEN_BRACKET", 83); - TraceIn("OPEN_BRACKET", 83); - try - { - int _type = OPEN_BRACKET; - int _channel = DefaultTokenChannel; - // Hql.g:716:13: ( '[' ) - DebugEnterAlt(1); - // Hql.g:716:15: '[' - { - DebugLocation(716, 15); - Match('['); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("OPEN_BRACKET", 83); - LeaveRule("OPEN_BRACKET", 83); - LeaveRule_OPEN_BRACKET(); - } - } - // $ANTLR end "OPEN_BRACKET" - - partial void EnterRule_CLOSE_BRACKET(); - partial void LeaveRule_CLOSE_BRACKET(); - - // $ANTLR start "CLOSE_BRACKET" - [GrammarRule("CLOSE_BRACKET")] - private void mCLOSE_BRACKET() - { - EnterRule_CLOSE_BRACKET(); - EnterRule("CLOSE_BRACKET", 84); - TraceIn("CLOSE_BRACKET", 84); - try - { - int _type = CLOSE_BRACKET; - int _channel = DefaultTokenChannel; - // Hql.g:717:14: ( ']' ) - DebugEnterAlt(1); - // Hql.g:717:16: ']' - { - DebugLocation(717, 16); - Match(']'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("CLOSE_BRACKET", 84); - LeaveRule("CLOSE_BRACKET", 84); - LeaveRule_CLOSE_BRACKET(); - } - } - // $ANTLR end "CLOSE_BRACKET" - - partial void EnterRule_CONCAT(); - partial void LeaveRule_CONCAT(); - - // $ANTLR start "CONCAT" - [GrammarRule("CONCAT")] - private void mCONCAT() - { - EnterRule_CONCAT(); - EnterRule("CONCAT", 85); - TraceIn("CONCAT", 85); - try - { - int _type = CONCAT; - int _channel = DefaultTokenChannel; - // Hql.g:719:7: ( '||' ) - DebugEnterAlt(1); - // Hql.g:719:9: '||' - { - DebugLocation(719, 9); - Match("||"); if (state.failed) return; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("CONCAT", 85); - LeaveRule("CONCAT", 85); - LeaveRule_CONCAT(); - } - } - // $ANTLR end "CONCAT" - - partial void EnterRule_PLUS(); - partial void LeaveRule_PLUS(); - - // $ANTLR start "PLUS" - [GrammarRule("PLUS")] - private void mPLUS() - { - EnterRule_PLUS(); - EnterRule("PLUS", 86); - TraceIn("PLUS", 86); - try - { - int _type = PLUS; - int _channel = DefaultTokenChannel; - // Hql.g:720:5: ( '+' ) - DebugEnterAlt(1); - // Hql.g:720:7: '+' - { - DebugLocation(720, 7); - Match('+'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("PLUS", 86); - LeaveRule("PLUS", 86); - LeaveRule_PLUS(); - } - } - // $ANTLR end "PLUS" - - partial void EnterRule_MINUS(); - partial void LeaveRule_MINUS(); - - // $ANTLR start "MINUS" - [GrammarRule("MINUS")] - private void mMINUS() - { - EnterRule_MINUS(); - EnterRule("MINUS", 87); - TraceIn("MINUS", 87); - try - { - int _type = MINUS; - int _channel = DefaultTokenChannel; - // Hql.g:721:6: ( '-' ) - DebugEnterAlt(1); - // Hql.g:721:8: '-' - { - DebugLocation(721, 8); - Match('-'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("MINUS", 87); - LeaveRule("MINUS", 87); - LeaveRule_MINUS(); - } - } - // $ANTLR end "MINUS" - - partial void EnterRule_STAR(); - partial void LeaveRule_STAR(); - - // $ANTLR start "STAR" - [GrammarRule("STAR")] - private void mSTAR() - { - EnterRule_STAR(); - EnterRule("STAR", 88); - TraceIn("STAR", 88); - try - { - int _type = STAR; - int _channel = DefaultTokenChannel; - // Hql.g:722:5: ( '*' ) - DebugEnterAlt(1); - // Hql.g:722:7: '*' - { - DebugLocation(722, 7); - Match('*'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("STAR", 88); - LeaveRule("STAR", 88); - LeaveRule_STAR(); - } - } - // $ANTLR end "STAR" - - partial void EnterRule_DIV(); - partial void LeaveRule_DIV(); - - // $ANTLR start "DIV" - [GrammarRule("DIV")] - private void mDIV() - { - EnterRule_DIV(); - EnterRule("DIV", 89); - TraceIn("DIV", 89); - try - { - int _type = DIV; - int _channel = DefaultTokenChannel; - // Hql.g:723:4: ( '/' ) - DebugEnterAlt(1); - // Hql.g:723:6: '/' - { - DebugLocation(723, 6); - Match('/'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("DIV", 89); - LeaveRule("DIV", 89); - LeaveRule_DIV(); - } - } - // $ANTLR end "DIV" - - partial void EnterRule_COLON(); - partial void LeaveRule_COLON(); - - // $ANTLR start "COLON" - [GrammarRule("COLON")] - private void mCOLON() - { - EnterRule_COLON(); - EnterRule("COLON", 90); - TraceIn("COLON", 90); - try - { - int _type = COLON; - int _channel = DefaultTokenChannel; - // Hql.g:724:6: ( ':' ) - DebugEnterAlt(1); - // Hql.g:724:8: ':' - { - DebugLocation(724, 8); - Match(':'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("COLON", 90); - LeaveRule("COLON", 90); - LeaveRule_COLON(); - } - } - // $ANTLR end "COLON" - - partial void EnterRule_PARAM(); - partial void LeaveRule_PARAM(); - - // $ANTLR start "PARAM" - [GrammarRule("PARAM")] - private void mPARAM() - { - EnterRule_PARAM(); - EnterRule("PARAM", 91); - TraceIn("PARAM", 91); - try - { - int _type = PARAM; - int _channel = DefaultTokenChannel; - // Hql.g:725:6: ( '?' ) - DebugEnterAlt(1); - // Hql.g:725:8: '?' - { - DebugLocation(725, 8); - Match('?'); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("PARAM", 91); - LeaveRule("PARAM", 91); - LeaveRule_PARAM(); - } - } - // $ANTLR end "PARAM" - - partial void EnterRule_IDENT(); - partial void LeaveRule_IDENT(); - - // $ANTLR start "IDENT" - [GrammarRule("IDENT")] - private void mIDENT() - { - EnterRule_IDENT(); - EnterRule("IDENT", 92); - TraceIn("IDENT", 92); - try - { - int _type = IDENT; - int _channel = DefaultTokenChannel; - // Hql.g:728:2: ( ID_START_LETTER ( ID_LETTER )* ) - DebugEnterAlt(1); - // Hql.g:728:4: ID_START_LETTER ( ID_LETTER )* - { - DebugLocation(728, 4); - mID_START_LETTER(); if (state.failed) return; - DebugLocation(728, 20); - // Hql.g:728:20: ( ID_LETTER )* - try { DebugEnterSubRule(2); - while (true) - { - int alt2=2; - try { DebugEnterDecision(2, false); - int LA2_1 = input.LA(1); - - if ((LA2_1=='$'||(LA2_1>='0' && LA2_1<='9')||(LA2_1>='A' && LA2_1<='Z')||LA2_1=='_'||(LA2_1>='a' && LA2_1<='z')||(LA2_1>='\u0080' && LA2_1<='\uFFFE'))) - { - alt2 = 1; - } - - - } finally { DebugExitDecision(2); } - switch ( alt2 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(728, 20); - input.Consume(); - state.failed=false; - - } - break; - - default: - goto loop2; - } - } - - loop2: - ; - - } finally { DebugExitSubRule(2); } - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("IDENT", 92); - LeaveRule("IDENT", 92); - LeaveRule_IDENT(); - } - } - // $ANTLR end "IDENT" - - partial void EnterRule_ID_START_LETTER(); - partial void LeaveRule_ID_START_LETTER(); - - // $ANTLR start "ID_START_LETTER" - [GrammarRule("ID_START_LETTER")] - private void mID_START_LETTER() - { - EnterRule_ID_START_LETTER(); - EnterRule("ID_START_LETTER", 93); - TraceIn("ID_START_LETTER", 93); - try - { - // Hql.g:734:5: ( '_' | '$' | 'a' .. 'z' | 'A' .. 'Z' | '\\u0080' .. '\\ufffe' ) - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(734, 5); - if (input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u0080' && input.LA(1)<='\uFFFE')) - { - input.Consume(); - state.failed=false; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - Recover(mse); - throw mse; - } - - - } - - } - finally - { - TraceOut("ID_START_LETTER", 93); - LeaveRule("ID_START_LETTER", 93); - LeaveRule_ID_START_LETTER(); - } - } - // $ANTLR end "ID_START_LETTER" - - partial void EnterRule_ID_LETTER(); - partial void LeaveRule_ID_LETTER(); - - // $ANTLR start "ID_LETTER" - [GrammarRule("ID_LETTER")] - private void mID_LETTER() - { - EnterRule_ID_LETTER(); - EnterRule("ID_LETTER", 94); - TraceIn("ID_LETTER", 94); - try - { - // Hql.g:743:5: ( ID_START_LETTER | '0' .. '9' ) - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(743, 5); - if (input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u0080' && input.LA(1)<='\uFFFE')) - { - input.Consume(); - state.failed=false; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - Recover(mse); - throw mse; - } - - - } - - } - finally - { - TraceOut("ID_LETTER", 94); - LeaveRule("ID_LETTER", 94); - LeaveRule_ID_LETTER(); - } - } - // $ANTLR end "ID_LETTER" - - partial void EnterRule_QUOTED_String(); - partial void LeaveRule_QUOTED_String(); - - // $ANTLR start "QUOTED_String" - [GrammarRule("QUOTED_String")] - private void mQUOTED_String() - { - EnterRule_QUOTED_String(); - EnterRule("QUOTED_String", 95); - TraceIn("QUOTED_String", 95); - try - { - int _type = QUOTED_String; - int _channel = DefaultTokenChannel; - // Hql.g:747:4: ( '\\'' ( ( ESCqs )=> ESCqs |~ '\\'' )* '\\'' ) - DebugEnterAlt(1); - // Hql.g:747:6: '\\'' ( ( ESCqs )=> ESCqs |~ '\\'' )* '\\'' - { - DebugLocation(747, 6); - Match('\''); if (state.failed) return; - DebugLocation(747, 11); - // Hql.g:747:11: ( ( ESCqs )=> ESCqs |~ '\\'' )* - try { DebugEnterSubRule(3); - while (true) - { - int alt3=3; - try { DebugEnterDecision(3, false); - int LA3_1 = input.LA(1); - - if ((LA3_1=='\'')) - { - int LA3_2 = input.LA(2); - - if ((LA3_2=='\'') && (EvaluatePredicate(synpred1_Hql_fragment))) - { - alt3 = 1; - } - - - } - else if (((LA3_1>='\u0000' && LA3_1<='&')||(LA3_1>='(' && LA3_1<='\uFFFF'))) - { - alt3 = 2; - } - - - } finally { DebugExitDecision(3); } - switch ( alt3 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:747:13: ( ESCqs )=> ESCqs - { - DebugLocation(747, 23); - mESCqs(); if (state.failed) return; - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:747:31: ~ '\\'' - { - DebugLocation(747, 31); - input.Consume(); - state.failed=false; - - } - break; - - default: - goto loop3; - } - } - - loop3: - ; - - } finally { DebugExitSubRule(3); } - - DebugLocation(747, 40); - Match('\''); if (state.failed) return; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("QUOTED_String", 95); - LeaveRule("QUOTED_String", 95); - LeaveRule_QUOTED_String(); - } - } - // $ANTLR end "QUOTED_String" - - partial void EnterRule_ESCqs(); - partial void LeaveRule_ESCqs(); - - // $ANTLR start "ESCqs" - [GrammarRule("ESCqs")] - private void mESCqs() - { - EnterRule_ESCqs(); - EnterRule("ESCqs", 96); - TraceIn("ESCqs", 96); - try - { - // Hql.g:753:2: ( '\\'' '\\'' ) - DebugEnterAlt(1); - // Hql.g:754:3: '\\'' '\\'' - { - DebugLocation(754, 3); - Match('\''); if (state.failed) return; - DebugLocation(754, 8); - Match('\''); if (state.failed) return; - - } - - } - finally - { - TraceOut("ESCqs", 96); - LeaveRule("ESCqs", 96); - LeaveRule_ESCqs(); - } - } - // $ANTLR end "ESCqs" - - partial void EnterRule_WS(); - partial void LeaveRule_WS(); - - // $ANTLR start "WS" - [GrammarRule("WS")] - private void mWS() - { - EnterRule_WS(); - EnterRule("WS", 97); - TraceIn("WS", 97); - try - { - int _type = WS; - int _channel = DefaultTokenChannel; - // Hql.g:756:5: ( ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) ) - DebugEnterAlt(1); - // Hql.g:756:9: ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) - { - DebugLocation(756, 9); - // Hql.g:756:9: ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) - int alt4=5; - try { DebugEnterSubRule(4); - try { DebugEnterDecision(4, false); - switch (input.LA(1)) - { - case ' ': - { - alt4 = 1; - } - break; - case '\t': - { - alt4 = 2; - } - break; - case '\r': - { - int LA4_2 = input.LA(2); - - if ((LA4_2=='\n')) - { - alt4 = 3; - } - else - { - alt4 = 5; - } - } - break; - case '\n': - { - alt4 = 4; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 4, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(4); } - switch (alt4) - { - case 1: - DebugEnterAlt(1); - // Hql.g:756:13: ' ' - { - DebugLocation(756, 13); - Match(' '); if (state.failed) return; - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:757:7: '\\t' - { - DebugLocation(757, 7); - Match('\t'); if (state.failed) return; - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:758:7: '\\r' '\\n' - { - DebugLocation(758, 7); - Match('\r'); if (state.failed) return; - DebugLocation(758, 12); - Match('\n'); if (state.failed) return; - - } - break; - case 4: - DebugEnterAlt(4); - // Hql.g:759:7: '\\n' - { - DebugLocation(759, 7); - Match('\n'); if (state.failed) return; - - } - break; - case 5: - DebugEnterAlt(5); - // Hql.g:760:7: '\\r' - { - DebugLocation(760, 7); - Match('\r'); if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(4); } - - DebugLocation(762, 3); - if (state.backtracking == 0) - { - Skip(); - } - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("WS", 97); - LeaveRule("WS", 97); - LeaveRule_WS(); - } - } - // $ANTLR end "WS" - - partial void EnterRule_NUM_INT(); - partial void LeaveRule_NUM_INT(); - - // $ANTLR start "NUM_INT" - [GrammarRule("NUM_INT")] - private void mNUM_INT() - { - EnterRule_NUM_INT(); - EnterRule("NUM_INT", 98); - TraceIn("NUM_INT", 98); - try - { - int _type = NUM_INT; - int _channel = DefaultTokenChannel; - CommonToken f1 = default(CommonToken); - CommonToken f2 = default(CommonToken); - CommonToken f3 = default(CommonToken); - CommonToken f4 = default(CommonToken); - - bool isDecimal=false; IToken t=null; - // Hql.g:769:2: ( '.' ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? | ( '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? | ( '1' .. '9' ) ( '0' .. '9' )* ) ( ( 'l' ) |{...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? |f4= FLOAT_SUFFIX ) )? ) - int alt20=2; - try { DebugEnterDecision(20, false); - int LA20_1 = input.LA(1); - - if ((LA20_1=='.')) - { - alt20 = 1; - } - else if (((LA20_1>='0' && LA20_1<='9'))) - { - alt20 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 20, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(20); } - switch (alt20) - { - case 1: - DebugEnterAlt(1); - // Hql.g:769:6: '.' ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? - { - DebugLocation(769, 6); - Match('.'); if (state.failed) return; - DebugLocation(769, 10); - if (state.backtracking == 0) - { - _type = DOT; - } - DebugLocation(770, 4); - // Hql.g:770:4: ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? - int alt8=2; - try { DebugEnterSubRule(8); - try { DebugEnterDecision(8, false); - int LA8_1 = input.LA(1); - - if (((LA8_1>='0' && LA8_1<='9'))) - { - alt8 = 1; - } - } finally { DebugExitDecision(8); } - switch (alt8) - { - case 1: - DebugEnterAlt(1); - // Hql.g:770:6: ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? - { - DebugLocation(770, 6); - // Hql.g:770:6: ( '0' .. '9' )+ - int cnt5=0; - try { DebugEnterSubRule(5); - while (true) - { - int alt5=2; - try { DebugEnterDecision(5, false); - int LA5_1 = input.LA(1); - - if (((LA5_1>='0' && LA5_1<='9'))) - { - alt5 = 1; - } - - - } finally { DebugExitDecision(5); } - switch (alt5) - { - case 1: - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(770, 6); - input.Consume(); - state.failed=false; - - } - break; - - default: - if (cnt5 >= 1) - goto loop5; - - if (state.backtracking>0) {state.failed=true; return;} - EarlyExitException eee5 = new EarlyExitException( 5, input ); - DebugRecognitionException(eee5); - throw eee5; - } - cnt5++; - } - loop5: - ; - - } finally { DebugExitSubRule(5); } - - DebugLocation(770, 18); - // Hql.g:770:18: ( EXPONENT )? - int alt6=2; - try { DebugEnterSubRule(6); - try { DebugEnterDecision(6, false); - int LA6_1 = input.LA(1); - - if ((LA6_1=='e')) - { - alt6 = 1; - } - } finally { DebugExitDecision(6); } - switch (alt6) - { - case 1: - DebugEnterAlt(1); - // Hql.g:770:19: EXPONENT - { - DebugLocation(770, 19); - mEXPONENT(); if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(6); } - - DebugLocation(770, 30); - // Hql.g:770:30: (f1= FLOAT_SUFFIX )? - int alt7=2; - try { DebugEnterSubRule(7); - try { DebugEnterDecision(7, false); - int LA7_1 = input.LA(1); - - if ((LA7_1=='d'||LA7_1=='f'||LA7_1=='m')) - { - alt7 = 1; - } - } finally { DebugExitDecision(7); } - switch (alt7) - { - case 1: - DebugEnterAlt(1); - // Hql.g:770:31: f1= FLOAT_SUFFIX - { - DebugLocation(770, 33); - int f1Start992 = CharIndex; - int f1StartLine992 = Line; - int f1StartCharPos992 = CharPositionInLine; - mFLOAT_SUFFIX(); if (state.failed) return; - f1 = new CommonToken(input, TokenTypes.Invalid, TokenChannels.Default, f1Start992, CharIndex-1); - f1.Line = f1StartLine992; - f1.CharPositionInLine = f1StartCharPos992; - DebugLocation(770, 47); - if (state.backtracking == 0) - { - t=f1; - } - - } - break; - - } - } finally { DebugExitSubRule(7); } - - DebugLocation(771, 5); - if (state.backtracking == 0) - { - - if (t != null && t.Text.ToUpperInvariant().IndexOf('F')>=0) - { - _type = NUM_FLOAT; - } - else if (t != null && t.Text.ToUpperInvariant().IndexOf('M')>=0) - { - _type = NUM_DECIMAL; - } - else - { - _type = NUM_DOUBLE; // assume double - } - - } - - } - break; - - } - } finally { DebugExitSubRule(8); } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:786:4: ( '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? | ( '1' .. '9' ) ( '0' .. '9' )* ) ( ( 'l' ) |{...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? |f4= FLOAT_SUFFIX ) )? - { - DebugLocation(786, 4); - // Hql.g:786:4: ( '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? | ( '1' .. '9' ) ( '0' .. '9' )* ) - int alt13=2; - try { DebugEnterSubRule(13); - try { DebugEnterDecision(13, false); - int LA13_1 = input.LA(1); - - if ((LA13_1=='0')) - { - alt13 = 1; - } - else if (((LA13_1>='1' && LA13_1<='9'))) - { - alt13 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 13, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(13); } - switch (alt13) - { - case 1: - DebugEnterAlt(1); - // Hql.g:786:6: '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? - { - DebugLocation(786, 6); - Match('0'); if (state.failed) return; - DebugLocation(786, 10); - if (state.backtracking == 0) - { - isDecimal = true; - } - DebugLocation(787, 4); - // Hql.g:787:4: ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? - int alt11=3; - try { DebugEnterSubRule(11); - try { DebugEnterDecision(11, false); - int LA11_1 = input.LA(1); - - if ((LA11_1=='x')) - { - alt11 = 1; - } - else if (((LA11_1>='0' && LA11_1<='7'))) - { - alt11 = 2; - } - } finally { DebugExitDecision(11); } - switch (alt11) - { - case 1: - DebugEnterAlt(1); - // Hql.g:787:6: ( 'x' ) ( HEX_DIGIT )+ - { - DebugLocation(787, 6); - // Hql.g:787:6: ( 'x' ) - DebugEnterAlt(1); - // Hql.g:787:7: 'x' - { - DebugLocation(787, 7); - Match('x'); if (state.failed) return; - - } - - DebugLocation(788, 5); - // Hql.g:788:5: ( HEX_DIGIT )+ - int cnt9=0; - try { DebugEnterSubRule(9); - while (true) - { - int alt9=2; - try { DebugEnterDecision(9, false); - switch (input.LA(1)) - { - case 'e': - { - int LA9_2 = input.LA(2); - - if (((LA9_2>='0' && LA9_2<='9'))) - { - int LA9_3 = input.LA(3); - - if ((!(((isDecimal))))) - { - alt9 = 1; - } - - - } - - else - { - alt9 = 1; - } - - - } - break; - case 'd': - case 'f': - { - int LA9_2 = input.LA(2); - - if ((!(((isDecimal))))) - { - alt9 = 1; - } - - - } - break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'a': - case 'b': - case 'c': - { - alt9 = 1; - } - break; - } - - } finally { DebugExitDecision(9); } - switch (alt9) - { - case 1: - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(788, 5); - input.Consume(); - state.failed=false; - - } - break; - - default: - if (cnt9 >= 1) - goto loop9; - - if (state.backtracking>0) {state.failed=true; return;} - EarlyExitException eee9 = new EarlyExitException( 9, input ); - DebugRecognitionException(eee9); - throw eee9; - } - cnt9++; - } - loop9: - ; - - } finally { DebugExitSubRule(9); } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:797:6: ( '0' .. '7' )+ - { - DebugLocation(797, 6); - // Hql.g:797:6: ( '0' .. '7' )+ - int cnt10=0; - try { DebugEnterSubRule(10); - while (true) - { - int alt10=2; - try { DebugEnterDecision(10, false); - int LA10_1 = input.LA(1); - - if (((LA10_1>='0' && LA10_1<='7'))) - { - alt10 = 1; - } - - - } finally { DebugExitDecision(10); } - switch (alt10) - { - case 1: - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(797, 6); - input.Consume(); - state.failed=false; - - } - break; - - default: - if (cnt10 >= 1) - goto loop10; - - if (state.backtracking>0) {state.failed=true; return;} - EarlyExitException eee10 = new EarlyExitException( 10, input ); - DebugRecognitionException(eee10); - throw eee10; - } - cnt10++; - } - loop10: - ; - - } finally { DebugExitSubRule(10); } - - - } - break; - - } - } finally { DebugExitSubRule(11); } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:799:5: ( '1' .. '9' ) ( '0' .. '9' )* - { - DebugLocation(799, 5); - input.Consume(); - state.failed=false; - DebugLocation(799, 16); - // Hql.g:799:16: ( '0' .. '9' )* - try { DebugEnterSubRule(12); - while (true) - { - int alt12=2; - try { DebugEnterDecision(12, false); - int LA12_1 = input.LA(1); - - if (((LA12_1>='0' && LA12_1<='9'))) - { - alt12 = 1; - } - - - } finally { DebugExitDecision(12); } - switch ( alt12 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(799, 16); - input.Consume(); - state.failed=false; - - } - break; - - default: - goto loop12; - } - } - - loop12: - ; - - } finally { DebugExitSubRule(12); } - - DebugLocation(799, 29); - if (state.backtracking == 0) - { - isDecimal=true; - } - - } - break; - - } - } finally { DebugExitSubRule(13); } - - DebugLocation(801, 3); - // Hql.g:801:3: ( ( 'l' ) |{...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? |f4= FLOAT_SUFFIX ) )? - int alt19=3; - try { DebugEnterSubRule(19); - try { DebugEnterDecision(19, false); - int LA19_1 = input.LA(1); - - if ((LA19_1=='l')) - { - alt19 = 1; - } - else if ((LA19_1=='.'||(LA19_1>='d' && LA19_1<='f')||LA19_1=='m')) - { - alt19 = 2; - } - } finally { DebugExitDecision(19); } - switch (alt19) - { - case 1: - DebugEnterAlt(1); - // Hql.g:801:5: ( 'l' ) - { - DebugLocation(801, 5); - // Hql.g:801:5: ( 'l' ) - DebugEnterAlt(1); - // Hql.g:801:6: 'l' - { - DebugLocation(801, 6); - Match('l'); if (state.failed) return; - - } - - DebugLocation(801, 11); - if (state.backtracking == 0) - { - _type = NUM_LONG; - } - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:804:5: {...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? |f4= FLOAT_SUFFIX ) - { - DebugLocation(804, 5); - if (!((isDecimal))) - { - if (state.backtracking>0) {state.failed=true; return;} - throw new FailedPredicateException(input, "NUM_INT", "isDecimal"); - } - DebugLocation(805, 4); - // Hql.g:805:4: ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? |f4= FLOAT_SUFFIX ) - int alt18=3; - try { DebugEnterSubRule(18); - try { DebugEnterDecision(18, false); - switch (input.LA(1)) - { - case '.': - { - alt18 = 1; - } - break; - case 'e': - { - alt18 = 2; - } - break; - case 'd': - case 'f': - case 'm': - { - alt18 = 3; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 18, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(18); } - switch (alt18) - { - case 1: - DebugEnterAlt(1); - // Hql.g:805:8: '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? - { - DebugLocation(805, 8); - Match('.'); if (state.failed) return; - DebugLocation(805, 12); - // Hql.g:805:12: ( '0' .. '9' )* - try { DebugEnterSubRule(14); - while (true) - { - int alt14=2; - try { DebugEnterDecision(14, false); - int LA14_1 = input.LA(1); - - if (((LA14_1>='0' && LA14_1<='9'))) - { - alt14 = 1; - } - - - } finally { DebugExitDecision(14); } - switch ( alt14 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(805, 12); - input.Consume(); - state.failed=false; - - } - break; - - default: - goto loop14; - } - } - - loop14: - ; - - } finally { DebugExitSubRule(14); } - - DebugLocation(805, 24); - // Hql.g:805:24: ( EXPONENT )? - int alt15=2; - try { DebugEnterSubRule(15); - try { DebugEnterDecision(15, false); - int LA15_1 = input.LA(1); - - if ((LA15_1=='e')) - { - alt15 = 1; - } - } finally { DebugExitDecision(15); } - switch (alt15) - { - case 1: - DebugEnterAlt(1); - // Hql.g:805:25: EXPONENT - { - DebugLocation(805, 25); - mEXPONENT(); if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(15); } - - DebugLocation(805, 36); - // Hql.g:805:36: (f2= FLOAT_SUFFIX )? - int alt16=2; - try { DebugEnterSubRule(16); - try { DebugEnterDecision(16, false); - int LA16_1 = input.LA(1); - - if ((LA16_1=='d'||LA16_1=='f'||LA16_1=='m')) - { - alt16 = 1; - } - } finally { DebugExitDecision(16); } - switch (alt16) - { - case 1: - DebugEnterAlt(1); - // Hql.g:805:37: f2= FLOAT_SUFFIX - { - DebugLocation(805, 39); - int f2Start1194 = CharIndex; - int f2StartLine1194 = Line; - int f2StartCharPos1194 = CharPositionInLine; - mFLOAT_SUFFIX(); if (state.failed) return; - f2 = new CommonToken(input, TokenTypes.Invalid, TokenChannels.Default, f2Start1194, CharIndex-1); - f2.Line = f2StartLine1194; - f2.CharPositionInLine = f2StartCharPos1194; - DebugLocation(805, 53); - if (state.backtracking == 0) - { - t=f2; - } - - } - break; - - } - } finally { DebugExitSubRule(16); } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:806:8: EXPONENT (f3= FLOAT_SUFFIX )? - { - DebugLocation(806, 8); - mEXPONENT(); if (state.failed) return; - DebugLocation(806, 17); - // Hql.g:806:17: (f3= FLOAT_SUFFIX )? - int alt17=2; - try { DebugEnterSubRule(17); - try { DebugEnterDecision(17, false); - int LA17_1 = input.LA(1); - - if ((LA17_1=='d'||LA17_1=='f'||LA17_1=='m')) - { - alt17 = 1; - } - } finally { DebugExitDecision(17); } - switch (alt17) - { - case 1: - DebugEnterAlt(1); - // Hql.g:806:18: f3= FLOAT_SUFFIX - { - DebugLocation(806, 20); - int f3Start1212 = CharIndex; - int f3StartLine1212 = Line; - int f3StartCharPos1212 = CharPositionInLine; - mFLOAT_SUFFIX(); if (state.failed) return; - f3 = new CommonToken(input, TokenTypes.Invalid, TokenChannels.Default, f3Start1212, CharIndex-1); - f3.Line = f3StartLine1212; - f3.CharPositionInLine = f3StartCharPos1212; - DebugLocation(806, 34); - if (state.backtracking == 0) - { - t=f3; - } - - } - break; - - } - } finally { DebugExitSubRule(17); } - - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:807:8: f4= FLOAT_SUFFIX - { - DebugLocation(807, 10); - int f4Start1227 = CharIndex; - int f4StartLine1227 = Line; - int f4StartCharPos1227 = CharPositionInLine; - mFLOAT_SUFFIX(); if (state.failed) return; - f4 = new CommonToken(input, TokenTypes.Invalid, TokenChannels.Default, f4Start1227, CharIndex-1); - f4.Line = f4StartLine1227; - f4.CharPositionInLine = f4StartCharPos1227; - DebugLocation(807, 24); - if (state.backtracking == 0) - { - t=f4; - } - - } - break; - - } - } finally { DebugExitSubRule(18); } - - DebugLocation(809, 4); - if (state.backtracking == 0) - { - - if (t != null && t.Text.ToUpperInvariant().IndexOf('F') >= 0) - { - _type = NUM_FLOAT; - } - else if (t != null && t.Text.ToUpperInvariant().IndexOf('M')>=0) - { - _type = NUM_DECIMAL; - } - else - { - _type = NUM_DOUBLE; // assume double - } - - } - - } - break; - - } - } finally { DebugExitSubRule(19); } - - - } - break; - - } - state.type = _type; - state.channel = _channel; - } - finally - { - TraceOut("NUM_INT", 98); - LeaveRule("NUM_INT", 98); - LeaveRule_NUM_INT(); - } - } - // $ANTLR end "NUM_INT" - - partial void EnterRule_HEX_DIGIT(); - partial void LeaveRule_HEX_DIGIT(); - - // $ANTLR start "HEX_DIGIT" - [GrammarRule("HEX_DIGIT")] - private void mHEX_DIGIT() - { - EnterRule_HEX_DIGIT(); - EnterRule("HEX_DIGIT", 99); - TraceIn("HEX_DIGIT", 99); - try - { - // Hql.g:830:2: ( ( '0' .. '9' | 'a' .. 'f' ) ) - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(830, 2); - if ((input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='a' && input.LA(1)<='f')) - { - input.Consume(); - state.failed=false; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - Recover(mse); - throw mse; - } - - - } - - } - finally - { - TraceOut("HEX_DIGIT", 99); - LeaveRule("HEX_DIGIT", 99); - LeaveRule_HEX_DIGIT(); - } - } - // $ANTLR end "HEX_DIGIT" - - partial void EnterRule_EXPONENT(); - partial void LeaveRule_EXPONENT(); - - // $ANTLR start "EXPONENT" - [GrammarRule("EXPONENT")] - private void mEXPONENT() - { - EnterRule_EXPONENT(); - EnterRule("EXPONENT", 100); - TraceIn("EXPONENT", 100); - try - { - // Hql.g:836:2: ( ( 'e' ) ( '+' | '-' )? ( '0' .. '9' )+ ) - DebugEnterAlt(1); - // Hql.g:836:4: ( 'e' ) ( '+' | '-' )? ( '0' .. '9' )+ - { - DebugLocation(836, 4); - // Hql.g:836:4: ( 'e' ) - DebugEnterAlt(1); - // Hql.g:836:5: 'e' - { - DebugLocation(836, 5); - Match('e'); if (state.failed) return; - - } - - DebugLocation(836, 10); - // Hql.g:836:10: ( '+' | '-' )? - int alt21=2; - try { DebugEnterSubRule(21); - try { DebugEnterDecision(21, false); - int LA21_1 = input.LA(1); - - if ((LA21_1=='+'||LA21_1=='-')) - { - alt21 = 1; - } - } finally { DebugExitDecision(21); } - switch (alt21) - { - case 1: - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(836, 10); - input.Consume(); - state.failed=false; - - } - break; - - } - } finally { DebugExitSubRule(21); } - - DebugLocation(836, 21); - // Hql.g:836:21: ( '0' .. '9' )+ - int cnt22=0; - try { DebugEnterSubRule(22); - while (true) - { - int alt22=2; - try { DebugEnterDecision(22, false); - int LA22_1 = input.LA(1); - - if (((LA22_1>='0' && LA22_1<='9'))) - { - alt22 = 1; - } - - - } finally { DebugExitDecision(22); } - switch (alt22) - { - case 1: - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(836, 21); - input.Consume(); - state.failed=false; - - } - break; - - default: - if (cnt22 >= 1) - goto loop22; - - if (state.backtracking>0) {state.failed=true; return;} - EarlyExitException eee22 = new EarlyExitException( 22, input ); - DebugRecognitionException(eee22); - throw eee22; - } - cnt22++; - } - loop22: - ; - - } finally { DebugExitSubRule(22); } - - - } - - } - finally - { - TraceOut("EXPONENT", 100); - LeaveRule("EXPONENT", 100); - LeaveRule_EXPONENT(); - } - } - // $ANTLR end "EXPONENT" - - partial void EnterRule_FLOAT_SUFFIX(); - partial void LeaveRule_FLOAT_SUFFIX(); - - // $ANTLR start "FLOAT_SUFFIX" - [GrammarRule("FLOAT_SUFFIX")] - private void mFLOAT_SUFFIX() - { - EnterRule_FLOAT_SUFFIX(); - EnterRule("FLOAT_SUFFIX", 101); - TraceIn("FLOAT_SUFFIX", 101); - try - { - // Hql.g:841:2: ( 'f' | 'd' | 'm' ) - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(841, 2); - if (input.LA(1)=='d'||input.LA(1)=='f'||input.LA(1)=='m') - { - input.Consume(); - state.failed=false; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - Recover(mse); - throw mse; - } - - - } - - } - finally - { - TraceOut("FLOAT_SUFFIX", 101); - LeaveRule("FLOAT_SUFFIX", 101); - LeaveRule_FLOAT_SUFFIX(); - } - } - // $ANTLR end "FLOAT_SUFFIX" - - public override void mTokens() - { - // Hql.g:1:8: ( ALL | AND | ANY | AS | ASCENDING | AVG | BETWEEN | BOTH | CASE | CLASS | COUNT | DELETE | DESCENDING | DISTINCT | ELEMENTS | ELSE | EMPTY | END | ESCAPE | EXISTS | FALSE | FETCH | FROM | FULL | GROUP | HAVING | IN | INDICES | INNER | INSERT | INTO | IS | JOIN | LEADING | LEFT | LIKE | LITERAL_by | MAX | MEMBER | MIN | NEW | NOT | NULL | OBJECT | OF | ON | OR | ORDER | OUTER | PROPERTIES | RIGHT | SELECT | SET | SKIP | SOME | SUM | TAKE | THEN | TRAILING | TRUE | UNION | UPDATE | VERSIONED | WHEN | WHERE | WITH | T__133 | T__134 | EQ | LT | GT | SQL_NE | NE | LE | GE | BOR | BXOR | BAND | BNOT | COMMA | OPEN | CLOSE | OPEN_BRACKET | CLOSE_BRACKET | CONCAT | PLUS | MINUS | STAR | DIV | COLON | PARAM | IDENT | QUOTED_String | WS | NUM_INT ) - int alt23=95; - try { DebugEnterDecision(23, false); - try - { - alt23 = dfa23.Predict(input); - } - catch (NoViableAltException nvae) - { - DebugRecognitionException(nvae); - throw; - } - } finally { DebugExitDecision(23); } - switch (alt23) - { - case 1: - DebugEnterAlt(1); - // Hql.g:1:10: ALL - { - DebugLocation(1, 10); - mALL(); if (state.failed) return; - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:1:14: AND - { - DebugLocation(1, 14); - mAND(); if (state.failed) return; - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:1:18: ANY - { - DebugLocation(1, 18); - mANY(); if (state.failed) return; - - } - break; - case 4: - DebugEnterAlt(4); - // Hql.g:1:22: AS - { - DebugLocation(1, 22); - mAS(); if (state.failed) return; - - } - break; - case 5: - DebugEnterAlt(5); - // Hql.g:1:25: ASCENDING - { - DebugLocation(1, 25); - mASCENDING(); if (state.failed) return; - - } - break; - case 6: - DebugEnterAlt(6); - // Hql.g:1:35: AVG - { - DebugLocation(1, 35); - mAVG(); if (state.failed) return; - - } - break; - case 7: - DebugEnterAlt(7); - // Hql.g:1:39: BETWEEN - { - DebugLocation(1, 39); - mBETWEEN(); if (state.failed) return; - - } - break; - case 8: - DebugEnterAlt(8); - // Hql.g:1:47: BOTH - { - DebugLocation(1, 47); - mBOTH(); if (state.failed) return; - - } - break; - case 9: - DebugEnterAlt(9); - // Hql.g:1:52: CASE - { - DebugLocation(1, 52); - mCASE(); if (state.failed) return; - - } - break; - case 10: - DebugEnterAlt(10); - // Hql.g:1:57: CLASS - { - DebugLocation(1, 57); - mCLASS(); if (state.failed) return; - - } - break; - case 11: - DebugEnterAlt(11); - // Hql.g:1:63: COUNT - { - DebugLocation(1, 63); - mCOUNT(); if (state.failed) return; - - } - break; - case 12: - DebugEnterAlt(12); - // Hql.g:1:69: DELETE - { - DebugLocation(1, 69); - mDELETE(); if (state.failed) return; - - } - break; - case 13: - DebugEnterAlt(13); - // Hql.g:1:76: DESCENDING - { - DebugLocation(1, 76); - mDESCENDING(); if (state.failed) return; - - } - break; - case 14: - DebugEnterAlt(14); - // Hql.g:1:87: DISTINCT - { - DebugLocation(1, 87); - mDISTINCT(); if (state.failed) return; - - } - break; - case 15: - DebugEnterAlt(15); - // Hql.g:1:96: ELEMENTS - { - DebugLocation(1, 96); - mELEMENTS(); if (state.failed) return; - - } - break; - case 16: - DebugEnterAlt(16); - // Hql.g:1:105: ELSE - { - DebugLocation(1, 105); - mELSE(); if (state.failed) return; - - } - break; - case 17: - DebugEnterAlt(17); - // Hql.g:1:110: EMPTY - { - DebugLocation(1, 110); - mEMPTY(); if (state.failed) return; - - } - break; - case 18: - DebugEnterAlt(18); - // Hql.g:1:116: END - { - DebugLocation(1, 116); - mEND(); if (state.failed) return; - - } - break; - case 19: - DebugEnterAlt(19); - // Hql.g:1:120: ESCAPE - { - DebugLocation(1, 120); - mESCAPE(); if (state.failed) return; - - } - break; - case 20: - DebugEnterAlt(20); - // Hql.g:1:127: EXISTS - { - DebugLocation(1, 127); - mEXISTS(); if (state.failed) return; - - } - break; - case 21: - DebugEnterAlt(21); - // Hql.g:1:134: FALSE - { - DebugLocation(1, 134); - mFALSE(); if (state.failed) return; - - } - break; - case 22: - DebugEnterAlt(22); - // Hql.g:1:140: FETCH - { - DebugLocation(1, 140); - mFETCH(); if (state.failed) return; - - } - break; - case 23: - DebugEnterAlt(23); - // Hql.g:1:146: FROM - { - DebugLocation(1, 146); - mFROM(); if (state.failed) return; - - } - break; - case 24: - DebugEnterAlt(24); - // Hql.g:1:151: FULL - { - DebugLocation(1, 151); - mFULL(); if (state.failed) return; - - } - break; - case 25: - DebugEnterAlt(25); - // Hql.g:1:156: GROUP - { - DebugLocation(1, 156); - mGROUP(); if (state.failed) return; - - } - break; - case 26: - DebugEnterAlt(26); - // Hql.g:1:162: HAVING - { - DebugLocation(1, 162); - mHAVING(); if (state.failed) return; - - } - break; - case 27: - DebugEnterAlt(27); - // Hql.g:1:169: IN - { - DebugLocation(1, 169); - mIN(); if (state.failed) return; - - } - break; - case 28: - DebugEnterAlt(28); - // Hql.g:1:172: INDICES - { - DebugLocation(1, 172); - mINDICES(); if (state.failed) return; - - } - break; - case 29: - DebugEnterAlt(29); - // Hql.g:1:180: INNER - { - DebugLocation(1, 180); - mINNER(); if (state.failed) return; - - } - break; - case 30: - DebugEnterAlt(30); - // Hql.g:1:186: INSERT - { - DebugLocation(1, 186); - mINSERT(); if (state.failed) return; - - } - break; - case 31: - DebugEnterAlt(31); - // Hql.g:1:193: INTO - { - DebugLocation(1, 193); - mINTO(); if (state.failed) return; - - } - break; - case 32: - DebugEnterAlt(32); - // Hql.g:1:198: IS - { - DebugLocation(1, 198); - mIS(); if (state.failed) return; - - } - break; - case 33: - DebugEnterAlt(33); - // Hql.g:1:201: JOIN - { - DebugLocation(1, 201); - mJOIN(); if (state.failed) return; - - } - break; - case 34: - DebugEnterAlt(34); - // Hql.g:1:206: LEADING - { - DebugLocation(1, 206); - mLEADING(); if (state.failed) return; - - } - break; - case 35: - DebugEnterAlt(35); - // Hql.g:1:214: LEFT - { - DebugLocation(1, 214); - mLEFT(); if (state.failed) return; - - } - break; - case 36: - DebugEnterAlt(36); - // Hql.g:1:219: LIKE - { - DebugLocation(1, 219); - mLIKE(); if (state.failed) return; - - } - break; - case 37: - DebugEnterAlt(37); - // Hql.g:1:224: LITERAL_by - { - DebugLocation(1, 224); - mLITERAL_by(); if (state.failed) return; - - } - break; - case 38: - DebugEnterAlt(38); - // Hql.g:1:235: MAX - { - DebugLocation(1, 235); - mMAX(); if (state.failed) return; - - } - break; - case 39: - DebugEnterAlt(39); - // Hql.g:1:239: MEMBER - { - DebugLocation(1, 239); - mMEMBER(); if (state.failed) return; - - } - break; - case 40: - DebugEnterAlt(40); - // Hql.g:1:246: MIN - { - DebugLocation(1, 246); - mMIN(); if (state.failed) return; - - } - break; - case 41: - DebugEnterAlt(41); - // Hql.g:1:250: NEW - { - DebugLocation(1, 250); - mNEW(); if (state.failed) return; - - } - break; - case 42: - DebugEnterAlt(42); - // Hql.g:1:254: NOT - { - DebugLocation(1, 254); - mNOT(); if (state.failed) return; - - } - break; - case 43: - DebugEnterAlt(43); - // Hql.g:1:258: NULL - { - DebugLocation(1, 258); - mNULL(); if (state.failed) return; - - } - break; - case 44: - DebugEnterAlt(44); - // Hql.g:1:263: OBJECT - { - DebugLocation(1, 263); - mOBJECT(); if (state.failed) return; - - } - break; - case 45: - DebugEnterAlt(45); - // Hql.g:1:270: OF - { - DebugLocation(1, 270); - mOF(); if (state.failed) return; - - } - break; - case 46: - DebugEnterAlt(46); - // Hql.g:1:273: ON - { - DebugLocation(1, 273); - mON(); if (state.failed) return; - - } - break; - case 47: - DebugEnterAlt(47); - // Hql.g:1:276: OR - { - DebugLocation(1, 276); - mOR(); if (state.failed) return; - - } - break; - case 48: - DebugEnterAlt(48); - // Hql.g:1:279: ORDER - { - DebugLocation(1, 279); - mORDER(); if (state.failed) return; - - } - break; - case 49: - DebugEnterAlt(49); - // Hql.g:1:285: OUTER - { - DebugLocation(1, 285); - mOUTER(); if (state.failed) return; - - } - break; - case 50: - DebugEnterAlt(50); - // Hql.g:1:291: PROPERTIES - { - DebugLocation(1, 291); - mPROPERTIES(); if (state.failed) return; - - } - break; - case 51: - DebugEnterAlt(51); - // Hql.g:1:302: RIGHT - { - DebugLocation(1, 302); - mRIGHT(); if (state.failed) return; - - } - break; - case 52: - DebugEnterAlt(52); - // Hql.g:1:308: SELECT - { - DebugLocation(1, 308); - mSELECT(); if (state.failed) return; - - } - break; - case 53: - DebugEnterAlt(53); - // Hql.g:1:315: SET - { - DebugLocation(1, 315); - mSET(); if (state.failed) return; - - } - break; - case 54: - DebugEnterAlt(54); - // Hql.g:1:319: SKIP - { - DebugLocation(1, 319); - mSKIP(); if (state.failed) return; - - } - break; - case 55: - DebugEnterAlt(55); - // Hql.g:1:324: SOME - { - DebugLocation(1, 324); - mSOME(); if (state.failed) return; - - } - break; - case 56: - DebugEnterAlt(56); - // Hql.g:1:329: SUM - { - DebugLocation(1, 329); - mSUM(); if (state.failed) return; - - } - break; - case 57: - DebugEnterAlt(57); - // Hql.g:1:333: TAKE - { - DebugLocation(1, 333); - mTAKE(); if (state.failed) return; - - } - break; - case 58: - DebugEnterAlt(58); - // Hql.g:1:338: THEN - { - DebugLocation(1, 338); - mTHEN(); if (state.failed) return; - - } - break; - case 59: - DebugEnterAlt(59); - // Hql.g:1:343: TRAILING - { - DebugLocation(1, 343); - mTRAILING(); if (state.failed) return; - - } - break; - case 60: - DebugEnterAlt(60); - // Hql.g:1:352: TRUE - { - DebugLocation(1, 352); - mTRUE(); if (state.failed) return; - - } - break; - case 61: - DebugEnterAlt(61); - // Hql.g:1:357: UNION - { - DebugLocation(1, 357); - mUNION(); if (state.failed) return; - - } - break; - case 62: - DebugEnterAlt(62); - // Hql.g:1:363: UPDATE - { - DebugLocation(1, 363); - mUPDATE(); if (state.failed) return; - - } - break; - case 63: - DebugEnterAlt(63); - // Hql.g:1:370: VERSIONED - { - DebugLocation(1, 370); - mVERSIONED(); if (state.failed) return; - - } - break; - case 64: - DebugEnterAlt(64); - // Hql.g:1:380: WHEN - { - DebugLocation(1, 380); - mWHEN(); if (state.failed) return; - - } - break; - case 65: - DebugEnterAlt(65); - // Hql.g:1:385: WHERE - { - DebugLocation(1, 385); - mWHERE(); if (state.failed) return; - - } - break; - case 66: - DebugEnterAlt(66); - // Hql.g:1:391: WITH - { - DebugLocation(1, 391); - mWITH(); if (state.failed) return; - - } - break; - case 67: - DebugEnterAlt(67); - // Hql.g:1:396: T__133 - { - DebugLocation(1, 396); - mT__133(); if (state.failed) return; - - } - break; - case 68: - DebugEnterAlt(68); - // Hql.g:1:403: T__134 - { - DebugLocation(1, 403); - mT__134(); if (state.failed) return; - - } - break; - case 69: - DebugEnterAlt(69); - // Hql.g:1:410: EQ - { - DebugLocation(1, 410); - mEQ(); if (state.failed) return; - - } - break; - case 70: - DebugEnterAlt(70); - // Hql.g:1:413: LT - { - DebugLocation(1, 413); - mLT(); if (state.failed) return; - - } - break; - case 71: - DebugEnterAlt(71); - // Hql.g:1:416: GT - { - DebugLocation(1, 416); - mGT(); if (state.failed) return; - - } - break; - case 72: - DebugEnterAlt(72); - // Hql.g:1:419: SQL_NE - { - DebugLocation(1, 419); - mSQL_NE(); if (state.failed) return; - - } - break; - case 73: - DebugEnterAlt(73); - // Hql.g:1:426: NE - { - DebugLocation(1, 426); - mNE(); if (state.failed) return; - - } - break; - case 74: - DebugEnterAlt(74); - // Hql.g:1:429: LE - { - DebugLocation(1, 429); - mLE(); if (state.failed) return; - - } - break; - case 75: - DebugEnterAlt(75); - // Hql.g:1:432: GE - { - DebugLocation(1, 432); - mGE(); if (state.failed) return; - - } - break; - case 76: - DebugEnterAlt(76); - // Hql.g:1:435: BOR - { - DebugLocation(1, 435); - mBOR(); if (state.failed) return; - - } - break; - case 77: - DebugEnterAlt(77); - // Hql.g:1:439: BXOR - { - DebugLocation(1, 439); - mBXOR(); if (state.failed) return; - - } - break; - case 78: - DebugEnterAlt(78); - // Hql.g:1:444: BAND - { - DebugLocation(1, 444); - mBAND(); if (state.failed) return; - - } - break; - case 79: - DebugEnterAlt(79); - // Hql.g:1:449: BNOT - { - DebugLocation(1, 449); - mBNOT(); if (state.failed) return; - - } - break; - case 80: - DebugEnterAlt(80); - // Hql.g:1:454: COMMA - { - DebugLocation(1, 454); - mCOMMA(); if (state.failed) return; - - } - break; - case 81: - DebugEnterAlt(81); - // Hql.g:1:460: OPEN - { - DebugLocation(1, 460); - mOPEN(); if (state.failed) return; - - } - break; - case 82: - DebugEnterAlt(82); - // Hql.g:1:465: CLOSE - { - DebugLocation(1, 465); - mCLOSE(); if (state.failed) return; - - } - break; - case 83: - DebugEnterAlt(83); - // Hql.g:1:471: OPEN_BRACKET - { - DebugLocation(1, 471); - mOPEN_BRACKET(); if (state.failed) return; - - } - break; - case 84: - DebugEnterAlt(84); - // Hql.g:1:484: CLOSE_BRACKET - { - DebugLocation(1, 484); - mCLOSE_BRACKET(); if (state.failed) return; - - } - break; - case 85: - DebugEnterAlt(85); - // Hql.g:1:498: CONCAT - { - DebugLocation(1, 498); - mCONCAT(); if (state.failed) return; - - } - break; - case 86: - DebugEnterAlt(86); - // Hql.g:1:505: PLUS - { - DebugLocation(1, 505); - mPLUS(); if (state.failed) return; - - } - break; - case 87: - DebugEnterAlt(87); - // Hql.g:1:510: MINUS - { - DebugLocation(1, 510); - mMINUS(); if (state.failed) return; - - } - break; - case 88: - DebugEnterAlt(88); - // Hql.g:1:516: STAR - { - DebugLocation(1, 516); - mSTAR(); if (state.failed) return; - - } - break; - case 89: - DebugEnterAlt(89); - // Hql.g:1:521: DIV - { - DebugLocation(1, 521); - mDIV(); if (state.failed) return; - - } - break; - case 90: - DebugEnterAlt(90); - // Hql.g:1:525: COLON - { - DebugLocation(1, 525); - mCOLON(); if (state.failed) return; - - } - break; - case 91: - DebugEnterAlt(91); - // Hql.g:1:531: PARAM - { - DebugLocation(1, 531); - mPARAM(); if (state.failed) return; - - } - break; - case 92: - DebugEnterAlt(92); - // Hql.g:1:537: IDENT - { - DebugLocation(1, 537); - mIDENT(); if (state.failed) return; - - } - break; - case 93: - DebugEnterAlt(93); - // Hql.g:1:543: QUOTED_String - { - DebugLocation(1, 543); - mQUOTED_String(); if (state.failed) return; - - } - break; - case 94: - DebugEnterAlt(94); - // Hql.g:1:557: WS - { - DebugLocation(1, 557); - mWS(); if (state.failed) return; - - } - break; - case 95: - DebugEnterAlt(95); - // Hql.g:1:560: NUM_INT - { - DebugLocation(1, 560); - mNUM_INT(); if (state.failed) return; - - } - break; - - } - - } - - partial void EnterRule_synpred1_Hql_fragment(); - partial void LeaveRule_synpred1_Hql_fragment(); - - // $ANTLR start synpred1_Hql - private void synpred1_Hql_fragment() - { - EnterRule_synpred1_Hql_fragment(); - EnterRule("synpred1_Hql_fragment", 103); - TraceIn("synpred1_Hql_fragment", 103); - try - { - // Hql.g:747:13: ( ESCqs ) - DebugEnterAlt(1); - // Hql.g:747:14: ESCqs - { - DebugLocation(747, 14); - mESCqs(); if (state.failed) return; - - } - - } - finally - { - TraceOut("synpred1_Hql_fragment", 103); - LeaveRule("synpred1_Hql_fragment", 103); - LeaveRule_synpred1_Hql_fragment(); - } - } - // $ANTLR end synpred1_Hql - - #region Synpreds - private bool EvaluatePredicate(System.Action fragment) - { - bool success = false; - state.backtracking++; - try { DebugBeginBacktrack(state.backtracking); - int start = input.Mark(); - try - { - fragment(); - } - catch ( RecognitionException re ) - { - System.Console.Error.WriteLine("impossible: "+re); - } - success = !state.failed; - input.Rewind(start); - } finally { DebugEndBacktrack(state.backtracking, success); } - state.backtracking--; - state.failed=false; - return success; - } - #endregion Synpreds - - - #region DFA - DFA23 dfa23; - - protected override void InitDFAs() - { - base.InitDFAs(); - dfa23 = new DFA23(this); - } - - private class DFA23 : DFA - { - private const string DFA23_eotS = - "\x1\xFFFF\x15\x28\x1\xFFFF\x1\x63\x1\x65\x1\x67\x1\x68\x1\x6A\x10\xFFFF"+ - "\x2\x28\x1\x6F\x3\x28\x1\x73\x10\x28\x1\x8A\x1\x8B\xA\x28\x1\x97\x1\x98"+ - "\x1\x9A\xF\x28\xA\xFFFF\x1\xAC\x1\xAD\x1\xAE\x1\xB0\x1\xFFFF\x1\xB1\x2"+ - "\x28\x1\xFFFF\x9\x28\x1\xBD\xC\x28\x2\xFFFF\x4\x28\x1\xCE\x1\x28\x1\xD0"+ - "\x1\xD1\x1\xD2\x2\x28\x2\xFFFF\x1\x28\x1\xFFFF\x4\x28\x1\xDA\x2\x28\x1"+ - "\xDD\x9\x28\x3\xFFFF\x1\x28\x2\xFFFF\x1\x28\x1\xEA\x1\xEB\x3\x28\x1\xF0"+ - "\x2\x28\x1\xF3\x1\x28\x1\xFFFF\x4\x28\x1\xF9\x1\xFA\x5\x28\x1\x100\x1"+ - "\x101\x1\x28\x1\x103\x1\x104\x1\xFFFF\x1\x28\x3\xFFFF\x1\x106\x6\x28"+ - "\x1\xFFFF\x1\x10D\x1\x10E\x1\xFFFF\x1\x10F\x1\x110\x1\x28\x1\x112\x3"+ - "\x28\x1\x116\x1\x28\x1\x118\x2\x28\x2\xFFFF\x1\x11B\x1\x11C\x2\x28\x1"+ - "\xFFFF\x2\x28\x1\xFFFF\x1\x121\x2\x28\x1\x124\x1\x125\x2\xFFFF\x1\x126"+ - "\x2\x28\x1\x129\x1\x28\x2\xFFFF\x1\x28\x2\xFFFF\x1\x28\x1\xFFFF\x1\x28"+ - "\x1\x12E\x1\x12F\x1\x28\x1\x131\x1\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1\x134"+ - "\x2\x28\x1\xFFFF\x1\x137\x1\xFFFF\x2\x28\x2\xFFFF\x1\x13A\x3\x28\x1\xFFFF"+ - "\x1\x13E\x1\x13F\x3\xFFFF\x1\x140\x1\x28\x1\xFFFF\x1\x142\x1\x28\x1\x144"+ - "\x1\x145\x2\xFFFF\x1\x28\x1\xFFFF\x1\x147\x1\x28\x1\xFFFF\x1\x149\x1"+ - "\x28\x1\xFFFF\x1\x28\x1\x14C\x1\xFFFF\x3\x28\x3\xFFFF\x1\x150\x1\xFFFF"+ - "\x1\x151\x2\xFFFF\x1\x28\x1\xFFFF\x1\x28\x1\xFFFF\x2\x28\x1\xFFFF\x1"+ - "\x28\x1\x157\x1\x158\x2\xFFFF\x1\x28\x1\x15A\x1\x28\x1\x15C\x1\x28\x2"+ - "\xFFFF\x1\x28\x1\xFFFF\x1\x15F\x1\xFFFF\x1\x160\x1\x161\x3\xFFFF"; - private const string DFA23_eofS = - "\x162\xFFFF"; - private const string DFA23_minS = - "\x1\x9\x1\x6C\x1\x65\x1\x61\x1\x65\x1\x6C\x1\x61\x1\x72\x1\x61\x1\x6E"+ - "\x1\x6F\x1\x65\x1\x61\x1\x65\x1\x62\x1\x72\x1\x69\x1\x65\x1\x61\x1\x6E"+ - "\x1\x65\x1\x68\x1\xFFFF\x4\x3D\x1\x7C\x10\xFFFF\x1\x6C\x1\x64\x1\x24"+ - "\x1\x67\x2\x74\x1\x24\x1\x73\x1\x61\x1\x75\x1\x6C\x1\x73\x1\x65\x1\x70"+ - "\x1\x64\x1\x63\x1\x69\x1\x6C\x1\x74\x1\x6F\x1\x6C\x1\x6F\x1\x76\x2\x24"+ - "\x1\x69\x1\x61\x1\x6B\x1\x78\x1\x6D\x1\x6E\x1\x77\x1\x74\x1\x6C\x1\x6A"+ - "\x3\x24\x1\x74\x1\x6F\x1\x67\x1\x6C\x1\x69\x2\x6D\x1\x6B\x1\x65\x1\x61"+ - "\x1\x69\x1\x64\x1\x72\x1\x65\x1\x74\xA\xFFFF\x4\x24\x1\xFFFF\x1\x24\x1"+ - "\x77\x1\x68\x1\xFFFF\x1\x65\x1\x73\x1\x6E\x1\x65\x1\x63\x1\x74\x1\x6D"+ - "\x1\x65\x1\x74\x1\x24\x1\x61\x2\x73\x1\x63\x1\x6D\x1\x6C\x1\x75\x2\x69"+ - "\x2\x65\x1\x6F\x2\xFFFF\x1\x6E\x1\x64\x1\x74\x1\x65\x1\x24\x1\x62\x3"+ - "\x24\x1\x6C\x1\x65\x2\xFFFF\x1\x65\x1\xFFFF\x1\x65\x1\x70\x1\x68\x1\x65"+ - "\x1\x24\x1\x70\x1\x65\x1\x24\x1\x65\x1\x6E\x1\x69\x1\x65\x1\x6F\x1\x61"+ - "\x1\x73\x1\x6E\x1\x68\x3\xFFFF\x1\x6E\x2\xFFFF\x1\x65\x2\x24\x1\x73\x2"+ - "\x74\x1\x24\x1\x69\x1\x65\x1\x24\x1\x79\x1\xFFFF\x1\x70\x1\x74\x1\x65"+ - "\x1\x68\x2\x24\x1\x70\x1\x6E\x1\x63\x2\x72\x2\x24\x1\x69\x2\x24\x1\xFFFF"+ - "\x1\x65\x3\xFFFF\x1\x24\x1\x63\x2\x72\x1\x65\x1\x74\x1\x63\x1\xFFFF\x2"+ - "\x24\x1\xFFFF\x2\x24\x1\x6C\x1\x24\x1\x6E\x1\x74\x1\x69\x1\x24\x1\x65"+ - "\x1\x24\x1\x64\x1\x65\x2\xFFFF\x2\x24\x1\x65\x1\x6E\x1\xFFFF\x2\x6E\x1"+ - "\xFFFF\x1\x24\x1\x65\x1\x73\x2\x24\x2\xFFFF\x1\x24\x1\x67\x1\x65\x1\x24"+ - "\x1\x74\x2\xFFFF\x1\x6E\x2\xFFFF\x1\x72\x1\xFFFF\x1\x74\x2\x24\x1\x72"+ - "\x1\x24\x1\x74\x4\xFFFF\x1\x69\x1\xFFFF\x1\x24\x1\x65\x1\x6F\x1\xFFFF"+ - "\x1\x24\x1\xFFFF\x1\x69\x1\x6E\x2\xFFFF\x1\x24\x1\x64\x1\x63\x1\x74\x1"+ - "\xFFFF\x2\x24\x3\xFFFF\x1\x24\x1\x73\x1\xFFFF\x1\x24\x1\x67\x2\x24\x2"+ - "\xFFFF\x1\x74\x1\xFFFF\x1\x24\x1\x6E\x1\xFFFF\x1\x24\x1\x6E\x1\xFFFF"+ - "\x1\x6E\x1\x24\x1\xFFFF\x1\x69\x1\x74\x1\x73\x3\xFFFF\x1\x24\x1\xFFFF"+ - "\x1\x24\x2\xFFFF\x1\x69\x1\xFFFF\x1\x67\x1\xFFFF\x1\x65\x1\x67\x1\xFFFF"+ - "\x1\x6E\x2\x24\x2\xFFFF\x1\x65\x1\x24\x1\x64\x1\x24\x1\x67\x2\xFFFF\x1"+ - "\x73\x1\xFFFF\x1\x24\x1\xFFFF\x2\x24\x3\xFFFF"; - private const string DFA23_maxS = - "\x1\xFFFE\x1\x76\x1\x79\x1\x6F\x1\x69\x1\x78\x1\x75\x1\x72\x1\x61\x1"+ - "\x73\x1\x6F\x2\x69\x2\x75\x1\x72\x1\x69\x1\x75\x1\x72\x1\x70\x1\x65\x1"+ - "\x69\x1\xFFFF\x1\x3E\x3\x3D\x1\x7C\x10\xFFFF\x1\x6C\x1\x79\x1\xFFFE\x1"+ - "\x67\x2\x74\x1\xFFFE\x1\x73\x1\x61\x1\x75\x3\x73\x1\x70\x1\x64\x1\x63"+ - "\x1\x69\x1\x6C\x1\x74\x1\x6F\x1\x6C\x1\x6F\x1\x76\x2\xFFFE\x1\x69\x1"+ - "\x66\x1\x6B\x1\x78\x1\x6D\x1\x6E\x1\x77\x1\x74\x1\x6C\x1\x6A\x3\xFFFE"+ - "\x1\x74\x1\x6F\x1\x67\x1\x74\x1\x69\x2\x6D\x1\x6B\x1\x65\x1\x75\x1\x69"+ - "\x1\x64\x1\x72\x1\x65\x1\x74\xA\xFFFF\x4\xFFFE\x1\xFFFF\x1\xFFFE\x1\x77"+ - "\x1\x68\x1\xFFFF\x1\x65\x1\x73\x1\x6E\x1\x65\x1\x63\x1\x74\x1\x6D\x1"+ - "\x65\x1\x74\x1\xFFFE\x1\x61\x2\x73\x1\x63\x1\x6D\x1\x6C\x1\x75\x2\x69"+ - "\x2\x65\x1\x6F\x2\xFFFF\x1\x6E\x1\x64\x1\x74\x1\x65\x1\xFFFE\x1\x62\x3"+ - "\xFFFE\x1\x6C\x1\x65\x2\xFFFF\x1\x65\x1\xFFFF\x1\x65\x1\x70\x1\x68\x1"+ - "\x65\x1\xFFFE\x1\x70\x1\x65\x1\xFFFE\x1\x65\x1\x6E\x1\x69\x1\x65\x1\x6F"+ - "\x1\x61\x1\x73\x1\x72\x1\x68\x3\xFFFF\x1\x6E\x2\xFFFF\x1\x65\x2\xFFFE"+ - "\x1\x73\x2\x74\x1\xFFFE\x1\x69\x1\x65\x1\xFFFE\x1\x79\x1\xFFFF\x1\x70"+ - "\x1\x74\x1\x65\x1\x68\x2\xFFFE\x1\x70\x1\x6E\x1\x63\x2\x72\x2\xFFFE\x1"+ - "\x69\x2\xFFFE\x1\xFFFF\x1\x65\x3\xFFFF\x1\xFFFE\x1\x63\x2\x72\x1\x65"+ - "\x1\x74\x1\x63\x1\xFFFF\x2\xFFFE\x1\xFFFF\x2\xFFFE\x1\x6C\x1\xFFFE\x1"+ - "\x6E\x1\x74\x1\x69\x1\xFFFE\x1\x65\x1\xFFFE\x1\x64\x1\x65\x2\xFFFF\x2"+ - "\xFFFE\x1\x65\x1\x6E\x1\xFFFF\x2\x6E\x1\xFFFF\x1\xFFFE\x1\x65\x1\x73"+ - "\x2\xFFFE\x2\xFFFF\x1\xFFFE\x1\x67\x1\x65\x1\xFFFE\x1\x74\x2\xFFFF\x1"+ - "\x6E\x2\xFFFF\x1\x72\x1\xFFFF\x1\x74\x2\xFFFE\x1\x72\x1\xFFFE\x1\x74"+ - "\x4\xFFFF\x1\x69\x1\xFFFF\x1\xFFFE\x1\x65\x1\x6F\x1\xFFFF\x1\xFFFE\x1"+ - "\xFFFF\x1\x69\x1\x6E\x2\xFFFF\x1\xFFFE\x1\x64\x1\x63\x1\x74\x1\xFFFF"+ - "\x2\xFFFE\x3\xFFFF\x1\xFFFE\x1\x73\x1\xFFFF\x1\xFFFE\x1\x67\x2\xFFFE"+ - "\x2\xFFFF\x1\x74\x1\xFFFF\x1\xFFFE\x1\x6E\x1\xFFFF\x1\xFFFE\x1\x6E\x1"+ - "\xFFFF\x1\x6E\x1\xFFFE\x1\xFFFF\x1\x69\x1\x74\x1\x73\x3\xFFFF\x1\xFFFE"+ - "\x1\xFFFF\x1\xFFFE\x2\xFFFF\x1\x69\x1\xFFFF\x1\x67\x1\xFFFF\x1\x65\x1"+ - "\x67\x1\xFFFF\x1\x6E\x2\xFFFE\x2\xFFFF\x1\x65\x1\xFFFE\x1\x64\x1\xFFFE"+ - "\x1\x67\x2\xFFFF\x1\x73\x1\xFFFF\x1\xFFFE\x1\xFFFF\x2\xFFFE\x3\xFFFF"; - private const string DFA23_acceptS = - "\x16\xFFFF\x1\x45\x5\xFFFF\x1\x4E\x1\x50\x1\x51\x1\x52\x1\x53\x1\x54"+ - "\x1\x56\x1\x57\x1\x58\x1\x59\x1\x5A\x1\x5B\x1\x5C\x1\x5D\x1\x5E\x1\x5F"+ - "\x35\xFFFF\x1\x48\x1\x4A\x1\x46\x1\x4B\x1\x47\x1\x49\x1\x4F\x1\x4D\x1"+ - "\x55\x1\x4C\x4\xFFFF\x1\x4\x3\xFFFF\x1\x25\x16\xFFFF\x1\x1B\x1\x20\xB"+ - "\xFFFF\x1\x2D\x1\x2E\x1\xFFFF\x1\x2F\x11\xFFFF\x1\x1\x1\x2\x1\x3\x1\xFFFF"+ - "\x1\x5\x1\x6\xB\xFFFF\x1\x12\x10\xFFFF\x1\x26\x1\xFFFF\x1\x28\x1\x29"+ - "\x1\x2A\x7\xFFFF\x1\x35\x2\xFFFF\x1\x38\xC\xFFFF\x1\x8\x1\x9\x4\xFFFF"+ - "\x1\xD\x2\xFFFF\x1\x10\x5\xFFFF\x1\x17\x1\x18\x5\xFFFF\x1\x1F\x1\x21"+ - "\x1\xFFFF\x1\x23\x1\x24\x1\xFFFF\x1\x2B\x6\xFFFF\x1\x36\x1\x37\x1\x39"+ - "\x1\x3A\x1\xFFFF\x1\x3C\x3\xFFFF\x1\x40\x1\xFFFF\x1\x42\x2\xFFFF\x1\xA"+ - "\x1\xB\x4\xFFFF\x1\x11\x2\xFFFF\x1\x15\x1\x16\x1\x19\x2\xFFFF\x1\x1D"+ - "\x4\xFFFF\x1\x30\x1\x31\x1\xFFFF\x1\x33\x2\xFFFF\x1\x3D\x2\xFFFF\x1\x41"+ - "\x2\xFFFF\x1\xC\x3\xFFFF\x1\x13\x1\x14\x1\x1A\x1\xFFFF\x1\x1E\x1\xFFFF"+ - "\x1\x27\x1\x2C\x1\xFFFF\x1\x34\x1\xFFFF\x1\x3E\x2\xFFFF\x1\x7\x3\xFFFF"+ - "\x1\x1C\x1\x22\x5\xFFFF\x1\xE\x1\xF\x1\xFFFF\x1\x3B\x1\xFFFF\x1\x43\x2"+ - "\xFFFF\x1\x3F\x1\x44\x1\x32"; - private const string DFA23_specialS = - "\x162\xFFFF}>"; - private static readonly string[] DFA23_transitionS = - { - "\x2\x2A\x2\xFFFF\x1\x2A\x12\xFFFF\x1\x2A\x1\x19\x2\xFFFF\x1\x28\x1\xFFFF"+ - "\x1\x1C\x1\x29\x1\x1E\x1\x1F\x1\x24\x1\x22\x1\x1D\x1\x23\x1\x2B\x1\x25"+ - "\xA\x2B\x1\x26\x1\xFFFF\x1\x17\x1\x16\x1\x18\x1\x27\x1\xFFFF\x1A\x28"+ - "\x1\x20\x1\xFFFF\x1\x21\x1\x1A\x1\x28\x1\xFFFF\x1\x1\x1\x2\x1\x3\x1"+ - "\x4\x1\x5\x1\x6\x1\x7\x1\x8\x1\x9\x1\xA\x1\x28\x1\xB\x1\xC\x1\xD\x1"+ - "\xE\x1\xF\x1\x28\x1\x10\x1\x11\x1\x12\x1\x13\x1\x14\x1\x15\x3\x28\x1"+ - "\xFFFF\x1\x1B\x3\xFFFF\xFF7F\x28", - "\x1\x2C\x1\xFFFF\x1\x2D\x4\xFFFF\x1\x2E\x2\xFFFF\x1\x2F", - "\x1\x30\x9\xFFFF\x1\x31\x9\xFFFF\x1\x32", - "\x1\x33\xA\xFFFF\x1\x34\x2\xFFFF\x1\x35", - "\x1\x36\x3\xFFFF\x1\x37", - "\x1\x38\x1\x39\x1\x3A\x4\xFFFF\x1\x3B\x4\xFFFF\x1\x3C", - "\x1\x3D\x3\xFFFF\x1\x3E\xC\xFFFF\x1\x3F\x2\xFFFF\x1\x40", - "\x1\x41", - "\x1\x42", - "\x1\x43\x4\xFFFF\x1\x44", - "\x1\x45", - "\x1\x46\x3\xFFFF\x1\x47", - "\x1\x48\x3\xFFFF\x1\x49\x3\xFFFF\x1\x4A", - "\x1\x4B\x9\xFFFF\x1\x4C\x5\xFFFF\x1\x4D", - "\x1\x4E\x3\xFFFF\x1\x4F\x7\xFFFF\x1\x50\x3\xFFFF\x1\x51\x2\xFFFF\x1"+ - "\x52", - "\x1\x53", - "\x1\x54", - "\x1\x55\x5\xFFFF\x1\x56\x3\xFFFF\x1\x57\x5\xFFFF\x1\x58", - "\x1\x59\x6\xFFFF\x1\x5A\x9\xFFFF\x1\x5B", - "\x1\x5C\x1\xFFFF\x1\x5D", - "\x1\x5E", - "\x1\x5F\x1\x60", - "", - "\x1\x62\x1\x61", - "\x1\x64", - "\x1\x66", - "\x1\x66", - "\x1\x69", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "\x1\x6B", - "\x1\x6C\x14\xFFFF\x1\x6D", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x2"+ - "\x28\x1\x6E\x17\x28\x5\xFFFF\xFF7F\x28", - "\x1\x70", - "\x1\x71", - "\x1\x72", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x74", - "\x1\x75", - "\x1\x76", - "\x1\x77\x6\xFFFF\x1\x78", - "\x1\x79", - "\x1\x7A\xD\xFFFF\x1\x7B", - "\x1\x7C", - "\x1\x7D", - "\x1\x7E", - "\x1\x7F", - "\x1\x80", - "\x1\x81", - "\x1\x82", - "\x1\x83", - "\x1\x84", - "\x1\x85", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x3"+ - "\x28\x1\x86\x9\x28\x1\x87\x4\x28\x1\x88\x1\x89\x6\x28\x5\xFFFF\xFF7F"+ - "\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x8C", - "\x1\x8D\x4\xFFFF\x1\x8E", - "\x1\x8F", - "\x1\x90", - "\x1\x91", - "\x1\x92", - "\x1\x93", - "\x1\x94", - "\x1\x95", - "\x1\x96", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x3"+ - "\x28\x1\x99\x16\x28\x5\xFFFF\xFF7F\x28", - "\x1\x9B", - "\x1\x9C", - "\x1\x9D", - "\x1\x9E\x7\xFFFF\x1\x9F", - "\x1\xA0", - "\x1\xA1", - "\x1\xA2", - "\x1\xA3", - "\x1\xA4", - "\x1\xA5\x13\xFFFF\x1\xA6", - "\x1\xA7", - "\x1\xA8", - "\x1\xA9", - "\x1\xAA", - "\x1\xAB", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x4"+ - "\x28\x1\xAF\x15\x28\x5\xFFFF\xFF7F\x28", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\xB2", - "\x1\xB3", - "", - "\x1\xB4", - "\x1\xB5", - "\x1\xB6", - "\x1\xB7", - "\x1\xB8", - "\x1\xB9", - "\x1\xBA", - "\x1\xBB", - "\x1\xBC", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\xBE", - "\x1\xBF", - "\x1\xC0", - "\x1\xC1", - "\x1\xC2", - "\x1\xC3", - "\x1\xC4", - "\x1\xC5", - "\x1\xC6", - "\x1\xC7", - "\x1\xC8", - "\x1\xC9", - "", - "", - "\x1\xCA", - "\x1\xCB", - "\x1\xCC", - "\x1\xCD", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\xCF", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\xD3", - "\x1\xD4", - "", - "", - "\x1\xD5", - "", - "\x1\xD6", - "\x1\xD7", - "\x1\xD8", - "\x1\xD9", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\xDB", - "\x1\xDC", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\xDE", - "\x1\xDF", - "\x1\xE0", - "\x1\xE1", - "\x1\xE2", - "\x1\xE3", - "\x1\xE4", - "\x1\xE5\x3\xFFFF\x1\xE6", - "\x1\xE7", - "", - "", - "", - "\x1\xE8", - "", - "", - "\x1\xE9", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\xEC", - "\x1\xED", - "\x1\xEE", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x4"+ - "\x28\x1\xEF\x15\x28\x5\xFFFF\xFF7F\x28", - "\x1\xF1", - "\x1\xF2", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\xF4", - "", - "\x1\xF5", - "\x1\xF6", - "\x1\xF7", - "\x1\xF8", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\xFB", - "\x1\xFC", - "\x1\xFD", - "\x1\xFE", - "\x1\xFF", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x102", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "", - "\x1\x105", - "", - "", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x107", - "\x1\x108", - "\x1\x109", - "\x1\x10A", - "\x1\x10B", - "\x1\x10C", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x111", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x113", - "\x1\x114", - "\x1\x115", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x117", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x119", - "\x1\x11A", - "", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x11D", - "\x1\x11E", - "", - "\x1\x11F", - "\x1\x120", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x122", - "\x1\x123", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x127", - "\x1\x128", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x12A", - "", - "", - "\x1\x12B", - "", - "", - "\x1\x12C", - "", - "\x1\x12D", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x130", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x132", - "", - "", - "", - "", - "\x1\x133", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x135", - "\x1\x136", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "", - "\x1\x138", - "\x1\x139", - "", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x13B", - "\x1\x13C", - "\x1\x13D", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "", - "", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x141", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x143", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "", - "", - "\x1\x146", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x148", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x14A", - "", - "\x1\x14B", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "", - "\x1\x14D", - "\x1\x14E", - "\x1\x14F", - "", - "", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "", - "", - "\x1\x152", - "", - "\x1\x153", - "", - "\x1\x154", - "\x1\x155", - "", - "\x1\x156", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "", - "", - "\x1\x159", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x15B", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x15D", - "", - "", - "\x1\x15E", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "\x1\x28\xB\xFFFF\xA\x28\x7\xFFFF\x1A\x28\x4\xFFFF\x1\x28\x1\xFFFF\x1A"+ - "\x28\x5\xFFFF\xFF7F\x28", - "", - "", - "" - }; - - private static readonly short[] DFA23_eot = DFA.UnpackEncodedString(DFA23_eotS); - private static readonly short[] DFA23_eof = DFA.UnpackEncodedString(DFA23_eofS); - private static readonly char[] DFA23_min = DFA.UnpackEncodedStringToUnsignedChars(DFA23_minS); - private static readonly char[] DFA23_max = DFA.UnpackEncodedStringToUnsignedChars(DFA23_maxS); - private static readonly short[] DFA23_accept = DFA.UnpackEncodedString(DFA23_acceptS); - private static readonly short[] DFA23_special = DFA.UnpackEncodedString(DFA23_specialS); - private static readonly short[][] DFA23_transition; - - static DFA23() - { - int numStates = DFA23_transitionS.Length; - DFA23_transition = new short[numStates][]; - for ( int i=0; i < numStates; i++ ) - { - DFA23_transition[i] = DFA.UnpackEncodedString(DFA23_transitionS[i]); - } - } - - public DFA23( BaseRecognizer recognizer ) - { - this.recognizer = recognizer; - this.decisionNumber = 23; - this.eot = DFA23_eot; - this.eof = DFA23_eof; - this.min = DFA23_min; - this.max = DFA23_max; - this.accept = DFA23_accept; - this.special = DFA23_special; - this.transition = DFA23_transition; - } - - public override string Description { get { return "1:1: Tokens : ( ALL | AND | ANY | AS | ASCENDING | AVG | BETWEEN | BOTH | CASE | CLASS | COUNT | DELETE | DESCENDING | DISTINCT | ELEMENTS | ELSE | EMPTY | END | ESCAPE | EXISTS | FALSE | FETCH | FROM | FULL | GROUP | HAVING | IN | INDICES | INNER | INSERT | INTO | IS | JOIN | LEADING | LEFT | LIKE | LITERAL_by | MAX | MEMBER | MIN | NEW | NOT | NULL | OBJECT | OF | ON | OR | ORDER | OUTER | PROPERTIES | RIGHT | SELECT | SET | SKIP | SOME | SUM | TAKE | THEN | TRAILING | TRUE | UNION | UPDATE | VERSIONED | WHEN | WHERE | WITH | T__133 | T__134 | EQ | LT | GT | SQL_NE | NE | LE | GE | BOR | BXOR | BAND | BNOT | COMMA | OPEN | CLOSE | OPEN_BRACKET | CLOSE_BRACKET | CONCAT | PLUS | MINUS | STAR | DIV | COLON | PARAM | IDENT | QUOTED_String | WS | NUM_INT );"; } } - - public override void Error(NoViableAltException nvae) - { - DebugRecognitionException(nvae); - } - } - - - #endregion - -} - -} // namespace NHibernate.Hql.Ast.ANTLR diff --git a/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs b/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs deleted file mode 100644 index d65fa12da8a..00000000000 --- a/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs +++ /dev/null @@ -1,12654 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// ANTLR Version: 3.5.0.2 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -// $ANTLR 3.5.0.2 Hql.g 2015-05-03 23:15:27 - -// The variable 'variable' is assigned but its value is never used. -#pragma warning disable 219 -// Unreachable code detected. -#pragma warning disable 162 -// Missing XML comment for publicly visible type or member 'Type_or_Member' -#pragma warning disable 1591 -// CLS compliance checking will not be performed on 'type' because it is not visible from outside this assembly. -#pragma warning disable 3019 - - -using NHibernate.Hql.Ast.ANTLR.Tree; - - -using System.Collections.Generic; -using Antlr.Runtime; -using Antlr.Runtime.Misc; - - -using Antlr.Runtime.Tree; -using RewriteRuleITokenStream = Antlr.Runtime.Tree.RewriteRuleTokenStream; - -namespace NHibernate.Hql.Ast.ANTLR -{ -[System.CodeDom.Compiler.GeneratedCode("ANTLR", "3.5.0.2")] -[System.CLSCompliant(false)] -public partial class HqlParser : Antlr.Runtime.Parser -{ - internal static readonly string[] tokenNames = new string[] { - "", "", "", "", "AGGREGATE", "ALIAS", "ALL", "AND", "ANY", "AS", "ASCENDING", "AVG", "BAND", "BETWEEN", "BNOT", "BOR", "BOTH", "BXOR", "CASE", "CASE2", "CLASS", "CLOSE", "CLOSE_BRACKET", "COLON", "COMMA", "CONCAT", "CONSTANT", "CONSTRUCTOR", "COUNT", "DELETE", "DESCENDING", "DISTINCT", "DIV", "DOT", "ELEMENTS", "ELSE", "EMPTY", "END", "EQ", "ESCAPE", "ESCqs", "EXISTS", "EXPONENT", "EXPR_LIST", "FALSE", "FETCH", "FILTER_ENTITY", "FLOAT_SUFFIX", "FROM", "FULL", "GE", "GROUP", "GT", "HAVING", "HEX_DIGIT", "IDENT", "ID_LETTER", "ID_START_LETTER", "IN", "INDEX_OP", "INDICES", "INNER", "INSERT", "INTO", "IN_LIST", "IS", "IS_NOT_NULL", "IS_NULL", "JAVA_CONSTANT", "JOIN", "LE", "LEADING", "LEFT", "LIKE", "LITERAL_by", "LT", "MAX", "MEMBER", "METHOD_CALL", "MIN", "MINUS", "NE", "NEW", "NOT", "NOT_BETWEEN", "NOT_IN", "NOT_LIKE", "NULL", "NUM_DECIMAL", "NUM_DOUBLE", "NUM_FLOAT", "NUM_INT", "NUM_LONG", "OBJECT", "OF", "ON", "OPEN", "OPEN_BRACKET", "OR", "ORDER", "ORDER_ELEMENT", "OUTER", "PARAM", "PLUS", "PROPERTIES", "QUERY", "QUOTED_String", "RANGE", "RIGHT", "ROW_STAR", "SELECT", "SELECT_FROM", "SET", "SKIP", "SOME", "SQL_NE", "STAR", "SUM", "TAKE", "THEN", "TRAILING", "TRUE", "UNARY_MINUS", "UNARY_PLUS", "UNION", "UPDATE", "VECTOR_EXPR", "VERSIONED", "WEIRD_IDENT", "WHEN", "WHERE", "WITH", "WS", "'ascending'", "'descending'" - }; - public const int EOF=-1; - public const int AGGREGATE=4; - public const int ALIAS=5; - public const int ALL=6; - public const int AND=7; - public const int ANY=8; - public const int AS=9; - public const int ASCENDING=10; - public const int AVG=11; - public const int BAND=12; - public const int BETWEEN=13; - public const int BNOT=14; - public const int BOR=15; - public const int BOTH=16; - public const int BXOR=17; - public const int CASE=18; - public const int CASE2=19; - public const int CLASS=20; - public const int CLOSE=21; - public const int CLOSE_BRACKET=22; - public const int COLON=23; - public const int COMMA=24; - public const int CONCAT=25; - public const int CONSTANT=26; - public const int CONSTRUCTOR=27; - public const int COUNT=28; - public const int DELETE=29; - public const int DESCENDING=30; - public const int DISTINCT=31; - public const int DIV=32; - public const int DOT=33; - public const int ELEMENTS=34; - public const int ELSE=35; - public const int EMPTY=36; - public const int END=37; - public const int EQ=38; - public const int ESCAPE=39; - public const int ESCqs=40; - public const int EXISTS=41; - public const int EXPONENT=42; - public const int EXPR_LIST=43; - public const int FALSE=44; - public const int FETCH=45; - public const int FILTER_ENTITY=46; - public const int FLOAT_SUFFIX=47; - public const int FROM=48; - public const int FULL=49; - public const int GE=50; - public const int GROUP=51; - public const int GT=52; - public const int HAVING=53; - public const int HEX_DIGIT=54; - public const int IDENT=55; - public const int ID_LETTER=56; - public const int ID_START_LETTER=57; - public const int IN=58; - public const int INDEX_OP=59; - public const int INDICES=60; - public const int INNER=61; - public const int INSERT=62; - public const int INTO=63; - public const int IN_LIST=64; - public const int IS=65; - public const int IS_NOT_NULL=66; - public const int IS_NULL=67; - public const int JAVA_CONSTANT=68; - public const int JOIN=69; - public const int LE=70; - public const int LEADING=71; - public const int LEFT=72; - public const int LIKE=73; - public const int LITERAL_by=74; - public const int LT=75; - public const int MAX=76; - public const int MEMBER=77; - public const int METHOD_CALL=78; - public const int MIN=79; - public const int MINUS=80; - public const int NE=81; - public const int NEW=82; - public const int NOT=83; - public const int NOT_BETWEEN=84; - public const int NOT_IN=85; - public const int NOT_LIKE=86; - public const int NULL=87; - public const int NUM_DECIMAL=88; - public const int NUM_DOUBLE=89; - public const int NUM_FLOAT=90; - public const int NUM_INT=91; - public const int NUM_LONG=92; - public const int OBJECT=93; - public const int OF=94; - public const int ON=95; - public const int OPEN=96; - public const int OPEN_BRACKET=97; - public const int OR=98; - public const int ORDER=99; - public const int ORDER_ELEMENT=100; - public const int OUTER=101; - public const int PARAM=102; - public const int PLUS=103; - public const int PROPERTIES=104; - public const int QUERY=105; - public const int QUOTED_String=106; - public const int RANGE=107; - public const int RIGHT=108; - public const int ROW_STAR=109; - public const int SELECT=110; - public const int SELECT_FROM=111; - public const int SET=112; - public const int SKIP=113; - public const int SOME=114; - public const int SQL_NE=115; - public const int STAR=116; - public const int SUM=117; - public const int TAKE=118; - public const int THEN=119; - public const int TRAILING=120; - public const int TRUE=121; - public const int UNARY_MINUS=122; - public const int UNARY_PLUS=123; - public const int UNION=124; - public const int UPDATE=125; - public const int VECTOR_EXPR=126; - public const int VERSIONED=127; - public const int WEIRD_IDENT=128; - public const int WHEN=129; - public const int WHERE=130; - public const int WITH=131; - public const int WS=132; - public const int T__133=133; - public const int T__134=134; - - public HqlParser(ITokenStream input) - : this(input, new RecognizerSharedState()) - { - } - public HqlParser(ITokenStream input, RecognizerSharedState state) - : base(input, state) - { - ITreeAdaptor treeAdaptor = default(ITreeAdaptor); - CreateTreeAdaptor(ref treeAdaptor); - TreeAdaptor = treeAdaptor ?? new CommonTreeAdaptor(); - OnCreated(); - } - // Implement this function in your helper file to use a custom tree adaptor - partial void CreateTreeAdaptor(ref ITreeAdaptor adaptor); - - private ITreeAdaptor adaptor; - - public ITreeAdaptor TreeAdaptor - { - get - { - return adaptor; - } - - set - { - this.adaptor = value; - } - } - - public override string[] TokenNames { get { return HqlParser.tokenNames; } } - public override string GrammarFileName { get { return "Hql.g"; } } - - - partial void OnCreated(); - partial void EnterRule(string ruleName, int ruleIndex); - partial void LeaveRule(string ruleName, int ruleIndex); - - #region Rules - partial void EnterRule_statement(); - partial void LeaveRule_statement(); - // $ANTLR start "statement" - // Hql.g:129:8: public statement : ({...}? ( updateStatement | deleteStatement | insertStatement ) | selectStatement ) EOF !; - [GrammarRule("statement")] - public AstParserRuleReturnScope statement() - { - EnterRule_statement(); - EnterRule("statement", 1); - TraceIn("statement", 1); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken EOF5 = default(IToken); - AstParserRuleReturnScope updateStatement1 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope deleteStatement2 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope insertStatement3 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope selectStatement4 = default(AstParserRuleReturnScope); - - IASTNode EOF5_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "statement"); - DebugLocation(129, 1); - try - { - // Hql.g:130:2: ( ({...}? ( updateStatement | deleteStatement | insertStatement ) | selectStatement ) EOF !) - DebugEnterAlt(1); - // Hql.g:131:2: ({...}? ( updateStatement | deleteStatement | insertStatement ) | selectStatement ) EOF ! - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(131, 2); - // Hql.g:131:2: ({...}? ( updateStatement | deleteStatement | insertStatement ) | selectStatement ) - int alt2=2; - try { DebugEnterSubRule(2); - try { DebugEnterDecision(2, false); - int LA2_1 = input.LA(1); - - if ((LA2_1==DELETE||LA2_1==INSERT||LA2_1==UPDATE)) - { - alt2 = 1; - } - else if ((LA2_1==EOF||LA2_1==FROM||LA2_1==GROUP||LA2_1==HAVING||LA2_1==ORDER||LA2_1==SELECT||LA2_1==SKIP||LA2_1==TAKE||LA2_1==WHERE)) - { - alt2 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 2, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(2); } - switch (alt2) - { - case 1: - DebugEnterAlt(1); - // Hql.g:132:3: {...}? ( updateStatement | deleteStatement | insertStatement ) - { - DebugLocation(132, 3); - if (!(( !filter ))) - { - throw new FailedPredicateException(input, "statement", " !filter "); - } - DebugLocation(132, 16); - // Hql.g:132:16: ( updateStatement | deleteStatement | insertStatement ) - int alt1=3; - try { DebugEnterSubRule(1); - try { DebugEnterDecision(1, false); - switch (input.LA(1)) - { - case UPDATE: - { - alt1 = 1; - } - break; - case DELETE: - { - alt1 = 2; - } - break; - case INSERT: - { - alt1 = 3; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 1, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(1); } - switch (alt1) - { - case 1: - DebugEnterAlt(1); - // Hql.g:132:18: updateStatement - { - DebugLocation(132, 18); - PushFollow(Follow._updateStatement_in_statement620); - updateStatement1=updateStatement(); - PopFollow(); - - adaptor.AddChild(root_0, updateStatement1.Tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:132:36: deleteStatement - { - DebugLocation(132, 36); - PushFollow(Follow._deleteStatement_in_statement624); - deleteStatement2=deleteStatement(); - PopFollow(); - - adaptor.AddChild(root_0, deleteStatement2.Tree); - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:132:54: insertStatement - { - DebugLocation(132, 54); - PushFollow(Follow._insertStatement_in_statement628); - insertStatement3=insertStatement(); - PopFollow(); - - adaptor.AddChild(root_0, insertStatement3.Tree); - - } - break; - - } - } finally { DebugExitSubRule(1); } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:133:5: selectStatement - { - DebugLocation(133, 5); - PushFollow(Follow._selectStatement_in_statement637); - selectStatement4=selectStatement(); - PopFollow(); - - adaptor.AddChild(root_0, selectStatement4.Tree); - - } - break; - - } - } finally { DebugExitSubRule(2); } - - DebugLocation(134, 7); - EOF5=(IToken)Match(input,EOF,Follow._EOF_in_statement642); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("statement", 1); - LeaveRule("statement", 1); - LeaveRule_statement(); - } - DebugLocation(135, 1); - } finally { DebugExitRule(GrammarFileName, "statement"); } - return retval; - - } - // $ANTLR end "statement" - - partial void EnterRule_updateStatement(); - partial void LeaveRule_updateStatement(); - // $ANTLR start "updateStatement" - // Hql.g:137:1: updateStatement : UPDATE ^ ( VERSIONED )? optionalFromTokenFromClause setClause ( whereClause )? ; - [GrammarRule("updateStatement")] - private AstParserRuleReturnScope updateStatement() - { - EnterRule_updateStatement(); - EnterRule("updateStatement", 2); - TraceIn("updateStatement", 2); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken UPDATE6 = default(IToken); - IToken VERSIONED7 = default(IToken); - AstParserRuleReturnScope optionalFromTokenFromClause8 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope setClause9 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope whereClause10 = default(AstParserRuleReturnScope); - - IASTNode UPDATE6_tree = default(IASTNode); - IASTNode VERSIONED7_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "updateStatement"); - DebugLocation(137, 1); - try - { - // Hql.g:138:2: ( UPDATE ^ ( VERSIONED )? optionalFromTokenFromClause setClause ( whereClause )? ) - DebugEnterAlt(1); - // Hql.g:138:4: UPDATE ^ ( VERSIONED )? optionalFromTokenFromClause setClause ( whereClause )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(138, 10); - UPDATE6=(IToken)Match(input,UPDATE,Follow._UPDATE_in_updateStatement654); - UPDATE6_tree = (IASTNode)adaptor.Create(UPDATE6); - root_0 = (IASTNode)adaptor.BecomeRoot(UPDATE6_tree, root_0); - DebugLocation(138, 12); - // Hql.g:138:12: ( VERSIONED )? - int alt3=2; - try { DebugEnterSubRule(3); - try { DebugEnterDecision(3, false); - int LA3_1 = input.LA(1); - - if ((LA3_1==VERSIONED)) - { - alt3 = 1; - } - } finally { DebugExitDecision(3); } - switch (alt3) - { - case 1: - DebugEnterAlt(1); - // Hql.g:138:13: VERSIONED - { - DebugLocation(138, 13); - VERSIONED7=(IToken)Match(input,VERSIONED,Follow._VERSIONED_in_updateStatement658); - VERSIONED7_tree = (IASTNode)adaptor.Create(VERSIONED7); - adaptor.AddChild(root_0, VERSIONED7_tree); - - } - break; - - } - } finally { DebugExitSubRule(3); } - - DebugLocation(139, 3); - PushFollow(Follow._optionalFromTokenFromClause_in_updateStatement664); - optionalFromTokenFromClause8=optionalFromTokenFromClause(); - PopFollow(); - - adaptor.AddChild(root_0, optionalFromTokenFromClause8.Tree); - DebugLocation(140, 3); - PushFollow(Follow._setClause_in_updateStatement668); - setClause9=setClause(); - PopFollow(); - - adaptor.AddChild(root_0, setClause9.Tree); - DebugLocation(141, 3); - // Hql.g:141:3: ( whereClause )? - int alt4=2; - try { DebugEnterSubRule(4); - try { DebugEnterDecision(4, false); - int LA4_1 = input.LA(1); - - if ((LA4_1==WHERE)) - { - alt4 = 1; - } - } finally { DebugExitDecision(4); } - switch (alt4) - { - case 1: - DebugEnterAlt(1); - // Hql.g:141:4: whereClause - { - DebugLocation(141, 4); - PushFollow(Follow._whereClause_in_updateStatement673); - whereClause10=whereClause(); - PopFollow(); - - adaptor.AddChild(root_0, whereClause10.Tree); - - } - break; - - } - } finally { DebugExitSubRule(4); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("updateStatement", 2); - LeaveRule("updateStatement", 2); - LeaveRule_updateStatement(); - } - DebugLocation(142, 1); - } finally { DebugExitRule(GrammarFileName, "updateStatement"); } - return retval; - - } - // $ANTLR end "updateStatement" - - partial void EnterRule_setClause(); - partial void LeaveRule_setClause(); - // $ANTLR start "setClause" - // Hql.g:144:1: setClause : ( SET ^ assignment ( COMMA ! assignment )* ) ; - [GrammarRule("setClause")] - private AstParserRuleReturnScope setClause() - { - EnterRule_setClause(); - EnterRule("setClause", 3); - TraceIn("setClause", 3); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken SET11 = default(IToken); - IToken COMMA13 = default(IToken); - AstParserRuleReturnScope assignment12 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope assignment14 = default(AstParserRuleReturnScope); - - IASTNode SET11_tree = default(IASTNode); - IASTNode COMMA13_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "setClause"); - DebugLocation(144, 1); - try - { - // Hql.g:145:2: ( ( SET ^ assignment ( COMMA ! assignment )* ) ) - DebugEnterAlt(1); - // Hql.g:145:4: ( SET ^ assignment ( COMMA ! assignment )* ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(145, 4); - // Hql.g:145:4: ( SET ^ assignment ( COMMA ! assignment )* ) - DebugEnterAlt(1); - // Hql.g:145:5: SET ^ assignment ( COMMA ! assignment )* - { - DebugLocation(145, 8); - SET11=(IToken)Match(input,SET,Follow._SET_in_setClause687); - SET11_tree = (IASTNode)adaptor.Create(SET11); - root_0 = (IASTNode)adaptor.BecomeRoot(SET11_tree, root_0); - DebugLocation(145, 10); - PushFollow(Follow._assignment_in_setClause690); - assignment12=assignment(); - PopFollow(); - - adaptor.AddChild(root_0, assignment12.Tree); - DebugLocation(145, 21); - // Hql.g:145:21: ( COMMA ! assignment )* - try { DebugEnterSubRule(5); - while (true) - { - int alt5=2; - try { DebugEnterDecision(5, false); - int LA5_1 = input.LA(1); - - if ((LA5_1==COMMA)) - { - alt5 = 1; - } - - - } finally { DebugExitDecision(5); } - switch ( alt5 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:145:22: COMMA ! assignment - { - DebugLocation(145, 27); - COMMA13=(IToken)Match(input,COMMA,Follow._COMMA_in_setClause693); - DebugLocation(145, 29); - PushFollow(Follow._assignment_in_setClause696); - assignment14=assignment(); - PopFollow(); - - adaptor.AddChild(root_0, assignment14.Tree); - - } - break; - - default: - goto loop5; - } - } - - loop5: - ; - - } finally { DebugExitSubRule(5); } - - - } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("setClause", 3); - LeaveRule("setClause", 3); - LeaveRule_setClause(); - } - DebugLocation(146, 1); - } finally { DebugExitRule(GrammarFileName, "setClause"); } - return retval; - - } - // $ANTLR end "setClause" - - partial void EnterRule_assignment(); - partial void LeaveRule_assignment(); - // $ANTLR start "assignment" - // Hql.g:148:1: assignment : stateField EQ ^ newValue ; - [GrammarRule("assignment")] - private AstParserRuleReturnScope assignment() - { - EnterRule_assignment(); - EnterRule("assignment", 4); - TraceIn("assignment", 4); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken EQ16 = default(IToken); - AstParserRuleReturnScope stateField15 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope newValue17 = default(AstParserRuleReturnScope); - - IASTNode EQ16_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "assignment"); - DebugLocation(148, 1); - try - { - // Hql.g:149:2: ( stateField EQ ^ newValue ) - DebugEnterAlt(1); - // Hql.g:149:4: stateField EQ ^ newValue - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(149, 4); - PushFollow(Follow._stateField_in_assignment710); - stateField15=stateField(); - PopFollow(); - - adaptor.AddChild(root_0, stateField15.Tree); - DebugLocation(149, 17); - EQ16=(IToken)Match(input,EQ,Follow._EQ_in_assignment712); - EQ16_tree = (IASTNode)adaptor.Create(EQ16); - root_0 = (IASTNode)adaptor.BecomeRoot(EQ16_tree, root_0); - DebugLocation(149, 19); - PushFollow(Follow._newValue_in_assignment715); - newValue17=newValue(); - PopFollow(); - - adaptor.AddChild(root_0, newValue17.Tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("assignment", 4); - LeaveRule("assignment", 4); - LeaveRule_assignment(); - } - DebugLocation(150, 1); - } finally { DebugExitRule(GrammarFileName, "assignment"); } - return retval; - - } - // $ANTLR end "assignment" - - partial void EnterRule_stateField(); - partial void LeaveRule_stateField(); - // $ANTLR start "stateField" - // Hql.g:154:1: stateField : path ; - [GrammarRule("stateField")] - private AstParserRuleReturnScope stateField() - { - EnterRule_stateField(); - EnterRule("stateField", 5); - TraceIn("stateField", 5); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope path18 = default(AstParserRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "stateField"); - DebugLocation(154, 1); - try - { - // Hql.g:155:2: ( path ) - DebugEnterAlt(1); - // Hql.g:155:4: path - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(155, 4); - PushFollow(Follow._path_in_stateField728); - path18=path(); - PopFollow(); - - adaptor.AddChild(root_0, path18.Tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("stateField", 5); - LeaveRule("stateField", 5); - LeaveRule_stateField(); - } - DebugLocation(156, 1); - } finally { DebugExitRule(GrammarFileName, "stateField"); } - return retval; - - } - // $ANTLR end "stateField" - - partial void EnterRule_newValue(); - partial void LeaveRule_newValue(); - // $ANTLR start "newValue" - // Hql.g:160:1: newValue : concatenation ; - [GrammarRule("newValue")] - private AstParserRuleReturnScope newValue() - { - EnterRule_newValue(); - EnterRule("newValue", 6); - TraceIn("newValue", 6); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope concatenation19 = default(AstParserRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "newValue"); - DebugLocation(160, 1); - try - { - // Hql.g:161:2: ( concatenation ) - DebugEnterAlt(1); - // Hql.g:161:4: concatenation - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(161, 4); - PushFollow(Follow._concatenation_in_newValue741); - concatenation19=concatenation(); - PopFollow(); - - adaptor.AddChild(root_0, concatenation19.Tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("newValue", 6); - LeaveRule("newValue", 6); - LeaveRule_newValue(); - } - DebugLocation(162, 1); - } finally { DebugExitRule(GrammarFileName, "newValue"); } - return retval; - - } - // $ANTLR end "newValue" - - partial void EnterRule_deleteStatement(); - partial void LeaveRule_deleteStatement(); - // $ANTLR start "deleteStatement" - // Hql.g:164:1: deleteStatement : DELETE ^ ( optionalFromTokenFromClause ) ( whereClause )? ; - [GrammarRule("deleteStatement")] - private AstParserRuleReturnScope deleteStatement() - { - EnterRule_deleteStatement(); - EnterRule("deleteStatement", 7); - TraceIn("deleteStatement", 7); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken DELETE20 = default(IToken); - AstParserRuleReturnScope optionalFromTokenFromClause21 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope whereClause22 = default(AstParserRuleReturnScope); - - IASTNode DELETE20_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "deleteStatement"); - DebugLocation(164, 1); - try - { - // Hql.g:165:2: ( DELETE ^ ( optionalFromTokenFromClause ) ( whereClause )? ) - DebugEnterAlt(1); - // Hql.g:165:4: DELETE ^ ( optionalFromTokenFromClause ) ( whereClause )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(165, 10); - DELETE20=(IToken)Match(input,DELETE,Follow._DELETE_in_deleteStatement752); - DELETE20_tree = (IASTNode)adaptor.Create(DELETE20); - root_0 = (IASTNode)adaptor.BecomeRoot(DELETE20_tree, root_0); - DebugLocation(166, 3); - // Hql.g:166:3: ( optionalFromTokenFromClause ) - DebugEnterAlt(1); - // Hql.g:166:4: optionalFromTokenFromClause - { - DebugLocation(166, 4); - PushFollow(Follow._optionalFromTokenFromClause_in_deleteStatement758); - optionalFromTokenFromClause21=optionalFromTokenFromClause(); - PopFollow(); - - adaptor.AddChild(root_0, optionalFromTokenFromClause21.Tree); - - } - - DebugLocation(167, 3); - // Hql.g:167:3: ( whereClause )? - int alt6=2; - try { DebugEnterSubRule(6); - try { DebugEnterDecision(6, false); - int LA6_1 = input.LA(1); - - if ((LA6_1==WHERE)) - { - alt6 = 1; - } - } finally { DebugExitDecision(6); } - switch (alt6) - { - case 1: - DebugEnterAlt(1); - // Hql.g:167:4: whereClause - { - DebugLocation(167, 4); - PushFollow(Follow._whereClause_in_deleteStatement764); - whereClause22=whereClause(); - PopFollow(); - - adaptor.AddChild(root_0, whereClause22.Tree); - - } - break; - - } - } finally { DebugExitSubRule(6); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("deleteStatement", 7); - LeaveRule("deleteStatement", 7); - LeaveRule_deleteStatement(); - } - DebugLocation(168, 1); - } finally { DebugExitRule(GrammarFileName, "deleteStatement"); } - return retval; - - } - // $ANTLR end "deleteStatement" - - partial void EnterRule_optionalFromTokenFromClause(); - partial void LeaveRule_optionalFromTokenFromClause(); - // $ANTLR start "optionalFromTokenFromClause" - // Hql.g:172:1: optionalFromTokenFromClause : optionalFromTokenFromClause2 path ( asAlias )? -> ^( FROM ^( RANGE path ( asAlias )? ) ) ; - [GrammarRule("optionalFromTokenFromClause")] - private AstParserRuleReturnScope optionalFromTokenFromClause() - { - EnterRule_optionalFromTokenFromClause(); - EnterRule("optionalFromTokenFromClause", 8); - TraceIn("optionalFromTokenFromClause", 8); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope optionalFromTokenFromClause223 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope path24 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope asAlias25 = default(AstParserRuleReturnScope); - - RewriteRuleSubtreeStream stream_optionalFromTokenFromClause2=new RewriteRuleSubtreeStream(adaptor,"rule optionalFromTokenFromClause2"); - RewriteRuleSubtreeStream stream_path=new RewriteRuleSubtreeStream(adaptor,"rule path"); - RewriteRuleSubtreeStream stream_asAlias=new RewriteRuleSubtreeStream(adaptor,"rule asAlias"); - try { DebugEnterRule(GrammarFileName, "optionalFromTokenFromClause"); - DebugLocation(172, 1); - try - { - // Hql.g:173:2: ( optionalFromTokenFromClause2 path ( asAlias )? -> ^( FROM ^( RANGE path ( asAlias )? ) ) ) - DebugEnterAlt(1); - // Hql.g:173:4: optionalFromTokenFromClause2 path ( asAlias )? - { - DebugLocation(173, 4); - PushFollow(Follow._optionalFromTokenFromClause2_in_optionalFromTokenFromClause779); - optionalFromTokenFromClause223=optionalFromTokenFromClause2(); - PopFollow(); - - stream_optionalFromTokenFromClause2.Add(optionalFromTokenFromClause223.Tree); - DebugLocation(173, 33); - PushFollow(Follow._path_in_optionalFromTokenFromClause781); - path24=path(); - PopFollow(); - - stream_path.Add(path24.Tree); - DebugLocation(173, 38); - // Hql.g:173:38: ( asAlias )? - int alt7=2; - try { DebugEnterSubRule(7); - try { DebugEnterDecision(7, false); - int LA7_1 = input.LA(1); - - if ((LA7_1==AS||LA7_1==IDENT)) - { - alt7 = 1; - } - } finally { DebugExitDecision(7); } - switch (alt7) - { - case 1: - DebugEnterAlt(1); - // Hql.g:173:39: asAlias - { - DebugLocation(173, 39); - PushFollow(Follow._asAlias_in_optionalFromTokenFromClause784); - asAlias25=asAlias(); - PopFollow(); - - stream_asAlias.Add(asAlias25.Tree); - - } - break; - - } - } finally { DebugExitSubRule(7); } - - - - { - // AST REWRITE - // elements: path, asAlias - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 174:3: -> ^( FROM ^( RANGE path ( asAlias )? ) ) - { - DebugLocation(174, 6); - // Hql.g:174:6: ^( FROM ^( RANGE path ( asAlias )? ) ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(174, 8); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(FROM, "FROM"), root_1); - - DebugLocation(174, 13); - // Hql.g:174:13: ^( RANGE path ( asAlias )? ) - { - IASTNode root_2 = (IASTNode)adaptor.Nil(); - DebugLocation(174, 15); - root_2 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(RANGE, "RANGE"), root_2); - - DebugLocation(174, 21); - adaptor.AddChild(root_2, stream_path.NextTree()); - DebugLocation(174, 26); - // Hql.g:174:26: ( asAlias )? - if (stream_asAlias.HasNext) - { - DebugLocation(174, 26); - adaptor.AddChild(root_2, stream_asAlias.NextTree()); - - } - stream_asAlias.Reset(); - - adaptor.AddChild(root_1, root_2); - } - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("optionalFromTokenFromClause", 8); - LeaveRule("optionalFromTokenFromClause", 8); - LeaveRule_optionalFromTokenFromClause(); - } - DebugLocation(175, 1); - } finally { DebugExitRule(GrammarFileName, "optionalFromTokenFromClause"); } - return retval; - - } - // $ANTLR end "optionalFromTokenFromClause" - - partial void EnterRule_optionalFromTokenFromClause2(); - partial void LeaveRule_optionalFromTokenFromClause2(); - // $ANTLR start "optionalFromTokenFromClause2" - // Hql.g:177:1: optionalFromTokenFromClause2 : ( FROM )? ; - [GrammarRule("optionalFromTokenFromClause2")] - private AstParserRuleReturnScope optionalFromTokenFromClause2() - { - EnterRule_optionalFromTokenFromClause2(); - EnterRule("optionalFromTokenFromClause2", 9); - TraceIn("optionalFromTokenFromClause2", 9); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken FROM26 = default(IToken); - - IASTNode FROM26_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "optionalFromTokenFromClause2"); - DebugLocation(177, 1); - try - { - // Hql.g:178:2: ( ( FROM )? ) - DebugEnterAlt(1); - // Hql.g:178:4: ( FROM )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(178, 4); - // Hql.g:178:4: ( FROM )? - int alt8=2; - try { DebugEnterSubRule(8); - try { DebugEnterDecision(8, false); - int LA8_1 = input.LA(1); - - if ((LA8_1==FROM)) - { - alt8 = 1; - } - } finally { DebugExitDecision(8); } - switch (alt8) - { - case 1: - DebugEnterAlt(1); - // Hql.g:178:4: FROM - { - DebugLocation(178, 4); - FROM26=(IToken)Match(input,FROM,Follow._FROM_in_optionalFromTokenFromClause2815); - FROM26_tree = (IASTNode)adaptor.Create(FROM26); - adaptor.AddChild(root_0, FROM26_tree); - - } - break; - - } - } finally { DebugExitSubRule(8); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("optionalFromTokenFromClause2", 9); - LeaveRule("optionalFromTokenFromClause2", 9); - LeaveRule_optionalFromTokenFromClause2(); - } - DebugLocation(179, 1); - } finally { DebugExitRule(GrammarFileName, "optionalFromTokenFromClause2"); } - return retval; - - } - // $ANTLR end "optionalFromTokenFromClause2" - - partial void EnterRule_selectStatement(); - partial void LeaveRule_selectStatement(); - // $ANTLR start "selectStatement" - // Hql.g:181:1: selectStatement : q= queryRule -> ^( QUERY[\"query\"] $q) ; - [GrammarRule("selectStatement")] - private AstParserRuleReturnScope selectStatement() - { - EnterRule_selectStatement(); - EnterRule("selectStatement", 10); - TraceIn("selectStatement", 10); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope q = default(AstParserRuleReturnScope); - - RewriteRuleSubtreeStream stream_queryRule=new RewriteRuleSubtreeStream(adaptor,"rule queryRule"); - try { DebugEnterRule(GrammarFileName, "selectStatement"); - DebugLocation(181, 1); - try - { - // Hql.g:183:2: (q= queryRule -> ^( QUERY[\"query\"] $q) ) - DebugEnterAlt(1); - // Hql.g:183:4: q= queryRule - { - DebugLocation(183, 5); - PushFollow(Follow._queryRule_in_selectStatement830); - q=queryRule(); - PopFollow(); - - stream_queryRule.Add(q.Tree); - - - { - // AST REWRITE - // elements: q - // token labels: - // rule labels: q, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_q=new RewriteRuleSubtreeStream(adaptor,"rule q",q!=null?q.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 184:2: -> ^( QUERY[\"query\"] $q) - { - DebugLocation(184, 5); - // Hql.g:184:5: ^( QUERY[\"query\"] $q) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(184, 7); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(QUERY, "query"), root_1); - - DebugLocation(184, 23); - adaptor.AddChild(root_1, stream_q.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("selectStatement", 10); - LeaveRule("selectStatement", 10); - LeaveRule_selectStatement(); - } - DebugLocation(185, 1); - } finally { DebugExitRule(GrammarFileName, "selectStatement"); } - return retval; - - } - // $ANTLR end "selectStatement" - - partial void EnterRule_insertStatement(); - partial void LeaveRule_insertStatement(); - // $ANTLR start "insertStatement" - // Hql.g:187:1: insertStatement : INSERT ^ intoClause selectStatement ; - [GrammarRule("insertStatement")] - private AstParserRuleReturnScope insertStatement() - { - EnterRule_insertStatement(); - EnterRule("insertStatement", 11); - TraceIn("insertStatement", 11); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken INSERT27 = default(IToken); - AstParserRuleReturnScope intoClause28 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope selectStatement29 = default(AstParserRuleReturnScope); - - IASTNode INSERT27_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "insertStatement"); - DebugLocation(187, 1); - try - { - // Hql.g:191:2: ( INSERT ^ intoClause selectStatement ) - DebugEnterAlt(1); - // Hql.g:191:4: INSERT ^ intoClause selectStatement - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(191, 10); - INSERT27=(IToken)Match(input,INSERT,Follow._INSERT_in_insertStatement859); - INSERT27_tree = (IASTNode)adaptor.Create(INSERT27); - root_0 = (IASTNode)adaptor.BecomeRoot(INSERT27_tree, root_0); - DebugLocation(191, 12); - PushFollow(Follow._intoClause_in_insertStatement862); - intoClause28=intoClause(); - PopFollow(); - - adaptor.AddChild(root_0, intoClause28.Tree); - DebugLocation(191, 23); - PushFollow(Follow._selectStatement_in_insertStatement864); - selectStatement29=selectStatement(); - PopFollow(); - - adaptor.AddChild(root_0, selectStatement29.Tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("insertStatement", 11); - LeaveRule("insertStatement", 11); - LeaveRule_insertStatement(); - } - DebugLocation(192, 1); - } finally { DebugExitRule(GrammarFileName, "insertStatement"); } - return retval; - - } - // $ANTLR end "insertStatement" - - partial void EnterRule_intoClause(); - partial void LeaveRule_intoClause(); - // $ANTLR start "intoClause" - // Hql.g:194:1: intoClause : INTO ^ path insertablePropertySpec ; - [GrammarRule("intoClause")] - private AstParserRuleReturnScope intoClause() - { - EnterRule_intoClause(); - EnterRule("intoClause", 12); - TraceIn("intoClause", 12); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken INTO30 = default(IToken); - AstParserRuleReturnScope path31 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope insertablePropertySpec32 = default(AstParserRuleReturnScope); - - IASTNode INTO30_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "intoClause"); - DebugLocation(194, 1); - try - { - // Hql.g:195:2: ( INTO ^ path insertablePropertySpec ) - DebugEnterAlt(1); - // Hql.g:195:4: INTO ^ path insertablePropertySpec - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(195, 8); - INTO30=(IToken)Match(input,INTO,Follow._INTO_in_intoClause875); - INTO30_tree = (IASTNode)adaptor.Create(INTO30); - root_0 = (IASTNode)adaptor.BecomeRoot(INTO30_tree, root_0); - DebugLocation(195, 10); - PushFollow(Follow._path_in_intoClause878); - path31=path(); - PopFollow(); - - adaptor.AddChild(root_0, path31.Tree); - DebugLocation(195, 15); - WeakKeywords(); - DebugLocation(195, 35); - PushFollow(Follow._insertablePropertySpec_in_intoClause882); - insertablePropertySpec32=insertablePropertySpec(); - PopFollow(); - - adaptor.AddChild(root_0, insertablePropertySpec32.Tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("intoClause", 12); - LeaveRule("intoClause", 12); - LeaveRule_intoClause(); - } - DebugLocation(196, 1); - } finally { DebugExitRule(GrammarFileName, "intoClause"); } - return retval; - - } - // $ANTLR end "intoClause" - - partial void EnterRule_insertablePropertySpec(); - partial void LeaveRule_insertablePropertySpec(); - // $ANTLR start "insertablePropertySpec" - // Hql.g:198:1: insertablePropertySpec : OPEN primaryExpression ( COMMA primaryExpression )* CLOSE -> ^( RANGE[\"column-spec\"] ( primaryExpression )* ) ; - [GrammarRule("insertablePropertySpec")] - private AstParserRuleReturnScope insertablePropertySpec() - { - EnterRule_insertablePropertySpec(); - EnterRule("insertablePropertySpec", 13); - TraceIn("insertablePropertySpec", 13); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken OPEN33 = default(IToken); - IToken COMMA35 = default(IToken); - IToken CLOSE37 = default(IToken); - AstParserRuleReturnScope primaryExpression34 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope primaryExpression36 = default(AstParserRuleReturnScope); - - IASTNode OPEN33_tree = default(IASTNode); - IASTNode COMMA35_tree = default(IASTNode); - IASTNode CLOSE37_tree = default(IASTNode); - RewriteRuleITokenStream stream_OPEN=new RewriteRuleITokenStream(adaptor,"token OPEN"); - RewriteRuleITokenStream stream_COMMA=new RewriteRuleITokenStream(adaptor,"token COMMA"); - RewriteRuleITokenStream stream_CLOSE=new RewriteRuleITokenStream(adaptor,"token CLOSE"); - RewriteRuleSubtreeStream stream_primaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule primaryExpression"); - try { DebugEnterRule(GrammarFileName, "insertablePropertySpec"); - DebugLocation(198, 1); - try - { - // Hql.g:199:2: ( OPEN primaryExpression ( COMMA primaryExpression )* CLOSE -> ^( RANGE[\"column-spec\"] ( primaryExpression )* ) ) - DebugEnterAlt(1); - // Hql.g:199:4: OPEN primaryExpression ( COMMA primaryExpression )* CLOSE - { - DebugLocation(199, 4); - OPEN33=(IToken)Match(input,OPEN,Follow._OPEN_in_insertablePropertySpec893); - stream_OPEN.Add(OPEN33); - - DebugLocation(199, 9); - PushFollow(Follow._primaryExpression_in_insertablePropertySpec895); - primaryExpression34=primaryExpression(); - PopFollow(); - - stream_primaryExpression.Add(primaryExpression34.Tree); - DebugLocation(199, 27); - // Hql.g:199:27: ( COMMA primaryExpression )* - try { DebugEnterSubRule(9); - while (true) - { - int alt9=2; - try { DebugEnterDecision(9, false); - int LA9_1 = input.LA(1); - - if ((LA9_1==COMMA)) - { - alt9 = 1; - } - - - } finally { DebugExitDecision(9); } - switch ( alt9 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:199:29: COMMA primaryExpression - { - DebugLocation(199, 29); - COMMA35=(IToken)Match(input,COMMA,Follow._COMMA_in_insertablePropertySpec899); - stream_COMMA.Add(COMMA35); - - DebugLocation(199, 35); - PushFollow(Follow._primaryExpression_in_insertablePropertySpec901); - primaryExpression36=primaryExpression(); - PopFollow(); - - stream_primaryExpression.Add(primaryExpression36.Tree); - - } - break; - - default: - goto loop9; - } - } - - loop9: - ; - - } finally { DebugExitSubRule(9); } - - DebugLocation(199, 56); - CLOSE37=(IToken)Match(input,CLOSE,Follow._CLOSE_in_insertablePropertySpec906); - stream_CLOSE.Add(CLOSE37); - - - - { - // AST REWRITE - // elements: primaryExpression - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 200:3: -> ^( RANGE[\"column-spec\"] ( primaryExpression )* ) - { - DebugLocation(200, 6); - // Hql.g:200:6: ^( RANGE[\"column-spec\"] ( primaryExpression )* ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(200, 8); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(RANGE, "column-spec"), root_1); - - DebugLocation(200, 29); - // Hql.g:200:29: ( primaryExpression )* - while ( stream_primaryExpression.HasNext ) - { - DebugLocation(200, 29); - adaptor.AddChild(root_1, stream_primaryExpression.NextTree()); - - } - stream_primaryExpression.Reset(); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("insertablePropertySpec", 13); - LeaveRule("insertablePropertySpec", 13); - LeaveRule_insertablePropertySpec(); - } - DebugLocation(201, 1); - } finally { DebugExitRule(GrammarFileName, "insertablePropertySpec"); } - return retval; - - } - // $ANTLR end "insertablePropertySpec" - - partial void EnterRule_queryRule(); - partial void LeaveRule_queryRule(); - // $ANTLR start "queryRule" - // Hql.g:206:1: queryRule : selectFrom ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( skipClause )? ( takeClause )? ; - [GrammarRule("queryRule")] - private AstParserRuleReturnScope queryRule() - { - EnterRule_queryRule(); - EnterRule("queryRule", 14); - TraceIn("queryRule", 14); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope selectFrom38 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope whereClause39 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope groupByClause40 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope havingClause41 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope orderByClause42 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope skipClause43 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope takeClause44 = default(AstParserRuleReturnScope); - - - ++queryDepth; - - try { DebugEnterRule(GrammarFileName, "queryRule"); - DebugLocation(206, 2); - try - { - // Hql.g:213:2: ( selectFrom ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( skipClause )? ( takeClause )? ) - DebugEnterAlt(1); - // Hql.g:213:4: selectFrom ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( skipClause )? ( takeClause )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(213, 4); - PushFollow(Follow._selectFrom_in_queryRule944); - selectFrom38=selectFrom(); - PopFollow(); - - adaptor.AddChild(root_0, selectFrom38.Tree); - DebugLocation(214, 3); - // Hql.g:214:3: ( whereClause )? - int alt10=2; - try { DebugEnterSubRule(10); - try { DebugEnterDecision(10, false); - int LA10_1 = input.LA(1); - - if ((LA10_1==WHERE)) - { - alt10 = 1; - } - } finally { DebugExitDecision(10); } - switch (alt10) - { - case 1: - DebugEnterAlt(1); - // Hql.g:214:4: whereClause - { - DebugLocation(214, 4); - PushFollow(Follow._whereClause_in_queryRule949); - whereClause39=whereClause(); - PopFollow(); - - adaptor.AddChild(root_0, whereClause39.Tree); - - } - break; - - } - } finally { DebugExitSubRule(10); } - - DebugLocation(215, 3); - // Hql.g:215:3: ( groupByClause )? - int alt11=2; - try { DebugEnterSubRule(11); - try { DebugEnterDecision(11, false); - int LA11_1 = input.LA(1); - - if ((LA11_1==GROUP)) - { - alt11 = 1; - } - } finally { DebugExitDecision(11); } - switch (alt11) - { - case 1: - DebugEnterAlt(1); - // Hql.g:215:4: groupByClause - { - DebugLocation(215, 4); - PushFollow(Follow._groupByClause_in_queryRule956); - groupByClause40=groupByClause(); - PopFollow(); - - adaptor.AddChild(root_0, groupByClause40.Tree); - - } - break; - - } - } finally { DebugExitSubRule(11); } - - DebugLocation(216, 3); - // Hql.g:216:3: ( havingClause )? - int alt12=2; - try { DebugEnterSubRule(12); - try { DebugEnterDecision(12, false); - int LA12_1 = input.LA(1); - - if ((LA12_1==HAVING)) - { - alt12 = 1; - } - } finally { DebugExitDecision(12); } - switch (alt12) - { - case 1: - DebugEnterAlt(1); - // Hql.g:216:4: havingClause - { - DebugLocation(216, 4); - PushFollow(Follow._havingClause_in_queryRule963); - havingClause41=havingClause(); - PopFollow(); - - adaptor.AddChild(root_0, havingClause41.Tree); - - } - break; - - } - } finally { DebugExitSubRule(12); } - - DebugLocation(217, 3); - // Hql.g:217:3: ( orderByClause )? - int alt13=2; - try { DebugEnterSubRule(13); - try { DebugEnterDecision(13, false); - int LA13_1 = input.LA(1); - - if ((LA13_1==ORDER)) - { - alt13 = 1; - } - } finally { DebugExitDecision(13); } - switch (alt13) - { - case 1: - DebugEnterAlt(1); - // Hql.g:217:4: orderByClause - { - DebugLocation(217, 4); - PushFollow(Follow._orderByClause_in_queryRule970); - orderByClause42=orderByClause(); - PopFollow(); - - adaptor.AddChild(root_0, orderByClause42.Tree); - - } - break; - - } - } finally { DebugExitSubRule(13); } - - DebugLocation(218, 3); - // Hql.g:218:3: ( skipClause )? - int alt14=2; - try { DebugEnterSubRule(14); - try { DebugEnterDecision(14, false); - int LA14_1 = input.LA(1); - - if ((LA14_1==SKIP)) - { - alt14 = 1; - } - } finally { DebugExitDecision(14); } - switch (alt14) - { - case 1: - DebugEnterAlt(1); - // Hql.g:218:4: skipClause - { - DebugLocation(218, 4); - PushFollow(Follow._skipClause_in_queryRule977); - skipClause43=skipClause(); - PopFollow(); - - adaptor.AddChild(root_0, skipClause43.Tree); - - } - break; - - } - } finally { DebugExitSubRule(14); } - - DebugLocation(219, 3); - // Hql.g:219:3: ( takeClause )? - int alt15=2; - try { DebugEnterSubRule(15); - try { DebugEnterDecision(15, false); - int LA15_1 = input.LA(1); - - if ((LA15_1==TAKE)) - { - alt15 = 1; - } - } finally { DebugExitDecision(15); } - switch (alt15) - { - case 1: - DebugEnterAlt(1); - // Hql.g:219:4: takeClause - { - DebugLocation(219, 4); - PushFollow(Follow._takeClause_in_queryRule984); - takeClause44=takeClause(); - PopFollow(); - - adaptor.AddChild(root_0, takeClause44.Tree); - - } - break; - - } - } finally { DebugExitSubRule(15); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - - --queryDepth; - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("queryRule", 14); - LeaveRule("queryRule", 14); - LeaveRule_queryRule(); - } - DebugLocation(220, 2); - } finally { DebugExitRule(GrammarFileName, "queryRule"); } - return retval; - - } - // $ANTLR end "queryRule" - - partial void EnterRule_selectFrom(); - partial void LeaveRule_selectFrom(); - // $ANTLR start "selectFrom" - // Hql.g:222:1: selectFrom : (s= selectClause )? (f= fromClause )? -> {$f.tree == null && filter}? ^( SELECT_FROM FROM[\"{filter-implied FROM}\"] ( selectClause )? ) -> ^( SELECT_FROM ( fromClause )? ( selectClause )? ) ; - [GrammarRule("selectFrom")] - private AstParserRuleReturnScope selectFrom() - { - EnterRule_selectFrom(); - EnterRule("selectFrom", 15); - TraceIn("selectFrom", 15); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope s = default(AstParserRuleReturnScope); - AstParserRuleReturnScope f = default(AstParserRuleReturnScope); - - RewriteRuleSubtreeStream stream_selectClause=new RewriteRuleSubtreeStream(adaptor,"rule selectClause"); - RewriteRuleSubtreeStream stream_fromClause=new RewriteRuleSubtreeStream(adaptor,"rule fromClause"); - try { DebugEnterRule(GrammarFileName, "selectFrom"); - DebugLocation(222, 1); - try - { - // Hql.g:223:2: ( (s= selectClause )? (f= fromClause )? -> {$f.tree == null && filter}? ^( SELECT_FROM FROM[\"{filter-implied FROM}\"] ( selectClause )? ) -> ^( SELECT_FROM ( fromClause )? ( selectClause )? ) ) - DebugEnterAlt(1); - // Hql.g:223:5: (s= selectClause )? (f= fromClause )? - { - DebugLocation(223, 5); - // Hql.g:223:5: (s= selectClause )? - int alt16=2; - try { DebugEnterSubRule(16); - try { DebugEnterDecision(16, false); - int LA16_1 = input.LA(1); - - if ((LA16_1==SELECT)) - { - alt16 = 1; - } - } finally { DebugExitDecision(16); } - switch (alt16) - { - case 1: - DebugEnterAlt(1); - // Hql.g:223:6: s= selectClause - { - DebugLocation(223, 7); - PushFollow(Follow._selectClause_in_selectFrom1002); - s=selectClause(); - PopFollow(); - - stream_selectClause.Add(s.Tree); - - } - break; - - } - } finally { DebugExitSubRule(16); } - - DebugLocation(223, 23); - // Hql.g:223:23: (f= fromClause )? - int alt17=2; - try { DebugEnterSubRule(17); - try { DebugEnterDecision(17, false); - int LA17_1 = input.LA(1); - - if ((LA17_1==FROM)) - { - alt17 = 1; - } - } finally { DebugExitDecision(17); } - switch (alt17) - { - case 1: - DebugEnterAlt(1); - // Hql.g:223:24: f= fromClause - { - DebugLocation(223, 25); - PushFollow(Follow._fromClause_in_selectFrom1009); - f=fromClause(); - PopFollow(); - - stream_fromClause.Add(f.Tree); - - } - break; - - } - } finally { DebugExitSubRule(17); } - - DebugLocation(224, 3); - - if ((f!=null?((IASTNode)f.Tree):default(IASTNode)) == null && !(filter && queryDepth == 1)) - throw new RecognitionException("FROM expected (non-filter queries must contain a FROM clause)"); - - - - { - // AST REWRITE - // elements: selectClause, fromClause, selectClause - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 228:3: -> {$f.tree == null && filter}? ^( SELECT_FROM FROM[\"{filter-implied FROM}\"] ( selectClause )? ) - if ((f!=null?((IASTNode)f.Tree):default(IASTNode)) == null && filter) - { - DebugLocation(228, 35); - // Hql.g:228:35: ^( SELECT_FROM FROM[\"{filter-implied FROM}\"] ( selectClause )? ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(228, 37); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(SELECT_FROM, "SELECT_FROM"), root_1); - - DebugLocation(228, 49); - adaptor.AddChild(root_1, (IASTNode)adaptor.Create(FROM, "{filter-implied FROM}")); - DebugLocation(228, 79); - // Hql.g:228:79: ( selectClause )? - if (stream_selectClause.HasNext) - { - DebugLocation(228, 79); - adaptor.AddChild(root_1, stream_selectClause.NextTree()); - - } - stream_selectClause.Reset(); - - adaptor.AddChild(root_0, root_1); - } - - } - else // 229:3: -> ^( SELECT_FROM ( fromClause )? ( selectClause )? ) - { - DebugLocation(229, 6); - // Hql.g:229:6: ^( SELECT_FROM ( fromClause )? ( selectClause )? ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(229, 8); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(SELECT_FROM, "SELECT_FROM"), root_1); - - DebugLocation(229, 20); - // Hql.g:229:20: ( fromClause )? - if (stream_fromClause.HasNext) - { - DebugLocation(229, 20); - adaptor.AddChild(root_1, stream_fromClause.NextTree()); - - } - stream_fromClause.Reset(); - DebugLocation(229, 32); - // Hql.g:229:32: ( selectClause )? - if (stream_selectClause.HasNext) - { - DebugLocation(229, 32); - adaptor.AddChild(root_1, stream_selectClause.NextTree()); - - } - stream_selectClause.Reset(); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("selectFrom", 15); - LeaveRule("selectFrom", 15); - LeaveRule_selectFrom(); - } - DebugLocation(230, 1); - } finally { DebugExitRule(GrammarFileName, "selectFrom"); } - return retval; - - } - // $ANTLR end "selectFrom" - - partial void EnterRule_selectClause(); - partial void LeaveRule_selectClause(); - // $ANTLR start "selectClause" - // Hql.g:233:1: selectClause : SELECT ^ ( DISTINCT )? ( selectedPropertiesList | newExpression | selectObject ) ; - [GrammarRule("selectClause")] - private AstParserRuleReturnScope selectClause() - { - EnterRule_selectClause(); - EnterRule("selectClause", 16); - TraceIn("selectClause", 16); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken SELECT45 = default(IToken); - IToken DISTINCT46 = default(IToken); - AstParserRuleReturnScope selectedPropertiesList47 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope newExpression48 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope selectObject49 = default(AstParserRuleReturnScope); - - IASTNode SELECT45_tree = default(IASTNode); - IASTNode DISTINCT46_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "selectClause"); - DebugLocation(233, 1); - try - { - // Hql.g:234:2: ( SELECT ^ ( DISTINCT )? ( selectedPropertiesList | newExpression | selectObject ) ) - DebugEnterAlt(1); - // Hql.g:234:4: SELECT ^ ( DISTINCT )? ( selectedPropertiesList | newExpression | selectObject ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(234, 10); - SELECT45=(IToken)Match(input,SELECT,Follow._SELECT_in_selectClause1058); - SELECT45_tree = (IASTNode)adaptor.Create(SELECT45); - root_0 = (IASTNode)adaptor.BecomeRoot(SELECT45_tree, root_0); - DebugLocation(235, 3); - WeakKeywords(); - DebugLocation(236, 3); - // Hql.g:236:3: ( DISTINCT )? - int alt18=2; - try { DebugEnterSubRule(18); - try { DebugEnterDecision(18, false); - int LA18_1 = input.LA(1); - - if ((LA18_1==DISTINCT)) - { - alt18 = 1; - } - } finally { DebugExitDecision(18); } - switch (alt18) - { - case 1: - DebugEnterAlt(1); - // Hql.g:236:4: DISTINCT - { - DebugLocation(236, 4); - DISTINCT46=(IToken)Match(input,DISTINCT,Follow._DISTINCT_in_selectClause1070); - DISTINCT46_tree = (IASTNode)adaptor.Create(DISTINCT46); - adaptor.AddChild(root_0, DISTINCT46_tree); - - } - break; - - } - } finally { DebugExitSubRule(18); } - - DebugLocation(236, 15); - // Hql.g:236:15: ( selectedPropertiesList | newExpression | selectObject ) - int alt19=3; - try { DebugEnterSubRule(19); - try { DebugEnterDecision(19, false); - switch (input.LA(1)) - { - case ALL: - case ANY: - case AVG: - case BNOT: - case CASE: - case COLON: - case COUNT: - case ELEMENTS: - case EMPTY: - case EXISTS: - case FALSE: - case IDENT: - case INDICES: - case MAX: - case MIN: - case MINUS: - case NOT: - case NULL: - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case OPEN: - case PARAM: - case PLUS: - case QUOTED_String: - case SOME: - case SUM: - case TRUE: - { - alt19 = 1; - } - break; - case NEW: - { - alt19 = 2; - } - break; - case OBJECT: - { - alt19 = 3; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 19, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(19); } - switch (alt19) - { - case 1: - DebugEnterAlt(1); - // Hql.g:236:17: selectedPropertiesList - { - DebugLocation(236, 17); - PushFollow(Follow._selectedPropertiesList_in_selectClause1076); - selectedPropertiesList47=selectedPropertiesList(); - PopFollow(); - - adaptor.AddChild(root_0, selectedPropertiesList47.Tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:236:42: newExpression - { - DebugLocation(236, 42); - PushFollow(Follow._newExpression_in_selectClause1080); - newExpression48=newExpression(); - PopFollow(); - - adaptor.AddChild(root_0, newExpression48.Tree); - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:236:58: selectObject - { - DebugLocation(236, 58); - PushFollow(Follow._selectObject_in_selectClause1084); - selectObject49=selectObject(); - PopFollow(); - - adaptor.AddChild(root_0, selectObject49.Tree); - - } - break; - - } - } finally { DebugExitSubRule(19); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("selectClause", 16); - LeaveRule("selectClause", 16); - LeaveRule_selectClause(); - } - DebugLocation(237, 1); - } finally { DebugExitRule(GrammarFileName, "selectClause"); } - return retval; - - } - // $ANTLR end "selectClause" - - partial void EnterRule_newExpression(); - partial void LeaveRule_newExpression(); - // $ANTLR start "newExpression" - // Hql.g:239:1: newExpression : ( NEW path ) op= OPEN selectedPropertiesList CLOSE -> ^( CONSTRUCTOR[$op] path selectedPropertiesList ) ; - [GrammarRule("newExpression")] - private AstParserRuleReturnScope newExpression() - { - EnterRule_newExpression(); - EnterRule("newExpression", 17); - TraceIn("newExpression", 17); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken op = default(IToken); - IToken NEW50 = default(IToken); - IToken CLOSE53 = default(IToken); - AstParserRuleReturnScope path51 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope selectedPropertiesList52 = default(AstParserRuleReturnScope); - - IASTNode op_tree = default(IASTNode); - IASTNode NEW50_tree = default(IASTNode); - IASTNode CLOSE53_tree = default(IASTNode); - RewriteRuleITokenStream stream_NEW=new RewriteRuleITokenStream(adaptor,"token NEW"); - RewriteRuleITokenStream stream_OPEN=new RewriteRuleITokenStream(adaptor,"token OPEN"); - RewriteRuleITokenStream stream_CLOSE=new RewriteRuleITokenStream(adaptor,"token CLOSE"); - RewriteRuleSubtreeStream stream_path=new RewriteRuleSubtreeStream(adaptor,"rule path"); - RewriteRuleSubtreeStream stream_selectedPropertiesList=new RewriteRuleSubtreeStream(adaptor,"rule selectedPropertiesList"); - try { DebugEnterRule(GrammarFileName, "newExpression"); - DebugLocation(239, 1); - try - { - // Hql.g:240:2: ( ( NEW path ) op= OPEN selectedPropertiesList CLOSE -> ^( CONSTRUCTOR[$op] path selectedPropertiesList ) ) - DebugEnterAlt(1); - // Hql.g:240:4: ( NEW path ) op= OPEN selectedPropertiesList CLOSE - { - DebugLocation(240, 4); - // Hql.g:240:4: ( NEW path ) - DebugEnterAlt(1); - // Hql.g:240:5: NEW path - { - DebugLocation(240, 5); - NEW50=(IToken)Match(input,NEW,Follow._NEW_in_newExpression1098); - stream_NEW.Add(NEW50); - - DebugLocation(240, 9); - PushFollow(Follow._path_in_newExpression1100); - path51=path(); - PopFollow(); - - stream_path.Add(path51.Tree); - - } - - DebugLocation(240, 17); - op=(IToken)Match(input,OPEN,Follow._OPEN_in_newExpression1105); - stream_OPEN.Add(op); - - DebugLocation(240, 23); - PushFollow(Follow._selectedPropertiesList_in_newExpression1107); - selectedPropertiesList52=selectedPropertiesList(); - PopFollow(); - - stream_selectedPropertiesList.Add(selectedPropertiesList52.Tree); - DebugLocation(240, 46); - CLOSE53=(IToken)Match(input,CLOSE,Follow._CLOSE_in_newExpression1109); - stream_CLOSE.Add(CLOSE53); - - - - { - // AST REWRITE - // elements: path, selectedPropertiesList - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 241:3: -> ^( CONSTRUCTOR[$op] path selectedPropertiesList ) - { - DebugLocation(241, 6); - // Hql.g:241:6: ^( CONSTRUCTOR[$op] path selectedPropertiesList ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(241, 8); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(CONSTRUCTOR, op), root_1); - - DebugLocation(241, 25); - adaptor.AddChild(root_1, stream_path.NextTree()); - DebugLocation(241, 30); - adaptor.AddChild(root_1, stream_selectedPropertiesList.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("newExpression", 17); - LeaveRule("newExpression", 17); - LeaveRule_newExpression(); - } - DebugLocation(242, 1); - } finally { DebugExitRule(GrammarFileName, "newExpression"); } - return retval; - - } - // $ANTLR end "newExpression" - - partial void EnterRule_selectObject(); - partial void LeaveRule_selectObject(); - // $ANTLR start "selectObject" - // Hql.g:244:1: selectObject : OBJECT ^ OPEN ! identifier CLOSE !; - [GrammarRule("selectObject")] - private AstParserRuleReturnScope selectObject() - { - EnterRule_selectObject(); - EnterRule("selectObject", 18); - TraceIn("selectObject", 18); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken OBJECT54 = default(IToken); - IToken OPEN55 = default(IToken); - IToken CLOSE57 = default(IToken); - AstParserRuleReturnScope identifier56 = default(AstParserRuleReturnScope); - - IASTNode OBJECT54_tree = default(IASTNode); - IASTNode OPEN55_tree = default(IASTNode); - IASTNode CLOSE57_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "selectObject"); - DebugLocation(244, 3); - try - { - // Hql.g:245:4: ( OBJECT ^ OPEN ! identifier CLOSE !) - DebugEnterAlt(1); - // Hql.g:245:6: OBJECT ^ OPEN ! identifier CLOSE ! - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(245, 12); - OBJECT54=(IToken)Match(input,OBJECT,Follow._OBJECT_in_selectObject1135); - OBJECT54_tree = (IASTNode)adaptor.Create(OBJECT54); - root_0 = (IASTNode)adaptor.BecomeRoot(OBJECT54_tree, root_0); - DebugLocation(245, 18); - OPEN55=(IToken)Match(input,OPEN,Follow._OPEN_in_selectObject1138); - DebugLocation(245, 20); - PushFollow(Follow._identifier_in_selectObject1141); - identifier56=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, identifier56.Tree); - DebugLocation(245, 36); - CLOSE57=(IToken)Match(input,CLOSE,Follow._CLOSE_in_selectObject1143); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("selectObject", 18); - LeaveRule("selectObject", 18); - LeaveRule_selectObject(); - } - DebugLocation(246, 3); - } finally { DebugExitRule(GrammarFileName, "selectObject"); } - return retval; - - } - // $ANTLR end "selectObject" - - partial void EnterRule_fromClause(); - partial void LeaveRule_fromClause(); - // $ANTLR start "fromClause" - // Hql.g:252:1: fromClause : FROM ^ fromRange ( fromJoin | COMMA ! fromRange )* ; - [GrammarRule("fromClause")] - private AstParserRuleReturnScope fromClause() - { - EnterRule_fromClause(); - EnterRule("fromClause", 19); - TraceIn("fromClause", 19); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken FROM58 = default(IToken); - IToken COMMA61 = default(IToken); - AstParserRuleReturnScope fromRange59 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope fromJoin60 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope fromRange62 = default(AstParserRuleReturnScope); - - IASTNode FROM58_tree = default(IASTNode); - IASTNode COMMA61_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "fromClause"); - DebugLocation(252, 1); - try - { - // Hql.g:253:2: ( FROM ^ fromRange ( fromJoin | COMMA ! fromRange )* ) - DebugEnterAlt(1); - // Hql.g:253:4: FROM ^ fromRange ( fromJoin | COMMA ! fromRange )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(253, 8); - FROM58=(IToken)Match(input,FROM,Follow._FROM_in_fromClause1161); - FROM58_tree = (IASTNode)adaptor.Create(FROM58); - root_0 = (IASTNode)adaptor.BecomeRoot(FROM58_tree, root_0); - DebugLocation(253, 10); - WeakKeywords(); - DebugLocation(253, 30); - PushFollow(Follow._fromRange_in_fromClause1166); - fromRange59=fromRange(); - PopFollow(); - - adaptor.AddChild(root_0, fromRange59.Tree); - DebugLocation(253, 40); - // Hql.g:253:40: ( fromJoin | COMMA ! fromRange )* - try { DebugEnterSubRule(20); - while (true) - { - int alt20=3; - try { DebugEnterDecision(20, false); - int LA20_1 = input.LA(1); - - if ((LA20_1==FULL||LA20_1==INNER||LA20_1==JOIN||LA20_1==LEFT||LA20_1==RIGHT)) - { - alt20 = 1; - } - else if ((LA20_1==COMMA)) - { - alt20 = 2; - } - - - } finally { DebugExitDecision(20); } - switch ( alt20 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:253:42: fromJoin - { - DebugLocation(253, 42); - PushFollow(Follow._fromJoin_in_fromClause1170); - fromJoin60=fromJoin(); - PopFollow(); - - adaptor.AddChild(root_0, fromJoin60.Tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:253:53: COMMA ! fromRange - { - DebugLocation(253, 58); - COMMA61=(IToken)Match(input,COMMA,Follow._COMMA_in_fromClause1174); - DebugLocation(253, 60); - WeakKeywords(); - DebugLocation(253, 80); - PushFollow(Follow._fromRange_in_fromClause1179); - fromRange62=fromRange(); - PopFollow(); - - adaptor.AddChild(root_0, fromRange62.Tree); - - } - break; - - default: - goto loop20; - } - } - - loop20: - ; - - } finally { DebugExitSubRule(20); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("fromClause", 19); - LeaveRule("fromClause", 19); - LeaveRule_fromClause(); - } - DebugLocation(254, 1); - } finally { DebugExitRule(GrammarFileName, "fromClause"); } - return retval; - - } - // $ANTLR end "fromClause" - - partial void EnterRule_fromJoin(); - partial void LeaveRule_fromJoin(); - // $ANTLR start "fromJoin" - // Hql.g:256:1: fromJoin : ( ( ( ( LEFT | RIGHT ) ( OUTER )? ) | FULL | INNER )? JOIN ^ ( FETCH )? path ( asAlias )? ( propertyFetch )? ( withClause )? | ( ( ( LEFT | RIGHT ) ( OUTER )? ) | FULL | INNER )? JOIN ^ ( FETCH )? ELEMENTS ! OPEN ! path CLOSE ! ( asAlias )? ( propertyFetch )? ( withClause )? ); - [GrammarRule("fromJoin")] - private AstParserRuleReturnScope fromJoin() - { - EnterRule_fromJoin(); - EnterRule("fromJoin", 20); - TraceIn("fromJoin", 20); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken set63 = default(IToken); - IToken OUTER64 = default(IToken); - IToken FULL65 = default(IToken); - IToken INNER66 = default(IToken); - IToken JOIN67 = default(IToken); - IToken FETCH68 = default(IToken); - IToken set73 = default(IToken); - IToken OUTER74 = default(IToken); - IToken FULL75 = default(IToken); - IToken INNER76 = default(IToken); - IToken JOIN77 = default(IToken); - IToken FETCH78 = default(IToken); - IToken ELEMENTS79 = default(IToken); - IToken OPEN80 = default(IToken); - IToken CLOSE82 = default(IToken); - AstParserRuleReturnScope path69 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope asAlias70 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope propertyFetch71 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope withClause72 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope path81 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope asAlias83 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope propertyFetch84 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope withClause85 = default(AstParserRuleReturnScope); - - IASTNode set63_tree = default(IASTNode); - IASTNode OUTER64_tree = default(IASTNode); - IASTNode FULL65_tree = default(IASTNode); - IASTNode INNER66_tree = default(IASTNode); - IASTNode JOIN67_tree = default(IASTNode); - IASTNode FETCH68_tree = default(IASTNode); - IASTNode set73_tree = default(IASTNode); - IASTNode OUTER74_tree = default(IASTNode); - IASTNode FULL75_tree = default(IASTNode); - IASTNode INNER76_tree = default(IASTNode); - IASTNode JOIN77_tree = default(IASTNode); - IASTNode FETCH78_tree = default(IASTNode); - IASTNode ELEMENTS79_tree = default(IASTNode); - IASTNode OPEN80_tree = default(IASTNode); - IASTNode CLOSE82_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "fromJoin"); - DebugLocation(256, 1); - try - { - // Hql.g:257:2: ( ( ( ( LEFT | RIGHT ) ( OUTER )? ) | FULL | INNER )? JOIN ^ ( FETCH )? path ( asAlias )? ( propertyFetch )? ( withClause )? | ( ( ( LEFT | RIGHT ) ( OUTER )? ) | FULL | INNER )? JOIN ^ ( FETCH )? ELEMENTS ! OPEN ! path CLOSE ! ( asAlias )? ( propertyFetch )? ( withClause )? ) - int alt33=2; - try { DebugEnterDecision(33, false); - switch (input.LA(1)) - { - case LEFT: - case RIGHT: - { - int LA33_2 = input.LA(2); - - if ((LA33_2==OUTER)) - { - int LA33_3 = input.LA(3); - - if ((LA33_3==JOIN)) - { - switch (input.LA(4)) - { - case FETCH: - { - int LA33_5 = input.LA(5); - - if ((LA33_5==IDENT)) - { - alt33 = 1; - } - else if ((LA33_5==ELEMENTS)) - { - alt33 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 33, 6, input, 5); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case IDENT: - { - alt33 = 1; - } - break; - case ELEMENTS: - { - alt33 = 2; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 33, 4, input, 4); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } - else - { - NoViableAltException nvae = new NoViableAltException("", 33, 5, input, 3); - DebugRecognitionException(nvae); - throw nvae; - } - } - else if ((LA33_2==JOIN)) - { - switch (input.LA(3)) - { - case FETCH: - { - int LA33_4 = input.LA(4); - - if ((LA33_4==IDENT)) - { - alt33 = 1; - } - else if ((LA33_4==ELEMENTS)) - { - alt33 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 33, 6, input, 4); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case IDENT: - { - alt33 = 1; - } - break; - case ELEMENTS: - { - alt33 = 2; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 33, 4, input, 3); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } - else - { - NoViableAltException nvae = new NoViableAltException("", 33, 1, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case FULL: - { - int LA33_2 = input.LA(2); - - if ((LA33_2==JOIN)) - { - switch (input.LA(3)) - { - case FETCH: - { - int LA33_4 = input.LA(4); - - if ((LA33_4==IDENT)) - { - alt33 = 1; - } - else if ((LA33_4==ELEMENTS)) - { - alt33 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 33, 6, input, 4); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case IDENT: - { - alt33 = 1; - } - break; - case ELEMENTS: - { - alt33 = 2; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 33, 4, input, 3); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } - else - { - NoViableAltException nvae = new NoViableAltException("", 33, 2, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case INNER: - { - int LA33_2 = input.LA(2); - - if ((LA33_2==JOIN)) - { - switch (input.LA(3)) - { - case FETCH: - { - int LA33_4 = input.LA(4); - - if ((LA33_4==IDENT)) - { - alt33 = 1; - } - else if ((LA33_4==ELEMENTS)) - { - alt33 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 33, 6, input, 4); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case IDENT: - { - alt33 = 1; - } - break; - case ELEMENTS: - { - alt33 = 2; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 33, 4, input, 3); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } - else - { - NoViableAltException nvae = new NoViableAltException("", 33, 3, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case JOIN: - { - switch (input.LA(2)) - { - case FETCH: - { - int LA33_3 = input.LA(3); - - if ((LA33_3==IDENT)) - { - alt33 = 1; - } - else if ((LA33_3==ELEMENTS)) - { - alt33 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 33, 6, input, 3); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case IDENT: - { - alt33 = 1; - } - break; - case ELEMENTS: - { - alt33 = 2; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 33, 4, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 33, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(33); } - switch (alt33) - { - case 1: - DebugEnterAlt(1); - // Hql.g:257:4: ( ( ( LEFT | RIGHT ) ( OUTER )? ) | FULL | INNER )? JOIN ^ ( FETCH )? path ( asAlias )? ( propertyFetch )? ( withClause )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(257, 4); - // Hql.g:257:4: ( ( ( LEFT | RIGHT ) ( OUTER )? ) | FULL | INNER )? - int alt22=4; - try { DebugEnterSubRule(22); - try { DebugEnterDecision(22, false); - switch (input.LA(1)) - { - case LEFT: - case RIGHT: - { - alt22 = 1; - } - break; - case FULL: - { - alt22 = 2; - } - break; - case INNER: - { - alt22 = 3; - } - break; - } - - } finally { DebugExitDecision(22); } - switch (alt22) - { - case 1: - DebugEnterAlt(1); - // Hql.g:257:6: ( ( LEFT | RIGHT ) ( OUTER )? ) - { - DebugLocation(257, 6); - // Hql.g:257:6: ( ( LEFT | RIGHT ) ( OUTER )? ) - DebugEnterAlt(1); - // Hql.g:257:8: ( LEFT | RIGHT ) ( OUTER )? - { - DebugLocation(257, 8); - - set63=(IToken)input.LT(1); - if (input.LA(1)==LEFT||input.LA(1)==RIGHT) - { - input.Consume(); - adaptor.AddChild(root_0, (IASTNode)adaptor.Create(set63)); - state.errorRecovery=false; - } - else - { - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - throw mse; - } - - DebugLocation(257, 25); - // Hql.g:257:25: ( OUTER )? - int alt21=2; - try { DebugEnterSubRule(21); - try { DebugEnterDecision(21, false); - int LA21_1 = input.LA(1); - - if ((LA21_1==OUTER)) - { - alt21 = 1; - } - } finally { DebugExitDecision(21); } - switch (alt21) - { - case 1: - DebugEnterAlt(1); - // Hql.g:257:26: OUTER - { - DebugLocation(257, 26); - OUTER64=(IToken)Match(input,OUTER,Follow._OUTER_in_fromJoin1208); - OUTER64_tree = (IASTNode)adaptor.Create(OUTER64); - adaptor.AddChild(root_0, OUTER64_tree); - - } - break; - - } - } finally { DebugExitSubRule(21); } - - - } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:257:38: FULL - { - DebugLocation(257, 38); - FULL65=(IToken)Match(input,FULL,Follow._FULL_in_fromJoin1216); - FULL65_tree = (IASTNode)adaptor.Create(FULL65); - adaptor.AddChild(root_0, FULL65_tree); - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:257:45: INNER - { - DebugLocation(257, 45); - INNER66=(IToken)Match(input,INNER,Follow._INNER_in_fromJoin1220); - INNER66_tree = (IASTNode)adaptor.Create(INNER66); - adaptor.AddChild(root_0, INNER66_tree); - - } - break; - - } - } finally { DebugExitSubRule(22); } - - DebugLocation(257, 58); - JOIN67=(IToken)Match(input,JOIN,Follow._JOIN_in_fromJoin1225); - JOIN67_tree = (IASTNode)adaptor.Create(JOIN67); - root_0 = (IASTNode)adaptor.BecomeRoot(JOIN67_tree, root_0); - DebugLocation(257, 60); - // Hql.g:257:60: ( FETCH )? - int alt23=2; - try { DebugEnterSubRule(23); - try { DebugEnterDecision(23, false); - int LA23_1 = input.LA(1); - - if ((LA23_1==FETCH)) - { - alt23 = 1; - } - } finally { DebugExitDecision(23); } - switch (alt23) - { - case 1: - DebugEnterAlt(1); - // Hql.g:257:61: FETCH - { - DebugLocation(257, 61); - FETCH68=(IToken)Match(input,FETCH,Follow._FETCH_in_fromJoin1229); - FETCH68_tree = (IASTNode)adaptor.Create(FETCH68); - adaptor.AddChild(root_0, FETCH68_tree); - - } - break; - - } - } finally { DebugExitSubRule(23); } - - DebugLocation(257, 69); - PushFollow(Follow._path_in_fromJoin1233); - path69=path(); - PopFollow(); - - adaptor.AddChild(root_0, path69.Tree); - DebugLocation(257, 74); - // Hql.g:257:74: ( asAlias )? - int alt24=2; - try { DebugEnterSubRule(24); - try { DebugEnterDecision(24, false); - int LA24_1 = input.LA(1); - - if ((LA24_1==AS||LA24_1==IDENT)) - { - alt24 = 1; - } - } finally { DebugExitDecision(24); } - switch (alt24) - { - case 1: - DebugEnterAlt(1); - // Hql.g:257:75: asAlias - { - DebugLocation(257, 75); - PushFollow(Follow._asAlias_in_fromJoin1236); - asAlias70=asAlias(); - PopFollow(); - - adaptor.AddChild(root_0, asAlias70.Tree); - - } - break; - - } - } finally { DebugExitSubRule(24); } - - DebugLocation(257, 85); - // Hql.g:257:85: ( propertyFetch )? - int alt25=2; - try { DebugEnterSubRule(25); - try { DebugEnterDecision(25, false); - int LA25_1 = input.LA(1); - - if ((LA25_1==FETCH)) - { - alt25 = 1; - } - } finally { DebugExitDecision(25); } - switch (alt25) - { - case 1: - DebugEnterAlt(1); - // Hql.g:257:86: propertyFetch - { - DebugLocation(257, 86); - PushFollow(Follow._propertyFetch_in_fromJoin1241); - propertyFetch71=propertyFetch(); - PopFollow(); - - adaptor.AddChild(root_0, propertyFetch71.Tree); - - } - break; - - } - } finally { DebugExitSubRule(25); } - - DebugLocation(257, 102); - // Hql.g:257:102: ( withClause )? - int alt26=2; - try { DebugEnterSubRule(26); - try { DebugEnterDecision(26, false); - int LA26_1 = input.LA(1); - - if ((LA26_1==WITH)) - { - alt26 = 1; - } - } finally { DebugExitDecision(26); } - switch (alt26) - { - case 1: - DebugEnterAlt(1); - // Hql.g:257:103: withClause - { - DebugLocation(257, 103); - PushFollow(Follow._withClause_in_fromJoin1246); - withClause72=withClause(); - PopFollow(); - - adaptor.AddChild(root_0, withClause72.Tree); - - } - break; - - } - } finally { DebugExitSubRule(26); } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:258:4: ( ( ( LEFT | RIGHT ) ( OUTER )? ) | FULL | INNER )? JOIN ^ ( FETCH )? ELEMENTS ! OPEN ! path CLOSE ! ( asAlias )? ( propertyFetch )? ( withClause )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(258, 4); - // Hql.g:258:4: ( ( ( LEFT | RIGHT ) ( OUTER )? ) | FULL | INNER )? - int alt28=4; - try { DebugEnterSubRule(28); - try { DebugEnterDecision(28, false); - switch (input.LA(1)) - { - case LEFT: - case RIGHT: - { - alt28 = 1; - } - break; - case FULL: - { - alt28 = 2; - } - break; - case INNER: - { - alt28 = 3; - } - break; - } - - } finally { DebugExitDecision(28); } - switch (alt28) - { - case 1: - DebugEnterAlt(1); - // Hql.g:258:6: ( ( LEFT | RIGHT ) ( OUTER )? ) - { - DebugLocation(258, 6); - // Hql.g:258:6: ( ( LEFT | RIGHT ) ( OUTER )? ) - DebugEnterAlt(1); - // Hql.g:258:8: ( LEFT | RIGHT ) ( OUTER )? - { - DebugLocation(258, 8); - - set73=(IToken)input.LT(1); - if (input.LA(1)==LEFT||input.LA(1)==RIGHT) - { - input.Consume(); - adaptor.AddChild(root_0, (IASTNode)adaptor.Create(set73)); - state.errorRecovery=false; - } - else - { - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - throw mse; - } - - DebugLocation(258, 25); - // Hql.g:258:25: ( OUTER )? - int alt27=2; - try { DebugEnterSubRule(27); - try { DebugEnterDecision(27, false); - int LA27_1 = input.LA(1); - - if ((LA27_1==OUTER)) - { - alt27 = 1; - } - } finally { DebugExitDecision(27); } - switch (alt27) - { - case 1: - DebugEnterAlt(1); - // Hql.g:258:26: OUTER - { - DebugLocation(258, 26); - OUTER74=(IToken)Match(input,OUTER,Follow._OUTER_in_fromJoin1268); - OUTER74_tree = (IASTNode)adaptor.Create(OUTER74); - adaptor.AddChild(root_0, OUTER74_tree); - - } - break; - - } - } finally { DebugExitSubRule(27); } - - - } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:258:38: FULL - { - DebugLocation(258, 38); - FULL75=(IToken)Match(input,FULL,Follow._FULL_in_fromJoin1276); - FULL75_tree = (IASTNode)adaptor.Create(FULL75); - adaptor.AddChild(root_0, FULL75_tree); - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:258:45: INNER - { - DebugLocation(258, 45); - INNER76=(IToken)Match(input,INNER,Follow._INNER_in_fromJoin1280); - INNER76_tree = (IASTNode)adaptor.Create(INNER76); - adaptor.AddChild(root_0, INNER76_tree); - - } - break; - - } - } finally { DebugExitSubRule(28); } - - DebugLocation(258, 58); - JOIN77=(IToken)Match(input,JOIN,Follow._JOIN_in_fromJoin1285); - JOIN77_tree = (IASTNode)adaptor.Create(JOIN77); - root_0 = (IASTNode)adaptor.BecomeRoot(JOIN77_tree, root_0); - DebugLocation(258, 60); - // Hql.g:258:60: ( FETCH )? - int alt29=2; - try { DebugEnterSubRule(29); - try { DebugEnterDecision(29, false); - int LA29_1 = input.LA(1); - - if ((LA29_1==FETCH)) - { - alt29 = 1; - } - } finally { DebugExitDecision(29); } - switch (alt29) - { - case 1: - DebugEnterAlt(1); - // Hql.g:258:61: FETCH - { - DebugLocation(258, 61); - FETCH78=(IToken)Match(input,FETCH,Follow._FETCH_in_fromJoin1289); - FETCH78_tree = (IASTNode)adaptor.Create(FETCH78); - adaptor.AddChild(root_0, FETCH78_tree); - - } - break; - - } - } finally { DebugExitSubRule(29); } - - DebugLocation(258, 77); - ELEMENTS79=(IToken)Match(input,ELEMENTS,Follow._ELEMENTS_in_fromJoin1293); - DebugLocation(258, 83); - OPEN80=(IToken)Match(input,OPEN,Follow._OPEN_in_fromJoin1296); - DebugLocation(258, 85); - PushFollow(Follow._path_in_fromJoin1299); - path81=path(); - PopFollow(); - - adaptor.AddChild(root_0, path81.Tree); - DebugLocation(258, 95); - CLOSE82=(IToken)Match(input,CLOSE,Follow._CLOSE_in_fromJoin1301); - DebugLocation(258, 97); - // Hql.g:258:97: ( asAlias )? - int alt30=2; - try { DebugEnterSubRule(30); - try { DebugEnterDecision(30, false); - int LA30_1 = input.LA(1); - - if ((LA30_1==AS||LA30_1==IDENT)) - { - alt30 = 1; - } - } finally { DebugExitDecision(30); } - switch (alt30) - { - case 1: - DebugEnterAlt(1); - // Hql.g:258:98: asAlias - { - DebugLocation(258, 98); - PushFollow(Follow._asAlias_in_fromJoin1305); - asAlias83=asAlias(); - PopFollow(); - - adaptor.AddChild(root_0, asAlias83.Tree); - - } - break; - - } - } finally { DebugExitSubRule(30); } - - DebugLocation(258, 108); - // Hql.g:258:108: ( propertyFetch )? - int alt31=2; - try { DebugEnterSubRule(31); - try { DebugEnterDecision(31, false); - int LA31_1 = input.LA(1); - - if ((LA31_1==FETCH)) - { - alt31 = 1; - } - } finally { DebugExitDecision(31); } - switch (alt31) - { - case 1: - DebugEnterAlt(1); - // Hql.g:258:109: propertyFetch - { - DebugLocation(258, 109); - PushFollow(Follow._propertyFetch_in_fromJoin1310); - propertyFetch84=propertyFetch(); - PopFollow(); - - adaptor.AddChild(root_0, propertyFetch84.Tree); - - } - break; - - } - } finally { DebugExitSubRule(31); } - - DebugLocation(258, 125); - // Hql.g:258:125: ( withClause )? - int alt32=2; - try { DebugEnterSubRule(32); - try { DebugEnterDecision(32, false); - int LA32_1 = input.LA(1); - - if ((LA32_1==WITH)) - { - alt32 = 1; - } - } finally { DebugExitDecision(32); } - switch (alt32) - { - case 1: - DebugEnterAlt(1); - // Hql.g:258:126: withClause - { - DebugLocation(258, 126); - PushFollow(Follow._withClause_in_fromJoin1315); - withClause85=withClause(); - PopFollow(); - - adaptor.AddChild(root_0, withClause85.Tree); - - } - break; - - } - } finally { DebugExitSubRule(32); } - - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("fromJoin", 20); - LeaveRule("fromJoin", 20); - LeaveRule_fromJoin(); - } - DebugLocation(259, 1); - } finally { DebugExitRule(GrammarFileName, "fromJoin"); } - return retval; - - } - // $ANTLR end "fromJoin" - - partial void EnterRule_withClause(); - partial void LeaveRule_withClause(); - // $ANTLR start "withClause" - // Hql.g:261:1: withClause : WITH ^ logicalExpression ; - [GrammarRule("withClause")] - private AstParserRuleReturnScope withClause() - { - EnterRule_withClause(); - EnterRule("withClause", 21); - TraceIn("withClause", 21); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken WITH86 = default(IToken); - AstParserRuleReturnScope logicalExpression87 = default(AstParserRuleReturnScope); - - IASTNode WITH86_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "withClause"); - DebugLocation(261, 1); - try - { - // Hql.g:262:2: ( WITH ^ logicalExpression ) - DebugEnterAlt(1); - // Hql.g:262:4: WITH ^ logicalExpression - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(262, 8); - WITH86=(IToken)Match(input,WITH,Follow._WITH_in_withClause1328); - WITH86_tree = (IASTNode)adaptor.Create(WITH86); - root_0 = (IASTNode)adaptor.BecomeRoot(WITH86_tree, root_0); - DebugLocation(262, 10); - PushFollow(Follow._logicalExpression_in_withClause1331); - logicalExpression87=logicalExpression(); - PopFollow(); - - adaptor.AddChild(root_0, logicalExpression87.Tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("withClause", 21); - LeaveRule("withClause", 21); - LeaveRule_withClause(); - } - DebugLocation(263, 1); - } finally { DebugExitRule(GrammarFileName, "withClause"); } - return retval; - - } - // $ANTLR end "withClause" - - partial void EnterRule_fromRange(); - partial void LeaveRule_fromRange(); - // $ANTLR start "fromRange" - // Hql.g:265:1: fromRange : ( fromClassOrOuterQueryPath | inClassDeclaration | inCollectionDeclaration | inCollectionElementsDeclaration ); - [GrammarRule("fromRange")] - private AstParserRuleReturnScope fromRange() - { - EnterRule_fromRange(); - EnterRule("fromRange", 22); - TraceIn("fromRange", 22); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope fromClassOrOuterQueryPath88 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope inClassDeclaration89 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope inCollectionDeclaration90 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope inCollectionElementsDeclaration91 = default(AstParserRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "fromRange"); - DebugLocation(265, 1); - try - { - // Hql.g:266:2: ( fromClassOrOuterQueryPath | inClassDeclaration | inCollectionDeclaration | inCollectionElementsDeclaration ) - int alt34=4; - try { DebugEnterDecision(34, false); - switch (input.LA(1)) - { - case IDENT: - { - int LA34_2 = input.LA(2); - - if ((LA34_2==EOF||LA34_2==AS||LA34_2==CLOSE||LA34_2==COMMA||LA34_2==DOT||LA34_2==FETCH||LA34_2==FULL||LA34_2==GROUP||LA34_2==HAVING||LA34_2==IDENT||LA34_2==INNER||LA34_2==JOIN||LA34_2==LEFT||LA34_2==ORDER||LA34_2==RIGHT||LA34_2==SKIP||LA34_2==TAKE||LA34_2==UNION||LA34_2==WHERE)) - { - alt34 = 1; - } - else if ((LA34_2==IN)) - { - int LA34_3 = input.LA(3); - - if ((LA34_3==ELEMENTS)) - { - alt34 = 4; - } - else if ((LA34_3==CLASS||LA34_3==IDENT)) - { - alt34 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 34, 5, input, 3); - DebugRecognitionException(nvae); - throw nvae; - } - } - else - { - NoViableAltException nvae = new NoViableAltException("", 34, 1, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case IN: - { - alt34 = 3; - } - break; - case ELEMENTS: - { - alt34 = 4; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 34, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(34); } - switch (alt34) - { - case 1: - DebugEnterAlt(1); - // Hql.g:266:4: fromClassOrOuterQueryPath - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(266, 4); - PushFollow(Follow._fromClassOrOuterQueryPath_in_fromRange1342); - fromClassOrOuterQueryPath88=fromClassOrOuterQueryPath(); - PopFollow(); - - adaptor.AddChild(root_0, fromClassOrOuterQueryPath88.Tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:267:4: inClassDeclaration - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(267, 4); - PushFollow(Follow._inClassDeclaration_in_fromRange1347); - inClassDeclaration89=inClassDeclaration(); - PopFollow(); - - adaptor.AddChild(root_0, inClassDeclaration89.Tree); - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:268:4: inCollectionDeclaration - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(268, 4); - PushFollow(Follow._inCollectionDeclaration_in_fromRange1352); - inCollectionDeclaration90=inCollectionDeclaration(); - PopFollow(); - - adaptor.AddChild(root_0, inCollectionDeclaration90.Tree); - - } - break; - case 4: - DebugEnterAlt(4); - // Hql.g:269:4: inCollectionElementsDeclaration - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(269, 4); - PushFollow(Follow._inCollectionElementsDeclaration_in_fromRange1357); - inCollectionElementsDeclaration91=inCollectionElementsDeclaration(); - PopFollow(); - - adaptor.AddChild(root_0, inCollectionElementsDeclaration91.Tree); - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("fromRange", 22); - LeaveRule("fromRange", 22); - LeaveRule_fromRange(); - } - DebugLocation(270, 1); - } finally { DebugExitRule(GrammarFileName, "fromRange"); } - return retval; - - } - // $ANTLR end "fromRange" - - partial void EnterRule_fromClassOrOuterQueryPath(); - partial void LeaveRule_fromClassOrOuterQueryPath(); - // $ANTLR start "fromClassOrOuterQueryPath" - // Hql.g:272:1: fromClassOrOuterQueryPath : path ( asAlias )? ( propertyFetch )? -> ^( RANGE path ( asAlias )? ( propertyFetch )? ) ; - [GrammarRule("fromClassOrOuterQueryPath")] - private AstParserRuleReturnScope fromClassOrOuterQueryPath() - { - EnterRule_fromClassOrOuterQueryPath(); - EnterRule("fromClassOrOuterQueryPath", 23); - TraceIn("fromClassOrOuterQueryPath", 23); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope path92 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope asAlias93 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope propertyFetch94 = default(AstParserRuleReturnScope); - - RewriteRuleSubtreeStream stream_path=new RewriteRuleSubtreeStream(adaptor,"rule path"); - RewriteRuleSubtreeStream stream_asAlias=new RewriteRuleSubtreeStream(adaptor,"rule asAlias"); - RewriteRuleSubtreeStream stream_propertyFetch=new RewriteRuleSubtreeStream(adaptor,"rule propertyFetch"); - try { DebugEnterRule(GrammarFileName, "fromClassOrOuterQueryPath"); - DebugLocation(272, 1); - try - { - // Hql.g:273:2: ( path ( asAlias )? ( propertyFetch )? -> ^( RANGE path ( asAlias )? ( propertyFetch )? ) ) - DebugEnterAlt(1); - // Hql.g:273:4: path ( asAlias )? ( propertyFetch )? - { - DebugLocation(273, 4); - PushFollow(Follow._path_in_fromClassOrOuterQueryPath1369); - path92=path(); - PopFollow(); - - stream_path.Add(path92.Tree); - DebugLocation(273, 9); - WeakKeywords(); - DebugLocation(273, 29); - // Hql.g:273:29: ( asAlias )? - int alt35=2; - try { DebugEnterSubRule(35); - try { DebugEnterDecision(35, false); - int LA35_1 = input.LA(1); - - if ((LA35_1==AS||LA35_1==IDENT)) - { - alt35 = 1; - } - } finally { DebugExitDecision(35); } - switch (alt35) - { - case 1: - DebugEnterAlt(1); - // Hql.g:273:30: asAlias - { - DebugLocation(273, 30); - PushFollow(Follow._asAlias_in_fromClassOrOuterQueryPath1374); - asAlias93=asAlias(); - PopFollow(); - - stream_asAlias.Add(asAlias93.Tree); - - } - break; - - } - } finally { DebugExitSubRule(35); } - - DebugLocation(273, 40); - // Hql.g:273:40: ( propertyFetch )? - int alt36=2; - try { DebugEnterSubRule(36); - try { DebugEnterDecision(36, false); - int LA36_1 = input.LA(1); - - if ((LA36_1==FETCH)) - { - alt36 = 1; - } - } finally { DebugExitDecision(36); } - switch (alt36) - { - case 1: - DebugEnterAlt(1); - // Hql.g:273:41: propertyFetch - { - DebugLocation(273, 41); - PushFollow(Follow._propertyFetch_in_fromClassOrOuterQueryPath1379); - propertyFetch94=propertyFetch(); - PopFollow(); - - stream_propertyFetch.Add(propertyFetch94.Tree); - - } - break; - - } - } finally { DebugExitSubRule(36); } - - - - { - // AST REWRITE - // elements: path, asAlias, propertyFetch - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 274:3: -> ^( RANGE path ( asAlias )? ( propertyFetch )? ) - { - DebugLocation(274, 6); - // Hql.g:274:6: ^( RANGE path ( asAlias )? ( propertyFetch )? ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(274, 8); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(RANGE, "RANGE"), root_1); - - DebugLocation(274, 14); - adaptor.AddChild(root_1, stream_path.NextTree()); - DebugLocation(274, 19); - // Hql.g:274:19: ( asAlias )? - if (stream_asAlias.HasNext) - { - DebugLocation(274, 19); - adaptor.AddChild(root_1, stream_asAlias.NextTree()); - - } - stream_asAlias.Reset(); - DebugLocation(274, 28); - // Hql.g:274:28: ( propertyFetch )? - if (stream_propertyFetch.HasNext) - { - DebugLocation(274, 28); - adaptor.AddChild(root_1, stream_propertyFetch.NextTree()); - - } - stream_propertyFetch.Reset(); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("fromClassOrOuterQueryPath", 23); - LeaveRule("fromClassOrOuterQueryPath", 23); - LeaveRule_fromClassOrOuterQueryPath(); - } - DebugLocation(275, 1); - } finally { DebugExitRule(GrammarFileName, "fromClassOrOuterQueryPath"); } - return retval; - - } - // $ANTLR end "fromClassOrOuterQueryPath" - - partial void EnterRule_inClassDeclaration(); - partial void LeaveRule_inClassDeclaration(); - // $ANTLR start "inClassDeclaration" - // Hql.g:277:1: inClassDeclaration : alias IN ( CLASS )? path -> ^( RANGE path alias ) ; - [GrammarRule("inClassDeclaration")] - private AstParserRuleReturnScope inClassDeclaration() - { - EnterRule_inClassDeclaration(); - EnterRule("inClassDeclaration", 24); - TraceIn("inClassDeclaration", 24); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken IN96 = default(IToken); - IToken CLASS97 = default(IToken); - AstParserRuleReturnScope alias95 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope path98 = default(AstParserRuleReturnScope); - - IASTNode IN96_tree = default(IASTNode); - IASTNode CLASS97_tree = default(IASTNode); - RewriteRuleITokenStream stream_IN=new RewriteRuleITokenStream(adaptor,"token IN"); - RewriteRuleITokenStream stream_CLASS=new RewriteRuleITokenStream(adaptor,"token CLASS"); - RewriteRuleSubtreeStream stream_alias=new RewriteRuleSubtreeStream(adaptor,"rule alias"); - RewriteRuleSubtreeStream stream_path=new RewriteRuleSubtreeStream(adaptor,"rule path"); - try { DebugEnterRule(GrammarFileName, "inClassDeclaration"); - DebugLocation(277, 1); - try - { - // Hql.g:278:2: ( alias IN ( CLASS )? path -> ^( RANGE path alias ) ) - DebugEnterAlt(1); - // Hql.g:278:4: alias IN ( CLASS )? path - { - DebugLocation(278, 4); - PushFollow(Follow._alias_in_inClassDeclaration1409); - alias95=alias(); - PopFollow(); - - stream_alias.Add(alias95.Tree); - DebugLocation(278, 10); - IN96=(IToken)Match(input,IN,Follow._IN_in_inClassDeclaration1411); - stream_IN.Add(IN96); - - DebugLocation(278, 13); - // Hql.g:278:13: ( CLASS )? - int alt37=2; - try { DebugEnterSubRule(37); - try { DebugEnterDecision(37, false); - int LA37_1 = input.LA(1); - - if ((LA37_1==CLASS)) - { - alt37 = 1; - } - } finally { DebugExitDecision(37); } - switch (alt37) - { - case 1: - DebugEnterAlt(1); - // Hql.g:278:13: CLASS - { - DebugLocation(278, 13); - CLASS97=(IToken)Match(input,CLASS,Follow._CLASS_in_inClassDeclaration1413); - stream_CLASS.Add(CLASS97); - - - } - break; - - } - } finally { DebugExitSubRule(37); } - - DebugLocation(278, 20); - PushFollow(Follow._path_in_inClassDeclaration1416); - path98=path(); - PopFollow(); - - stream_path.Add(path98.Tree); - - - { - // AST REWRITE - // elements: path, alias - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 279:3: -> ^( RANGE path alias ) - { - DebugLocation(279, 6); - // Hql.g:279:6: ^( RANGE path alias ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(279, 8); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(RANGE, "RANGE"), root_1); - - DebugLocation(279, 14); - adaptor.AddChild(root_1, stream_path.NextTree()); - DebugLocation(279, 19); - adaptor.AddChild(root_1, stream_alias.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("inClassDeclaration", 24); - LeaveRule("inClassDeclaration", 24); - LeaveRule_inClassDeclaration(); - } - DebugLocation(280, 1); - } finally { DebugExitRule(GrammarFileName, "inClassDeclaration"); } - return retval; - - } - // $ANTLR end "inClassDeclaration" - - partial void EnterRule_inCollectionDeclaration(); - partial void LeaveRule_inCollectionDeclaration(); - // $ANTLR start "inCollectionDeclaration" - // Hql.g:282:1: inCollectionDeclaration : IN OPEN path CLOSE alias -> ^( JOIN[\"join\"] INNER[\"inner\"] path alias ) ; - [GrammarRule("inCollectionDeclaration")] - private AstParserRuleReturnScope inCollectionDeclaration() - { - EnterRule_inCollectionDeclaration(); - EnterRule("inCollectionDeclaration", 25); - TraceIn("inCollectionDeclaration", 25); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken IN99 = default(IToken); - IToken OPEN100 = default(IToken); - IToken CLOSE102 = default(IToken); - AstParserRuleReturnScope path101 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope alias103 = default(AstParserRuleReturnScope); - - IASTNode IN99_tree = default(IASTNode); - IASTNode OPEN100_tree = default(IASTNode); - IASTNode CLOSE102_tree = default(IASTNode); - RewriteRuleITokenStream stream_IN=new RewriteRuleITokenStream(adaptor,"token IN"); - RewriteRuleITokenStream stream_OPEN=new RewriteRuleITokenStream(adaptor,"token OPEN"); - RewriteRuleITokenStream stream_CLOSE=new RewriteRuleITokenStream(adaptor,"token CLOSE"); - RewriteRuleSubtreeStream stream_path=new RewriteRuleSubtreeStream(adaptor,"rule path"); - RewriteRuleSubtreeStream stream_alias=new RewriteRuleSubtreeStream(adaptor,"rule alias"); - try { DebugEnterRule(GrammarFileName, "inCollectionDeclaration"); - DebugLocation(282, 4); - try - { - // Hql.g:283:5: ( IN OPEN path CLOSE alias -> ^( JOIN[\"join\"] INNER[\"inner\"] path alias ) ) - DebugEnterAlt(1); - // Hql.g:283:7: IN OPEN path CLOSE alias - { - DebugLocation(283, 7); - IN99=(IToken)Match(input,IN,Follow._IN_in_inCollectionDeclaration1444); - stream_IN.Add(IN99); - - DebugLocation(283, 10); - OPEN100=(IToken)Match(input,OPEN,Follow._OPEN_in_inCollectionDeclaration1446); - stream_OPEN.Add(OPEN100); - - DebugLocation(283, 15); - PushFollow(Follow._path_in_inCollectionDeclaration1448); - path101=path(); - PopFollow(); - - stream_path.Add(path101.Tree); - DebugLocation(283, 20); - CLOSE102=(IToken)Match(input,CLOSE,Follow._CLOSE_in_inCollectionDeclaration1450); - stream_CLOSE.Add(CLOSE102); - - DebugLocation(283, 26); - PushFollow(Follow._alias_in_inCollectionDeclaration1452); - alias103=alias(); - PopFollow(); - - stream_alias.Add(alias103.Tree); - - - { - // AST REWRITE - // elements: path, alias - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 284:6: -> ^( JOIN[\"join\"] INNER[\"inner\"] path alias ) - { - DebugLocation(284, 9); - // Hql.g:284:9: ^( JOIN[\"join\"] INNER[\"inner\"] path alias ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(284, 11); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(JOIN, "join"), root_1); - - DebugLocation(284, 24); - adaptor.AddChild(root_1, (IASTNode)adaptor.Create(INNER, "inner")); - DebugLocation(284, 39); - adaptor.AddChild(root_1, stream_path.NextTree()); - DebugLocation(284, 44); - adaptor.AddChild(root_1, stream_alias.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("inCollectionDeclaration", 25); - LeaveRule("inCollectionDeclaration", 25); - LeaveRule_inCollectionDeclaration(); - } - DebugLocation(285, 4); - } finally { DebugExitRule(GrammarFileName, "inCollectionDeclaration"); } - return retval; - - } - // $ANTLR end "inCollectionDeclaration" - - partial void EnterRule_inCollectionElementsDeclaration(); - partial void LeaveRule_inCollectionElementsDeclaration(); - // $ANTLR start "inCollectionElementsDeclaration" - // Hql.g:287:1: inCollectionElementsDeclaration : ( alias IN ELEMENTS OPEN path CLOSE -> ^( JOIN[\"join\"] INNER[\"inner\"] path alias ) | ELEMENTS OPEN path CLOSE AS alias -> ^( JOIN[\"join\"] INNER[\"inner\"] path alias ) ); - [GrammarRule("inCollectionElementsDeclaration")] - private AstParserRuleReturnScope inCollectionElementsDeclaration() - { - EnterRule_inCollectionElementsDeclaration(); - EnterRule("inCollectionElementsDeclaration", 26); - TraceIn("inCollectionElementsDeclaration", 26); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken IN105 = default(IToken); - IToken ELEMENTS106 = default(IToken); - IToken OPEN107 = default(IToken); - IToken CLOSE109 = default(IToken); - IToken ELEMENTS110 = default(IToken); - IToken OPEN111 = default(IToken); - IToken CLOSE113 = default(IToken); - IToken AS114 = default(IToken); - AstParserRuleReturnScope alias104 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope path108 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope path112 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope alias115 = default(AstParserRuleReturnScope); - - IASTNode IN105_tree = default(IASTNode); - IASTNode ELEMENTS106_tree = default(IASTNode); - IASTNode OPEN107_tree = default(IASTNode); - IASTNode CLOSE109_tree = default(IASTNode); - IASTNode ELEMENTS110_tree = default(IASTNode); - IASTNode OPEN111_tree = default(IASTNode); - IASTNode CLOSE113_tree = default(IASTNode); - IASTNode AS114_tree = default(IASTNode); - RewriteRuleITokenStream stream_IN=new RewriteRuleITokenStream(adaptor,"token IN"); - RewriteRuleITokenStream stream_ELEMENTS=new RewriteRuleITokenStream(adaptor,"token ELEMENTS"); - RewriteRuleITokenStream stream_OPEN=new RewriteRuleITokenStream(adaptor,"token OPEN"); - RewriteRuleITokenStream stream_CLOSE=new RewriteRuleITokenStream(adaptor,"token CLOSE"); - RewriteRuleITokenStream stream_AS=new RewriteRuleITokenStream(adaptor,"token AS"); - RewriteRuleSubtreeStream stream_alias=new RewriteRuleSubtreeStream(adaptor,"rule alias"); - RewriteRuleSubtreeStream stream_path=new RewriteRuleSubtreeStream(adaptor,"rule path"); - try { DebugEnterRule(GrammarFileName, "inCollectionElementsDeclaration"); - DebugLocation(287, 4); - try - { - // Hql.g:288:2: ( alias IN ELEMENTS OPEN path CLOSE -> ^( JOIN[\"join\"] INNER[\"inner\"] path alias ) | ELEMENTS OPEN path CLOSE AS alias -> ^( JOIN[\"join\"] INNER[\"inner\"] path alias ) ) - int alt38=2; - try { DebugEnterDecision(38, false); - int LA38_1 = input.LA(1); - - if ((LA38_1==IDENT)) - { - alt38 = 1; - } - else if ((LA38_1==ELEMENTS)) - { - alt38 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 38, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(38); } - switch (alt38) - { - case 1: - DebugEnterAlt(1); - // Hql.g:288:4: alias IN ELEMENTS OPEN path CLOSE - { - DebugLocation(288, 4); - PushFollow(Follow._alias_in_inCollectionElementsDeclaration1486); - alias104=alias(); - PopFollow(); - - stream_alias.Add(alias104.Tree); - DebugLocation(288, 10); - IN105=(IToken)Match(input,IN,Follow._IN_in_inCollectionElementsDeclaration1488); - stream_IN.Add(IN105); - - DebugLocation(288, 13); - ELEMENTS106=(IToken)Match(input,ELEMENTS,Follow._ELEMENTS_in_inCollectionElementsDeclaration1490); - stream_ELEMENTS.Add(ELEMENTS106); - - DebugLocation(288, 22); - OPEN107=(IToken)Match(input,OPEN,Follow._OPEN_in_inCollectionElementsDeclaration1492); - stream_OPEN.Add(OPEN107); - - DebugLocation(288, 27); - PushFollow(Follow._path_in_inCollectionElementsDeclaration1494); - path108=path(); - PopFollow(); - - stream_path.Add(path108.Tree); - DebugLocation(288, 32); - CLOSE109=(IToken)Match(input,CLOSE,Follow._CLOSE_in_inCollectionElementsDeclaration1496); - stream_CLOSE.Add(CLOSE109); - - - - { - // AST REWRITE - // elements: path, alias - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 289:3: -> ^( JOIN[\"join\"] INNER[\"inner\"] path alias ) - { - DebugLocation(289, 6); - // Hql.g:289:6: ^( JOIN[\"join\"] INNER[\"inner\"] path alias ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(289, 8); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(JOIN, "join"), root_1); - - DebugLocation(289, 21); - adaptor.AddChild(root_1, (IASTNode)adaptor.Create(INNER, "inner")); - DebugLocation(289, 36); - adaptor.AddChild(root_1, stream_path.NextTree()); - DebugLocation(289, 41); - adaptor.AddChild(root_1, stream_alias.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:290:4: ELEMENTS OPEN path CLOSE AS alias - { - DebugLocation(290, 4); - ELEMENTS110=(IToken)Match(input,ELEMENTS,Follow._ELEMENTS_in_inCollectionElementsDeclaration1518); - stream_ELEMENTS.Add(ELEMENTS110); - - DebugLocation(290, 13); - OPEN111=(IToken)Match(input,OPEN,Follow._OPEN_in_inCollectionElementsDeclaration1520); - stream_OPEN.Add(OPEN111); - - DebugLocation(290, 18); - PushFollow(Follow._path_in_inCollectionElementsDeclaration1522); - path112=path(); - PopFollow(); - - stream_path.Add(path112.Tree); - DebugLocation(290, 23); - CLOSE113=(IToken)Match(input,CLOSE,Follow._CLOSE_in_inCollectionElementsDeclaration1524); - stream_CLOSE.Add(CLOSE113); - - DebugLocation(290, 29); - AS114=(IToken)Match(input,AS,Follow._AS_in_inCollectionElementsDeclaration1526); - stream_AS.Add(AS114); - - DebugLocation(290, 32); - PushFollow(Follow._alias_in_inCollectionElementsDeclaration1528); - alias115=alias(); - PopFollow(); - - stream_alias.Add(alias115.Tree); - - - { - // AST REWRITE - // elements: path, alias - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 291:3: -> ^( JOIN[\"join\"] INNER[\"inner\"] path alias ) - { - DebugLocation(291, 6); - // Hql.g:291:6: ^( JOIN[\"join\"] INNER[\"inner\"] path alias ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(291, 8); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(JOIN, "join"), root_1); - - DebugLocation(291, 21); - adaptor.AddChild(root_1, (IASTNode)adaptor.Create(INNER, "inner")); - DebugLocation(291, 36); - adaptor.AddChild(root_1, stream_path.NextTree()); - DebugLocation(291, 41); - adaptor.AddChild(root_1, stream_alias.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("inCollectionElementsDeclaration", 26); - LeaveRule("inCollectionElementsDeclaration", 26); - LeaveRule_inCollectionElementsDeclaration(); - } - DebugLocation(292, 4); - } finally { DebugExitRule(GrammarFileName, "inCollectionElementsDeclaration"); } - return retval; - - } - // $ANTLR end "inCollectionElementsDeclaration" - - partial void EnterRule_asAlias(); - partial void LeaveRule_asAlias(); - // $ANTLR start "asAlias" - // Hql.g:295:1: asAlias : ( AS !)? alias ; - [GrammarRule("asAlias")] - private AstParserRuleReturnScope asAlias() - { - EnterRule_asAlias(); - EnterRule("asAlias", 27); - TraceIn("asAlias", 27); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken AS116 = default(IToken); - AstParserRuleReturnScope alias117 = default(AstParserRuleReturnScope); - - IASTNode AS116_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "asAlias"); - DebugLocation(295, 1); - try - { - // Hql.g:296:2: ( ( AS !)? alias ) - DebugEnterAlt(1); - // Hql.g:296:4: ( AS !)? alias - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(296, 4); - // Hql.g:296:4: ( AS !)? - int alt39=2; - try { DebugEnterSubRule(39); - try { DebugEnterDecision(39, false); - int LA39_1 = input.LA(1); - - if ((LA39_1==AS)) - { - alt39 = 1; - } - } finally { DebugExitDecision(39); } - switch (alt39) - { - case 1: - DebugEnterAlt(1); - // Hql.g:296:5: AS ! - { - DebugLocation(296, 7); - AS116=(IToken)Match(input,AS,Follow._AS_in_asAlias1560); - - } - break; - - } - } finally { DebugExitSubRule(39); } - - DebugLocation(296, 11); - PushFollow(Follow._alias_in_asAlias1565); - alias117=alias(); - PopFollow(); - - adaptor.AddChild(root_0, alias117.Tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("asAlias", 27); - LeaveRule("asAlias", 27); - LeaveRule_asAlias(); - } - DebugLocation(297, 1); - } finally { DebugExitRule(GrammarFileName, "asAlias"); } - return retval; - - } - // $ANTLR end "asAlias" - - partial void EnterRule_alias(); - partial void LeaveRule_alias(); - // $ANTLR start "alias" - // Hql.g:298:1: alias : i= identifier -> ^( ALIAS[$i.start] ) ; - [GrammarRule("alias")] - private AstParserRuleReturnScope alias() - { - EnterRule_alias(); - EnterRule("alias", 28); - TraceIn("alias", 28); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope i = default(AstParserRuleReturnScope); - - RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier"); - try { DebugEnterRule(GrammarFileName, "alias"); - DebugLocation(298, 1); - try - { - // Hql.g:299:2: (i= identifier -> ^( ALIAS[$i.start] ) ) - DebugEnterAlt(1); - // Hql.g:299:4: i= identifier - { - DebugLocation(299, 5); - PushFollow(Follow._identifier_in_alias1577); - i=identifier(); - PopFollow(); - - stream_identifier.Add(i.Tree); - - - { - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 300:2: -> ^( ALIAS[$i.start] ) - { - DebugLocation(300, 5); - // Hql.g:300:5: ^( ALIAS[$i.start] ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(300, 7); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(ALIAS, (i!=null?((IToken)i.Start):default(IToken))), root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("alias", 28); - LeaveRule("alias", 28); - LeaveRule_alias(); - } - DebugLocation(301, 1); - } finally { DebugExitRule(GrammarFileName, "alias"); } - return retval; - - } - // $ANTLR end "alias" - - partial void EnterRule_propertyFetch(); - partial void LeaveRule_propertyFetch(); - // $ANTLR start "propertyFetch" - // Hql.g:303:1: propertyFetch : FETCH ALL ! PROPERTIES !; - [GrammarRule("propertyFetch")] - private AstParserRuleReturnScope propertyFetch() - { - EnterRule_propertyFetch(); - EnterRule("propertyFetch", 29); - TraceIn("propertyFetch", 29); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken FETCH118 = default(IToken); - IToken ALL119 = default(IToken); - IToken PROPERTIES120 = default(IToken); - - IASTNode FETCH118_tree = default(IASTNode); - IASTNode ALL119_tree = default(IASTNode); - IASTNode PROPERTIES120_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "propertyFetch"); - DebugLocation(303, 1); - try - { - // Hql.g:304:2: ( FETCH ALL ! PROPERTIES !) - DebugEnterAlt(1); - // Hql.g:304:4: FETCH ALL ! PROPERTIES ! - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(304, 4); - FETCH118=(IToken)Match(input,FETCH,Follow._FETCH_in_propertyFetch1596); - FETCH118_tree = (IASTNode)adaptor.Create(FETCH118); - adaptor.AddChild(root_0, FETCH118_tree); - DebugLocation(304, 13); - ALL119=(IToken)Match(input,ALL,Follow._ALL_in_propertyFetch1598); - DebugLocation(304, 25); - PROPERTIES120=(IToken)Match(input,PROPERTIES,Follow._PROPERTIES_in_propertyFetch1601); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("propertyFetch", 29); - LeaveRule("propertyFetch", 29); - LeaveRule_propertyFetch(); - } - DebugLocation(305, 1); - } finally { DebugExitRule(GrammarFileName, "propertyFetch"); } - return retval; - - } - // $ANTLR end "propertyFetch" - - partial void EnterRule_groupByClause(); - partial void LeaveRule_groupByClause(); - // $ANTLR start "groupByClause" - // Hql.g:307:1: groupByClause : GROUP ^ 'by' ! expression ( COMMA ! expression )* ; - [GrammarRule("groupByClause")] - private AstParserRuleReturnScope groupByClause() - { - EnterRule_groupByClause(); - EnterRule("groupByClause", 30); - TraceIn("groupByClause", 30); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken GROUP121 = default(IToken); - IToken string_literal122 = default(IToken); - IToken COMMA124 = default(IToken); - AstParserRuleReturnScope expression123 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope expression125 = default(AstParserRuleReturnScope); - - IASTNode GROUP121_tree = default(IASTNode); - IASTNode string_literal122_tree = default(IASTNode); - IASTNode COMMA124_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "groupByClause"); - DebugLocation(307, 1); - try - { - // Hql.g:308:2: ( GROUP ^ 'by' ! expression ( COMMA ! expression )* ) - DebugEnterAlt(1); - // Hql.g:308:4: GROUP ^ 'by' ! expression ( COMMA ! expression )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(308, 9); - GROUP121=(IToken)Match(input,GROUP,Follow._GROUP_in_groupByClause1613); - GROUP121_tree = (IASTNode)adaptor.Create(GROUP121); - root_0 = (IASTNode)adaptor.BecomeRoot(GROUP121_tree, root_0); - DebugLocation(309, 7); - string_literal122=(IToken)Match(input,LITERAL_by,Follow._LITERAL_by_in_groupByClause1619); - DebugLocation(309, 9); - PushFollow(Follow._expression_in_groupByClause1622); - expression123=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression123.Tree); - DebugLocation(309, 20); - // Hql.g:309:20: ( COMMA ! expression )* - try { DebugEnterSubRule(40); - while (true) - { - int alt40=2; - try { DebugEnterDecision(40, false); - int LA40_1 = input.LA(1); - - if ((LA40_1==COMMA)) - { - alt40 = 1; - } - - - } finally { DebugExitDecision(40); } - switch ( alt40 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:309:22: COMMA ! expression - { - DebugLocation(309, 27); - COMMA124=(IToken)Match(input,COMMA,Follow._COMMA_in_groupByClause1626); - DebugLocation(309, 29); - PushFollow(Follow._expression_in_groupByClause1629); - expression125=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression125.Tree); - - } - break; - - default: - goto loop40; - } - } - - loop40: - ; - - } finally { DebugExitSubRule(40); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("groupByClause", 30); - LeaveRule("groupByClause", 30); - LeaveRule_groupByClause(); - } - DebugLocation(310, 1); - } finally { DebugExitRule(GrammarFileName, "groupByClause"); } - return retval; - - } - // $ANTLR end "groupByClause" - - partial void EnterRule_orderByClause(); - partial void LeaveRule_orderByClause(); - // $ANTLR start "orderByClause" - // Hql.g:312:1: orderByClause : ORDER ^ 'by' ! orderElement ( COMMA ! orderElement )* ; - [GrammarRule("orderByClause")] - private AstParserRuleReturnScope orderByClause() - { - EnterRule_orderByClause(); - EnterRule("orderByClause", 31); - TraceIn("orderByClause", 31); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken ORDER126 = default(IToken); - IToken string_literal127 = default(IToken); - IToken COMMA129 = default(IToken); - AstParserRuleReturnScope orderElement128 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope orderElement130 = default(AstParserRuleReturnScope); - - IASTNode ORDER126_tree = default(IASTNode); - IASTNode string_literal127_tree = default(IASTNode); - IASTNode COMMA129_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "orderByClause"); - DebugLocation(312, 1); - try - { - // Hql.g:313:2: ( ORDER ^ 'by' ! orderElement ( COMMA ! orderElement )* ) - DebugEnterAlt(1); - // Hql.g:313:4: ORDER ^ 'by' ! orderElement ( COMMA ! orderElement )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(313, 9); - ORDER126=(IToken)Match(input,ORDER,Follow._ORDER_in_orderByClause1643); - ORDER126_tree = (IASTNode)adaptor.Create(ORDER126); - root_0 = (IASTNode)adaptor.BecomeRoot(ORDER126_tree, root_0); - DebugLocation(313, 15); - string_literal127=(IToken)Match(input,LITERAL_by,Follow._LITERAL_by_in_orderByClause1646); - DebugLocation(313, 17); - PushFollow(Follow._orderElement_in_orderByClause1649); - orderElement128=orderElement(); - PopFollow(); - - adaptor.AddChild(root_0, orderElement128.Tree); - DebugLocation(313, 30); - // Hql.g:313:30: ( COMMA ! orderElement )* - try { DebugEnterSubRule(41); - while (true) - { - int alt41=2; - try { DebugEnterDecision(41, false); - int LA41_1 = input.LA(1); - - if ((LA41_1==COMMA)) - { - alt41 = 1; - } - - - } finally { DebugExitDecision(41); } - switch ( alt41 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:313:32: COMMA ! orderElement - { - DebugLocation(313, 37); - COMMA129=(IToken)Match(input,COMMA,Follow._COMMA_in_orderByClause1653); - DebugLocation(313, 39); - PushFollow(Follow._orderElement_in_orderByClause1656); - orderElement130=orderElement(); - PopFollow(); - - adaptor.AddChild(root_0, orderElement130.Tree); - - } - break; - - default: - goto loop41; - } - } - - loop41: - ; - - } finally { DebugExitSubRule(41); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("orderByClause", 31); - LeaveRule("orderByClause", 31); - LeaveRule_orderByClause(); - } - DebugLocation(314, 1); - } finally { DebugExitRule(GrammarFileName, "orderByClause"); } - return retval; - - } - // $ANTLR end "orderByClause" - - partial void EnterRule_skipClause(); - partial void LeaveRule_skipClause(); - // $ANTLR start "skipClause" - // Hql.g:316:1: skipClause : SKIP ^ ( NUM_INT | parameter ) ; - [GrammarRule("skipClause")] - private AstParserRuleReturnScope skipClause() - { - EnterRule_skipClause(); - EnterRule("skipClause", 32); - TraceIn("skipClause", 32); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken SKIP131 = default(IToken); - IToken NUM_INT132 = default(IToken); - AstParserRuleReturnScope parameter133 = default(AstParserRuleReturnScope); - - IASTNode SKIP131_tree = default(IASTNode); - IASTNode NUM_INT132_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "skipClause"); - DebugLocation(316, 1); - try - { - // Hql.g:317:2: ( SKIP ^ ( NUM_INT | parameter ) ) - DebugEnterAlt(1); - // Hql.g:317:4: SKIP ^ ( NUM_INT | parameter ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(317, 8); - SKIP131=(IToken)Match(input,SKIP,Follow._SKIP_in_skipClause1670); - SKIP131_tree = (IASTNode)adaptor.Create(SKIP131); - root_0 = (IASTNode)adaptor.BecomeRoot(SKIP131_tree, root_0); - DebugLocation(317, 10); - // Hql.g:317:10: ( NUM_INT | parameter ) - int alt42=2; - try { DebugEnterSubRule(42); - try { DebugEnterDecision(42, false); - int LA42_1 = input.LA(1); - - if ((LA42_1==NUM_INT)) - { - alt42 = 1; - } - else if ((LA42_1==COLON||LA42_1==PARAM)) - { - alt42 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 42, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(42); } - switch (alt42) - { - case 1: - DebugEnterAlt(1); - // Hql.g:317:11: NUM_INT - { - DebugLocation(317, 11); - NUM_INT132=(IToken)Match(input,NUM_INT,Follow._NUM_INT_in_skipClause1674); - NUM_INT132_tree = (IASTNode)adaptor.Create(NUM_INT132); - adaptor.AddChild(root_0, NUM_INT132_tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:317:21: parameter - { - DebugLocation(317, 21); - PushFollow(Follow._parameter_in_skipClause1678); - parameter133=parameter(); - PopFollow(); - - adaptor.AddChild(root_0, parameter133.Tree); - - } - break; - - } - } finally { DebugExitSubRule(42); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("skipClause", 32); - LeaveRule("skipClause", 32); - LeaveRule_skipClause(); - } - DebugLocation(318, 1); - } finally { DebugExitRule(GrammarFileName, "skipClause"); } - return retval; - - } - // $ANTLR end "skipClause" - - partial void EnterRule_takeClause(); - partial void LeaveRule_takeClause(); - // $ANTLR start "takeClause" - // Hql.g:320:1: takeClause : TAKE ^ ( NUM_INT | parameter ) ; - [GrammarRule("takeClause")] - private AstParserRuleReturnScope takeClause() - { - EnterRule_takeClause(); - EnterRule("takeClause", 33); - TraceIn("takeClause", 33); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken TAKE134 = default(IToken); - IToken NUM_INT135 = default(IToken); - AstParserRuleReturnScope parameter136 = default(AstParserRuleReturnScope); - - IASTNode TAKE134_tree = default(IASTNode); - IASTNode NUM_INT135_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "takeClause"); - DebugLocation(320, 1); - try - { - // Hql.g:321:2: ( TAKE ^ ( NUM_INT | parameter ) ) - DebugEnterAlt(1); - // Hql.g:321:4: TAKE ^ ( NUM_INT | parameter ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(321, 8); - TAKE134=(IToken)Match(input,TAKE,Follow._TAKE_in_takeClause1690); - TAKE134_tree = (IASTNode)adaptor.Create(TAKE134); - root_0 = (IASTNode)adaptor.BecomeRoot(TAKE134_tree, root_0); - DebugLocation(321, 10); - // Hql.g:321:10: ( NUM_INT | parameter ) - int alt43=2; - try { DebugEnterSubRule(43); - try { DebugEnterDecision(43, false); - int LA43_1 = input.LA(1); - - if ((LA43_1==NUM_INT)) - { - alt43 = 1; - } - else if ((LA43_1==COLON||LA43_1==PARAM)) - { - alt43 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 43, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(43); } - switch (alt43) - { - case 1: - DebugEnterAlt(1); - // Hql.g:321:11: NUM_INT - { - DebugLocation(321, 11); - NUM_INT135=(IToken)Match(input,NUM_INT,Follow._NUM_INT_in_takeClause1694); - NUM_INT135_tree = (IASTNode)adaptor.Create(NUM_INT135); - adaptor.AddChild(root_0, NUM_INT135_tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:321:21: parameter - { - DebugLocation(321, 21); - PushFollow(Follow._parameter_in_takeClause1698); - parameter136=parameter(); - PopFollow(); - - adaptor.AddChild(root_0, parameter136.Tree); - - } - break; - - } - } finally { DebugExitSubRule(43); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("takeClause", 33); - LeaveRule("takeClause", 33); - LeaveRule_takeClause(); - } - DebugLocation(322, 1); - } finally { DebugExitRule(GrammarFileName, "takeClause"); } - return retval; - - } - // $ANTLR end "takeClause" - - partial void EnterRule_parameter(); - partial void LeaveRule_parameter(); - // $ANTLR start "parameter" - // Hql.g:324:1: parameter : ( COLON ^ identifier | PARAM ^ ( NUM_INT )? ); - [GrammarRule("parameter")] - private AstParserRuleReturnScope parameter() - { - EnterRule_parameter(); - EnterRule("parameter", 34); - TraceIn("parameter", 34); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken COLON137 = default(IToken); - IToken PARAM139 = default(IToken); - IToken NUM_INT140 = default(IToken); - AstParserRuleReturnScope identifier138 = default(AstParserRuleReturnScope); - - IASTNode COLON137_tree = default(IASTNode); - IASTNode PARAM139_tree = default(IASTNode); - IASTNode NUM_INT140_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "parameter"); - DebugLocation(324, 1); - try - { - // Hql.g:325:2: ( COLON ^ identifier | PARAM ^ ( NUM_INT )? ) - int alt45=2; - try { DebugEnterDecision(45, false); - int LA45_1 = input.LA(1); - - if ((LA45_1==COLON)) - { - alt45 = 1; - } - else if ((LA45_1==PARAM)) - { - alt45 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 45, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(45); } - switch (alt45) - { - case 1: - DebugEnterAlt(1); - // Hql.g:325:4: COLON ^ identifier - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(325, 9); - COLON137=(IToken)Match(input,COLON,Follow._COLON_in_parameter1710); - COLON137_tree = (IASTNode)adaptor.Create(COLON137); - root_0 = (IASTNode)adaptor.BecomeRoot(COLON137_tree, root_0); - DebugLocation(325, 11); - PushFollow(Follow._identifier_in_parameter1713); - identifier138=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, identifier138.Tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:326:4: PARAM ^ ( NUM_INT )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(326, 9); - PARAM139=(IToken)Match(input,PARAM,Follow._PARAM_in_parameter1718); - PARAM139_tree = (IASTNode)adaptor.Create(PARAM139); - root_0 = (IASTNode)adaptor.BecomeRoot(PARAM139_tree, root_0); - DebugLocation(326, 11); - // Hql.g:326:11: ( NUM_INT )? - int alt44=2; - try { DebugEnterSubRule(44); - try { DebugEnterDecision(44, false); - int LA44_1 = input.LA(1); - - if ((LA44_1==NUM_INT)) - { - alt44 = 1; - } - } finally { DebugExitDecision(44); } - switch (alt44) - { - case 1: - DebugEnterAlt(1); - // Hql.g:326:12: NUM_INT - { - DebugLocation(326, 12); - NUM_INT140=(IToken)Match(input,NUM_INT,Follow._NUM_INT_in_parameter1722); - NUM_INT140_tree = (IASTNode)adaptor.Create(NUM_INT140); - adaptor.AddChild(root_0, NUM_INT140_tree); - - } - break; - - } - } finally { DebugExitSubRule(44); } - - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("parameter", 34); - LeaveRule("parameter", 34); - LeaveRule_parameter(); - } - DebugLocation(327, 1); - } finally { DebugExitRule(GrammarFileName, "parameter"); } - return retval; - - } - // $ANTLR end "parameter" - - partial void EnterRule_orderElement(); - partial void LeaveRule_orderElement(); - // $ANTLR start "orderElement" - // Hql.g:329:1: orderElement : expression ( ascendingOrDescending )? ; - [GrammarRule("orderElement")] - private AstParserRuleReturnScope orderElement() - { - EnterRule_orderElement(); - EnterRule("orderElement", 35); - TraceIn("orderElement", 35); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope expression141 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope ascendingOrDescending142 = default(AstParserRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "orderElement"); - DebugLocation(329, 1); - try - { - // Hql.g:330:2: ( expression ( ascendingOrDescending )? ) - DebugEnterAlt(1); - // Hql.g:330:4: expression ( ascendingOrDescending )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(330, 4); - PushFollow(Follow._expression_in_orderElement1735); - expression141=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression141.Tree); - DebugLocation(330, 15); - // Hql.g:330:15: ( ascendingOrDescending )? - int alt46=2; - try { DebugEnterSubRule(46); - try { DebugEnterDecision(46, false); - int LA46_1 = input.LA(1); - - if ((LA46_1==ASCENDING||LA46_1==DESCENDING||(LA46_1>=133 && LA46_1<=134))) - { - alt46 = 1; - } - } finally { DebugExitDecision(46); } - switch (alt46) - { - case 1: - DebugEnterAlt(1); - // Hql.g:330:17: ascendingOrDescending - { - DebugLocation(330, 17); - PushFollow(Follow._ascendingOrDescending_in_orderElement1739); - ascendingOrDescending142=ascendingOrDescending(); - PopFollow(); - - adaptor.AddChild(root_0, ascendingOrDescending142.Tree); - - } - break; - - } - } finally { DebugExitSubRule(46); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("orderElement", 35); - LeaveRule("orderElement", 35); - LeaveRule_orderElement(); - } - DebugLocation(331, 1); - } finally { DebugExitRule(GrammarFileName, "orderElement"); } - return retval; - - } - // $ANTLR end "orderElement" - - partial void EnterRule_ascendingOrDescending(); - partial void LeaveRule_ascendingOrDescending(); - // $ANTLR start "ascendingOrDescending" - // Hql.g:333:1: ascendingOrDescending : ( (a= 'asc' |a= 'ascending' ) -> ^( ASCENDING[$a.Text] ) | (d= 'desc' |d= 'descending' ) -> ^( DESCENDING[$d.Text] ) ); - [GrammarRule("ascendingOrDescending")] - private AstParserRuleReturnScope ascendingOrDescending() - { - EnterRule_ascendingOrDescending(); - EnterRule("ascendingOrDescending", 36); - TraceIn("ascendingOrDescending", 36); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken a = default(IToken); - IToken d = default(IToken); - - IASTNode a_tree = default(IASTNode); - IASTNode d_tree = default(IASTNode); - RewriteRuleITokenStream stream_ASCENDING=new RewriteRuleITokenStream(adaptor,"token ASCENDING"); - RewriteRuleITokenStream stream_133=new RewriteRuleITokenStream(adaptor,"token 133"); - RewriteRuleITokenStream stream_DESCENDING=new RewriteRuleITokenStream(adaptor,"token DESCENDING"); - RewriteRuleITokenStream stream_134=new RewriteRuleITokenStream(adaptor,"token 134"); - try { DebugEnterRule(GrammarFileName, "ascendingOrDescending"); - DebugLocation(333, 1); - try - { - // Hql.g:334:2: ( (a= 'asc' |a= 'ascending' ) -> ^( ASCENDING[$a.Text] ) | (d= 'desc' |d= 'descending' ) -> ^( DESCENDING[$d.Text] ) ) - int alt49=2; - try { DebugEnterDecision(49, false); - int LA49_1 = input.LA(1); - - if ((LA49_1==ASCENDING||LA49_1==133)) - { - alt49 = 1; - } - else if ((LA49_1==DESCENDING||LA49_1==134)) - { - alt49 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 49, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(49); } - switch (alt49) - { - case 1: - DebugEnterAlt(1); - // Hql.g:334:4: (a= 'asc' |a= 'ascending' ) - { - DebugLocation(334, 4); - // Hql.g:334:4: (a= 'asc' |a= 'ascending' ) - int alt47=2; - try { DebugEnterSubRule(47); - try { DebugEnterDecision(47, false); - int LA47_1 = input.LA(1); - - if ((LA47_1==ASCENDING)) - { - alt47 = 1; - } - else if ((LA47_1==133)) - { - alt47 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 47, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(47); } - switch (alt47) - { - case 1: - DebugEnterAlt(1); - // Hql.g:334:6: a= 'asc' - { - DebugLocation(334, 7); - a=(IToken)Match(input,ASCENDING,Follow._ASCENDING_in_ascendingOrDescending1757); - stream_ASCENDING.Add(a); - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:334:16: a= 'ascending' - { - DebugLocation(334, 17); - a=(IToken)Match(input,133,Follow._133_in_ascendingOrDescending1763); - stream_133.Add(a); - - - } - break; - - } - } finally { DebugExitSubRule(47); } - - - - { - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 335:3: -> ^( ASCENDING[$a.Text] ) - { - DebugLocation(335, 6); - // Hql.g:335:6: ^( ASCENDING[$a.Text] ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(335, 8); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(ASCENDING, a.Text), root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:336:4: (d= 'desc' |d= 'descending' ) - { - DebugLocation(336, 4); - // Hql.g:336:4: (d= 'desc' |d= 'descending' ) - int alt48=2; - try { DebugEnterSubRule(48); - try { DebugEnterDecision(48, false); - int LA48_1 = input.LA(1); - - if ((LA48_1==DESCENDING)) - { - alt48 = 1; - } - else if ((LA48_1==134)) - { - alt48 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 48, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(48); } - switch (alt48) - { - case 1: - DebugEnterAlt(1); - // Hql.g:336:6: d= 'desc' - { - DebugLocation(336, 7); - d=(IToken)Match(input,DESCENDING,Follow._DESCENDING_in_ascendingOrDescending1783); - stream_DESCENDING.Add(d); - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:336:17: d= 'descending' - { - DebugLocation(336, 18); - d=(IToken)Match(input,134,Follow._134_in_ascendingOrDescending1789); - stream_134.Add(d); - - - } - break; - - } - } finally { DebugExitSubRule(48); } - - - - { - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 337:3: -> ^( DESCENDING[$d.Text] ) - { - DebugLocation(337, 6); - // Hql.g:337:6: ^( DESCENDING[$d.Text] ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(337, 8); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(DESCENDING, d.Text), root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("ascendingOrDescending", 36); - LeaveRule("ascendingOrDescending", 36); - LeaveRule_ascendingOrDescending(); - } - DebugLocation(338, 1); - } finally { DebugExitRule(GrammarFileName, "ascendingOrDescending"); } - return retval; - - } - // $ANTLR end "ascendingOrDescending" - - partial void EnterRule_havingClause(); - partial void LeaveRule_havingClause(); - // $ANTLR start "havingClause" - // Hql.g:340:1: havingClause : HAVING ^ logicalExpression ; - [GrammarRule("havingClause")] - private AstParserRuleReturnScope havingClause() - { - EnterRule_havingClause(); - EnterRule("havingClause", 37); - TraceIn("havingClause", 37); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken HAVING143 = default(IToken); - AstParserRuleReturnScope logicalExpression144 = default(AstParserRuleReturnScope); - - IASTNode HAVING143_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "havingClause"); - DebugLocation(340, 1); - try - { - // Hql.g:341:2: ( HAVING ^ logicalExpression ) - DebugEnterAlt(1); - // Hql.g:341:4: HAVING ^ logicalExpression - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(341, 10); - HAVING143=(IToken)Match(input,HAVING,Follow._HAVING_in_havingClause1810); - HAVING143_tree = (IASTNode)adaptor.Create(HAVING143); - root_0 = (IASTNode)adaptor.BecomeRoot(HAVING143_tree, root_0); - DebugLocation(341, 12); - PushFollow(Follow._logicalExpression_in_havingClause1813); - logicalExpression144=logicalExpression(); - PopFollow(); - - adaptor.AddChild(root_0, logicalExpression144.Tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("havingClause", 37); - LeaveRule("havingClause", 37); - LeaveRule_havingClause(); - } - DebugLocation(342, 1); - } finally { DebugExitRule(GrammarFileName, "havingClause"); } - return retval; - - } - // $ANTLR end "havingClause" - - partial void EnterRule_whereClause(); - partial void LeaveRule_whereClause(); - // $ANTLR start "whereClause" - // Hql.g:344:1: whereClause : WHERE ^ logicalExpression ; - [GrammarRule("whereClause")] - private AstParserRuleReturnScope whereClause() - { - EnterRule_whereClause(); - EnterRule("whereClause", 38); - TraceIn("whereClause", 38); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken WHERE145 = default(IToken); - AstParserRuleReturnScope logicalExpression146 = default(AstParserRuleReturnScope); - - IASTNode WHERE145_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "whereClause"); - DebugLocation(344, 1); - try - { - // Hql.g:345:2: ( WHERE ^ logicalExpression ) - DebugEnterAlt(1); - // Hql.g:345:4: WHERE ^ logicalExpression - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(345, 9); - WHERE145=(IToken)Match(input,WHERE,Follow._WHERE_in_whereClause1824); - WHERE145_tree = (IASTNode)adaptor.Create(WHERE145); - root_0 = (IASTNode)adaptor.BecomeRoot(WHERE145_tree, root_0); - DebugLocation(345, 11); - PushFollow(Follow._logicalExpression_in_whereClause1827); - logicalExpression146=logicalExpression(); - PopFollow(); - - adaptor.AddChild(root_0, logicalExpression146.Tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("whereClause", 38); - LeaveRule("whereClause", 38); - LeaveRule_whereClause(); - } - DebugLocation(346, 1); - } finally { DebugExitRule(GrammarFileName, "whereClause"); } - return retval; - - } - // $ANTLR end "whereClause" - - partial void EnterRule_selectedPropertiesList(); - partial void LeaveRule_selectedPropertiesList(); - // $ANTLR start "selectedPropertiesList" - // Hql.g:348:1: selectedPropertiesList : aliasedExpression ( COMMA ! aliasedExpression )* ; - [GrammarRule("selectedPropertiesList")] - private AstParserRuleReturnScope selectedPropertiesList() - { - EnterRule_selectedPropertiesList(); - EnterRule("selectedPropertiesList", 39); - TraceIn("selectedPropertiesList", 39); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken COMMA148 = default(IToken); - AstParserRuleReturnScope aliasedExpression147 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope aliasedExpression149 = default(AstParserRuleReturnScope); - - IASTNode COMMA148_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "selectedPropertiesList"); - DebugLocation(348, 1); - try - { - // Hql.g:349:2: ( aliasedExpression ( COMMA ! aliasedExpression )* ) - DebugEnterAlt(1); - // Hql.g:349:4: aliasedExpression ( COMMA ! aliasedExpression )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(349, 4); - PushFollow(Follow._aliasedExpression_in_selectedPropertiesList1838); - aliasedExpression147=aliasedExpression(); - PopFollow(); - - adaptor.AddChild(root_0, aliasedExpression147.Tree); - DebugLocation(349, 22); - // Hql.g:349:22: ( COMMA ! aliasedExpression )* - try { DebugEnterSubRule(50); - while (true) - { - int alt50=2; - try { DebugEnterDecision(50, false); - int LA50_1 = input.LA(1); - - if ((LA50_1==COMMA)) - { - alt50 = 1; - } - - - } finally { DebugExitDecision(50); } - switch ( alt50 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:349:24: COMMA ! aliasedExpression - { - DebugLocation(349, 29); - COMMA148=(IToken)Match(input,COMMA,Follow._COMMA_in_selectedPropertiesList1842); - DebugLocation(349, 31); - PushFollow(Follow._aliasedExpression_in_selectedPropertiesList1845); - aliasedExpression149=aliasedExpression(); - PopFollow(); - - adaptor.AddChild(root_0, aliasedExpression149.Tree); - - } - break; - - default: - goto loop50; - } - } - - loop50: - ; - - } finally { DebugExitSubRule(50); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("selectedPropertiesList", 39); - LeaveRule("selectedPropertiesList", 39); - LeaveRule_selectedPropertiesList(); - } - DebugLocation(350, 1); - } finally { DebugExitRule(GrammarFileName, "selectedPropertiesList"); } - return retval; - - } - // $ANTLR end "selectedPropertiesList" - - partial void EnterRule_aliasedExpression(); - partial void LeaveRule_aliasedExpression(); - // $ANTLR start "aliasedExpression" - // Hql.g:352:1: aliasedExpression : expression ( AS ^ identifier )? ; - [GrammarRule("aliasedExpression")] - private AstParserRuleReturnScope aliasedExpression() - { - EnterRule_aliasedExpression(); - EnterRule("aliasedExpression", 40); - TraceIn("aliasedExpression", 40); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken AS151 = default(IToken); - AstParserRuleReturnScope expression150 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope identifier152 = default(AstParserRuleReturnScope); - - IASTNode AS151_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "aliasedExpression"); - DebugLocation(352, 1); - try - { - // Hql.g:353:2: ( expression ( AS ^ identifier )? ) - DebugEnterAlt(1); - // Hql.g:353:4: expression ( AS ^ identifier )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(353, 4); - PushFollow(Follow._expression_in_aliasedExpression1860); - expression150=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression150.Tree); - DebugLocation(353, 15); - // Hql.g:353:15: ( AS ^ identifier )? - int alt51=2; - try { DebugEnterSubRule(51); - try { DebugEnterDecision(51, false); - int LA51_1 = input.LA(1); - - if ((LA51_1==AS)) - { - alt51 = 1; - } - } finally { DebugExitDecision(51); } - switch (alt51) - { - case 1: - DebugEnterAlt(1); - // Hql.g:353:17: AS ^ identifier - { - DebugLocation(353, 19); - AS151=(IToken)Match(input,AS,Follow._AS_in_aliasedExpression1864); - AS151_tree = (IASTNode)adaptor.Create(AS151); - root_0 = (IASTNode)adaptor.BecomeRoot(AS151_tree, root_0); - DebugLocation(353, 21); - PushFollow(Follow._identifier_in_aliasedExpression1867); - identifier152=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, identifier152.Tree); - - } - break; - - } - } finally { DebugExitSubRule(51); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("aliasedExpression", 40); - LeaveRule("aliasedExpression", 40); - LeaveRule_aliasedExpression(); - } - DebugLocation(354, 1); - } finally { DebugExitRule(GrammarFileName, "aliasedExpression"); } - return retval; - - } - // $ANTLR end "aliasedExpression" - - partial void EnterRule_logicalExpression(); - partial void LeaveRule_logicalExpression(); - // $ANTLR start "logicalExpression" - // Hql.g:381:1: logicalExpression : expression ; - [GrammarRule("logicalExpression")] - private AstParserRuleReturnScope logicalExpression() - { - EnterRule_logicalExpression(); - EnterRule("logicalExpression", 41); - TraceIn("logicalExpression", 41); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope expression153 = default(AstParserRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "logicalExpression"); - DebugLocation(381, 1); - try - { - // Hql.g:382:2: ( expression ) - DebugEnterAlt(1); - // Hql.g:382:4: expression - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(382, 4); - PushFollow(Follow._expression_in_logicalExpression1906); - expression153=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression153.Tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("logicalExpression", 41); - LeaveRule("logicalExpression", 41); - LeaveRule_logicalExpression(); - } - DebugLocation(383, 1); - } finally { DebugExitRule(GrammarFileName, "logicalExpression"); } - return retval; - - } - // $ANTLR end "logicalExpression" - - partial void EnterRule_expression(); - partial void LeaveRule_expression(); - // $ANTLR start "expression" - // Hql.g:386:1: expression : logicalOrExpression ; - [GrammarRule("expression")] - private AstParserRuleReturnScope expression() - { - EnterRule_expression(); - EnterRule("expression", 42); - TraceIn("expression", 42); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope logicalOrExpression154 = default(AstParserRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "expression"); - DebugLocation(386, 1); - try - { - // Hql.g:387:2: ( logicalOrExpression ) - DebugEnterAlt(1); - // Hql.g:387:4: logicalOrExpression - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(387, 4); - PushFollow(Follow._logicalOrExpression_in_expression1918); - logicalOrExpression154=logicalOrExpression(); - PopFollow(); - - adaptor.AddChild(root_0, logicalOrExpression154.Tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("expression", 42); - LeaveRule("expression", 42); - LeaveRule_expression(); - } - DebugLocation(388, 1); - } finally { DebugExitRule(GrammarFileName, "expression"); } - return retval; - - } - // $ANTLR end "expression" - - partial void EnterRule_logicalOrExpression(); - partial void LeaveRule_logicalOrExpression(); - // $ANTLR start "logicalOrExpression" - // Hql.g:391:1: logicalOrExpression : logicalAndExpression ( OR ^ logicalAndExpression )* ; - [GrammarRule("logicalOrExpression")] - private AstParserRuleReturnScope logicalOrExpression() - { - EnterRule_logicalOrExpression(); - EnterRule("logicalOrExpression", 43); - TraceIn("logicalOrExpression", 43); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken OR156 = default(IToken); - AstParserRuleReturnScope logicalAndExpression155 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope logicalAndExpression157 = default(AstParserRuleReturnScope); - - IASTNode OR156_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "logicalOrExpression"); - DebugLocation(391, 1); - try - { - // Hql.g:392:2: ( logicalAndExpression ( OR ^ logicalAndExpression )* ) - DebugEnterAlt(1); - // Hql.g:392:4: logicalAndExpression ( OR ^ logicalAndExpression )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(392, 4); - PushFollow(Follow._logicalAndExpression_in_logicalOrExpression1930); - logicalAndExpression155=logicalAndExpression(); - PopFollow(); - - adaptor.AddChild(root_0, logicalAndExpression155.Tree); - DebugLocation(392, 25); - // Hql.g:392:25: ( OR ^ logicalAndExpression )* - try { DebugEnterSubRule(52); - while (true) - { - int alt52=2; - try { DebugEnterDecision(52, false); - int LA52_1 = input.LA(1); - - if ((LA52_1==OR)) - { - alt52 = 1; - } - - - } finally { DebugExitDecision(52); } - switch ( alt52 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:392:27: OR ^ logicalAndExpression - { - DebugLocation(392, 29); - OR156=(IToken)Match(input,OR,Follow._OR_in_logicalOrExpression1934); - OR156_tree = (IASTNode)adaptor.Create(OR156); - root_0 = (IASTNode)adaptor.BecomeRoot(OR156_tree, root_0); - DebugLocation(392, 31); - PushFollow(Follow._logicalAndExpression_in_logicalOrExpression1937); - logicalAndExpression157=logicalAndExpression(); - PopFollow(); - - adaptor.AddChild(root_0, logicalAndExpression157.Tree); - - } - break; - - default: - goto loop52; - } - } - - loop52: - ; - - } finally { DebugExitSubRule(52); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("logicalOrExpression", 43); - LeaveRule("logicalOrExpression", 43); - LeaveRule_logicalOrExpression(); - } - DebugLocation(393, 1); - } finally { DebugExitRule(GrammarFileName, "logicalOrExpression"); } - return retval; - - } - // $ANTLR end "logicalOrExpression" - - partial void EnterRule_logicalAndExpression(); - partial void LeaveRule_logicalAndExpression(); - // $ANTLR start "logicalAndExpression" - // Hql.g:396:1: logicalAndExpression : negatedExpression ( AND ^ negatedExpression )* ; - [GrammarRule("logicalAndExpression")] - private AstParserRuleReturnScope logicalAndExpression() - { - EnterRule_logicalAndExpression(); - EnterRule("logicalAndExpression", 44); - TraceIn("logicalAndExpression", 44); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken AND159 = default(IToken); - AstParserRuleReturnScope negatedExpression158 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope negatedExpression160 = default(AstParserRuleReturnScope); - - IASTNode AND159_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "logicalAndExpression"); - DebugLocation(396, 1); - try - { - // Hql.g:397:2: ( negatedExpression ( AND ^ negatedExpression )* ) - DebugEnterAlt(1); - // Hql.g:397:4: negatedExpression ( AND ^ negatedExpression )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(397, 4); - PushFollow(Follow._negatedExpression_in_logicalAndExpression1952); - negatedExpression158=negatedExpression(); - PopFollow(); - - adaptor.AddChild(root_0, negatedExpression158.Tree); - DebugLocation(397, 22); - // Hql.g:397:22: ( AND ^ negatedExpression )* - try { DebugEnterSubRule(53); - while (true) - { - int alt53=2; - try { DebugEnterDecision(53, false); - int LA53_1 = input.LA(1); - - if ((LA53_1==AND)) - { - alt53 = 1; - } - - - } finally { DebugExitDecision(53); } - switch ( alt53 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:397:24: AND ^ negatedExpression - { - DebugLocation(397, 27); - AND159=(IToken)Match(input,AND,Follow._AND_in_logicalAndExpression1956); - AND159_tree = (IASTNode)adaptor.Create(AND159); - root_0 = (IASTNode)adaptor.BecomeRoot(AND159_tree, root_0); - DebugLocation(397, 29); - PushFollow(Follow._negatedExpression_in_logicalAndExpression1959); - negatedExpression160=negatedExpression(); - PopFollow(); - - adaptor.AddChild(root_0, negatedExpression160.Tree); - - } - break; - - default: - goto loop53; - } - } - - loop53: - ; - - } finally { DebugExitSubRule(53); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("logicalAndExpression", 44); - LeaveRule("logicalAndExpression", 44); - LeaveRule_logicalAndExpression(); - } - DebugLocation(398, 1); - } finally { DebugExitRule(GrammarFileName, "logicalAndExpression"); } - return retval; - - } - // $ANTLR end "logicalAndExpression" - - partial void EnterRule_negatedExpression(); - partial void LeaveRule_negatedExpression(); - // $ANTLR start "negatedExpression" - // Hql.g:402:1: negatedExpression : ( NOT x= negatedExpression -> ^() | equalityExpression ); - [GrammarRule("negatedExpression")] - private AstParserRuleReturnScope negatedExpression() - { - EnterRule_negatedExpression(); - EnterRule("negatedExpression", 45); - TraceIn("negatedExpression", 45); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken NOT161 = default(IToken); - AstParserRuleReturnScope x = default(AstParserRuleReturnScope); - AstParserRuleReturnScope equalityExpression162 = default(AstParserRuleReturnScope); - - IASTNode NOT161_tree = default(IASTNode); - RewriteRuleITokenStream stream_NOT=new RewriteRuleITokenStream(adaptor,"token NOT"); - RewriteRuleSubtreeStream stream_negatedExpression=new RewriteRuleSubtreeStream(adaptor,"rule negatedExpression"); - WeakKeywords(); - try { DebugEnterRule(GrammarFileName, "negatedExpression"); - DebugLocation(402, 1); - try - { - // Hql.g:404:2: ( NOT x= negatedExpression -> ^() | equalityExpression ) - int alt54=2; - try { DebugEnterDecision(54, false); - int LA54_1 = input.LA(1); - - if ((LA54_1==NOT)) - { - alt54 = 1; - } - else if ((LA54_1==ALL||LA54_1==ANY||LA54_1==AVG||LA54_1==BNOT||LA54_1==CASE||LA54_1==COLON||LA54_1==COUNT||LA54_1==ELEMENTS||LA54_1==EMPTY||LA54_1==EXISTS||LA54_1==FALSE||LA54_1==IDENT||LA54_1==INDICES||LA54_1==MAX||(LA54_1>=MIN && LA54_1<=MINUS)||(LA54_1>=NULL && LA54_1<=NUM_LONG)||LA54_1==OPEN||(LA54_1>=PARAM && LA54_1<=PLUS)||LA54_1==QUOTED_String||LA54_1==SOME||LA54_1==SUM||LA54_1==TRUE)) - { - alt54 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 54, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(54); } - switch (alt54) - { - case 1: - DebugEnterAlt(1); - // Hql.g:404:4: NOT x= negatedExpression - { - DebugLocation(404, 4); - NOT161=(IToken)Match(input,NOT,Follow._NOT_in_negatedExpression1980); - stream_NOT.Add(NOT161); - - DebugLocation(404, 9); - PushFollow(Follow._negatedExpression_in_negatedExpression1984); - x=negatedExpression(); - PopFollow(); - - stream_negatedExpression.Add(x.Tree); - - - { - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 405:3: -> ^() - { - DebugLocation(405, 6); - // Hql.g:405:6: ^() - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(405, 8); - root_1 = (IASTNode)adaptor.BecomeRoot(NegateNode((x!=null?((IASTNode)x.Tree):default(IASTNode))), root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:406:4: equalityExpression - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(406, 4); - PushFollow(Follow._equalityExpression_in_negatedExpression1997); - equalityExpression162=equalityExpression(); - PopFollow(); - - adaptor.AddChild(root_0, equalityExpression162.Tree); - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("negatedExpression", 45); - LeaveRule("negatedExpression", 45); - LeaveRule_negatedExpression(); - } - DebugLocation(407, 1); - } finally { DebugExitRule(GrammarFileName, "negatedExpression"); } - return retval; - - } - // $ANTLR end "negatedExpression" - - partial void EnterRule_equalityExpression(); - partial void LeaveRule_equalityExpression(); - // $ANTLR start "equalityExpression" - // Hql.g:412:1: equalityExpression : x= relationalExpression ( ( EQ ^|isx= IS ^ ( NOT !)? | NE ^|ne= SQL_NE ^) y= relationalExpression )* ; - [GrammarRule("equalityExpression")] - private AstParserRuleReturnScope equalityExpression() - { - EnterRule_equalityExpression(); - EnterRule("equalityExpression", 46); - TraceIn("equalityExpression", 46); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken isx = default(IToken); - IToken ne = default(IToken); - IToken EQ163 = default(IToken); - IToken NOT164 = default(IToken); - IToken NE165 = default(IToken); - AstParserRuleReturnScope x = default(AstParserRuleReturnScope); - AstParserRuleReturnScope y = default(AstParserRuleReturnScope); - - IASTNode isx_tree = default(IASTNode); - IASTNode ne_tree = default(IASTNode); - IASTNode EQ163_tree = default(IASTNode); - IASTNode NOT164_tree = default(IASTNode); - IASTNode NE165_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "equalityExpression"); - DebugLocation(412, 1); - try - { - // Hql.g:417:2: (x= relationalExpression ( ( EQ ^|isx= IS ^ ( NOT !)? | NE ^|ne= SQL_NE ^) y= relationalExpression )* ) - DebugEnterAlt(1); - // Hql.g:417:4: x= relationalExpression ( ( EQ ^|isx= IS ^ ( NOT !)? | NE ^|ne= SQL_NE ^) y= relationalExpression )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(417, 5); - PushFollow(Follow._relationalExpression_in_equalityExpression2019); - x=relationalExpression(); - PopFollow(); - - adaptor.AddChild(root_0, x.Tree); - DebugLocation(417, 27); - // Hql.g:417:27: ( ( EQ ^|isx= IS ^ ( NOT !)? | NE ^|ne= SQL_NE ^) y= relationalExpression )* - try { DebugEnterSubRule(57); - while (true) - { - int alt57=2; - try { DebugEnterDecision(57, false); - int LA57_1 = input.LA(1); - - if ((LA57_1==EQ||LA57_1==IS||LA57_1==NE||LA57_1==SQL_NE)) - { - alt57 = 1; - } - - - } finally { DebugExitDecision(57); } - switch ( alt57 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:418:3: ( EQ ^|isx= IS ^ ( NOT !)? | NE ^|ne= SQL_NE ^) y= relationalExpression - { - DebugLocation(418, 3); - // Hql.g:418:3: ( EQ ^|isx= IS ^ ( NOT !)? | NE ^|ne= SQL_NE ^) - int alt56=4; - try { DebugEnterSubRule(56); - try { DebugEnterDecision(56, false); - switch (input.LA(1)) - { - case EQ: - { - alt56 = 1; - } - break; - case IS: - { - alt56 = 2; - } - break; - case NE: - { - alt56 = 3; - } - break; - case SQL_NE: - { - alt56 = 4; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 56, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(56); } - switch (alt56) - { - case 1: - DebugEnterAlt(1); - // Hql.g:418:5: EQ ^ - { - DebugLocation(418, 7); - EQ163=(IToken)Match(input,EQ,Follow._EQ_in_equalityExpression2027); - EQ163_tree = (IASTNode)adaptor.Create(EQ163); - root_0 = (IASTNode)adaptor.BecomeRoot(EQ163_tree, root_0); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:419:5: isx= IS ^ ( NOT !)? - { - DebugLocation(419, 8); - isx=(IToken)Match(input,IS,Follow._IS_in_equalityExpression2036); - isx_tree = (IASTNode)adaptor.Create(isx); - root_0 = (IASTNode)adaptor.BecomeRoot(isx_tree, root_0); - DebugLocation(419, 13); - isx.Type = EQ; - DebugLocation(419, 33); - // Hql.g:419:33: ( NOT !)? - int alt55=2; - try { DebugEnterSubRule(55); - try { DebugEnterDecision(55, false); - int LA55_1 = input.LA(1); - - if ((LA55_1==NOT)) - { - alt55 = 1; - } - } finally { DebugExitDecision(55); } - switch (alt55) - { - case 1: - DebugEnterAlt(1); - // Hql.g:419:34: NOT ! - { - DebugLocation(419, 37); - NOT164=(IToken)Match(input,NOT,Follow._NOT_in_equalityExpression2042); - DebugLocation(419, 39); - isx.Type =NE; - - } - break; - - } - } finally { DebugExitSubRule(55); } - - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:420:5: NE ^ - { - DebugLocation(420, 7); - NE165=(IToken)Match(input,NE,Follow._NE_in_equalityExpression2054); - NE165_tree = (IASTNode)adaptor.Create(NE165); - root_0 = (IASTNode)adaptor.BecomeRoot(NE165_tree, root_0); - - } - break; - case 4: - DebugEnterAlt(4); - // Hql.g:421:5: ne= SQL_NE ^ - { - DebugLocation(421, 7); - ne=(IToken)Match(input,SQL_NE,Follow._SQL_NE_in_equalityExpression2063); - ne_tree = (IASTNode)adaptor.Create(ne); - root_0 = (IASTNode)adaptor.BecomeRoot(ne_tree, root_0); - DebugLocation(421, 16); - ne.Type = NE; - - } - break; - - } - } finally { DebugExitSubRule(56); } - - DebugLocation(422, 6); - PushFollow(Follow._relationalExpression_in_equalityExpression2074); - y=relationalExpression(); - PopFollow(); - - adaptor.AddChild(root_0, y.Tree); - - } - break; - - default: - goto loop57; - } - } - - loop57: - ; - - } finally { DebugExitSubRule(57); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - - // Post process the equality expression to clean up 'is null', etc. - retval.Tree = ProcessEqualityExpression(retval.Tree); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("equalityExpression", 46); - LeaveRule("equalityExpression", 46); - LeaveRule_equalityExpression(); - } - DebugLocation(423, 1); - } finally { DebugExitRule(GrammarFileName, "equalityExpression"); } - return retval; - - } - // $ANTLR end "equalityExpression" - - partial void EnterRule_relationalExpression(); - partial void LeaveRule_relationalExpression(); - // $ANTLR start "relationalExpression" - // Hql.g:429:1: relationalExpression : concatenation ( ( ( ( LT ^| GT ^| LE ^| GE ^) bitwiseNotExpression )* ) | (n= NOT !)? ( (i= IN ^ inList ) | (b= BETWEEN ^ betweenList ) | (l= LIKE ^ concatenation likeEscape ) | ( MEMBER ! ( OF !)? p= path !) ) ) ; - [GrammarRule("relationalExpression")] - private AstParserRuleReturnScope relationalExpression() - { - EnterRule_relationalExpression(); - EnterRule("relationalExpression", 47); - TraceIn("relationalExpression", 47); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken n = default(IToken); - IToken i = default(IToken); - IToken b = default(IToken); - IToken l = default(IToken); - IToken LT167 = default(IToken); - IToken GT168 = default(IToken); - IToken LE169 = default(IToken); - IToken GE170 = default(IToken); - IToken MEMBER176 = default(IToken); - IToken OF177 = default(IToken); - AstParserRuleReturnScope p = default(AstParserRuleReturnScope); - AstParserRuleReturnScope concatenation166 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope bitwiseNotExpression171 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope inList172 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope betweenList173 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope concatenation174 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope likeEscape175 = default(AstParserRuleReturnScope); - - IASTNode n_tree = default(IASTNode); - IASTNode i_tree = default(IASTNode); - IASTNode b_tree = default(IASTNode); - IASTNode l_tree = default(IASTNode); - IASTNode LT167_tree = default(IASTNode); - IASTNode GT168_tree = default(IASTNode); - IASTNode LE169_tree = default(IASTNode); - IASTNode GE170_tree = default(IASTNode); - IASTNode MEMBER176_tree = default(IASTNode); - IASTNode OF177_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "relationalExpression"); - DebugLocation(429, 1); - try - { - // Hql.g:430:2: ( concatenation ( ( ( ( LT ^| GT ^| LE ^| GE ^) bitwiseNotExpression )* ) | (n= NOT !)? ( (i= IN ^ inList ) | (b= BETWEEN ^ betweenList ) | (l= LIKE ^ concatenation likeEscape ) | ( MEMBER ! ( OF !)? p= path !) ) ) ) - DebugEnterAlt(1); - // Hql.g:430:4: concatenation ( ( ( ( LT ^| GT ^| LE ^| GE ^) bitwiseNotExpression )* ) | (n= NOT !)? ( (i= IN ^ inList ) | (b= BETWEEN ^ betweenList ) | (l= LIKE ^ concatenation likeEscape ) | ( MEMBER ! ( OF !)? p= path !) ) ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(430, 4); - PushFollow(Follow._concatenation_in_relationalExpression2091); - concatenation166=concatenation(); - PopFollow(); - - adaptor.AddChild(root_0, concatenation166.Tree); - DebugLocation(430, 18); - // Hql.g:430:18: ( ( ( ( LT ^| GT ^| LE ^| GE ^) bitwiseNotExpression )* ) | (n= NOT !)? ( (i= IN ^ inList ) | (b= BETWEEN ^ betweenList ) | (l= LIKE ^ concatenation likeEscape ) | ( MEMBER ! ( OF !)? p= path !) ) ) - int alt63=2; - try { DebugEnterSubRule(63); - try { DebugEnterDecision(63, false); - int LA63_1 = input.LA(1); - - if ((LA63_1==EOF||LA63_1==AND||(LA63_1>=AS && LA63_1<=ASCENDING)||(LA63_1>=CLOSE && LA63_1<=CLOSE_BRACKET)||LA63_1==COMMA||LA63_1==DESCENDING||LA63_1==ELSE||(LA63_1>=END && LA63_1<=EQ)||(LA63_1>=FROM && LA63_1<=HAVING)||LA63_1==INNER||LA63_1==IS||(LA63_1>=JOIN && LA63_1<=LE)||LA63_1==LEFT||LA63_1==LT||LA63_1==NE||(LA63_1>=OR && LA63_1<=ORDER)||LA63_1==RIGHT||LA63_1==SKIP||LA63_1==SQL_NE||(LA63_1>=TAKE && LA63_1<=THEN)||LA63_1==UNION||(LA63_1>=WHEN && LA63_1<=WHERE)||(LA63_1>=133 && LA63_1<=134))) - { - alt63 = 1; - } - else if ((LA63_1==BETWEEN||LA63_1==IN||LA63_1==LIKE||LA63_1==MEMBER||LA63_1==NOT)) - { - alt63 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 63, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(63); } - switch (alt63) - { - case 1: - DebugEnterAlt(1); - // Hql.g:431:3: ( ( ( LT ^| GT ^| LE ^| GE ^) bitwiseNotExpression )* ) - { - DebugLocation(431, 3); - // Hql.g:431:3: ( ( ( LT ^| GT ^| LE ^| GE ^) bitwiseNotExpression )* ) - DebugEnterAlt(1); - // Hql.g:431:5: ( ( LT ^| GT ^| LE ^| GE ^) bitwiseNotExpression )* - { - DebugLocation(431, 5); - // Hql.g:431:5: ( ( LT ^| GT ^| LE ^| GE ^) bitwiseNotExpression )* - try { DebugEnterSubRule(59); - while (true) - { - int alt59=2; - try { DebugEnterDecision(59, false); - int LA59_1 = input.LA(1); - - if ((LA59_1==GE||LA59_1==GT||LA59_1==LE||LA59_1==LT)) - { - alt59 = 1; - } - - - } finally { DebugExitDecision(59); } - switch ( alt59 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:431:7: ( LT ^| GT ^| LE ^| GE ^) bitwiseNotExpression - { - DebugLocation(431, 7); - // Hql.g:431:7: ( LT ^| GT ^| LE ^| GE ^) - int alt58=4; - try { DebugEnterSubRule(58); - try { DebugEnterDecision(58, false); - switch (input.LA(1)) - { - case LT: - { - alt58 = 1; - } - break; - case GT: - { - alt58 = 2; - } - break; - case LE: - { - alt58 = 3; - } - break; - case GE: - { - alt58 = 4; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 58, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(58); } - switch (alt58) - { - case 1: - DebugEnterAlt(1); - // Hql.g:431:9: LT ^ - { - DebugLocation(431, 11); - LT167=(IToken)Match(input,LT,Follow._LT_in_relationalExpression2103); - LT167_tree = (IASTNode)adaptor.Create(LT167); - root_0 = (IASTNode)adaptor.BecomeRoot(LT167_tree, root_0); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:431:15: GT ^ - { - DebugLocation(431, 17); - GT168=(IToken)Match(input,GT,Follow._GT_in_relationalExpression2108); - GT168_tree = (IASTNode)adaptor.Create(GT168); - root_0 = (IASTNode)adaptor.BecomeRoot(GT168_tree, root_0); - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:431:21: LE ^ - { - DebugLocation(431, 23); - LE169=(IToken)Match(input,LE,Follow._LE_in_relationalExpression2113); - LE169_tree = (IASTNode)adaptor.Create(LE169); - root_0 = (IASTNode)adaptor.BecomeRoot(LE169_tree, root_0); - - } - break; - case 4: - DebugEnterAlt(4); - // Hql.g:431:27: GE ^ - { - DebugLocation(431, 29); - GE170=(IToken)Match(input,GE,Follow._GE_in_relationalExpression2118); - GE170_tree = (IASTNode)adaptor.Create(GE170); - root_0 = (IASTNode)adaptor.BecomeRoot(GE170_tree, root_0); - - } - break; - - } - } finally { DebugExitSubRule(58); } - - DebugLocation(431, 33); - PushFollow(Follow._bitwiseNotExpression_in_relationalExpression2123); - bitwiseNotExpression171=bitwiseNotExpression(); - PopFollow(); - - adaptor.AddChild(root_0, bitwiseNotExpression171.Tree); - - } - break; - - default: - goto loop59; - } - } - - loop59: - ; - - } finally { DebugExitSubRule(59); } - - - } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:433:5: (n= NOT !)? ( (i= IN ^ inList ) | (b= BETWEEN ^ betweenList ) | (l= LIKE ^ concatenation likeEscape ) | ( MEMBER ! ( OF !)? p= path !) ) - { - DebugLocation(433, 5); - // Hql.g:433:5: (n= NOT !)? - int alt60=2; - try { DebugEnterSubRule(60); - try { DebugEnterDecision(60, false); - int LA60_1 = input.LA(1); - - if ((LA60_1==NOT)) - { - alt60 = 1; - } - } finally { DebugExitDecision(60); } - switch (alt60) - { - case 1: - DebugEnterAlt(1); - // Hql.g:433:6: n= NOT ! - { - DebugLocation(433, 7); - n=(IToken)Match(input,NOT,Follow._NOT_in_relationalExpression2140); - - } - break; - - } - } finally { DebugExitSubRule(60); } - - DebugLocation(433, 15); - // Hql.g:433:15: ( (i= IN ^ inList ) | (b= BETWEEN ^ betweenList ) | (l= LIKE ^ concatenation likeEscape ) | ( MEMBER ! ( OF !)? p= path !) ) - int alt62=4; - try { DebugEnterSubRule(62); - try { DebugEnterDecision(62, false); - switch (input.LA(1)) - { - case IN: - { - alt62 = 1; - } - break; - case BETWEEN: - { - alt62 = 2; - } - break; - case LIKE: - { - alt62 = 3; - } - break; - case MEMBER: - { - alt62 = 4; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 62, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(62); } - switch (alt62) - { - case 1: - DebugEnterAlt(1); - // Hql.g:436:4: (i= IN ^ inList ) - { - DebugLocation(436, 4); - // Hql.g:436:4: (i= IN ^ inList ) - DebugEnterAlt(1); - // Hql.g:436:5: i= IN ^ inList - { - DebugLocation(436, 6); - i=(IToken)Match(input,IN,Follow._IN_in_relationalExpression2161); - i_tree = (IASTNode)adaptor.Create(i); - root_0 = (IASTNode)adaptor.BecomeRoot(i_tree, root_0); - DebugLocation(436, 11); - - i.Type = (n == null) ? IN : NOT_IN; - i.Text = (n == null) ? "in" : "not in"; - - DebugLocation(440, 5); - PushFollow(Follow._inList_in_relationalExpression2170); - inList172=inList(); - PopFollow(); - - adaptor.AddChild(root_0, inList172.Tree); - - } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:441:6: (b= BETWEEN ^ betweenList ) - { - DebugLocation(441, 6); - // Hql.g:441:6: (b= BETWEEN ^ betweenList ) - DebugEnterAlt(1); - // Hql.g:441:7: b= BETWEEN ^ betweenList - { - DebugLocation(441, 8); - b=(IToken)Match(input,BETWEEN,Follow._BETWEEN_in_relationalExpression2181); - b_tree = (IASTNode)adaptor.Create(b); - root_0 = (IASTNode)adaptor.BecomeRoot(b_tree, root_0); - DebugLocation(441, 18); - - b.Type = (n == null) ? BETWEEN : NOT_BETWEEN; - b.Text = (n == null) ? "between" : "not between"; - - DebugLocation(445, 5); - PushFollow(Follow._betweenList_in_relationalExpression2190); - betweenList173=betweenList(); - PopFollow(); - - adaptor.AddChild(root_0, betweenList173.Tree); - - } - - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:446:6: (l= LIKE ^ concatenation likeEscape ) - { - DebugLocation(446, 6); - // Hql.g:446:6: (l= LIKE ^ concatenation likeEscape ) - DebugEnterAlt(1); - // Hql.g:446:7: l= LIKE ^ concatenation likeEscape - { - DebugLocation(446, 8); - l=(IToken)Match(input,LIKE,Follow._LIKE_in_relationalExpression2202); - l_tree = (IASTNode)adaptor.Create(l); - root_0 = (IASTNode)adaptor.BecomeRoot(l_tree, root_0); - DebugLocation(446, 15); - - l.Type = (n == null) ? LIKE : NOT_LIKE; - l.Text = (n == null) ? "like" : "not like"; - - DebugLocation(450, 5); - PushFollow(Follow._concatenation_in_relationalExpression2211); - concatenation174=concatenation(); - PopFollow(); - - adaptor.AddChild(root_0, concatenation174.Tree); - DebugLocation(450, 19); - PushFollow(Follow._likeEscape_in_relationalExpression2213); - likeEscape175=likeEscape(); - PopFollow(); - - adaptor.AddChild(root_0, likeEscape175.Tree); - - } - - - } - break; - case 4: - DebugEnterAlt(4); - // Hql.g:451:6: ( MEMBER ! ( OF !)? p= path !) - { - DebugLocation(451, 6); - // Hql.g:451:6: ( MEMBER ! ( OF !)? p= path !) - DebugEnterAlt(1); - // Hql.g:451:7: MEMBER ! ( OF !)? p= path ! - { - DebugLocation(451, 13); - MEMBER176=(IToken)Match(input,MEMBER,Follow._MEMBER_in_relationalExpression2222); - DebugLocation(451, 15); - // Hql.g:451:15: ( OF !)? - int alt61=2; - try { DebugEnterSubRule(61); - try { DebugEnterDecision(61, false); - int LA61_1 = input.LA(1); - - if ((LA61_1==OF)) - { - alt61 = 1; - } - } finally { DebugExitDecision(61); } - switch (alt61) - { - case 1: - DebugEnterAlt(1); - // Hql.g:451:16: OF ! - { - DebugLocation(451, 18); - OF177=(IToken)Match(input,OF,Follow._OF_in_relationalExpression2226); - - } - break; - - } - } finally { DebugExitSubRule(61); } - - DebugLocation(451, 23); - PushFollow(Follow._path_in_relationalExpression2233); - p=path(); - PopFollow(); - - DebugLocation(451, 30); - - root_0 = ProcessMemberOf(n,(p!=null?((IASTNode)p.Tree):default(IASTNode)), root_0); - - - } - - - } - break; - - } - } finally { DebugExitSubRule(62); } - - - } - break; - - } - } finally { DebugExitSubRule(63); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("relationalExpression", 47); - LeaveRule("relationalExpression", 47); - LeaveRule_relationalExpression(); - } - DebugLocation(456, 1); - } finally { DebugExitRule(GrammarFileName, "relationalExpression"); } - return retval; - - } - // $ANTLR end "relationalExpression" - - partial void EnterRule_likeEscape(); - partial void LeaveRule_likeEscape(); - // $ANTLR start "likeEscape" - // Hql.g:458:1: likeEscape : ( ESCAPE ^ concatenation )? ; - [GrammarRule("likeEscape")] - private AstParserRuleReturnScope likeEscape() - { - EnterRule_likeEscape(); - EnterRule("likeEscape", 48); - TraceIn("likeEscape", 48); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken ESCAPE178 = default(IToken); - AstParserRuleReturnScope concatenation179 = default(AstParserRuleReturnScope); - - IASTNode ESCAPE178_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "likeEscape"); - DebugLocation(458, 1); - try - { - // Hql.g:459:2: ( ( ESCAPE ^ concatenation )? ) - DebugEnterAlt(1); - // Hql.g:459:4: ( ESCAPE ^ concatenation )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(459, 4); - // Hql.g:459:4: ( ESCAPE ^ concatenation )? - int alt64=2; - try { DebugEnterSubRule(64); - try { DebugEnterDecision(64, false); - int LA64_1 = input.LA(1); - - if ((LA64_1==ESCAPE)) - { - alt64 = 1; - } - } finally { DebugExitDecision(64); } - switch (alt64) - { - case 1: - DebugEnterAlt(1); - // Hql.g:459:5: ESCAPE ^ concatenation - { - DebugLocation(459, 11); - ESCAPE178=(IToken)Match(input,ESCAPE,Follow._ESCAPE_in_likeEscape2260); - ESCAPE178_tree = (IASTNode)adaptor.Create(ESCAPE178); - root_0 = (IASTNode)adaptor.BecomeRoot(ESCAPE178_tree, root_0); - DebugLocation(459, 13); - PushFollow(Follow._concatenation_in_likeEscape2263); - concatenation179=concatenation(); - PopFollow(); - - adaptor.AddChild(root_0, concatenation179.Tree); - - } - break; - - } - } finally { DebugExitSubRule(64); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("likeEscape", 48); - LeaveRule("likeEscape", 48); - LeaveRule_likeEscape(); - } - DebugLocation(460, 1); - } finally { DebugExitRule(GrammarFileName, "likeEscape"); } - return retval; - - } - // $ANTLR end "likeEscape" - - partial void EnterRule_inList(); - partial void LeaveRule_inList(); - // $ANTLR start "inList" - // Hql.g:462:1: inList : compoundExpr -> ^( IN_LIST[\"inList\"] compoundExpr ) ; - [GrammarRule("inList")] - private AstParserRuleReturnScope inList() - { - EnterRule_inList(); - EnterRule("inList", 49); - TraceIn("inList", 49); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope compoundExpr180 = default(AstParserRuleReturnScope); - - RewriteRuleSubtreeStream stream_compoundExpr=new RewriteRuleSubtreeStream(adaptor,"rule compoundExpr"); - try { DebugEnterRule(GrammarFileName, "inList"); - DebugLocation(462, 1); - try - { - // Hql.g:463:2: ( compoundExpr -> ^( IN_LIST[\"inList\"] compoundExpr ) ) - DebugEnterAlt(1); - // Hql.g:463:4: compoundExpr - { - DebugLocation(463, 4); - PushFollow(Follow._compoundExpr_in_inList2276); - compoundExpr180=compoundExpr(); - PopFollow(); - - stream_compoundExpr.Add(compoundExpr180.Tree); - - - { - // AST REWRITE - // elements: compoundExpr - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 464:2: -> ^( IN_LIST[\"inList\"] compoundExpr ) - { - DebugLocation(464, 5); - // Hql.g:464:5: ^( IN_LIST[\"inList\"] compoundExpr ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(464, 7); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(IN_LIST, "inList"), root_1); - - DebugLocation(464, 25); - adaptor.AddChild(root_1, stream_compoundExpr.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("inList", 49); - LeaveRule("inList", 49); - LeaveRule_inList(); - } - DebugLocation(465, 1); - } finally { DebugExitRule(GrammarFileName, "inList"); } - return retval; - - } - // $ANTLR end "inList" - - partial void EnterRule_betweenList(); - partial void LeaveRule_betweenList(); - // $ANTLR start "betweenList" - // Hql.g:467:1: betweenList : concatenation AND ! concatenation ; - [GrammarRule("betweenList")] - private AstParserRuleReturnScope betweenList() - { - EnterRule_betweenList(); - EnterRule("betweenList", 50); - TraceIn("betweenList", 50); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken AND182 = default(IToken); - AstParserRuleReturnScope concatenation181 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope concatenation183 = default(AstParserRuleReturnScope); - - IASTNode AND182_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "betweenList"); - DebugLocation(467, 1); - try - { - // Hql.g:468:2: ( concatenation AND ! concatenation ) - DebugEnterAlt(1); - // Hql.g:468:4: concatenation AND ! concatenation - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(468, 4); - PushFollow(Follow._concatenation_in_betweenList2297); - concatenation181=concatenation(); - PopFollow(); - - adaptor.AddChild(root_0, concatenation181.Tree); - DebugLocation(468, 21); - AND182=(IToken)Match(input,AND,Follow._AND_in_betweenList2299); - DebugLocation(468, 23); - PushFollow(Follow._concatenation_in_betweenList2302); - concatenation183=concatenation(); - PopFollow(); - - adaptor.AddChild(root_0, concatenation183.Tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("betweenList", 50); - LeaveRule("betweenList", 50); - LeaveRule_betweenList(); - } - DebugLocation(469, 1); - } finally { DebugExitRule(GrammarFileName, "betweenList"); } - return retval; - - } - // $ANTLR end "betweenList" - - partial void EnterRule_concatenation(); - partial void LeaveRule_concatenation(); - // $ANTLR start "concatenation" - // Hql.g:472:1: concatenation : a= bitwiseNotExpression (c= CONCAT ^ bitwiseNotExpression ( CONCAT ! bitwiseNotExpression )* )? ; - [GrammarRule("concatenation")] - private AstParserRuleReturnScope concatenation() - { - EnterRule_concatenation(); - EnterRule("concatenation", 51); - TraceIn("concatenation", 51); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken c = default(IToken); - IToken CONCAT185 = default(IToken); - AstParserRuleReturnScope a = default(AstParserRuleReturnScope); - AstParserRuleReturnScope bitwiseNotExpression184 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope bitwiseNotExpression186 = default(AstParserRuleReturnScope); - - IASTNode c_tree = default(IASTNode); - IASTNode CONCAT185_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "concatenation"); - DebugLocation(472, 1); - try - { - // Hql.g:483:2: (a= bitwiseNotExpression (c= CONCAT ^ bitwiseNotExpression ( CONCAT ! bitwiseNotExpression )* )? ) - DebugEnterAlt(1); - // Hql.g:483:4: a= bitwiseNotExpression (c= CONCAT ^ bitwiseNotExpression ( CONCAT ! bitwiseNotExpression )* )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(483, 5); - PushFollow(Follow._bitwiseNotExpression_in_concatenation2321); - a=bitwiseNotExpression(); - PopFollow(); - - adaptor.AddChild(root_0, a.Tree); - DebugLocation(484, 2); - // Hql.g:484:2: (c= CONCAT ^ bitwiseNotExpression ( CONCAT ! bitwiseNotExpression )* )? - int alt66=2; - try { DebugEnterSubRule(66); - try { DebugEnterDecision(66, false); - int LA66_1 = input.LA(1); - - if ((LA66_1==CONCAT)) - { - alt66 = 1; - } - } finally { DebugExitDecision(66); } - switch (alt66) - { - case 1: - DebugEnterAlt(1); - // Hql.g:484:4: c= CONCAT ^ bitwiseNotExpression ( CONCAT ! bitwiseNotExpression )* - { - DebugLocation(484, 5); - c=(IToken)Match(input,CONCAT,Follow._CONCAT_in_concatenation2329); - c_tree = (IASTNode)adaptor.Create(c); - root_0 = (IASTNode)adaptor.BecomeRoot(c_tree, root_0); - DebugLocation(484, 14); - c.Type = EXPR_LIST; c.Text = "concatList"; - DebugLocation(485, 4); - PushFollow(Follow._bitwiseNotExpression_in_concatenation2338); - bitwiseNotExpression184=bitwiseNotExpression(); - PopFollow(); - - adaptor.AddChild(root_0, bitwiseNotExpression184.Tree); - DebugLocation(486, 4); - // Hql.g:486:4: ( CONCAT ! bitwiseNotExpression )* - try { DebugEnterSubRule(65); - while (true) - { - int alt65=2; - try { DebugEnterDecision(65, false); - int LA65_1 = input.LA(1); - - if ((LA65_1==CONCAT)) - { - alt65 = 1; - } - - - } finally { DebugExitDecision(65); } - switch ( alt65 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:486:6: CONCAT ! bitwiseNotExpression - { - DebugLocation(486, 12); - CONCAT185=(IToken)Match(input,CONCAT,Follow._CONCAT_in_concatenation2345); - DebugLocation(486, 14); - PushFollow(Follow._bitwiseNotExpression_in_concatenation2348); - bitwiseNotExpression186=bitwiseNotExpression(); - PopFollow(); - - adaptor.AddChild(root_0, bitwiseNotExpression186.Tree); - - } - break; - - default: - goto loop65; - } - } - - loop65: - ; - - } finally { DebugExitSubRule(65); } - - - } - break; - - } - } finally { DebugExitSubRule(66); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - - if (c != null) - { - IASTNode mc = (IASTNode) adaptor.Create(METHOD_CALL, "||"); - IASTNode concat = (IASTNode) adaptor.Create(IDENT, "concat"); - mc.AddChild(concat); - mc.AddChild((IASTNode) retval.Tree); - retval.Tree = mc; - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("concatenation", 51); - LeaveRule("concatenation", 51); - LeaveRule_concatenation(); - } - DebugLocation(488, 1); - } finally { DebugExitRule(GrammarFileName, "concatenation"); } - return retval; - - } - // $ANTLR end "concatenation" - - partial void EnterRule_bitwiseNotExpression(); - partial void LeaveRule_bitwiseNotExpression(); - // $ANTLR start "bitwiseNotExpression" - // Hql.g:491:1: bitwiseNotExpression : ( ( BNOT ^ bitwiseOrExpression ) | bitwiseOrExpression ); - [GrammarRule("bitwiseNotExpression")] - private AstParserRuleReturnScope bitwiseNotExpression() - { - EnterRule_bitwiseNotExpression(); - EnterRule("bitwiseNotExpression", 52); - TraceIn("bitwiseNotExpression", 52); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken BNOT187 = default(IToken); - AstParserRuleReturnScope bitwiseOrExpression188 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope bitwiseOrExpression189 = default(AstParserRuleReturnScope); - - IASTNode BNOT187_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "bitwiseNotExpression"); - DebugLocation(491, 1); - try - { - // Hql.g:492:2: ( ( BNOT ^ bitwiseOrExpression ) | bitwiseOrExpression ) - int alt67=2; - try { DebugEnterDecision(67, false); - int LA67_1 = input.LA(1); - - if ((LA67_1==BNOT)) - { - alt67 = 1; - } - else if ((LA67_1==ALL||LA67_1==ANY||LA67_1==AVG||LA67_1==CASE||LA67_1==COLON||LA67_1==COUNT||LA67_1==ELEMENTS||LA67_1==EMPTY||LA67_1==EXISTS||LA67_1==FALSE||LA67_1==IDENT||LA67_1==INDICES||LA67_1==MAX||(LA67_1>=MIN && LA67_1<=MINUS)||(LA67_1>=NULL && LA67_1<=NUM_LONG)||LA67_1==OPEN||(LA67_1>=PARAM && LA67_1<=PLUS)||LA67_1==QUOTED_String||LA67_1==SOME||LA67_1==SUM||LA67_1==TRUE)) - { - alt67 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 67, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(67); } - switch (alt67) - { - case 1: - DebugEnterAlt(1); - // Hql.g:492:4: ( BNOT ^ bitwiseOrExpression ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(492, 4); - // Hql.g:492:4: ( BNOT ^ bitwiseOrExpression ) - DebugEnterAlt(1); - // Hql.g:492:5: BNOT ^ bitwiseOrExpression - { - DebugLocation(492, 9); - BNOT187=(IToken)Match(input,BNOT,Follow._BNOT_in_bitwiseNotExpression2372); - BNOT187_tree = (IASTNode)adaptor.Create(BNOT187); - root_0 = (IASTNode)adaptor.BecomeRoot(BNOT187_tree, root_0); - DebugLocation(492, 11); - PushFollow(Follow._bitwiseOrExpression_in_bitwiseNotExpression2375); - bitwiseOrExpression188=bitwiseOrExpression(); - PopFollow(); - - adaptor.AddChild(root_0, bitwiseOrExpression188.Tree); - - } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:493:4: bitwiseOrExpression - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(493, 4); - PushFollow(Follow._bitwiseOrExpression_in_bitwiseNotExpression2381); - bitwiseOrExpression189=bitwiseOrExpression(); - PopFollow(); - - adaptor.AddChild(root_0, bitwiseOrExpression189.Tree); - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("bitwiseNotExpression", 52); - LeaveRule("bitwiseNotExpression", 52); - LeaveRule_bitwiseNotExpression(); - } - DebugLocation(494, 1); - } finally { DebugExitRule(GrammarFileName, "bitwiseNotExpression"); } - return retval; - - } - // $ANTLR end "bitwiseNotExpression" - - partial void EnterRule_bitwiseOrExpression(); - partial void LeaveRule_bitwiseOrExpression(); - // $ANTLR start "bitwiseOrExpression" - // Hql.g:496:1: bitwiseOrExpression : bitwiseXOrExpression ( BOR ^ bitwiseXOrExpression )* ; - [GrammarRule("bitwiseOrExpression")] - private AstParserRuleReturnScope bitwiseOrExpression() - { - EnterRule_bitwiseOrExpression(); - EnterRule("bitwiseOrExpression", 53); - TraceIn("bitwiseOrExpression", 53); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken BOR191 = default(IToken); - AstParserRuleReturnScope bitwiseXOrExpression190 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope bitwiseXOrExpression192 = default(AstParserRuleReturnScope); - - IASTNode BOR191_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "bitwiseOrExpression"); - DebugLocation(496, 1); - try - { - // Hql.g:497:2: ( bitwiseXOrExpression ( BOR ^ bitwiseXOrExpression )* ) - DebugEnterAlt(1); - // Hql.g:497:4: bitwiseXOrExpression ( BOR ^ bitwiseXOrExpression )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(497, 4); - PushFollow(Follow._bitwiseXOrExpression_in_bitwiseOrExpression2393); - bitwiseXOrExpression190=bitwiseXOrExpression(); - PopFollow(); - - adaptor.AddChild(root_0, bitwiseXOrExpression190.Tree); - DebugLocation(497, 25); - // Hql.g:497:25: ( BOR ^ bitwiseXOrExpression )* - try { DebugEnterSubRule(68); - while (true) - { - int alt68=2; - try { DebugEnterDecision(68, false); - int LA68_1 = input.LA(1); - - if ((LA68_1==BOR)) - { - alt68 = 1; - } - - - } finally { DebugExitDecision(68); } - switch ( alt68 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:497:26: BOR ^ bitwiseXOrExpression - { - DebugLocation(497, 29); - BOR191=(IToken)Match(input,BOR,Follow._BOR_in_bitwiseOrExpression2396); - BOR191_tree = (IASTNode)adaptor.Create(BOR191); - root_0 = (IASTNode)adaptor.BecomeRoot(BOR191_tree, root_0); - DebugLocation(497, 31); - PushFollow(Follow._bitwiseXOrExpression_in_bitwiseOrExpression2399); - bitwiseXOrExpression192=bitwiseXOrExpression(); - PopFollow(); - - adaptor.AddChild(root_0, bitwiseXOrExpression192.Tree); - - } - break; - - default: - goto loop68; - } - } - - loop68: - ; - - } finally { DebugExitSubRule(68); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("bitwiseOrExpression", 53); - LeaveRule("bitwiseOrExpression", 53); - LeaveRule_bitwiseOrExpression(); - } - DebugLocation(498, 1); - } finally { DebugExitRule(GrammarFileName, "bitwiseOrExpression"); } - return retval; - - } - // $ANTLR end "bitwiseOrExpression" - - partial void EnterRule_bitwiseXOrExpression(); - partial void LeaveRule_bitwiseXOrExpression(); - // $ANTLR start "bitwiseXOrExpression" - // Hql.g:500:1: bitwiseXOrExpression : bitwiseAndExpression ( BXOR ^ bitwiseAndExpression )* ; - [GrammarRule("bitwiseXOrExpression")] - private AstParserRuleReturnScope bitwiseXOrExpression() - { - EnterRule_bitwiseXOrExpression(); - EnterRule("bitwiseXOrExpression", 54); - TraceIn("bitwiseXOrExpression", 54); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken BXOR194 = default(IToken); - AstParserRuleReturnScope bitwiseAndExpression193 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope bitwiseAndExpression195 = default(AstParserRuleReturnScope); - - IASTNode BXOR194_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "bitwiseXOrExpression"); - DebugLocation(500, 1); - try - { - // Hql.g:501:2: ( bitwiseAndExpression ( BXOR ^ bitwiseAndExpression )* ) - DebugEnterAlt(1); - // Hql.g:501:4: bitwiseAndExpression ( BXOR ^ bitwiseAndExpression )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(501, 4); - PushFollow(Follow._bitwiseAndExpression_in_bitwiseXOrExpression2413); - bitwiseAndExpression193=bitwiseAndExpression(); - PopFollow(); - - adaptor.AddChild(root_0, bitwiseAndExpression193.Tree); - DebugLocation(501, 25); - // Hql.g:501:25: ( BXOR ^ bitwiseAndExpression )* - try { DebugEnterSubRule(69); - while (true) - { - int alt69=2; - try { DebugEnterDecision(69, false); - int LA69_1 = input.LA(1); - - if ((LA69_1==BXOR)) - { - alt69 = 1; - } - - - } finally { DebugExitDecision(69); } - switch ( alt69 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:501:26: BXOR ^ bitwiseAndExpression - { - DebugLocation(501, 30); - BXOR194=(IToken)Match(input,BXOR,Follow._BXOR_in_bitwiseXOrExpression2416); - BXOR194_tree = (IASTNode)adaptor.Create(BXOR194); - root_0 = (IASTNode)adaptor.BecomeRoot(BXOR194_tree, root_0); - DebugLocation(501, 32); - PushFollow(Follow._bitwiseAndExpression_in_bitwiseXOrExpression2419); - bitwiseAndExpression195=bitwiseAndExpression(); - PopFollow(); - - adaptor.AddChild(root_0, bitwiseAndExpression195.Tree); - - } - break; - - default: - goto loop69; - } - } - - loop69: - ; - - } finally { DebugExitSubRule(69); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("bitwiseXOrExpression", 54); - LeaveRule("bitwiseXOrExpression", 54); - LeaveRule_bitwiseXOrExpression(); - } - DebugLocation(502, 1); - } finally { DebugExitRule(GrammarFileName, "bitwiseXOrExpression"); } - return retval; - - } - // $ANTLR end "bitwiseXOrExpression" - - partial void EnterRule_bitwiseAndExpression(); - partial void LeaveRule_bitwiseAndExpression(); - // $ANTLR start "bitwiseAndExpression" - // Hql.g:504:1: bitwiseAndExpression : additiveExpression ( BAND ^ additiveExpression )* ; - [GrammarRule("bitwiseAndExpression")] - private AstParserRuleReturnScope bitwiseAndExpression() - { - EnterRule_bitwiseAndExpression(); - EnterRule("bitwiseAndExpression", 55); - TraceIn("bitwiseAndExpression", 55); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken BAND197 = default(IToken); - AstParserRuleReturnScope additiveExpression196 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope additiveExpression198 = default(AstParserRuleReturnScope); - - IASTNode BAND197_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "bitwiseAndExpression"); - DebugLocation(504, 1); - try - { - // Hql.g:505:2: ( additiveExpression ( BAND ^ additiveExpression )* ) - DebugEnterAlt(1); - // Hql.g:505:4: additiveExpression ( BAND ^ additiveExpression )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(505, 4); - PushFollow(Follow._additiveExpression_in_bitwiseAndExpression2433); - additiveExpression196=additiveExpression(); - PopFollow(); - - adaptor.AddChild(root_0, additiveExpression196.Tree); - DebugLocation(505, 23); - // Hql.g:505:23: ( BAND ^ additiveExpression )* - try { DebugEnterSubRule(70); - while (true) - { - int alt70=2; - try { DebugEnterDecision(70, false); - int LA70_1 = input.LA(1); - - if ((LA70_1==BAND)) - { - alt70 = 1; - } - - - } finally { DebugExitDecision(70); } - switch ( alt70 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:505:24: BAND ^ additiveExpression - { - DebugLocation(505, 28); - BAND197=(IToken)Match(input,BAND,Follow._BAND_in_bitwiseAndExpression2436); - BAND197_tree = (IASTNode)adaptor.Create(BAND197); - root_0 = (IASTNode)adaptor.BecomeRoot(BAND197_tree, root_0); - DebugLocation(505, 30); - PushFollow(Follow._additiveExpression_in_bitwiseAndExpression2439); - additiveExpression198=additiveExpression(); - PopFollow(); - - adaptor.AddChild(root_0, additiveExpression198.Tree); - - } - break; - - default: - goto loop70; - } - } - - loop70: - ; - - } finally { DebugExitSubRule(70); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("bitwiseAndExpression", 55); - LeaveRule("bitwiseAndExpression", 55); - LeaveRule_bitwiseAndExpression(); - } - DebugLocation(506, 1); - } finally { DebugExitRule(GrammarFileName, "bitwiseAndExpression"); } - return retval; - - } - // $ANTLR end "bitwiseAndExpression" - - partial void EnterRule_additiveExpression(); - partial void LeaveRule_additiveExpression(); - // $ANTLR start "additiveExpression" - // Hql.g:509:1: additiveExpression : multiplyExpression ( ( PLUS ^| MINUS ^) multiplyExpression )* ; - [GrammarRule("additiveExpression")] - private AstParserRuleReturnScope additiveExpression() - { - EnterRule_additiveExpression(); - EnterRule("additiveExpression", 56); - TraceIn("additiveExpression", 56); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken PLUS200 = default(IToken); - IToken MINUS201 = default(IToken); - AstParserRuleReturnScope multiplyExpression199 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope multiplyExpression202 = default(AstParserRuleReturnScope); - - IASTNode PLUS200_tree = default(IASTNode); - IASTNode MINUS201_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "additiveExpression"); - DebugLocation(509, 1); - try - { - // Hql.g:510:2: ( multiplyExpression ( ( PLUS ^| MINUS ^) multiplyExpression )* ) - DebugEnterAlt(1); - // Hql.g:510:4: multiplyExpression ( ( PLUS ^| MINUS ^) multiplyExpression )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(510, 4); - PushFollow(Follow._multiplyExpression_in_additiveExpression2453); - multiplyExpression199=multiplyExpression(); - PopFollow(); - - adaptor.AddChild(root_0, multiplyExpression199.Tree); - DebugLocation(510, 23); - // Hql.g:510:23: ( ( PLUS ^| MINUS ^) multiplyExpression )* - try { DebugEnterSubRule(72); - while (true) - { - int alt72=2; - try { DebugEnterDecision(72, false); - int LA72_1 = input.LA(1); - - if ((LA72_1==MINUS||LA72_1==PLUS)) - { - alt72 = 1; - } - - - } finally { DebugExitDecision(72); } - switch ( alt72 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:510:25: ( PLUS ^| MINUS ^) multiplyExpression - { - DebugLocation(510, 25); - // Hql.g:510:25: ( PLUS ^| MINUS ^) - int alt71=2; - try { DebugEnterSubRule(71); - try { DebugEnterDecision(71, false); - int LA71_1 = input.LA(1); - - if ((LA71_1==PLUS)) - { - alt71 = 1; - } - else if ((LA71_1==MINUS)) - { - alt71 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 71, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(71); } - switch (alt71) - { - case 1: - DebugEnterAlt(1); - // Hql.g:510:27: PLUS ^ - { - DebugLocation(510, 31); - PLUS200=(IToken)Match(input,PLUS,Follow._PLUS_in_additiveExpression2459); - PLUS200_tree = (IASTNode)adaptor.Create(PLUS200); - root_0 = (IASTNode)adaptor.BecomeRoot(PLUS200_tree, root_0); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:510:35: MINUS ^ - { - DebugLocation(510, 40); - MINUS201=(IToken)Match(input,MINUS,Follow._MINUS_in_additiveExpression2464); - MINUS201_tree = (IASTNode)adaptor.Create(MINUS201); - root_0 = (IASTNode)adaptor.BecomeRoot(MINUS201_tree, root_0); - - } - break; - - } - } finally { DebugExitSubRule(71); } - - DebugLocation(510, 44); - PushFollow(Follow._multiplyExpression_in_additiveExpression2469); - multiplyExpression202=multiplyExpression(); - PopFollow(); - - adaptor.AddChild(root_0, multiplyExpression202.Tree); - - } - break; - - default: - goto loop72; - } - } - - loop72: - ; - - } finally { DebugExitSubRule(72); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("additiveExpression", 56); - LeaveRule("additiveExpression", 56); - LeaveRule_additiveExpression(); - } - DebugLocation(511, 1); - } finally { DebugExitRule(GrammarFileName, "additiveExpression"); } - return retval; - - } - // $ANTLR end "additiveExpression" - - partial void EnterRule_multiplyExpression(); - partial void LeaveRule_multiplyExpression(); - // $ANTLR start "multiplyExpression" - // Hql.g:514:1: multiplyExpression : unaryExpression ( ( STAR ^| DIV ^) unaryExpression )* ; - [GrammarRule("multiplyExpression")] - private AstParserRuleReturnScope multiplyExpression() - { - EnterRule_multiplyExpression(); - EnterRule("multiplyExpression", 57); - TraceIn("multiplyExpression", 57); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken STAR204 = default(IToken); - IToken DIV205 = default(IToken); - AstParserRuleReturnScope unaryExpression203 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope unaryExpression206 = default(AstParserRuleReturnScope); - - IASTNode STAR204_tree = default(IASTNode); - IASTNode DIV205_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "multiplyExpression"); - DebugLocation(514, 1); - try - { - // Hql.g:515:2: ( unaryExpression ( ( STAR ^| DIV ^) unaryExpression )* ) - DebugEnterAlt(1); - // Hql.g:515:4: unaryExpression ( ( STAR ^| DIV ^) unaryExpression )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(515, 4); - PushFollow(Follow._unaryExpression_in_multiplyExpression2484); - unaryExpression203=unaryExpression(); - PopFollow(); - - adaptor.AddChild(root_0, unaryExpression203.Tree); - DebugLocation(515, 20); - // Hql.g:515:20: ( ( STAR ^| DIV ^) unaryExpression )* - try { DebugEnterSubRule(74); - while (true) - { - int alt74=2; - try { DebugEnterDecision(74, false); - int LA74_1 = input.LA(1); - - if ((LA74_1==DIV||LA74_1==STAR)) - { - alt74 = 1; - } - - - } finally { DebugExitDecision(74); } - switch ( alt74 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:515:22: ( STAR ^| DIV ^) unaryExpression - { - DebugLocation(515, 22); - // Hql.g:515:22: ( STAR ^| DIV ^) - int alt73=2; - try { DebugEnterSubRule(73); - try { DebugEnterDecision(73, false); - int LA73_1 = input.LA(1); - - if ((LA73_1==STAR)) - { - alt73 = 1; - } - else if ((LA73_1==DIV)) - { - alt73 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 73, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(73); } - switch (alt73) - { - case 1: - DebugEnterAlt(1); - // Hql.g:515:24: STAR ^ - { - DebugLocation(515, 28); - STAR204=(IToken)Match(input,STAR,Follow._STAR_in_multiplyExpression2490); - STAR204_tree = (IASTNode)adaptor.Create(STAR204); - root_0 = (IASTNode)adaptor.BecomeRoot(STAR204_tree, root_0); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:515:32: DIV ^ - { - DebugLocation(515, 35); - DIV205=(IToken)Match(input,DIV,Follow._DIV_in_multiplyExpression2495); - DIV205_tree = (IASTNode)adaptor.Create(DIV205); - root_0 = (IASTNode)adaptor.BecomeRoot(DIV205_tree, root_0); - - } - break; - - } - } finally { DebugExitSubRule(73); } - - DebugLocation(515, 39); - PushFollow(Follow._unaryExpression_in_multiplyExpression2500); - unaryExpression206=unaryExpression(); - PopFollow(); - - adaptor.AddChild(root_0, unaryExpression206.Tree); - - } - break; - - default: - goto loop74; - } - } - - loop74: - ; - - } finally { DebugExitSubRule(74); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("multiplyExpression", 57); - LeaveRule("multiplyExpression", 57); - LeaveRule_multiplyExpression(); - } - DebugLocation(516, 1); - } finally { DebugExitRule(GrammarFileName, "multiplyExpression"); } - return retval; - - } - // $ANTLR end "multiplyExpression" - - partial void EnterRule_unaryExpression(); - partial void LeaveRule_unaryExpression(); - // $ANTLR start "unaryExpression" - // Hql.g:519:1: unaryExpression : (m= MINUS mu= unaryExpression -> ^( UNARY_MINUS[$m] $mu) |p= PLUS pu= unaryExpression -> ^( UNARY_PLUS[$p] $pu) | caseExpression | quantifiedExpression | atom ); - [GrammarRule("unaryExpression")] - private AstParserRuleReturnScope unaryExpression() - { - EnterRule_unaryExpression(); - EnterRule("unaryExpression", 58); - TraceIn("unaryExpression", 58); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken m = default(IToken); - IToken p = default(IToken); - AstParserRuleReturnScope mu = default(AstParserRuleReturnScope); - AstParserRuleReturnScope pu = default(AstParserRuleReturnScope); - AstParserRuleReturnScope caseExpression207 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope quantifiedExpression208 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope atom209 = default(AstParserRuleReturnScope); - - IASTNode m_tree = default(IASTNode); - IASTNode p_tree = default(IASTNode); - RewriteRuleITokenStream stream_MINUS=new RewriteRuleITokenStream(adaptor,"token MINUS"); - RewriteRuleITokenStream stream_PLUS=new RewriteRuleITokenStream(adaptor,"token PLUS"); - RewriteRuleSubtreeStream stream_unaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule unaryExpression"); - try { DebugEnterRule(GrammarFileName, "unaryExpression"); - DebugLocation(519, 1); - try - { - // Hql.g:520:2: (m= MINUS mu= unaryExpression -> ^( UNARY_MINUS[$m] $mu) |p= PLUS pu= unaryExpression -> ^( UNARY_PLUS[$p] $pu) | caseExpression | quantifiedExpression | atom ) - int alt75=5; - try { DebugEnterDecision(75, false); - switch (input.LA(1)) - { - case MINUS: - { - alt75 = 1; - } - break; - case PLUS: - { - alt75 = 2; - } - break; - case CASE: - { - alt75 = 3; - } - break; - case ALL: - case ANY: - case EXISTS: - case SOME: - { - alt75 = 4; - } - break; - case AVG: - case COLON: - case COUNT: - case ELEMENTS: - case EMPTY: - case FALSE: - case IDENT: - case INDICES: - case MAX: - case MIN: - case NULL: - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case OPEN: - case PARAM: - case QUOTED_String: - case SUM: - case TRUE: - { - alt75 = 5; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 75, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(75); } - switch (alt75) - { - case 1: - DebugEnterAlt(1); - // Hql.g:520:4: m= MINUS mu= unaryExpression - { - DebugLocation(520, 5); - m=(IToken)Match(input,MINUS,Follow._MINUS_in_unaryExpression2518); - stream_MINUS.Add(m); - - DebugLocation(520, 14); - PushFollow(Follow._unaryExpression_in_unaryExpression2522); - mu=unaryExpression(); - PopFollow(); - - stream_unaryExpression.Add(mu.Tree); - - - { - // AST REWRITE - // elements: mu - // token labels: - // rule labels: mu, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_mu=new RewriteRuleSubtreeStream(adaptor,"rule mu",mu!=null?mu.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 520:31: -> ^( UNARY_MINUS[$m] $mu) - { - DebugLocation(520, 34); - // Hql.g:520:34: ^( UNARY_MINUS[$m] $mu) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(520, 36); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(UNARY_MINUS, m), root_1); - - DebugLocation(520, 53); - adaptor.AddChild(root_1, stream_mu.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:521:4: p= PLUS pu= unaryExpression - { - DebugLocation(521, 5); - p=(IToken)Match(input,PLUS,Follow._PLUS_in_unaryExpression2539); - stream_PLUS.Add(p); - - DebugLocation(521, 13); - PushFollow(Follow._unaryExpression_in_unaryExpression2543); - pu=unaryExpression(); - PopFollow(); - - stream_unaryExpression.Add(pu.Tree); - - - { - // AST REWRITE - // elements: pu - // token labels: - // rule labels: pu, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_pu=new RewriteRuleSubtreeStream(adaptor,"rule pu",pu!=null?pu.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 521:30: -> ^( UNARY_PLUS[$p] $pu) - { - DebugLocation(521, 33); - // Hql.g:521:33: ^( UNARY_PLUS[$p] $pu) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(521, 35); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(UNARY_PLUS, p), root_1); - - DebugLocation(521, 51); - adaptor.AddChild(root_1, stream_pu.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:522:4: caseExpression - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(522, 4); - PushFollow(Follow._caseExpression_in_unaryExpression2558); - caseExpression207=caseExpression(); - PopFollow(); - - adaptor.AddChild(root_0, caseExpression207.Tree); - - } - break; - case 4: - DebugEnterAlt(4); - // Hql.g:523:4: quantifiedExpression - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(523, 4); - PushFollow(Follow._quantifiedExpression_in_unaryExpression2563); - quantifiedExpression208=quantifiedExpression(); - PopFollow(); - - adaptor.AddChild(root_0, quantifiedExpression208.Tree); - - } - break; - case 5: - DebugEnterAlt(5); - // Hql.g:524:4: atom - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(524, 4); - PushFollow(Follow._atom_in_unaryExpression2568); - atom209=atom(); - PopFollow(); - - adaptor.AddChild(root_0, atom209.Tree); - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("unaryExpression", 58); - LeaveRule("unaryExpression", 58); - LeaveRule_unaryExpression(); - } - DebugLocation(525, 1); - } finally { DebugExitRule(GrammarFileName, "unaryExpression"); } - return retval; - - } - // $ANTLR end "unaryExpression" - - partial void EnterRule_caseExpression(); - partial void LeaveRule_caseExpression(); - // $ANTLR start "caseExpression" - // Hql.g:527:1: caseExpression : ( CASE ( whenClause )+ ( elseClause )? END -> ^( CASE ( whenClause )+ ( elseClause )? ) | CASE unaryExpression ( altWhenClause )+ ( elseClause )? END -> ^( CASE2 unaryExpression ( altWhenClause )+ ( elseClause )? ) ); - [GrammarRule("caseExpression")] - private AstParserRuleReturnScope caseExpression() - { - EnterRule_caseExpression(); - EnterRule("caseExpression", 59); - TraceIn("caseExpression", 59); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken CASE210 = default(IToken); - IToken END213 = default(IToken); - IToken CASE214 = default(IToken); - IToken END218 = default(IToken); - AstParserRuleReturnScope whenClause211 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope elseClause212 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope unaryExpression215 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope altWhenClause216 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope elseClause217 = default(AstParserRuleReturnScope); - - IASTNode CASE210_tree = default(IASTNode); - IASTNode END213_tree = default(IASTNode); - IASTNode CASE214_tree = default(IASTNode); - IASTNode END218_tree = default(IASTNode); - RewriteRuleITokenStream stream_CASE=new RewriteRuleITokenStream(adaptor,"token CASE"); - RewriteRuleITokenStream stream_END=new RewriteRuleITokenStream(adaptor,"token END"); - RewriteRuleSubtreeStream stream_whenClause=new RewriteRuleSubtreeStream(adaptor,"rule whenClause"); - RewriteRuleSubtreeStream stream_elseClause=new RewriteRuleSubtreeStream(adaptor,"rule elseClause"); - RewriteRuleSubtreeStream stream_unaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule unaryExpression"); - RewriteRuleSubtreeStream stream_altWhenClause=new RewriteRuleSubtreeStream(adaptor,"rule altWhenClause"); - try { DebugEnterRule(GrammarFileName, "caseExpression"); - DebugLocation(527, 1); - try - { - // Hql.g:528:2: ( CASE ( whenClause )+ ( elseClause )? END -> ^( CASE ( whenClause )+ ( elseClause )? ) | CASE unaryExpression ( altWhenClause )+ ( elseClause )? END -> ^( CASE2 unaryExpression ( altWhenClause )+ ( elseClause )? ) ) - int alt80=2; - try { DebugEnterDecision(80, false); - int LA80_1 = input.LA(1); - - if ((LA80_1==CASE)) - { - int LA80_2 = input.LA(2); - - if ((LA80_2==WHEN)) - { - alt80 = 1; - } - else if ((LA80_2==ALL||LA80_2==ANY||LA80_2==AVG||LA80_2==CASE||LA80_2==COLON||LA80_2==COUNT||LA80_2==ELEMENTS||LA80_2==EMPTY||LA80_2==EXISTS||LA80_2==FALSE||LA80_2==IDENT||LA80_2==INDICES||LA80_2==MAX||(LA80_2>=MIN && LA80_2<=MINUS)||(LA80_2>=NULL && LA80_2<=NUM_LONG)||LA80_2==OPEN||(LA80_2>=PARAM && LA80_2<=PLUS)||LA80_2==QUOTED_String||LA80_2==SOME||LA80_2==SUM||LA80_2==TRUE)) - { - alt80 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 80, 1, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - else - { - NoViableAltException nvae = new NoViableAltException("", 80, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(80); } - switch (alt80) - { - case 1: - DebugEnterAlt(1); - // Hql.g:528:4: CASE ( whenClause )+ ( elseClause )? END - { - DebugLocation(528, 4); - CASE210=(IToken)Match(input,CASE,Follow._CASE_in_caseExpression2580); - stream_CASE.Add(CASE210); - - DebugLocation(528, 9); - // Hql.g:528:9: ( whenClause )+ - int cnt76=0; - try { DebugEnterSubRule(76); - while (true) - { - int alt76=2; - try { DebugEnterDecision(76, false); - int LA76_1 = input.LA(1); - - if ((LA76_1==WHEN)) - { - alt76 = 1; - } - - - } finally { DebugExitDecision(76); } - switch (alt76) - { - case 1: - DebugEnterAlt(1); - // Hql.g:528:10: whenClause - { - DebugLocation(528, 10); - PushFollow(Follow._whenClause_in_caseExpression2583); - whenClause211=whenClause(); - PopFollow(); - - stream_whenClause.Add(whenClause211.Tree); - - } - break; - - default: - if (cnt76 >= 1) - goto loop76; - - EarlyExitException eee76 = new EarlyExitException( 76, input ); - DebugRecognitionException(eee76); - throw eee76; - } - cnt76++; - } - loop76: - ; - - } finally { DebugExitSubRule(76); } - - DebugLocation(528, 23); - // Hql.g:528:23: ( elseClause )? - int alt77=2; - try { DebugEnterSubRule(77); - try { DebugEnterDecision(77, false); - int LA77_1 = input.LA(1); - - if ((LA77_1==ELSE)) - { - alt77 = 1; - } - } finally { DebugExitDecision(77); } - switch (alt77) - { - case 1: - DebugEnterAlt(1); - // Hql.g:528:24: elseClause - { - DebugLocation(528, 24); - PushFollow(Follow._elseClause_in_caseExpression2588); - elseClause212=elseClause(); - PopFollow(); - - stream_elseClause.Add(elseClause212.Tree); - - } - break; - - } - } finally { DebugExitSubRule(77); } - - DebugLocation(528, 37); - END213=(IToken)Match(input,END,Follow._END_in_caseExpression2592); - stream_END.Add(END213); - - - - { - // AST REWRITE - // elements: CASE, whenClause, elseClause - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 529:3: -> ^( CASE ( whenClause )+ ( elseClause )? ) - { - DebugLocation(529, 6); - // Hql.g:529:6: ^( CASE ( whenClause )+ ( elseClause )? ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(529, 8); - root_1 = (IASTNode)adaptor.BecomeRoot(stream_CASE.NextNode(), root_1); - - DebugLocation(529, 13); - if (!(stream_whenClause.HasNext)) - { - throw new RewriteEarlyExitException(); - } - while ( stream_whenClause.HasNext ) - { - DebugLocation(529, 13); - adaptor.AddChild(root_1, stream_whenClause.NextTree()); - - } - stream_whenClause.Reset(); - DebugLocation(529, 25); - // Hql.g:529:25: ( elseClause )? - if (stream_elseClause.HasNext) - { - DebugLocation(529, 25); - adaptor.AddChild(root_1, stream_elseClause.NextTree()); - - } - stream_elseClause.Reset(); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:530:4: CASE unaryExpression ( altWhenClause )+ ( elseClause )? END - { - DebugLocation(530, 4); - CASE214=(IToken)Match(input,CASE,Follow._CASE_in_caseExpression2612); - stream_CASE.Add(CASE214); - - DebugLocation(530, 9); - PushFollow(Follow._unaryExpression_in_caseExpression2614); - unaryExpression215=unaryExpression(); - PopFollow(); - - stream_unaryExpression.Add(unaryExpression215.Tree); - DebugLocation(530, 25); - // Hql.g:530:25: ( altWhenClause )+ - int cnt78=0; - try { DebugEnterSubRule(78); - while (true) - { - int alt78=2; - try { DebugEnterDecision(78, false); - int LA78_1 = input.LA(1); - - if ((LA78_1==WHEN)) - { - alt78 = 1; - } - - - } finally { DebugExitDecision(78); } - switch (alt78) - { - case 1: - DebugEnterAlt(1); - // Hql.g:530:26: altWhenClause - { - DebugLocation(530, 26); - PushFollow(Follow._altWhenClause_in_caseExpression2617); - altWhenClause216=altWhenClause(); - PopFollow(); - - stream_altWhenClause.Add(altWhenClause216.Tree); - - } - break; - - default: - if (cnt78 >= 1) - goto loop78; - - EarlyExitException eee78 = new EarlyExitException( 78, input ); - DebugRecognitionException(eee78); - throw eee78; - } - cnt78++; - } - loop78: - ; - - } finally { DebugExitSubRule(78); } - - DebugLocation(530, 42); - // Hql.g:530:42: ( elseClause )? - int alt79=2; - try { DebugEnterSubRule(79); - try { DebugEnterDecision(79, false); - int LA79_1 = input.LA(1); - - if ((LA79_1==ELSE)) - { - alt79 = 1; - } - } finally { DebugExitDecision(79); } - switch (alt79) - { - case 1: - DebugEnterAlt(1); - // Hql.g:530:43: elseClause - { - DebugLocation(530, 43); - PushFollow(Follow._elseClause_in_caseExpression2622); - elseClause217=elseClause(); - PopFollow(); - - stream_elseClause.Add(elseClause217.Tree); - - } - break; - - } - } finally { DebugExitSubRule(79); } - - DebugLocation(530, 56); - END218=(IToken)Match(input,END,Follow._END_in_caseExpression2626); - stream_END.Add(END218); - - - - { - // AST REWRITE - // elements: unaryExpression, altWhenClause, elseClause - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 531:3: -> ^( CASE2 unaryExpression ( altWhenClause )+ ( elseClause )? ) - { - DebugLocation(531, 6); - // Hql.g:531:6: ^( CASE2 unaryExpression ( altWhenClause )+ ( elseClause )? ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(531, 8); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(CASE2, "CASE2"), root_1); - - DebugLocation(531, 14); - adaptor.AddChild(root_1, stream_unaryExpression.NextTree()); - DebugLocation(531, 30); - if (!(stream_altWhenClause.HasNext)) - { - throw new RewriteEarlyExitException(); - } - while ( stream_altWhenClause.HasNext ) - { - DebugLocation(531, 30); - adaptor.AddChild(root_1, stream_altWhenClause.NextTree()); - - } - stream_altWhenClause.Reset(); - DebugLocation(531, 45); - // Hql.g:531:45: ( elseClause )? - if (stream_elseClause.HasNext) - { - DebugLocation(531, 45); - adaptor.AddChild(root_1, stream_elseClause.NextTree()); - - } - stream_elseClause.Reset(); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("caseExpression", 59); - LeaveRule("caseExpression", 59); - LeaveRule_caseExpression(); - } - DebugLocation(532, 1); - } finally { DebugExitRule(GrammarFileName, "caseExpression"); } - return retval; - - } - // $ANTLR end "caseExpression" - - partial void EnterRule_whenClause(); - partial void LeaveRule_whenClause(); - // $ANTLR start "whenClause" - // Hql.g:534:1: whenClause : ( WHEN ^ logicalExpression THEN ! expression ) ; - [GrammarRule("whenClause")] - private AstParserRuleReturnScope whenClause() - { - EnterRule_whenClause(); - EnterRule("whenClause", 60); - TraceIn("whenClause", 60); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken WHEN219 = default(IToken); - IToken THEN221 = default(IToken); - AstParserRuleReturnScope logicalExpression220 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope expression222 = default(AstParserRuleReturnScope); - - IASTNode WHEN219_tree = default(IASTNode); - IASTNode THEN221_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "whenClause"); - DebugLocation(534, 1); - try - { - // Hql.g:535:2: ( ( WHEN ^ logicalExpression THEN ! expression ) ) - DebugEnterAlt(1); - // Hql.g:535:4: ( WHEN ^ logicalExpression THEN ! expression ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(535, 4); - // Hql.g:535:4: ( WHEN ^ logicalExpression THEN ! expression ) - DebugEnterAlt(1); - // Hql.g:535:5: WHEN ^ logicalExpression THEN ! expression - { - DebugLocation(535, 9); - WHEN219=(IToken)Match(input,WHEN,Follow._WHEN_in_whenClause2655); - WHEN219_tree = (IASTNode)adaptor.Create(WHEN219); - root_0 = (IASTNode)adaptor.BecomeRoot(WHEN219_tree, root_0); - DebugLocation(535, 11); - PushFollow(Follow._logicalExpression_in_whenClause2658); - logicalExpression220=logicalExpression(); - PopFollow(); - - adaptor.AddChild(root_0, logicalExpression220.Tree); - DebugLocation(535, 33); - THEN221=(IToken)Match(input,THEN,Follow._THEN_in_whenClause2660); - DebugLocation(535, 35); - PushFollow(Follow._expression_in_whenClause2663); - expression222=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression222.Tree); - - } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("whenClause", 60); - LeaveRule("whenClause", 60); - LeaveRule_whenClause(); - } - DebugLocation(536, 1); - } finally { DebugExitRule(GrammarFileName, "whenClause"); } - return retval; - - } - // $ANTLR end "whenClause" - - partial void EnterRule_altWhenClause(); - partial void LeaveRule_altWhenClause(); - // $ANTLR start "altWhenClause" - // Hql.g:538:1: altWhenClause : ( WHEN ^ unaryExpression THEN ! expression ) ; - [GrammarRule("altWhenClause")] - private AstParserRuleReturnScope altWhenClause() - { - EnterRule_altWhenClause(); - EnterRule("altWhenClause", 61); - TraceIn("altWhenClause", 61); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken WHEN223 = default(IToken); - IToken THEN225 = default(IToken); - AstParserRuleReturnScope unaryExpression224 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope expression226 = default(AstParserRuleReturnScope); - - IASTNode WHEN223_tree = default(IASTNode); - IASTNode THEN225_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "altWhenClause"); - DebugLocation(538, 1); - try - { - // Hql.g:539:2: ( ( WHEN ^ unaryExpression THEN ! expression ) ) - DebugEnterAlt(1); - // Hql.g:539:4: ( WHEN ^ unaryExpression THEN ! expression ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(539, 4); - // Hql.g:539:4: ( WHEN ^ unaryExpression THEN ! expression ) - DebugEnterAlt(1); - // Hql.g:539:5: WHEN ^ unaryExpression THEN ! expression - { - DebugLocation(539, 9); - WHEN223=(IToken)Match(input,WHEN,Follow._WHEN_in_altWhenClause2677); - WHEN223_tree = (IASTNode)adaptor.Create(WHEN223); - root_0 = (IASTNode)adaptor.BecomeRoot(WHEN223_tree, root_0); - DebugLocation(539, 11); - PushFollow(Follow._unaryExpression_in_altWhenClause2680); - unaryExpression224=unaryExpression(); - PopFollow(); - - adaptor.AddChild(root_0, unaryExpression224.Tree); - DebugLocation(539, 31); - THEN225=(IToken)Match(input,THEN,Follow._THEN_in_altWhenClause2682); - DebugLocation(539, 33); - PushFollow(Follow._expression_in_altWhenClause2685); - expression226=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression226.Tree); - - } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("altWhenClause", 61); - LeaveRule("altWhenClause", 61); - LeaveRule_altWhenClause(); - } - DebugLocation(540, 1); - } finally { DebugExitRule(GrammarFileName, "altWhenClause"); } - return retval; - - } - // $ANTLR end "altWhenClause" - - partial void EnterRule_elseClause(); - partial void LeaveRule_elseClause(); - // $ANTLR start "elseClause" - // Hql.g:542:1: elseClause : ( ELSE ^ expression ) ; - [GrammarRule("elseClause")] - private AstParserRuleReturnScope elseClause() - { - EnterRule_elseClause(); - EnterRule("elseClause", 62); - TraceIn("elseClause", 62); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken ELSE227 = default(IToken); - AstParserRuleReturnScope expression228 = default(AstParserRuleReturnScope); - - IASTNode ELSE227_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "elseClause"); - DebugLocation(542, 1); - try - { - // Hql.g:543:2: ( ( ELSE ^ expression ) ) - DebugEnterAlt(1); - // Hql.g:543:4: ( ELSE ^ expression ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(543, 4); - // Hql.g:543:4: ( ELSE ^ expression ) - DebugEnterAlt(1); - // Hql.g:543:5: ELSE ^ expression - { - DebugLocation(543, 9); - ELSE227=(IToken)Match(input,ELSE,Follow._ELSE_in_elseClause2699); - ELSE227_tree = (IASTNode)adaptor.Create(ELSE227); - root_0 = (IASTNode)adaptor.BecomeRoot(ELSE227_tree, root_0); - DebugLocation(543, 11); - PushFollow(Follow._expression_in_elseClause2702); - expression228=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression228.Tree); - - } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("elseClause", 62); - LeaveRule("elseClause", 62); - LeaveRule_elseClause(); - } - DebugLocation(544, 1); - } finally { DebugExitRule(GrammarFileName, "elseClause"); } - return retval; - - } - // $ANTLR end "elseClause" - - partial void EnterRule_quantifiedExpression(); - partial void LeaveRule_quantifiedExpression(); - // $ANTLR start "quantifiedExpression" - // Hql.g:546:1: quantifiedExpression : ( SOME ^| EXISTS ^| ALL ^| ANY ^) ( identifier | collectionExpr | ( OPEN ! ( subQuery ) CLOSE !) ) ; - [GrammarRule("quantifiedExpression")] - private AstParserRuleReturnScope quantifiedExpression() - { - EnterRule_quantifiedExpression(); - EnterRule("quantifiedExpression", 63); - TraceIn("quantifiedExpression", 63); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken SOME229 = default(IToken); - IToken EXISTS230 = default(IToken); - IToken ALL231 = default(IToken); - IToken ANY232 = default(IToken); - IToken OPEN235 = default(IToken); - IToken CLOSE237 = default(IToken); - AstParserRuleReturnScope identifier233 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope collectionExpr234 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope subQuery236 = default(AstParserRuleReturnScope); - - IASTNode SOME229_tree = default(IASTNode); - IASTNode EXISTS230_tree = default(IASTNode); - IASTNode ALL231_tree = default(IASTNode); - IASTNode ANY232_tree = default(IASTNode); - IASTNode OPEN235_tree = default(IASTNode); - IASTNode CLOSE237_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "quantifiedExpression"); - DebugLocation(546, 1); - try - { - // Hql.g:547:2: ( ( SOME ^| EXISTS ^| ALL ^| ANY ^) ( identifier | collectionExpr | ( OPEN ! ( subQuery ) CLOSE !) ) ) - DebugEnterAlt(1); - // Hql.g:547:4: ( SOME ^| EXISTS ^| ALL ^| ANY ^) ( identifier | collectionExpr | ( OPEN ! ( subQuery ) CLOSE !) ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(547, 4); - // Hql.g:547:4: ( SOME ^| EXISTS ^| ALL ^| ANY ^) - int alt81=4; - try { DebugEnterSubRule(81); - try { DebugEnterDecision(81, false); - switch (input.LA(1)) - { - case SOME: - { - alt81 = 1; - } - break; - case EXISTS: - { - alt81 = 2; - } - break; - case ALL: - { - alt81 = 3; - } - break; - case ANY: - { - alt81 = 4; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 81, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(81); } - switch (alt81) - { - case 1: - DebugEnterAlt(1); - // Hql.g:547:6: SOME ^ - { - DebugLocation(547, 10); - SOME229=(IToken)Match(input,SOME,Follow._SOME_in_quantifiedExpression2717); - SOME229_tree = (IASTNode)adaptor.Create(SOME229); - root_0 = (IASTNode)adaptor.BecomeRoot(SOME229_tree, root_0); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:547:14: EXISTS ^ - { - DebugLocation(547, 20); - EXISTS230=(IToken)Match(input,EXISTS,Follow._EXISTS_in_quantifiedExpression2722); - EXISTS230_tree = (IASTNode)adaptor.Create(EXISTS230); - root_0 = (IASTNode)adaptor.BecomeRoot(EXISTS230_tree, root_0); - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:547:24: ALL ^ - { - DebugLocation(547, 27); - ALL231=(IToken)Match(input,ALL,Follow._ALL_in_quantifiedExpression2727); - ALL231_tree = (IASTNode)adaptor.Create(ALL231); - root_0 = (IASTNode)adaptor.BecomeRoot(ALL231_tree, root_0); - - } - break; - case 4: - DebugEnterAlt(4); - // Hql.g:547:31: ANY ^ - { - DebugLocation(547, 34); - ANY232=(IToken)Match(input,ANY,Follow._ANY_in_quantifiedExpression2732); - ANY232_tree = (IASTNode)adaptor.Create(ANY232); - root_0 = (IASTNode)adaptor.BecomeRoot(ANY232_tree, root_0); - - } - break; - - } - } finally { DebugExitSubRule(81); } - - DebugLocation(548, 2); - // Hql.g:548:2: ( identifier | collectionExpr | ( OPEN ! ( subQuery ) CLOSE !) ) - int alt82=3; - try { DebugEnterSubRule(82); - try { DebugEnterDecision(82, false); - switch (input.LA(1)) - { - case IDENT: - { - alt82 = 1; - } - break; - case ELEMENTS: - case INDICES: - { - alt82 = 2; - } - break; - case OPEN: - { - alt82 = 3; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 82, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(82); } - switch (alt82) - { - case 1: - DebugEnterAlt(1); - // Hql.g:548:4: identifier - { - DebugLocation(548, 4); - PushFollow(Follow._identifier_in_quantifiedExpression2741); - identifier233=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, identifier233.Tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:548:17: collectionExpr - { - DebugLocation(548, 17); - PushFollow(Follow._collectionExpr_in_quantifiedExpression2745); - collectionExpr234=collectionExpr(); - PopFollow(); - - adaptor.AddChild(root_0, collectionExpr234.Tree); - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:548:34: ( OPEN ! ( subQuery ) CLOSE !) - { - DebugLocation(548, 34); - // Hql.g:548:34: ( OPEN ! ( subQuery ) CLOSE !) - DebugEnterAlt(1); - // Hql.g:548:35: OPEN ! ( subQuery ) CLOSE ! - { - DebugLocation(548, 39); - OPEN235=(IToken)Match(input,OPEN,Follow._OPEN_in_quantifiedExpression2750); - DebugLocation(548, 41); - // Hql.g:548:41: ( subQuery ) - DebugEnterAlt(1); - // Hql.g:548:43: subQuery - { - DebugLocation(548, 43); - PushFollow(Follow._subQuery_in_quantifiedExpression2755); - subQuery236=subQuery(); - PopFollow(); - - adaptor.AddChild(root_0, subQuery236.Tree); - - } - - DebugLocation(548, 59); - CLOSE237=(IToken)Match(input,CLOSE,Follow._CLOSE_in_quantifiedExpression2759); - - } - - - } - break; - - } - } finally { DebugExitSubRule(82); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("quantifiedExpression", 63); - LeaveRule("quantifiedExpression", 63); - LeaveRule_quantifiedExpression(); - } - DebugLocation(549, 1); - } finally { DebugExitRule(GrammarFileName, "quantifiedExpression"); } - return retval; - - } - // $ANTLR end "quantifiedExpression" - - partial void EnterRule_atom(); - partial void LeaveRule_atom(); - // $ANTLR start "atom" - // Hql.g:554:1: atom : primaryExpression ( DOT ^ identifier ( options {greedy=true; } : (op= OPEN ^ exprList CLOSE !) )? |lb= OPEN_BRACKET ^ expression CLOSE_BRACKET !)* ; - [GrammarRule("atom")] - private AstParserRuleReturnScope atom() - { - EnterRule_atom(); - EnterRule("atom", 64); - TraceIn("atom", 64); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken op = default(IToken); - IToken lb = default(IToken); - IToken DOT239 = default(IToken); - IToken CLOSE242 = default(IToken); - IToken CLOSE_BRACKET244 = default(IToken); - AstParserRuleReturnScope primaryExpression238 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope identifier240 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope exprList241 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope expression243 = default(AstParserRuleReturnScope); - - IASTNode op_tree = default(IASTNode); - IASTNode lb_tree = default(IASTNode); - IASTNode DOT239_tree = default(IASTNode); - IASTNode CLOSE242_tree = default(IASTNode); - IASTNode CLOSE_BRACKET244_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "atom"); - DebugLocation(554, 1); - try - { - // Hql.g:555:3: ( primaryExpression ( DOT ^ identifier ( options {greedy=true; } : (op= OPEN ^ exprList CLOSE !) )? |lb= OPEN_BRACKET ^ expression CLOSE_BRACKET !)* ) - DebugEnterAlt(1); - // Hql.g:555:5: primaryExpression ( DOT ^ identifier ( options {greedy=true; } : (op= OPEN ^ exprList CLOSE !) )? |lb= OPEN_BRACKET ^ expression CLOSE_BRACKET !)* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(555, 5); - PushFollow(Follow._primaryExpression_in_atom2778); - primaryExpression238=primaryExpression(); - PopFollow(); - - adaptor.AddChild(root_0, primaryExpression238.Tree); - DebugLocation(556, 3); - // Hql.g:556:3: ( DOT ^ identifier ( options {greedy=true; } : (op= OPEN ^ exprList CLOSE !) )? |lb= OPEN_BRACKET ^ expression CLOSE_BRACKET !)* - try { DebugEnterSubRule(84); - while (true) - { - int alt84=3; - try { DebugEnterDecision(84, false); - int LA84_1 = input.LA(1); - - if ((LA84_1==DOT)) - { - alt84 = 1; - } - else if ((LA84_1==OPEN_BRACKET)) - { - alt84 = 2; - } - - - } finally { DebugExitDecision(84); } - switch ( alt84 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:557:4: DOT ^ identifier ( options {greedy=true; } : (op= OPEN ^ exprList CLOSE !) )? - { - DebugLocation(557, 7); - DOT239=(IToken)Match(input,DOT,Follow._DOT_in_atom2787); - DOT239_tree = (IASTNode)adaptor.Create(DOT239); - root_0 = (IASTNode)adaptor.BecomeRoot(DOT239_tree, root_0); - DebugLocation(557, 9); - PushFollow(Follow._identifier_in_atom2790); - identifier240=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, identifier240.Tree); - DebugLocation(558, 5); - // Hql.g:558:5: ( options {greedy=true; } : (op= OPEN ^ exprList CLOSE !) )? - int alt83=2; - try { DebugEnterSubRule(83); - try { DebugEnterDecision(83, false); - int LA83_1 = input.LA(1); - - if ((LA83_1==OPEN)) - { - alt83 = 1; - } - } finally { DebugExitDecision(83); } - switch (alt83) - { - case 1: - DebugEnterAlt(1); - // Hql.g:559:6: (op= OPEN ^ exprList CLOSE !) - { - DebugLocation(559, 6); - // Hql.g:559:6: (op= OPEN ^ exprList CLOSE !) - DebugEnterAlt(1); - // Hql.g:559:8: op= OPEN ^ exprList CLOSE ! - { - DebugLocation(559, 10); - op=(IToken)Match(input,OPEN,Follow._OPEN_in_atom2818); - op_tree = (IASTNode)adaptor.Create(op); - root_0 = (IASTNode)adaptor.BecomeRoot(op_tree, root_0); - DebugLocation(559, 17); - op.Type = METHOD_CALL; - DebugLocation(559, 44); - PushFollow(Follow._exprList_in_atom2823); - exprList241=exprList(); - PopFollow(); - - adaptor.AddChild(root_0, exprList241.Tree); - DebugLocation(559, 58); - CLOSE242=(IToken)Match(input,CLOSE,Follow._CLOSE_in_atom2825); - - } - - - } - break; - - } - } finally { DebugExitSubRule(83); } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:560:5: lb= OPEN_BRACKET ^ expression CLOSE_BRACKET ! - { - DebugLocation(560, 7); - lb=(IToken)Match(input,OPEN_BRACKET,Follow._OPEN_BRACKET_in_atom2839); - lb_tree = (IASTNode)adaptor.Create(lb); - root_0 = (IASTNode)adaptor.BecomeRoot(lb_tree, root_0); - DebugLocation(560, 22); - lb.Type = INDEX_OP; - DebugLocation(560, 46); - PushFollow(Follow._expression_in_atom2844); - expression243=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression243.Tree); - DebugLocation(560, 70); - CLOSE_BRACKET244=(IToken)Match(input,CLOSE_BRACKET,Follow._CLOSE_BRACKET_in_atom2846); - - } - break; - - default: - goto loop84; - } - } - - loop84: - ; - - } finally { DebugExitSubRule(84); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("atom", 64); - LeaveRule("atom", 64); - LeaveRule_atom(); - } - DebugLocation(562, 1); - } finally { DebugExitRule(GrammarFileName, "atom"); } - return retval; - - } - // $ANTLR end "atom" - - partial void EnterRule_primaryExpression(); - partial void LeaveRule_primaryExpression(); - // $ANTLR start "primaryExpression" - // Hql.g:565:1: primaryExpression : ( identPrimary ( options {greedy=true; } : DOT ^ 'class' )? | constant | COLON ^ identifier | OPEN ! ( expressionOrVector | subQuery ) CLOSE !| PARAM ^ ( NUM_INT )? ); - [GrammarRule("primaryExpression")] - private AstParserRuleReturnScope primaryExpression() - { - EnterRule_primaryExpression(); - EnterRule("primaryExpression", 65); - TraceIn("primaryExpression", 65); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken DOT246 = default(IToken); - IToken string_literal247 = default(IToken); - IToken COLON249 = default(IToken); - IToken OPEN251 = default(IToken); - IToken CLOSE254 = default(IToken); - IToken PARAM255 = default(IToken); - IToken NUM_INT256 = default(IToken); - AstParserRuleReturnScope identPrimary245 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope constant248 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope identifier250 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope expressionOrVector252 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope subQuery253 = default(AstParserRuleReturnScope); - - IASTNode DOT246_tree = default(IASTNode); - IASTNode string_literal247_tree = default(IASTNode); - IASTNode COLON249_tree = default(IASTNode); - IASTNode OPEN251_tree = default(IASTNode); - IASTNode CLOSE254_tree = default(IASTNode); - IASTNode PARAM255_tree = default(IASTNode); - IASTNode NUM_INT256_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "primaryExpression"); - DebugLocation(565, 1); - try - { - // Hql.g:566:2: ( identPrimary ( options {greedy=true; } : DOT ^ 'class' )? | constant | COLON ^ identifier | OPEN ! ( expressionOrVector | subQuery ) CLOSE !| PARAM ^ ( NUM_INT )? ) - int alt88=5; - try { DebugEnterDecision(88, false); - switch (input.LA(1)) - { - case AVG: - case COUNT: - case ELEMENTS: - case IDENT: - case INDICES: - case MAX: - case MIN: - case SUM: - { - alt88 = 1; - } - break; - case EMPTY: - case FALSE: - case NULL: - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case QUOTED_String: - case TRUE: - { - alt88 = 2; - } - break; - case COLON: - { - alt88 = 3; - } - break; - case OPEN: - { - alt88 = 4; - } - break; - case PARAM: - { - alt88 = 5; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 88, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(88); } - switch (alt88) - { - case 1: - DebugEnterAlt(1); - // Hql.g:566:6: identPrimary ( options {greedy=true; } : DOT ^ 'class' )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(566, 6); - PushFollow(Follow._identPrimary_in_primaryExpression2866); - identPrimary245=identPrimary(); - PopFollow(); - - adaptor.AddChild(root_0, identPrimary245.Tree); - DebugLocation(566, 19); - // Hql.g:566:19: ( options {greedy=true; } : DOT ^ 'class' )? - int alt85=2; - try { DebugEnterSubRule(85); - try { DebugEnterDecision(85, false); - int LA85_1 = input.LA(1); - - if ((LA85_1==DOT)) - { - int LA85_2 = input.LA(2); - - if ((LA85_2==CLASS)) - { - alt85 = 1; - } - } - } finally { DebugExitDecision(85); } - switch (alt85) - { - case 1: - DebugEnterAlt(1); - // Hql.g:566:46: DOT ^ 'class' - { - DebugLocation(566, 49); - DOT246=(IToken)Match(input,DOT,Follow._DOT_in_primaryExpression2879); - DOT246_tree = (IASTNode)adaptor.Create(DOT246); - root_0 = (IASTNode)adaptor.BecomeRoot(DOT246_tree, root_0); - DebugLocation(566, 51); - string_literal247=(IToken)Match(input,CLASS,Follow._CLASS_in_primaryExpression2882); - string_literal247_tree = (IASTNode)adaptor.Create(string_literal247); - adaptor.AddChild(root_0, string_literal247_tree); - - } - break; - - } - } finally { DebugExitSubRule(85); } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:567:6: constant - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(567, 6); - PushFollow(Follow._constant_in_primaryExpression2892); - constant248=constant(); - PopFollow(); - - adaptor.AddChild(root_0, constant248.Tree); - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:568:6: COLON ^ identifier - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(568, 11); - COLON249=(IToken)Match(input,COLON,Follow._COLON_in_primaryExpression2899); - COLON249_tree = (IASTNode)adaptor.Create(COLON249); - root_0 = (IASTNode)adaptor.BecomeRoot(COLON249_tree, root_0); - DebugLocation(568, 13); - PushFollow(Follow._identifier_in_primaryExpression2902); - identifier250=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, identifier250.Tree); - - } - break; - case 4: - DebugEnterAlt(4); - // Hql.g:570:6: OPEN ! ( expressionOrVector | subQuery ) CLOSE ! - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(570, 10); - OPEN251=(IToken)Match(input,OPEN,Follow._OPEN_in_primaryExpression2911); - DebugLocation(570, 12); - // Hql.g:570:12: ( expressionOrVector | subQuery ) - int alt86=2; - try { DebugEnterSubRule(86); - try { DebugEnterDecision(86, false); - int LA86_1 = input.LA(1); - - if ((LA86_1==ALL||LA86_1==ANY||LA86_1==AVG||LA86_1==BNOT||LA86_1==CASE||LA86_1==COLON||LA86_1==COUNT||LA86_1==ELEMENTS||LA86_1==EMPTY||LA86_1==EXISTS||LA86_1==FALSE||LA86_1==IDENT||LA86_1==INDICES||LA86_1==MAX||(LA86_1>=MIN && LA86_1<=MINUS)||LA86_1==NOT||(LA86_1>=NULL && LA86_1<=NUM_LONG)||LA86_1==OPEN||(LA86_1>=PARAM && LA86_1<=PLUS)||LA86_1==QUOTED_String||LA86_1==SOME||LA86_1==SUM||LA86_1==TRUE)) - { - alt86 = 1; - } - else if ((LA86_1==EOF||LA86_1==CLOSE||LA86_1==FROM||LA86_1==GROUP||LA86_1==HAVING||LA86_1==ORDER||LA86_1==SELECT||LA86_1==SKIP||LA86_1==TAKE||LA86_1==UNION||LA86_1==WHERE)) - { - alt86 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 86, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(86); } - switch (alt86) - { - case 1: - DebugEnterAlt(1); - // Hql.g:570:13: expressionOrVector - { - DebugLocation(570, 13); - PushFollow(Follow._expressionOrVector_in_primaryExpression2915); - expressionOrVector252=expressionOrVector(); - PopFollow(); - - adaptor.AddChild(root_0, expressionOrVector252.Tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:570:34: subQuery - { - DebugLocation(570, 34); - PushFollow(Follow._subQuery_in_primaryExpression2919); - subQuery253=subQuery(); - PopFollow(); - - adaptor.AddChild(root_0, subQuery253.Tree); - - } - break; - - } - } finally { DebugExitSubRule(86); } - - DebugLocation(570, 49); - CLOSE254=(IToken)Match(input,CLOSE,Follow._CLOSE_in_primaryExpression2922); - - } - break; - case 5: - DebugEnterAlt(5); - // Hql.g:571:6: PARAM ^ ( NUM_INT )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(571, 11); - PARAM255=(IToken)Match(input,PARAM,Follow._PARAM_in_primaryExpression2930); - PARAM255_tree = (IASTNode)adaptor.Create(PARAM255); - root_0 = (IASTNode)adaptor.BecomeRoot(PARAM255_tree, root_0); - DebugLocation(571, 13); - // Hql.g:571:13: ( NUM_INT )? - int alt87=2; - try { DebugEnterSubRule(87); - try { DebugEnterDecision(87, false); - int LA87_1 = input.LA(1); - - if ((LA87_1==NUM_INT)) - { - alt87 = 1; - } - } finally { DebugExitDecision(87); } - switch (alt87) - { - case 1: - DebugEnterAlt(1); - // Hql.g:571:14: NUM_INT - { - DebugLocation(571, 14); - NUM_INT256=(IToken)Match(input,NUM_INT,Follow._NUM_INT_in_primaryExpression2934); - NUM_INT256_tree = (IASTNode)adaptor.Create(NUM_INT256); - adaptor.AddChild(root_0, NUM_INT256_tree); - - } - break; - - } - } finally { DebugExitSubRule(87); } - - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("primaryExpression", 65); - LeaveRule("primaryExpression", 65); - LeaveRule_primaryExpression(); - } - DebugLocation(572, 1); - } finally { DebugExitRule(GrammarFileName, "primaryExpression"); } - return retval; - - } - // $ANTLR end "primaryExpression" - - partial void EnterRule_expressionOrVector(); - partial void LeaveRule_expressionOrVector(); - // $ANTLR start "expressionOrVector" - // Hql.g:576:1: expressionOrVector : e= expression (v= vectorExpr )? -> {v != null}? ^( VECTOR_EXPR[\"{vector}\"] $e $v) -> $e; - [GrammarRule("expressionOrVector")] - private AstParserRuleReturnScope expressionOrVector() - { - EnterRule_expressionOrVector(); - EnterRule("expressionOrVector", 66); - TraceIn("expressionOrVector", 66); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope e = default(AstParserRuleReturnScope); - AstParserRuleReturnScope v = default(AstParserRuleReturnScope); - - RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression"); - RewriteRuleSubtreeStream stream_vectorExpr=new RewriteRuleSubtreeStream(adaptor,"rule vectorExpr"); - try { DebugEnterRule(GrammarFileName, "expressionOrVector"); - DebugLocation(576, 1); - try - { - // Hql.g:577:2: (e= expression (v= vectorExpr )? -> {v != null}? ^( VECTOR_EXPR[\"{vector}\"] $e $v) -> $e) - DebugEnterAlt(1); - // Hql.g:577:4: e= expression (v= vectorExpr )? - { - DebugLocation(577, 5); - PushFollow(Follow._expression_in_expressionOrVector2952); - e=expression(); - PopFollow(); - - stream_expression.Add(e.Tree); - DebugLocation(577, 17); - // Hql.g:577:17: (v= vectorExpr )? - int alt89=2; - try { DebugEnterSubRule(89); - try { DebugEnterDecision(89, false); - int LA89_1 = input.LA(1); - - if ((LA89_1==COMMA)) - { - alt89 = 1; - } - } finally { DebugExitDecision(89); } - switch (alt89) - { - case 1: - DebugEnterAlt(1); - // Hql.g:577:19: v= vectorExpr - { - DebugLocation(577, 20); - PushFollow(Follow._vectorExpr_in_expressionOrVector2958); - v=vectorExpr(); - PopFollow(); - - stream_vectorExpr.Add(v.Tree); - - } - break; - - } - } finally { DebugExitSubRule(89); } - - - - { - // AST REWRITE - // elements: e, v, e - // token labels: - // rule labels: e, v, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_e=new RewriteRuleSubtreeStream(adaptor,"rule e",e!=null?e.Tree:null); - RewriteRuleSubtreeStream stream_v=new RewriteRuleSubtreeStream(adaptor,"rule v",v!=null?v.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 578:2: -> {v != null}? ^( VECTOR_EXPR[\"{vector}\"] $e $v) - if (v != null) - { - DebugLocation(578, 18); - // Hql.g:578:18: ^( VECTOR_EXPR[\"{vector}\"] $e $v) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(578, 20); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(VECTOR_EXPR, "{vector}"), root_1); - - DebugLocation(578, 45); - adaptor.AddChild(root_1, stream_e.NextTree()); - DebugLocation(578, 48); - adaptor.AddChild(root_1, stream_v.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - else // 579:2: -> $e - { - DebugLocation(579, 6); - adaptor.AddChild(root_0, stream_e.NextTree()); - - } - - retval.Tree = root_0; - } - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("expressionOrVector", 66); - LeaveRule("expressionOrVector", 66); - LeaveRule_expressionOrVector(); - } - DebugLocation(580, 1); - } finally { DebugExitRule(GrammarFileName, "expressionOrVector"); } - return retval; - - } - // $ANTLR end "expressionOrVector" - - partial void EnterRule_vectorExpr(); - partial void LeaveRule_vectorExpr(); - // $ANTLR start "vectorExpr" - // Hql.g:582:1: vectorExpr : COMMA ! expression ( COMMA ! expression )* ; - [GrammarRule("vectorExpr")] - private AstParserRuleReturnScope vectorExpr() - { - EnterRule_vectorExpr(); - EnterRule("vectorExpr", 67); - TraceIn("vectorExpr", 67); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken COMMA257 = default(IToken); - IToken COMMA259 = default(IToken); - AstParserRuleReturnScope expression258 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope expression260 = default(AstParserRuleReturnScope); - - IASTNode COMMA257_tree = default(IASTNode); - IASTNode COMMA259_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "vectorExpr"); - DebugLocation(582, 1); - try - { - // Hql.g:583:2: ( COMMA ! expression ( COMMA ! expression )* ) - DebugEnterAlt(1); - // Hql.g:583:4: COMMA ! expression ( COMMA ! expression )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(583, 9); - COMMA257=(IToken)Match(input,COMMA,Follow._COMMA_in_vectorExpr2995); - DebugLocation(583, 11); - PushFollow(Follow._expression_in_vectorExpr2998); - expression258=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression258.Tree); - DebugLocation(583, 22); - // Hql.g:583:22: ( COMMA ! expression )* - try { DebugEnterSubRule(90); - while (true) - { - int alt90=2; - try { DebugEnterDecision(90, false); - int LA90_1 = input.LA(1); - - if ((LA90_1==COMMA)) - { - alt90 = 1; - } - - - } finally { DebugExitDecision(90); } - switch ( alt90 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:583:23: COMMA ! expression - { - DebugLocation(583, 28); - COMMA259=(IToken)Match(input,COMMA,Follow._COMMA_in_vectorExpr3001); - DebugLocation(583, 30); - PushFollow(Follow._expression_in_vectorExpr3004); - expression260=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression260.Tree); - - } - break; - - default: - goto loop90; - } - } - - loop90: - ; - - } finally { DebugExitSubRule(90); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("vectorExpr", 67); - LeaveRule("vectorExpr", 67); - LeaveRule_vectorExpr(); - } - DebugLocation(584, 1); - } finally { DebugExitRule(GrammarFileName, "vectorExpr"); } - return retval; - - } - // $ANTLR end "vectorExpr" - - partial void EnterRule_identPrimary(); - partial void LeaveRule_identPrimary(); - // $ANTLR start "identPrimary" - // Hql.g:589:1: identPrimary : ( identifier ( options {greedy=true; } : DOT ^ ( identifier |o= OBJECT ) )* ( (op= OPEN ^ exprList CLOSE !) )? | aggregate ); - [GrammarRule("identPrimary")] - private AstParserRuleReturnScope identPrimary() - { - EnterRule_identPrimary(); - EnterRule("identPrimary", 68); - TraceIn("identPrimary", 68); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken o = default(IToken); - IToken op = default(IToken); - IToken DOT262 = default(IToken); - IToken CLOSE265 = default(IToken); - AstParserRuleReturnScope identifier261 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope identifier263 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope exprList264 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope aggregate266 = default(AstParserRuleReturnScope); - - IASTNode o_tree = default(IASTNode); - IASTNode op_tree = default(IASTNode); - IASTNode DOT262_tree = default(IASTNode); - IASTNode CLOSE265_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "identPrimary"); - DebugLocation(589, 1); - try - { - // Hql.g:590:2: ( identifier ( options {greedy=true; } : DOT ^ ( identifier |o= OBJECT ) )* ( (op= OPEN ^ exprList CLOSE !) )? | aggregate ) - int alt94=2; - try { DebugEnterDecision(94, false); - int LA94_1 = input.LA(1); - - if ((LA94_1==IDENT)) - { - alt94 = 1; - } - else if ((LA94_1==AVG||LA94_1==COUNT||LA94_1==ELEMENTS||LA94_1==INDICES||LA94_1==MAX||LA94_1==MIN||LA94_1==SUM)) - { - alt94 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 94, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(94); } - switch (alt94) - { - case 1: - DebugEnterAlt(1); - // Hql.g:590:4: identifier ( options {greedy=true; } : DOT ^ ( identifier |o= OBJECT ) )* ( (op= OPEN ^ exprList CLOSE !) )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(590, 4); - PushFollow(Follow._identifier_in_identPrimary3020); - identifier261=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, identifier261.Tree); - DebugLocation(590, 15); - HandleDotIdent(); - DebugLocation(591, 4); - // Hql.g:591:4: ( options {greedy=true; } : DOT ^ ( identifier |o= OBJECT ) )* - try { DebugEnterSubRule(92); - while (true) - { - int alt92=2; - try { DebugEnterDecision(92, false); - int LA92_1 = input.LA(1); - - if ((LA92_1==DOT)) - { - int LA92_2 = input.LA(2); - - if ((LA92_2==IDENT||LA92_2==OBJECT)) - { - alt92 = 1; - } - - - } - - - } finally { DebugExitDecision(92); } - switch ( alt92 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:591:31: DOT ^ ( identifier |o= OBJECT ) - { - DebugLocation(591, 34); - DOT262=(IToken)Match(input,DOT,Follow._DOT_in_identPrimary3038); - DOT262_tree = (IASTNode)adaptor.Create(DOT262); - root_0 = (IASTNode)adaptor.BecomeRoot(DOT262_tree, root_0); - DebugLocation(591, 36); - // Hql.g:591:36: ( identifier |o= OBJECT ) - int alt91=2; - try { DebugEnterSubRule(91); - try { DebugEnterDecision(91, false); - int LA91_1 = input.LA(1); - - if ((LA91_1==IDENT)) - { - alt91 = 1; - } - else if ((LA91_1==OBJECT)) - { - alt91 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 91, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(91); } - switch (alt91) - { - case 1: - DebugEnterAlt(1); - // Hql.g:591:38: identifier - { - DebugLocation(591, 38); - PushFollow(Follow._identifier_in_identPrimary3043); - identifier263=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, identifier263.Tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:591:51: o= OBJECT - { - DebugLocation(591, 52); - o=(IToken)Match(input,OBJECT,Follow._OBJECT_in_identPrimary3049); - o_tree = (IASTNode)adaptor.Create(o); - adaptor.AddChild(root_0, o_tree); - DebugLocation(591, 60); - o.Type = IDENT; - - } - break; - - } - } finally { DebugExitSubRule(91); } - - - } - break; - - default: - goto loop92; - } - } - - loop92: - ; - - } finally { DebugExitSubRule(92); } - - DebugLocation(592, 4); - // Hql.g:592:4: ( (op= OPEN ^ exprList CLOSE !) )? - int alt93=2; - try { DebugEnterSubRule(93); - try { DebugEnterDecision(93, false); - int LA93_1 = input.LA(1); - - if ((LA93_1==OPEN)) - { - alt93 = 1; - } - } finally { DebugExitDecision(93); } - switch (alt93) - { - case 1: - DebugEnterAlt(1); - // Hql.g:592:6: (op= OPEN ^ exprList CLOSE !) - { - DebugLocation(592, 6); - // Hql.g:592:6: (op= OPEN ^ exprList CLOSE !) - DebugEnterAlt(1); - // Hql.g:592:8: op= OPEN ^ exprList CLOSE ! - { - DebugLocation(592, 10); - op=(IToken)Match(input,OPEN,Follow._OPEN_in_identPrimary3067); - op_tree = (IASTNode)adaptor.Create(op); - root_0 = (IASTNode)adaptor.BecomeRoot(op_tree, root_0); - DebugLocation(592, 17); - op.Type = METHOD_CALL; - DebugLocation(592, 44); - PushFollow(Follow._exprList_in_identPrimary3072); - exprList264=exprList(); - PopFollow(); - - adaptor.AddChild(root_0, exprList264.Tree); - DebugLocation(592, 58); - CLOSE265=(IToken)Match(input,CLOSE,Follow._CLOSE_in_identPrimary3074); - - } - - - } - break; - - } - } finally { DebugExitSubRule(93); } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:595:4: aggregate - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(595, 4); - PushFollow(Follow._aggregate_in_identPrimary3090); - aggregate266=aggregate(); - PopFollow(); - - adaptor.AddChild(root_0, aggregate266.Tree); - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("identPrimary", 68); - LeaveRule("identPrimary", 68); - LeaveRule_identPrimary(); - } - DebugLocation(596, 1); - } finally { DebugExitRule(GrammarFileName, "identPrimary"); } - return retval; - - } - // $ANTLR end "identPrimary" - - partial void EnterRule_aggregate(); - partial void LeaveRule_aggregate(); - // $ANTLR start "aggregate" - // Hql.g:603:1: aggregate : ( (op= SUM |op= AVG |op= MAX |op= MIN ) OPEN additiveExpression CLOSE -> ^( AGGREGATE[$op] additiveExpression ) | COUNT OPEN (s= STAR |p= aggregateDistinctAll ) CLOSE -> {s == null}? ^( COUNT $p) -> ^( COUNT ^( ROW_STAR[\"*\"] ) ) | collectionExpr ); - [GrammarRule("aggregate")] - private AstParserRuleReturnScope aggregate() - { - EnterRule_aggregate(); - EnterRule("aggregate", 69); - TraceIn("aggregate", 69); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken op = default(IToken); - IToken s = default(IToken); - IToken OPEN267 = default(IToken); - IToken CLOSE269 = default(IToken); - IToken COUNT270 = default(IToken); - IToken OPEN271 = default(IToken); - IToken CLOSE272 = default(IToken); - AstParserRuleReturnScope p = default(AstParserRuleReturnScope); - AstParserRuleReturnScope additiveExpression268 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope collectionExpr273 = default(AstParserRuleReturnScope); - - IASTNode op_tree = default(IASTNode); - IASTNode s_tree = default(IASTNode); - IASTNode OPEN267_tree = default(IASTNode); - IASTNode CLOSE269_tree = default(IASTNode); - IASTNode COUNT270_tree = default(IASTNode); - IASTNode OPEN271_tree = default(IASTNode); - IASTNode CLOSE272_tree = default(IASTNode); - RewriteRuleITokenStream stream_SUM=new RewriteRuleITokenStream(adaptor,"token SUM"); - RewriteRuleITokenStream stream_AVG=new RewriteRuleITokenStream(adaptor,"token AVG"); - RewriteRuleITokenStream stream_MAX=new RewriteRuleITokenStream(adaptor,"token MAX"); - RewriteRuleITokenStream stream_MIN=new RewriteRuleITokenStream(adaptor,"token MIN"); - RewriteRuleITokenStream stream_OPEN=new RewriteRuleITokenStream(adaptor,"token OPEN"); - RewriteRuleITokenStream stream_CLOSE=new RewriteRuleITokenStream(adaptor,"token CLOSE"); - RewriteRuleITokenStream stream_COUNT=new RewriteRuleITokenStream(adaptor,"token COUNT"); - RewriteRuleITokenStream stream_STAR=new RewriteRuleITokenStream(adaptor,"token STAR"); - RewriteRuleSubtreeStream stream_additiveExpression=new RewriteRuleSubtreeStream(adaptor,"rule additiveExpression"); - RewriteRuleSubtreeStream stream_aggregateDistinctAll=new RewriteRuleSubtreeStream(adaptor,"rule aggregateDistinctAll"); - try { DebugEnterRule(GrammarFileName, "aggregate"); - DebugLocation(603, 1); - try - { - // Hql.g:604:2: ( (op= SUM |op= AVG |op= MAX |op= MIN ) OPEN additiveExpression CLOSE -> ^( AGGREGATE[$op] additiveExpression ) | COUNT OPEN (s= STAR |p= aggregateDistinctAll ) CLOSE -> {s == null}? ^( COUNT $p) -> ^( COUNT ^( ROW_STAR[\"*\"] ) ) | collectionExpr ) - int alt97=3; - try { DebugEnterDecision(97, false); - switch (input.LA(1)) - { - case AVG: - case MAX: - case MIN: - case SUM: - { - alt97 = 1; - } - break; - case COUNT: - { - alt97 = 2; - } - break; - case ELEMENTS: - case INDICES: - { - alt97 = 3; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 97, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(97); } - switch (alt97) - { - case 1: - DebugEnterAlt(1); - // Hql.g:604:4: (op= SUM |op= AVG |op= MAX |op= MIN ) OPEN additiveExpression CLOSE - { - DebugLocation(604, 4); - // Hql.g:604:4: (op= SUM |op= AVG |op= MAX |op= MIN ) - int alt95=4; - try { DebugEnterSubRule(95); - try { DebugEnterDecision(95, false); - switch (input.LA(1)) - { - case SUM: - { - alt95 = 1; - } - break; - case AVG: - { - alt95 = 2; - } - break; - case MAX: - { - alt95 = 3; - } - break; - case MIN: - { - alt95 = 4; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 95, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(95); } - switch (alt95) - { - case 1: - DebugEnterAlt(1); - // Hql.g:604:6: op= SUM - { - DebugLocation(604, 8); - op=(IToken)Match(input,SUM,Follow._SUM_in_aggregate3111); - stream_SUM.Add(op); - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:604:15: op= AVG - { - DebugLocation(604, 17); - op=(IToken)Match(input,AVG,Follow._AVG_in_aggregate3117); - stream_AVG.Add(op); - - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:604:24: op= MAX - { - DebugLocation(604, 26); - op=(IToken)Match(input,MAX,Follow._MAX_in_aggregate3123); - stream_MAX.Add(op); - - - } - break; - case 4: - DebugEnterAlt(4); - // Hql.g:604:33: op= MIN - { - DebugLocation(604, 35); - op=(IToken)Match(input,MIN,Follow._MIN_in_aggregate3129); - stream_MIN.Add(op); - - - } - break; - - } - } finally { DebugExitSubRule(95); } - - DebugLocation(604, 42); - OPEN267=(IToken)Match(input,OPEN,Follow._OPEN_in_aggregate3133); - stream_OPEN.Add(OPEN267); - - DebugLocation(604, 47); - PushFollow(Follow._additiveExpression_in_aggregate3135); - additiveExpression268=additiveExpression(); - PopFollow(); - - stream_additiveExpression.Add(additiveExpression268.Tree); - DebugLocation(604, 66); - CLOSE269=(IToken)Match(input,CLOSE,Follow._CLOSE_in_aggregate3137); - stream_CLOSE.Add(CLOSE269); - - - - { - // AST REWRITE - // elements: additiveExpression - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 605:3: -> ^( AGGREGATE[$op] additiveExpression ) - { - DebugLocation(605, 6); - // Hql.g:605:6: ^( AGGREGATE[$op] additiveExpression ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(605, 8); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(AGGREGATE, op), root_1); - - DebugLocation(605, 23); - adaptor.AddChild(root_1, stream_additiveExpression.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:607:5: COUNT OPEN (s= STAR |p= aggregateDistinctAll ) CLOSE - { - DebugLocation(607, 5); - COUNT270=(IToken)Match(input,COUNT,Follow._COUNT_in_aggregate3156); - stream_COUNT.Add(COUNT270); - - DebugLocation(607, 11); - OPEN271=(IToken)Match(input,OPEN,Follow._OPEN_in_aggregate3158); - stream_OPEN.Add(OPEN271); - - DebugLocation(607, 16); - // Hql.g:607:16: (s= STAR |p= aggregateDistinctAll ) - int alt96=2; - try { DebugEnterSubRule(96); - try { DebugEnterDecision(96, false); - int LA96_1 = input.LA(1); - - if ((LA96_1==STAR)) - { - alt96 = 1; - } - else if ((LA96_1==ALL||LA96_1==DISTINCT||LA96_1==ELEMENTS||LA96_1==IDENT||LA96_1==INDICES)) - { - alt96 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 96, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(96); } - switch (alt96) - { - case 1: - DebugEnterAlt(1); - // Hql.g:607:18: s= STAR - { - DebugLocation(607, 19); - s=(IToken)Match(input,STAR,Follow._STAR_in_aggregate3164); - stream_STAR.Add(s); - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:607:27: p= aggregateDistinctAll - { - DebugLocation(607, 28); - PushFollow(Follow._aggregateDistinctAll_in_aggregate3170); - p=aggregateDistinctAll(); - PopFollow(); - - stream_aggregateDistinctAll.Add(p.Tree); - - } - break; - - } - } finally { DebugExitSubRule(96); } - - DebugLocation(607, 52); - CLOSE272=(IToken)Match(input,CLOSE,Follow._CLOSE_in_aggregate3174); - stream_CLOSE.Add(CLOSE272); - - - - { - // AST REWRITE - // elements: COUNT, p, COUNT - // token labels: - // rule labels: p, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_p=new RewriteRuleSubtreeStream(adaptor,"rule p",p!=null?p.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 608:3: -> {s == null}? ^( COUNT $p) - if (s == null) - { - DebugLocation(608, 19); - // Hql.g:608:19: ^( COUNT $p) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(608, 21); - root_1 = (IASTNode)adaptor.BecomeRoot(stream_COUNT.NextNode(), root_1); - - DebugLocation(608, 28); - adaptor.AddChild(root_1, stream_p.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - else // 609:3: -> ^( COUNT ^( ROW_STAR[\"*\"] ) ) - { - DebugLocation(609, 6); - // Hql.g:609:6: ^( COUNT ^( ROW_STAR[\"*\"] ) ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(609, 8); - root_1 = (IASTNode)adaptor.BecomeRoot(stream_COUNT.NextNode(), root_1); - - DebugLocation(609, 14); - // Hql.g:609:14: ^( ROW_STAR[\"*\"] ) - { - IASTNode root_2 = (IASTNode)adaptor.Nil(); - DebugLocation(609, 16); - root_2 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(ROW_STAR, "*"), root_2); - - adaptor.AddChild(root_1, root_2); - } - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:610:5: collectionExpr - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(610, 5); - PushFollow(Follow._collectionExpr_in_aggregate3206); - collectionExpr273=collectionExpr(); - PopFollow(); - - adaptor.AddChild(root_0, collectionExpr273.Tree); - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("aggregate", 69); - LeaveRule("aggregate", 69); - LeaveRule_aggregate(); - } - DebugLocation(611, 1); - } finally { DebugExitRule(GrammarFileName, "aggregate"); } - return retval; - - } - // $ANTLR end "aggregate" - - partial void EnterRule_aggregateDistinctAll(); - partial void LeaveRule_aggregateDistinctAll(); - // $ANTLR start "aggregateDistinctAll" - // Hql.g:613:1: aggregateDistinctAll : ( ( DISTINCT | ALL )? ( path | collectionExpr ) ) ; - [GrammarRule("aggregateDistinctAll")] - private AstParserRuleReturnScope aggregateDistinctAll() - { - EnterRule_aggregateDistinctAll(); - EnterRule("aggregateDistinctAll", 70); - TraceIn("aggregateDistinctAll", 70); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken set274 = default(IToken); - AstParserRuleReturnScope path275 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope collectionExpr276 = default(AstParserRuleReturnScope); - - IASTNode set274_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "aggregateDistinctAll"); - DebugLocation(613, 1); - try - { - // Hql.g:614:2: ( ( ( DISTINCT | ALL )? ( path | collectionExpr ) ) ) - DebugEnterAlt(1); - // Hql.g:614:4: ( ( DISTINCT | ALL )? ( path | collectionExpr ) ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(614, 4); - // Hql.g:614:4: ( ( DISTINCT | ALL )? ( path | collectionExpr ) ) - DebugEnterAlt(1); - // Hql.g:614:6: ( DISTINCT | ALL )? ( path | collectionExpr ) - { - DebugLocation(614, 6); - // Hql.g:614:6: ( DISTINCT | ALL )? - int alt98=2; - try { DebugEnterSubRule(98); - try { DebugEnterDecision(98, false); - int LA98_1 = input.LA(1); - - if ((LA98_1==ALL||LA98_1==DISTINCT)) - { - alt98 = 1; - } - } finally { DebugExitDecision(98); } - switch (alt98) - { - case 1: - DebugEnterAlt(1); - // Hql.g: - { - DebugLocation(614, 6); - - set274=(IToken)input.LT(1); - if (input.LA(1)==ALL||input.LA(1)==DISTINCT) - { - input.Consume(); - adaptor.AddChild(root_0, (IASTNode)adaptor.Create(set274)); - state.errorRecovery=false; - } - else - { - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - throw mse; - } - - - } - break; - - } - } finally { DebugExitSubRule(98); } - - DebugLocation(614, 26); - // Hql.g:614:26: ( path | collectionExpr ) - int alt99=2; - try { DebugEnterSubRule(99); - try { DebugEnterDecision(99, false); - int LA99_1 = input.LA(1); - - if ((LA99_1==IDENT)) - { - alt99 = 1; - } - else if ((LA99_1==ELEMENTS||LA99_1==INDICES)) - { - alt99 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 99, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(99); } - switch (alt99) - { - case 1: - DebugEnterAlt(1); - // Hql.g:614:28: path - { - DebugLocation(614, 28); - PushFollow(Follow._path_in_aggregateDistinctAll3232); - path275=path(); - PopFollow(); - - adaptor.AddChild(root_0, path275.Tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:614:35: collectionExpr - { - DebugLocation(614, 35); - PushFollow(Follow._collectionExpr_in_aggregateDistinctAll3236); - collectionExpr276=collectionExpr(); - PopFollow(); - - adaptor.AddChild(root_0, collectionExpr276.Tree); - - } - break; - - } - } finally { DebugExitSubRule(99); } - - - } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("aggregateDistinctAll", 70); - LeaveRule("aggregateDistinctAll", 70); - LeaveRule_aggregateDistinctAll(); - } - DebugLocation(615, 1); - } finally { DebugExitRule(GrammarFileName, "aggregateDistinctAll"); } - return retval; - - } - // $ANTLR end "aggregateDistinctAll" - - partial void EnterRule_collectionExpr(); - partial void LeaveRule_collectionExpr(); - // $ANTLR start "collectionExpr" - // Hql.g:619:1: collectionExpr : ( ELEMENTS ^| INDICES ^) OPEN ! path CLOSE !; - [GrammarRule("collectionExpr")] - private AstParserRuleReturnScope collectionExpr() - { - EnterRule_collectionExpr(); - EnterRule("collectionExpr", 71); - TraceIn("collectionExpr", 71); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken ELEMENTS277 = default(IToken); - IToken INDICES278 = default(IToken); - IToken OPEN279 = default(IToken); - IToken CLOSE281 = default(IToken); - AstParserRuleReturnScope path280 = default(AstParserRuleReturnScope); - - IASTNode ELEMENTS277_tree = default(IASTNode); - IASTNode INDICES278_tree = default(IASTNode); - IASTNode OPEN279_tree = default(IASTNode); - IASTNode CLOSE281_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "collectionExpr"); - DebugLocation(619, 1); - try - { - // Hql.g:620:2: ( ( ELEMENTS ^| INDICES ^) OPEN ! path CLOSE !) - DebugEnterAlt(1); - // Hql.g:620:4: ( ELEMENTS ^| INDICES ^) OPEN ! path CLOSE ! - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(620, 4); - // Hql.g:620:4: ( ELEMENTS ^| INDICES ^) - int alt100=2; - try { DebugEnterSubRule(100); - try { DebugEnterDecision(100, false); - int LA100_1 = input.LA(1); - - if ((LA100_1==ELEMENTS)) - { - alt100 = 1; - } - else if ((LA100_1==INDICES)) - { - alt100 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 100, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(100); } - switch (alt100) - { - case 1: - DebugEnterAlt(1); - // Hql.g:620:5: ELEMENTS ^ - { - DebugLocation(620, 13); - ELEMENTS277=(IToken)Match(input,ELEMENTS,Follow._ELEMENTS_in_collectionExpr3255); - ELEMENTS277_tree = (IASTNode)adaptor.Create(ELEMENTS277); - root_0 = (IASTNode)adaptor.BecomeRoot(ELEMENTS277_tree, root_0); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:620:17: INDICES ^ - { - DebugLocation(620, 24); - INDICES278=(IToken)Match(input,INDICES,Follow._INDICES_in_collectionExpr3260); - INDICES278_tree = (IASTNode)adaptor.Create(INDICES278); - root_0 = (IASTNode)adaptor.BecomeRoot(INDICES278_tree, root_0); - - } - break; - - } - } finally { DebugExitSubRule(100); } - - DebugLocation(620, 31); - OPEN279=(IToken)Match(input,OPEN,Follow._OPEN_in_collectionExpr3264); - DebugLocation(620, 33); - PushFollow(Follow._path_in_collectionExpr3267); - path280=path(); - PopFollow(); - - adaptor.AddChild(root_0, path280.Tree); - DebugLocation(620, 43); - CLOSE281=(IToken)Match(input,CLOSE,Follow._CLOSE_in_collectionExpr3269); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("collectionExpr", 71); - LeaveRule("collectionExpr", 71); - LeaveRule_collectionExpr(); - } - DebugLocation(621, 1); - } finally { DebugExitRule(GrammarFileName, "collectionExpr"); } - return retval; - - } - // $ANTLR end "collectionExpr" - - partial void EnterRule_compoundExpr(); - partial void LeaveRule_compoundExpr(); - // $ANTLR start "compoundExpr" - // Hql.g:623:1: compoundExpr : ( collectionExpr | path | ( OPEN ! ( subQuery | ( expression ( COMMA ! expression )* ) ) CLOSE !) ); - [GrammarRule("compoundExpr")] - private AstParserRuleReturnScope compoundExpr() - { - EnterRule_compoundExpr(); - EnterRule("compoundExpr", 72); - TraceIn("compoundExpr", 72); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken OPEN284 = default(IToken); - IToken COMMA287 = default(IToken); - IToken CLOSE289 = default(IToken); - AstParserRuleReturnScope collectionExpr282 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope path283 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope subQuery285 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope expression286 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope expression288 = default(AstParserRuleReturnScope); - - IASTNode OPEN284_tree = default(IASTNode); - IASTNode COMMA287_tree = default(IASTNode); - IASTNode CLOSE289_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "compoundExpr"); - DebugLocation(623, 1); - try - { - // Hql.g:624:2: ( collectionExpr | path | ( OPEN ! ( subQuery | ( expression ( COMMA ! expression )* ) ) CLOSE !) ) - int alt103=3; - try { DebugEnterDecision(103, false); - switch (input.LA(1)) - { - case ELEMENTS: - case INDICES: - { - alt103 = 1; - } - break; - case IDENT: - { - alt103 = 2; - } - break; - case OPEN: - { - alt103 = 3; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 103, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(103); } - switch (alt103) - { - case 1: - DebugEnterAlt(1); - // Hql.g:624:4: collectionExpr - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(624, 4); - PushFollow(Follow._collectionExpr_in_compoundExpr3324); - collectionExpr282=collectionExpr(); - PopFollow(); - - adaptor.AddChild(root_0, collectionExpr282.Tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:625:4: path - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(625, 4); - PushFollow(Follow._path_in_compoundExpr3329); - path283=path(); - PopFollow(); - - adaptor.AddChild(root_0, path283.Tree); - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:626:4: ( OPEN ! ( subQuery | ( expression ( COMMA ! expression )* ) ) CLOSE !) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(626, 4); - // Hql.g:626:4: ( OPEN ! ( subQuery | ( expression ( COMMA ! expression )* ) ) CLOSE !) - DebugEnterAlt(1); - // Hql.g:626:5: OPEN ! ( subQuery | ( expression ( COMMA ! expression )* ) ) CLOSE ! - { - DebugLocation(626, 9); - OPEN284=(IToken)Match(input,OPEN,Follow._OPEN_in_compoundExpr3335); - DebugLocation(626, 11); - // Hql.g:626:11: ( subQuery | ( expression ( COMMA ! expression )* ) ) - int alt102=2; - try { DebugEnterSubRule(102); - try { DebugEnterDecision(102, false); - int LA102_1 = input.LA(1); - - if ((LA102_1==EOF||LA102_1==CLOSE||LA102_1==FROM||LA102_1==GROUP||LA102_1==HAVING||LA102_1==ORDER||LA102_1==SELECT||LA102_1==SKIP||LA102_1==TAKE||LA102_1==UNION||LA102_1==WHERE)) - { - alt102 = 1; - } - else if ((LA102_1==ALL||LA102_1==ANY||LA102_1==AVG||LA102_1==BNOT||LA102_1==CASE||LA102_1==COLON||LA102_1==COUNT||LA102_1==ELEMENTS||LA102_1==EMPTY||LA102_1==EXISTS||LA102_1==FALSE||LA102_1==IDENT||LA102_1==INDICES||LA102_1==MAX||(LA102_1>=MIN && LA102_1<=MINUS)||LA102_1==NOT||(LA102_1>=NULL && LA102_1<=NUM_LONG)||LA102_1==OPEN||(LA102_1>=PARAM && LA102_1<=PLUS)||LA102_1==QUOTED_String||LA102_1==SOME||LA102_1==SUM||LA102_1==TRUE)) - { - alt102 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 102, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(102); } - switch (alt102) - { - case 1: - DebugEnterAlt(1); - // Hql.g:626:13: subQuery - { - DebugLocation(626, 13); - PushFollow(Follow._subQuery_in_compoundExpr3340); - subQuery285=subQuery(); - PopFollow(); - - adaptor.AddChild(root_0, subQuery285.Tree); - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:626:24: ( expression ( COMMA ! expression )* ) - { - DebugLocation(626, 24); - // Hql.g:626:24: ( expression ( COMMA ! expression )* ) - DebugEnterAlt(1); - // Hql.g:626:25: expression ( COMMA ! expression )* - { - DebugLocation(626, 25); - PushFollow(Follow._expression_in_compoundExpr3345); - expression286=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression286.Tree); - DebugLocation(626, 36); - // Hql.g:626:36: ( COMMA ! expression )* - try { DebugEnterSubRule(101); - while (true) - { - int alt101=2; - try { DebugEnterDecision(101, false); - int LA101_1 = input.LA(1); - - if ((LA101_1==COMMA)) - { - alt101 = 1; - } - - - } finally { DebugExitDecision(101); } - switch ( alt101 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:626:37: COMMA ! expression - { - DebugLocation(626, 42); - COMMA287=(IToken)Match(input,COMMA,Follow._COMMA_in_compoundExpr3348); - DebugLocation(626, 44); - PushFollow(Follow._expression_in_compoundExpr3351); - expression288=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression288.Tree); - - } - break; - - default: - goto loop101; - } - } - - loop101: - ; - - } finally { DebugExitSubRule(101); } - - - } - - - } - break; - - } - } finally { DebugExitSubRule(102); } - - DebugLocation(626, 65); - CLOSE289=(IToken)Match(input,CLOSE,Follow._CLOSE_in_compoundExpr3358); - - } - - - } - break; - - } - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("compoundExpr", 72); - LeaveRule("compoundExpr", 72); - LeaveRule_compoundExpr(); - } - DebugLocation(627, 1); - } finally { DebugExitRule(GrammarFileName, "compoundExpr"); } - return retval; - - } - // $ANTLR end "compoundExpr" - - partial void EnterRule_exprList(); - partial void LeaveRule_exprList(); - // $ANTLR start "exprList" - // Hql.g:629:1: exprList : ( TRAILING | LEADING | BOTH )? ( expression ( ( COMMA ! expression )+ |f= FROM expression | AS ! identifier )? |f2= FROM expression )? ; - [GrammarRule("exprList")] - private AstParserRuleReturnScope exprList() - { - EnterRule_exprList(); - EnterRule("exprList", 73); - TraceIn("exprList", 73); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken f = default(IToken); - IToken f2 = default(IToken); - IToken TRAILING290 = default(IToken); - IToken LEADING291 = default(IToken); - IToken BOTH292 = default(IToken); - IToken COMMA294 = default(IToken); - IToken AS297 = default(IToken); - AstParserRuleReturnScope expression293 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope expression295 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope expression296 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope identifier298 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope expression299 = default(AstParserRuleReturnScope); - - IASTNode f_tree = default(IASTNode); - IASTNode f2_tree = default(IASTNode); - IASTNode TRAILING290_tree = default(IASTNode); - IASTNode LEADING291_tree = default(IASTNode); - IASTNode BOTH292_tree = default(IASTNode); - IASTNode COMMA294_tree = default(IASTNode); - IASTNode AS297_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "exprList"); - DebugLocation(629, 1); - try - { - // Hql.g:635:2: ( ( TRAILING | LEADING | BOTH )? ( expression ( ( COMMA ! expression )+ |f= FROM expression | AS ! identifier )? |f2= FROM expression )? ) - DebugEnterAlt(1); - // Hql.g:635:4: ( TRAILING | LEADING | BOTH )? ( expression ( ( COMMA ! expression )+ |f= FROM expression | AS ! identifier )? |f2= FROM expression )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(635, 4); - // Hql.g:635:4: ( TRAILING | LEADING | BOTH )? - int alt104=4; - try { DebugEnterSubRule(104); - try { DebugEnterDecision(104, false); - switch (input.LA(1)) - { - case TRAILING: - { - alt104 = 1; - } - break; - case LEADING: - { - alt104 = 2; - } - break; - case BOTH: - { - alt104 = 3; - } - break; - } - - } finally { DebugExitDecision(104); } - switch (alt104) - { - case 1: - DebugEnterAlt(1); - // Hql.g:635:5: TRAILING - { - DebugLocation(635, 5); - TRAILING290=(IToken)Match(input,TRAILING,Follow._TRAILING_in_exprList3377); - TRAILING290_tree = (IASTNode)adaptor.Create(TRAILING290); - adaptor.AddChild(root_0, TRAILING290_tree); - DebugLocation(635, 14); - TRAILING290.Type = IDENT; - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:636:10: LEADING - { - DebugLocation(636, 10); - LEADING291=(IToken)Match(input,LEADING,Follow._LEADING_in_exprList3390); - LEADING291_tree = (IASTNode)adaptor.Create(LEADING291); - adaptor.AddChild(root_0, LEADING291_tree); - DebugLocation(636, 18); - LEADING291.Type = IDENT; - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:637:10: BOTH - { - DebugLocation(637, 10); - BOTH292=(IToken)Match(input,BOTH,Follow._BOTH_in_exprList3403); - BOTH292_tree = (IASTNode)adaptor.Create(BOTH292); - adaptor.AddChild(root_0, BOTH292_tree); - DebugLocation(637, 15); - BOTH292.Type = IDENT; - - } - break; - - } - } finally { DebugExitSubRule(104); } - - DebugLocation(639, 4); - // Hql.g:639:4: ( expression ( ( COMMA ! expression )+ |f= FROM expression | AS ! identifier )? |f2= FROM expression )? - int alt107=3; - try { DebugEnterSubRule(107); - try { DebugEnterDecision(107, false); - int LA107_1 = input.LA(1); - - if ((LA107_1==ALL||LA107_1==ANY||LA107_1==AVG||LA107_1==BNOT||LA107_1==CASE||LA107_1==COLON||LA107_1==COUNT||LA107_1==ELEMENTS||LA107_1==EMPTY||LA107_1==EXISTS||LA107_1==FALSE||LA107_1==IDENT||LA107_1==INDICES||LA107_1==MAX||(LA107_1>=MIN && LA107_1<=MINUS)||LA107_1==NOT||(LA107_1>=NULL && LA107_1<=NUM_LONG)||LA107_1==OPEN||(LA107_1>=PARAM && LA107_1<=PLUS)||LA107_1==QUOTED_String||LA107_1==SOME||LA107_1==SUM||LA107_1==TRUE)) - { - alt107 = 1; - } - else if ((LA107_1==FROM)) - { - alt107 = 2; - } - } finally { DebugExitDecision(107); } - switch (alt107) - { - case 1: - DebugEnterAlt(1); - // Hql.g:640:5: expression ( ( COMMA ! expression )+ |f= FROM expression | AS ! identifier )? - { - DebugLocation(640, 5); - PushFollow(Follow._expression_in_exprList3427); - expression293=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression293.Tree); - DebugLocation(640, 16); - // Hql.g:640:16: ( ( COMMA ! expression )+ |f= FROM expression | AS ! identifier )? - int alt106=4; - try { DebugEnterSubRule(106); - try { DebugEnterDecision(106, false); - switch (input.LA(1)) - { - case COMMA: - { - alt106 = 1; - } - break; - case FROM: - { - alt106 = 2; - } - break; - case AS: - { - alt106 = 3; - } - break; - } - - } finally { DebugExitDecision(106); } - switch (alt106) - { - case 1: - DebugEnterAlt(1); - // Hql.g:640:18: ( COMMA ! expression )+ - { - DebugLocation(640, 18); - // Hql.g:640:18: ( COMMA ! expression )+ - int cnt105=0; - try { DebugEnterSubRule(105); - while (true) - { - int alt105=2; - try { DebugEnterDecision(105, false); - int LA105_1 = input.LA(1); - - if ((LA105_1==COMMA)) - { - alt105 = 1; - } - - - } finally { DebugExitDecision(105); } - switch (alt105) - { - case 1: - DebugEnterAlt(1); - // Hql.g:640:19: COMMA ! expression - { - DebugLocation(640, 24); - COMMA294=(IToken)Match(input,COMMA,Follow._COMMA_in_exprList3432); - DebugLocation(640, 26); - PushFollow(Follow._expression_in_exprList3435); - expression295=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression295.Tree); - - } - break; - - default: - if (cnt105 >= 1) - goto loop105; - - EarlyExitException eee105 = new EarlyExitException( 105, input ); - DebugRecognitionException(eee105); - throw eee105; - } - cnt105++; - } - loop105: - ; - - } finally { DebugExitSubRule(105); } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:641:9: f= FROM expression - { - DebugLocation(641, 10); - f=(IToken)Match(input,FROM,Follow._FROM_in_exprList3450); - f_tree = (IASTNode)adaptor.Create(f); - adaptor.AddChild(root_0, f_tree); - DebugLocation(641, 16); - PushFollow(Follow._expression_in_exprList3452); - expression296=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression296.Tree); - DebugLocation(641, 27); - f.Type = IDENT; - - } - break; - case 3: - DebugEnterAlt(3); - // Hql.g:642:9: AS ! identifier - { - DebugLocation(642, 11); - AS297=(IToken)Match(input,AS,Follow._AS_in_exprList3464); - DebugLocation(642, 13); - PushFollow(Follow._identifier_in_exprList3467); - identifier298=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, identifier298.Tree); - - } - break; - - } - } finally { DebugExitSubRule(106); } - - - } - break; - case 2: - DebugEnterAlt(2); - // Hql.g:643:7: f2= FROM expression - { - DebugLocation(643, 9); - f2=(IToken)Match(input,FROM,Follow._FROM_in_exprList3481); - f2_tree = (IASTNode)adaptor.Create(f2); - adaptor.AddChild(root_0, f2_tree); - DebugLocation(643, 15); - PushFollow(Follow._expression_in_exprList3483); - expression299=expression(); - PopFollow(); - - adaptor.AddChild(root_0, expression299.Tree); - DebugLocation(643, 26); - f2.Type = IDENT; - - } - break; - - } - } finally { DebugExitSubRule(107); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - - IASTNode root = (IASTNode) adaptor.Create(EXPR_LIST, "exprList"); - root.AddChild((IASTNode)retval.Tree); - retval.Tree = root; - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("exprList", 73); - LeaveRule("exprList", 73); - LeaveRule_exprList(); - } - DebugLocation(645, 1); - } finally { DebugExitRule(GrammarFileName, "exprList"); } - return retval; - - } - // $ANTLR end "exprList" - - partial void EnterRule_subQuery(); - partial void LeaveRule_subQuery(); - // $ANTLR start "subQuery" - // Hql.g:647:1: subQuery : innerSubQuery ( UNION ^ innerSubQuery )* ; - [GrammarRule("subQuery")] - private AstParserRuleReturnScope subQuery() - { - EnterRule_subQuery(); - EnterRule("subQuery", 74); - TraceIn("subQuery", 74); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken UNION301 = default(IToken); - AstParserRuleReturnScope innerSubQuery300 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope innerSubQuery302 = default(AstParserRuleReturnScope); - - IASTNode UNION301_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "subQuery"); - DebugLocation(647, 1); - try - { - // Hql.g:648:2: ( innerSubQuery ( UNION ^ innerSubQuery )* ) - DebugEnterAlt(1); - // Hql.g:648:4: innerSubQuery ( UNION ^ innerSubQuery )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(648, 4); - PushFollow(Follow._innerSubQuery_in_subQuery3503); - innerSubQuery300=innerSubQuery(); - PopFollow(); - - adaptor.AddChild(root_0, innerSubQuery300.Tree); - DebugLocation(648, 18); - // Hql.g:648:18: ( UNION ^ innerSubQuery )* - try { DebugEnterSubRule(108); - while (true) - { - int alt108=2; - try { DebugEnterDecision(108, false); - int LA108_1 = input.LA(1); - - if ((LA108_1==UNION)) - { - alt108 = 1; - } - - - } finally { DebugExitDecision(108); } - switch ( alt108 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:648:19: UNION ^ innerSubQuery - { - DebugLocation(648, 24); - UNION301=(IToken)Match(input,UNION,Follow._UNION_in_subQuery3506); - UNION301_tree = (IASTNode)adaptor.Create(UNION301); - root_0 = (IASTNode)adaptor.BecomeRoot(UNION301_tree, root_0); - DebugLocation(648, 26); - PushFollow(Follow._innerSubQuery_in_subQuery3509); - innerSubQuery302=innerSubQuery(); - PopFollow(); - - adaptor.AddChild(root_0, innerSubQuery302.Tree); - - } - break; - - default: - goto loop108; - } - } - - loop108: - ; - - } finally { DebugExitSubRule(108); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("subQuery", 74); - LeaveRule("subQuery", 74); - LeaveRule_subQuery(); - } - DebugLocation(649, 1); - } finally { DebugExitRule(GrammarFileName, "subQuery"); } - return retval; - - } - // $ANTLR end "subQuery" - - partial void EnterRule_innerSubQuery(); - partial void LeaveRule_innerSubQuery(); - // $ANTLR start "innerSubQuery" - // Hql.g:651:1: innerSubQuery : queryRule -> ^( QUERY[\"query\"] queryRule ) ; - [GrammarRule("innerSubQuery")] - private AstParserRuleReturnScope innerSubQuery() - { - EnterRule_innerSubQuery(); - EnterRule("innerSubQuery", 75); - TraceIn("innerSubQuery", 75); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - AstParserRuleReturnScope queryRule303 = default(AstParserRuleReturnScope); - - RewriteRuleSubtreeStream stream_queryRule=new RewriteRuleSubtreeStream(adaptor,"rule queryRule"); - try { DebugEnterRule(GrammarFileName, "innerSubQuery"); - DebugLocation(651, 1); - try - { - // Hql.g:652:2: ( queryRule -> ^( QUERY[\"query\"] queryRule ) ) - DebugEnterAlt(1); - // Hql.g:652:4: queryRule - { - DebugLocation(652, 4); - PushFollow(Follow._queryRule_in_innerSubQuery3523); - queryRule303=queryRule(); - PopFollow(); - - stream_queryRule.Add(queryRule303.Tree); - - - { - // AST REWRITE - // elements: queryRule - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 653:2: -> ^( QUERY[\"query\"] queryRule ) - { - DebugLocation(653, 5); - // Hql.g:653:5: ^( QUERY[\"query\"] queryRule ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(653, 7); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(QUERY, "query"), root_1); - - DebugLocation(653, 22); - adaptor.AddChild(root_1, stream_queryRule.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("innerSubQuery", 75); - LeaveRule("innerSubQuery", 75); - LeaveRule_innerSubQuery(); - } - DebugLocation(654, 1); - } finally { DebugExitRule(GrammarFileName, "innerSubQuery"); } - return retval; - - } - // $ANTLR end "innerSubQuery" - - partial void EnterRule_constant(); - partial void LeaveRule_constant(); - // $ANTLR start "constant" - // Hql.g:656:1: constant : ( NUM_INT | NUM_FLOAT | NUM_LONG | NUM_DOUBLE | NUM_DECIMAL | QUOTED_String | NULL | TRUE | FALSE | EMPTY ); - [GrammarRule("constant")] - private AstParserRuleReturnScope constant() - { - EnterRule_constant(); - EnterRule("constant", 76); - TraceIn("constant", 76); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken set304 = default(IToken); - - IASTNode set304_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "constant"); - DebugLocation(656, 1); - try - { - // Hql.g:657:2: ( NUM_INT | NUM_FLOAT | NUM_LONG | NUM_DOUBLE | NUM_DECIMAL | QUOTED_String | NULL | TRUE | FALSE | EMPTY ) - DebugEnterAlt(1); - // Hql.g: - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(657, 2); - - set304=(IToken)input.LT(1); - if (input.LA(1)==EMPTY||input.LA(1)==FALSE||(input.LA(1)>=NULL && input.LA(1)<=NUM_LONG)||input.LA(1)==QUOTED_String||input.LA(1)==TRUE) - { - input.Consume(); - adaptor.AddChild(root_0, (IASTNode)adaptor.Create(set304)); - state.errorRecovery=false; - } - else - { - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - throw mse; - } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("constant", 76); - LeaveRule("constant", 76); - LeaveRule_constant(); - } - DebugLocation(667, 1); - } finally { DebugExitRule(GrammarFileName, "constant"); } - return retval; - - } - // $ANTLR end "constant" - - partial void EnterRule_path(); - partial void LeaveRule_path(); - // $ANTLR start "path" - // Hql.g:675:1: path : identifier ( DOT ^ identifier )* ; - [GrammarRule("path")] - private AstParserRuleReturnScope path() - { - EnterRule_path(); - EnterRule("path", 77); - TraceIn("path", 77); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken DOT306 = default(IToken); - AstParserRuleReturnScope identifier305 = default(AstParserRuleReturnScope); - AstParserRuleReturnScope identifier307 = default(AstParserRuleReturnScope); - - IASTNode DOT306_tree = default(IASTNode); - - // TODO - need to clean up DotIdent - suspect that DotIdent2 supersedes the other one, but need to do the analysis - //HandleDotIdent2(); - - try { DebugEnterRule(GrammarFileName, "path"); - DebugLocation(675, 1); - try - { - // Hql.g:680:2: ( identifier ( DOT ^ identifier )* ) - DebugEnterAlt(1); - // Hql.g:680:4: identifier ( DOT ^ identifier )* - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(680, 4); - PushFollow(Follow._identifier_in_path3611); - identifier305=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, identifier305.Tree); - DebugLocation(680, 15); - // Hql.g:680:15: ( DOT ^ identifier )* - try { DebugEnterSubRule(109); - while (true) - { - int alt109=2; - try { DebugEnterDecision(109, false); - int LA109_1 = input.LA(1); - - if ((LA109_1==DOT)) - { - alt109 = 1; - } - - - } finally { DebugExitDecision(109); } - switch ( alt109 ) - { - case 1: - DebugEnterAlt(1); - // Hql.g:680:17: DOT ^ identifier - { - DebugLocation(680, 20); - DOT306=(IToken)Match(input,DOT,Follow._DOT_in_path3615); - DOT306_tree = (IASTNode)adaptor.Create(DOT306); - root_0 = (IASTNode)adaptor.BecomeRoot(DOT306_tree, root_0); - DebugLocation(680, 22); - WeakKeywords(); - DebugLocation(680, 42); - PushFollow(Follow._identifier_in_path3620); - identifier307=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, identifier307.Tree); - - } - break; - - default: - goto loop109; - } - } - - loop109: - ; - - } finally { DebugExitSubRule(109); } - - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - retval.Tree = (IASTNode)adaptor.ErrorNode(input, retval.Start, input.LT(-1), re); - - } - finally - { - TraceOut("path", 77); - LeaveRule("path", 77); - LeaveRule_path(); - } - DebugLocation(681, 1); - } finally { DebugExitRule(GrammarFileName, "path"); } - return retval; - - } - // $ANTLR end "path" - - partial void EnterRule_identifier(); - partial void LeaveRule_identifier(); - // $ANTLR start "identifier" - // Hql.g:685:1: identifier : IDENT ; - [GrammarRule("identifier")] - private AstParserRuleReturnScope identifier() - { - EnterRule_identifier(); - EnterRule("identifier", 78); - TraceIn("identifier", 78); - AstParserRuleReturnScope retval = new AstParserRuleReturnScope(); - retval.Start = (IToken)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IToken IDENT308 = default(IToken); - - IASTNode IDENT308_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "identifier"); - DebugLocation(685, 1); - try - { - // Hql.g:686:2: ( IDENT ) - DebugEnterAlt(1); - // Hql.g:686:4: IDENT - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(686, 4); - IDENT308=(IToken)Match(input,IDENT,Follow._IDENT_in_identifier3636); - IDENT308_tree = (IASTNode)adaptor.Create(IDENT308); - adaptor.AddChild(root_0, IDENT308_tree); - - } - - retval.Stop = (IToken)input.LT(-1); - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - adaptor.SetTokenBoundaries(retval.Tree, retval.Start, retval.Stop); - - } - catch (RecognitionException ex) - { - - retval.Tree = HandleIdentifierError(input.LT(1),ex); - - } - - finally - { - TraceOut("identifier", 78); - LeaveRule("identifier", 78); - LeaveRule_identifier(); - } - DebugLocation(687, 1); - } finally { DebugExitRule(GrammarFileName, "identifier"); } - return retval; - - } - // $ANTLR end "identifier" - #endregion Rules - - - #region Follow sets - private static class Follow - { - public static readonly BitSet _updateStatement_in_statement620 = new BitSet(new ulong[]{0x0UL}); - public static readonly BitSet _deleteStatement_in_statement624 = new BitSet(new ulong[]{0x0UL}); - public static readonly BitSet _insertStatement_in_statement628 = new BitSet(new ulong[]{0x0UL}); - public static readonly BitSet _selectStatement_in_statement637 = new BitSet(new ulong[]{0x0UL}); - public static readonly BitSet _EOF_in_statement642 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _UPDATE_in_updateStatement654 = new BitSet(new ulong[]{0x81000000000000UL,0x8000000000000000UL}); - public static readonly BitSet _VERSIONED_in_updateStatement658 = new BitSet(new ulong[]{0x81000000000000UL}); - public static readonly BitSet _optionalFromTokenFromClause_in_updateStatement664 = new BitSet(new ulong[]{0x0UL,0x1000000000000UL}); - public static readonly BitSet _setClause_in_updateStatement668 = new BitSet(new ulong[]{0x2UL,0x0UL,0x4UL}); - public static readonly BitSet _whereClause_in_updateStatement673 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _SET_in_setClause687 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _assignment_in_setClause690 = new BitSet(new ulong[]{0x1000002UL}); - public static readonly BitSet _COMMA_in_setClause693 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _assignment_in_setClause696 = new BitSet(new ulong[]{0x1000002UL}); - public static readonly BitSet _stateField_in_assignment710 = new BitSet(new ulong[]{0x4000000000UL}); - public static readonly BitSet _EQ_in_assignment712 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _newValue_in_assignment715 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _path_in_stateField728 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _concatenation_in_newValue741 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _DELETE_in_deleteStatement752 = new BitSet(new ulong[]{0x81000000000000UL}); - public static readonly BitSet _optionalFromTokenFromClause_in_deleteStatement758 = new BitSet(new ulong[]{0x2UL,0x0UL,0x4UL}); - public static readonly BitSet _whereClause_in_deleteStatement764 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _optionalFromTokenFromClause2_in_optionalFromTokenFromClause779 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _path_in_optionalFromTokenFromClause781 = new BitSet(new ulong[]{0x80000000000202UL}); - public static readonly BitSet _asAlias_in_optionalFromTokenFromClause784 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _FROM_in_optionalFromTokenFromClause2815 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _queryRule_in_selectStatement830 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _INSERT_in_insertStatement859 = new BitSet(new ulong[]{0x8000000000000000UL}); - public static readonly BitSet _intoClause_in_insertStatement862 = new BitSet(new ulong[]{0x29000000000000UL,0x42400800000000UL,0x4UL}); - public static readonly BitSet _selectStatement_in_insertStatement864 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _INTO_in_intoClause875 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _path_in_intoClause878 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _insertablePropertySpec_in_intoClause882 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _OPEN_in_insertablePropertySpec893 = new BitSet(new ulong[]{0x1080101410800800UL,0x22004411F809000UL}); - public static readonly BitSet _primaryExpression_in_insertablePropertySpec895 = new BitSet(new ulong[]{0x1200000UL}); - public static readonly BitSet _COMMA_in_insertablePropertySpec899 = new BitSet(new ulong[]{0x1080101410800800UL,0x22004411F809000UL}); - public static readonly BitSet _primaryExpression_in_insertablePropertySpec901 = new BitSet(new ulong[]{0x1200000UL}); - public static readonly BitSet _CLOSE_in_insertablePropertySpec906 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _selectFrom_in_queryRule944 = new BitSet(new ulong[]{0x28000000000002UL,0x42000800000000UL,0x4UL}); - public static readonly BitSet _whereClause_in_queryRule949 = new BitSet(new ulong[]{0x28000000000002UL,0x42000800000000UL}); - public static readonly BitSet _groupByClause_in_queryRule956 = new BitSet(new ulong[]{0x20000000000002UL,0x42000800000000UL}); - public static readonly BitSet _havingClause_in_queryRule963 = new BitSet(new ulong[]{0x2UL,0x42000800000000UL}); - public static readonly BitSet _orderByClause_in_queryRule970 = new BitSet(new ulong[]{0x2UL,0x42000000000000UL}); - public static readonly BitSet _skipClause_in_queryRule977 = new BitSet(new ulong[]{0x2UL,0x40000000000000UL}); - public static readonly BitSet _takeClause_in_queryRule984 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _selectClause_in_selectFrom1002 = new BitSet(new ulong[]{0x1000000000002UL}); - public static readonly BitSet _fromClause_in_selectFrom1009 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _SELECT_in_selectClause1058 = new BitSet(new ulong[]{0x1080121490844940UL,0x22404C13F8D9000UL}); - public static readonly BitSet _DISTINCT_in_selectClause1070 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C13F8D9000UL}); - public static readonly BitSet _selectedPropertiesList_in_selectClause1076 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _newExpression_in_selectClause1080 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _selectObject_in_selectClause1084 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _NEW_in_newExpression1098 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _path_in_newExpression1100 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _OPEN_in_newExpression1105 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _selectedPropertiesList_in_newExpression1107 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_newExpression1109 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _OBJECT_in_selectObject1135 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _OPEN_in_selectObject1138 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _identifier_in_selectObject1141 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_selectObject1143 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _FROM_in_fromClause1161 = new BitSet(new ulong[]{0x480000400000000UL}); - public static readonly BitSet _fromRange_in_fromClause1166 = new BitSet(new ulong[]{0x2002000001000002UL,0x100000000120UL}); - public static readonly BitSet _fromJoin_in_fromClause1170 = new BitSet(new ulong[]{0x2002000001000002UL,0x100000000120UL}); - public static readonly BitSet _COMMA_in_fromClause1174 = new BitSet(new ulong[]{0x480000400000000UL}); - public static readonly BitSet _fromRange_in_fromClause1179 = new BitSet(new ulong[]{0x2002000001000002UL,0x100000000120UL}); - public static readonly BitSet _set_in_fromJoin1197 = new BitSet(new ulong[]{0x0UL,0x2000000020UL}); - public static readonly BitSet _OUTER_in_fromJoin1208 = new BitSet(new ulong[]{0x0UL,0x20UL}); - public static readonly BitSet _FULL_in_fromJoin1216 = new BitSet(new ulong[]{0x0UL,0x20UL}); - public static readonly BitSet _INNER_in_fromJoin1220 = new BitSet(new ulong[]{0x0UL,0x20UL}); - public static readonly BitSet _JOIN_in_fromJoin1225 = new BitSet(new ulong[]{0x80200000000000UL}); - public static readonly BitSet _FETCH_in_fromJoin1229 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _path_in_fromJoin1233 = new BitSet(new ulong[]{0x80200000000202UL,0x0UL,0x8UL}); - public static readonly BitSet _asAlias_in_fromJoin1236 = new BitSet(new ulong[]{0x200000000002UL,0x0UL,0x8UL}); - public static readonly BitSet _propertyFetch_in_fromJoin1241 = new BitSet(new ulong[]{0x2UL,0x0UL,0x8UL}); - public static readonly BitSet _withClause_in_fromJoin1246 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _set_in_fromJoin1257 = new BitSet(new ulong[]{0x0UL,0x2000000020UL}); - public static readonly BitSet _OUTER_in_fromJoin1268 = new BitSet(new ulong[]{0x0UL,0x20UL}); - public static readonly BitSet _FULL_in_fromJoin1276 = new BitSet(new ulong[]{0x0UL,0x20UL}); - public static readonly BitSet _INNER_in_fromJoin1280 = new BitSet(new ulong[]{0x0UL,0x20UL}); - public static readonly BitSet _JOIN_in_fromJoin1285 = new BitSet(new ulong[]{0x200400000000UL}); - public static readonly BitSet _FETCH_in_fromJoin1289 = new BitSet(new ulong[]{0x400000000UL}); - public static readonly BitSet _ELEMENTS_in_fromJoin1293 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _OPEN_in_fromJoin1296 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _path_in_fromJoin1299 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_fromJoin1301 = new BitSet(new ulong[]{0x80200000000202UL,0x0UL,0x8UL}); - public static readonly BitSet _asAlias_in_fromJoin1305 = new BitSet(new ulong[]{0x200000000002UL,0x0UL,0x8UL}); - public static readonly BitSet _propertyFetch_in_fromJoin1310 = new BitSet(new ulong[]{0x2UL,0x0UL,0x8UL}); - public static readonly BitSet _withClause_in_fromJoin1315 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _WITH_in_withClause1328 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _logicalExpression_in_withClause1331 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _fromClassOrOuterQueryPath_in_fromRange1342 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _inClassDeclaration_in_fromRange1347 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _inCollectionDeclaration_in_fromRange1352 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _inCollectionElementsDeclaration_in_fromRange1357 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _path_in_fromClassOrOuterQueryPath1369 = new BitSet(new ulong[]{0x80200000000202UL}); - public static readonly BitSet _asAlias_in_fromClassOrOuterQueryPath1374 = new BitSet(new ulong[]{0x200000000002UL}); - public static readonly BitSet _propertyFetch_in_fromClassOrOuterQueryPath1379 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _alias_in_inClassDeclaration1409 = new BitSet(new ulong[]{0x400000000000000UL}); - public static readonly BitSet _IN_in_inClassDeclaration1411 = new BitSet(new ulong[]{0x80000000100000UL}); - public static readonly BitSet _CLASS_in_inClassDeclaration1413 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _path_in_inClassDeclaration1416 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _IN_in_inCollectionDeclaration1444 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _OPEN_in_inCollectionDeclaration1446 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _path_in_inCollectionDeclaration1448 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_inCollectionDeclaration1450 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _alias_in_inCollectionDeclaration1452 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _alias_in_inCollectionElementsDeclaration1486 = new BitSet(new ulong[]{0x400000000000000UL}); - public static readonly BitSet _IN_in_inCollectionElementsDeclaration1488 = new BitSet(new ulong[]{0x400000000UL}); - public static readonly BitSet _ELEMENTS_in_inCollectionElementsDeclaration1490 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _OPEN_in_inCollectionElementsDeclaration1492 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _path_in_inCollectionElementsDeclaration1494 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_inCollectionElementsDeclaration1496 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _ELEMENTS_in_inCollectionElementsDeclaration1518 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _OPEN_in_inCollectionElementsDeclaration1520 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _path_in_inCollectionElementsDeclaration1522 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_inCollectionElementsDeclaration1524 = new BitSet(new ulong[]{0x200UL}); - public static readonly BitSet _AS_in_inCollectionElementsDeclaration1526 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _alias_in_inCollectionElementsDeclaration1528 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _AS_in_asAlias1560 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _alias_in_asAlias1565 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _identifier_in_alias1577 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _FETCH_in_propertyFetch1596 = new BitSet(new ulong[]{0x40UL}); - public static readonly BitSet _ALL_in_propertyFetch1598 = new BitSet(new ulong[]{0x0UL,0x10000000000UL}); - public static readonly BitSet _PROPERTIES_in_propertyFetch1601 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _GROUP_in_groupByClause1613 = new BitSet(new ulong[]{0x0UL,0x400UL}); - public static readonly BitSet _LITERAL_by_in_groupByClause1619 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_groupByClause1622 = new BitSet(new ulong[]{0x1000002UL}); - public static readonly BitSet _COMMA_in_groupByClause1626 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_groupByClause1629 = new BitSet(new ulong[]{0x1000002UL}); - public static readonly BitSet _ORDER_in_orderByClause1643 = new BitSet(new ulong[]{0x0UL,0x400UL}); - public static readonly BitSet _LITERAL_by_in_orderByClause1646 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _orderElement_in_orderByClause1649 = new BitSet(new ulong[]{0x1000002UL}); - public static readonly BitSet _COMMA_in_orderByClause1653 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _orderElement_in_orderByClause1656 = new BitSet(new ulong[]{0x1000002UL}); - public static readonly BitSet _SKIP_in_skipClause1670 = new BitSet(new ulong[]{0x800000UL,0x4008000000UL}); - public static readonly BitSet _NUM_INT_in_skipClause1674 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _parameter_in_skipClause1678 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _TAKE_in_takeClause1690 = new BitSet(new ulong[]{0x800000UL,0x4008000000UL}); - public static readonly BitSet _NUM_INT_in_takeClause1694 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _parameter_in_takeClause1698 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _COLON_in_parameter1710 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _identifier_in_parameter1713 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _PARAM_in_parameter1718 = new BitSet(new ulong[]{0x2UL,0x8000000UL}); - public static readonly BitSet _NUM_INT_in_parameter1722 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _expression_in_orderElement1735 = new BitSet(new ulong[]{0x40000402UL,0x0UL,0x60UL}); - public static readonly BitSet _ascendingOrDescending_in_orderElement1739 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _ASCENDING_in_ascendingOrDescending1757 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _133_in_ascendingOrDescending1763 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _DESCENDING_in_ascendingOrDescending1783 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _134_in_ascendingOrDescending1789 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _HAVING_in_havingClause1810 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _logicalExpression_in_havingClause1813 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _WHERE_in_whereClause1824 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _logicalExpression_in_whereClause1827 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _aliasedExpression_in_selectedPropertiesList1838 = new BitSet(new ulong[]{0x1000002UL}); - public static readonly BitSet _COMMA_in_selectedPropertiesList1842 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _aliasedExpression_in_selectedPropertiesList1845 = new BitSet(new ulong[]{0x1000002UL}); - public static readonly BitSet _expression_in_aliasedExpression1860 = new BitSet(new ulong[]{0x202UL}); - public static readonly BitSet _AS_in_aliasedExpression1864 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _identifier_in_aliasedExpression1867 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _expression_in_logicalExpression1906 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _logicalOrExpression_in_expression1918 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _logicalAndExpression_in_logicalOrExpression1930 = new BitSet(new ulong[]{0x2UL,0x400000000UL}); - public static readonly BitSet _OR_in_logicalOrExpression1934 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _logicalAndExpression_in_logicalOrExpression1937 = new BitSet(new ulong[]{0x2UL,0x400000000UL}); - public static readonly BitSet _negatedExpression_in_logicalAndExpression1952 = new BitSet(new ulong[]{0x82UL}); - public static readonly BitSet _AND_in_logicalAndExpression1956 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _negatedExpression_in_logicalAndExpression1959 = new BitSet(new ulong[]{0x82UL}); - public static readonly BitSet _NOT_in_negatedExpression1980 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _negatedExpression_in_negatedExpression1984 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _equalityExpression_in_negatedExpression1997 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _relationalExpression_in_equalityExpression2019 = new BitSet(new ulong[]{0x4000000002UL,0x8000000020002UL}); - public static readonly BitSet _EQ_in_equalityExpression2027 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _IS_in_equalityExpression2036 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _NOT_in_equalityExpression2042 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _NE_in_equalityExpression2054 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _SQL_NE_in_equalityExpression2063 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _relationalExpression_in_equalityExpression2074 = new BitSet(new ulong[]{0x4000000002UL,0x8000000020002UL}); - public static readonly BitSet _concatenation_in_relationalExpression2091 = new BitSet(new ulong[]{0x414000000002002UL,0x82A40UL}); - public static readonly BitSet _LT_in_relationalExpression2103 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _GT_in_relationalExpression2108 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _LE_in_relationalExpression2113 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _GE_in_relationalExpression2118 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _bitwiseNotExpression_in_relationalExpression2123 = new BitSet(new ulong[]{0x14000000000002UL,0x840UL}); - public static readonly BitSet _NOT_in_relationalExpression2140 = new BitSet(new ulong[]{0x400000000002000UL,0x2200UL}); - public static readonly BitSet _IN_in_relationalExpression2161 = new BitSet(new ulong[]{0x1080000400000000UL,0x100000000UL}); - public static readonly BitSet _inList_in_relationalExpression2170 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _BETWEEN_in_relationalExpression2181 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _betweenList_in_relationalExpression2190 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _LIKE_in_relationalExpression2202 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _concatenation_in_relationalExpression2211 = new BitSet(new ulong[]{0x8000000000UL}); - public static readonly BitSet _likeEscape_in_relationalExpression2213 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _MEMBER_in_relationalExpression2222 = new BitSet(new ulong[]{0x80000000000000UL,0x40000000UL}); - public static readonly BitSet _OF_in_relationalExpression2226 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _path_in_relationalExpression2233 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _ESCAPE_in_likeEscape2260 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _concatenation_in_likeEscape2263 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _compoundExpr_in_inList2276 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _concatenation_in_betweenList2297 = new BitSet(new ulong[]{0x80UL}); - public static readonly BitSet _AND_in_betweenList2299 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _concatenation_in_betweenList2302 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _bitwiseNotExpression_in_concatenation2321 = new BitSet(new ulong[]{0x2000002UL}); - public static readonly BitSet _CONCAT_in_concatenation2329 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _bitwiseNotExpression_in_concatenation2338 = new BitSet(new ulong[]{0x2000002UL}); - public static readonly BitSet _CONCAT_in_concatenation2345 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F819000UL}); - public static readonly BitSet _bitwiseNotExpression_in_concatenation2348 = new BitSet(new ulong[]{0x2000002UL}); - public static readonly BitSet _BNOT_in_bitwiseNotExpression2372 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _bitwiseOrExpression_in_bitwiseNotExpression2375 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _bitwiseOrExpression_in_bitwiseNotExpression2381 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _bitwiseXOrExpression_in_bitwiseOrExpression2393 = new BitSet(new ulong[]{0x8002UL}); - public static readonly BitSet _BOR_in_bitwiseOrExpression2396 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _bitwiseXOrExpression_in_bitwiseOrExpression2399 = new BitSet(new ulong[]{0x8002UL}); - public static readonly BitSet _bitwiseAndExpression_in_bitwiseXOrExpression2413 = new BitSet(new ulong[]{0x20002UL}); - public static readonly BitSet _BXOR_in_bitwiseXOrExpression2416 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _bitwiseAndExpression_in_bitwiseXOrExpression2419 = new BitSet(new ulong[]{0x20002UL}); - public static readonly BitSet _additiveExpression_in_bitwiseAndExpression2433 = new BitSet(new ulong[]{0x1002UL}); - public static readonly BitSet _BAND_in_bitwiseAndExpression2436 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _additiveExpression_in_bitwiseAndExpression2439 = new BitSet(new ulong[]{0x1002UL}); - public static readonly BitSet _multiplyExpression_in_additiveExpression2453 = new BitSet(new ulong[]{0x2UL,0x8000010000UL}); - public static readonly BitSet _PLUS_in_additiveExpression2459 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _MINUS_in_additiveExpression2464 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _multiplyExpression_in_additiveExpression2469 = new BitSet(new ulong[]{0x2UL,0x8000010000UL}); - public static readonly BitSet _unaryExpression_in_multiplyExpression2484 = new BitSet(new ulong[]{0x100000002UL,0x10000000000000UL}); - public static readonly BitSet _STAR_in_multiplyExpression2490 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _DIV_in_multiplyExpression2495 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _unaryExpression_in_multiplyExpression2500 = new BitSet(new ulong[]{0x100000002UL,0x10000000000000UL}); - public static readonly BitSet _MINUS_in_unaryExpression2518 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _unaryExpression_in_unaryExpression2522 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _PLUS_in_unaryExpression2539 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _unaryExpression_in_unaryExpression2543 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _caseExpression_in_unaryExpression2558 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _quantifiedExpression_in_unaryExpression2563 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _atom_in_unaryExpression2568 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _CASE_in_caseExpression2580 = new BitSet(new ulong[]{0x0UL,0x0UL,0x2UL}); - public static readonly BitSet _whenClause_in_caseExpression2583 = new BitSet(new ulong[]{0x2800000000UL,0x0UL,0x2UL}); - public static readonly BitSet _elseClause_in_caseExpression2588 = new BitSet(new ulong[]{0x2000000000UL}); - public static readonly BitSet _END_in_caseExpression2592 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _CASE_in_caseExpression2612 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _unaryExpression_in_caseExpression2614 = new BitSet(new ulong[]{0x0UL,0x0UL,0x2UL}); - public static readonly BitSet _altWhenClause_in_caseExpression2617 = new BitSet(new ulong[]{0x2800000000UL,0x0UL,0x2UL}); - public static readonly BitSet _elseClause_in_caseExpression2622 = new BitSet(new ulong[]{0x2000000000UL}); - public static readonly BitSet _END_in_caseExpression2626 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _WHEN_in_whenClause2655 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _logicalExpression_in_whenClause2658 = new BitSet(new ulong[]{0x0UL,0x80000000000000UL}); - public static readonly BitSet _THEN_in_whenClause2660 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_whenClause2663 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _WHEN_in_altWhenClause2677 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _unaryExpression_in_altWhenClause2680 = new BitSet(new ulong[]{0x0UL,0x80000000000000UL}); - public static readonly BitSet _THEN_in_altWhenClause2682 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_altWhenClause2685 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _ELSE_in_elseClause2699 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_elseClause2702 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _SOME_in_quantifiedExpression2717 = new BitSet(new ulong[]{0x1080000400000000UL,0x100000000UL}); - public static readonly BitSet _EXISTS_in_quantifiedExpression2722 = new BitSet(new ulong[]{0x1080000400000000UL,0x100000000UL}); - public static readonly BitSet _ALL_in_quantifiedExpression2727 = new BitSet(new ulong[]{0x1080000400000000UL,0x100000000UL}); - public static readonly BitSet _ANY_in_quantifiedExpression2732 = new BitSet(new ulong[]{0x1080000400000000UL,0x100000000UL}); - public static readonly BitSet _identifier_in_quantifiedExpression2741 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _collectionExpr_in_quantifiedExpression2745 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _OPEN_in_quantifiedExpression2750 = new BitSet(new ulong[]{0x29000000000000UL,0x42400800000000UL,0x4UL}); - public static readonly BitSet _subQuery_in_quantifiedExpression2755 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_quantifiedExpression2759 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _primaryExpression_in_atom2778 = new BitSet(new ulong[]{0x200000002UL,0x200000000UL}); - public static readonly BitSet _DOT_in_atom2787 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _identifier_in_atom2790 = new BitSet(new ulong[]{0x200000002UL,0x300000000UL}); - public static readonly BitSet _OPEN_in_atom2818 = new BitSet(new ulong[]{0x1081121410A54940UL,0x32404C11F899080UL}); - public static readonly BitSet _exprList_in_atom2823 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_atom2825 = new BitSet(new ulong[]{0x200000002UL,0x200000000UL}); - public static readonly BitSet _OPEN_BRACKET_in_atom2839 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_atom2844 = new BitSet(new ulong[]{0x400000UL}); - public static readonly BitSet _CLOSE_BRACKET_in_atom2846 = new BitSet(new ulong[]{0x200000002UL,0x200000000UL}); - public static readonly BitSet _identPrimary_in_primaryExpression2866 = new BitSet(new ulong[]{0x200000002UL}); - public static readonly BitSet _DOT_in_primaryExpression2879 = new BitSet(new ulong[]{0x100000UL}); - public static readonly BitSet _CLASS_in_primaryExpression2882 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _constant_in_primaryExpression2892 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _COLON_in_primaryExpression2899 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _identifier_in_primaryExpression2902 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _OPEN_in_primaryExpression2911 = new BitSet(new ulong[]{0x10A9121410844940UL,0x26644C91F899000UL,0x4UL}); - public static readonly BitSet _expressionOrVector_in_primaryExpression2915 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _subQuery_in_primaryExpression2919 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_primaryExpression2922 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _PARAM_in_primaryExpression2930 = new BitSet(new ulong[]{0x2UL,0x8000000UL}); - public static readonly BitSet _NUM_INT_in_primaryExpression2934 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _expression_in_expressionOrVector2952 = new BitSet(new ulong[]{0x1000002UL}); - public static readonly BitSet _vectorExpr_in_expressionOrVector2958 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _COMMA_in_vectorExpr2995 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_vectorExpr2998 = new BitSet(new ulong[]{0x1000002UL}); - public static readonly BitSet _COMMA_in_vectorExpr3001 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_vectorExpr3004 = new BitSet(new ulong[]{0x1000002UL}); - public static readonly BitSet _identifier_in_identPrimary3020 = new BitSet(new ulong[]{0x200000002UL,0x100000000UL}); - public static readonly BitSet _DOT_in_identPrimary3038 = new BitSet(new ulong[]{0x80000000000000UL,0x20000000UL}); - public static readonly BitSet _identifier_in_identPrimary3043 = new BitSet(new ulong[]{0x200000002UL,0x100000000UL}); - public static readonly BitSet _OBJECT_in_identPrimary3049 = new BitSet(new ulong[]{0x200000002UL,0x100000000UL}); - public static readonly BitSet _OPEN_in_identPrimary3067 = new BitSet(new ulong[]{0x1081121410A54940UL,0x32404C11F899080UL}); - public static readonly BitSet _exprList_in_identPrimary3072 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_identPrimary3074 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _aggregate_in_identPrimary3090 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _SUM_in_aggregate3111 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _AVG_in_aggregate3117 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _MAX_in_aggregate3123 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _MIN_in_aggregate3129 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _OPEN_in_aggregate3133 = new BitSet(new ulong[]{0x1080121410840940UL,0x22404C11F819000UL}); - public static readonly BitSet _additiveExpression_in_aggregate3135 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_aggregate3137 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _COUNT_in_aggregate3156 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _OPEN_in_aggregate3158 = new BitSet(new ulong[]{0x1080000480000040UL,0x10000000000000UL}); - public static readonly BitSet _STAR_in_aggregate3164 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _aggregateDistinctAll_in_aggregate3170 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_aggregate3174 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _collectionExpr_in_aggregate3206 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _path_in_aggregateDistinctAll3232 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _collectionExpr_in_aggregateDistinctAll3236 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _ELEMENTS_in_collectionExpr3255 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _INDICES_in_collectionExpr3260 = new BitSet(new ulong[]{0x0UL,0x100000000UL}); - public static readonly BitSet _OPEN_in_collectionExpr3264 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _path_in_collectionExpr3267 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _CLOSE_in_collectionExpr3269 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _collectionExpr_in_compoundExpr3324 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _path_in_compoundExpr3329 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _OPEN_in_compoundExpr3335 = new BitSet(new ulong[]{0x10A9121410844940UL,0x26644C91F899000UL,0x4UL}); - public static readonly BitSet _subQuery_in_compoundExpr3340 = new BitSet(new ulong[]{0x200000UL}); - public static readonly BitSet _expression_in_compoundExpr3345 = new BitSet(new ulong[]{0x1200000UL}); - public static readonly BitSet _COMMA_in_compoundExpr3348 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_compoundExpr3351 = new BitSet(new ulong[]{0x1200000UL}); - public static readonly BitSet _CLOSE_in_compoundExpr3358 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _TRAILING_in_exprList3377 = new BitSet(new ulong[]{0x1081121410844942UL,0x22404C11F899000UL}); - public static readonly BitSet _LEADING_in_exprList3390 = new BitSet(new ulong[]{0x1081121410844942UL,0x22404C11F899000UL}); - public static readonly BitSet _BOTH_in_exprList3403 = new BitSet(new ulong[]{0x1081121410844942UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_exprList3427 = new BitSet(new ulong[]{0x1000001000202UL}); - public static readonly BitSet _COMMA_in_exprList3432 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_exprList3435 = new BitSet(new ulong[]{0x1000002UL}); - public static readonly BitSet _FROM_in_exprList3450 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_exprList3452 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _AS_in_exprList3464 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _identifier_in_exprList3467 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _FROM_in_exprList3481 = new BitSet(new ulong[]{0x1080121410844940UL,0x22404C11F899000UL}); - public static readonly BitSet _expression_in_exprList3483 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _innerSubQuery_in_subQuery3503 = new BitSet(new ulong[]{0x2UL,0x1000000000000000UL}); - public static readonly BitSet _UNION_in_subQuery3506 = new BitSet(new ulong[]{0x29000000000000UL,0x42400800000000UL,0x4UL}); - public static readonly BitSet _innerSubQuery_in_subQuery3509 = new BitSet(new ulong[]{0x2UL,0x1000000000000000UL}); - public static readonly BitSet _queryRule_in_innerSubQuery3523 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _identifier_in_path3611 = new BitSet(new ulong[]{0x200000002UL}); - public static readonly BitSet _DOT_in_path3615 = new BitSet(new ulong[]{0x80000000000000UL}); - public static readonly BitSet _identifier_in_path3620 = new BitSet(new ulong[]{0x200000002UL}); - public static readonly BitSet _IDENT_in_identifier3636 = new BitSet(new ulong[]{0x2UL}); - } - #endregion Follow sets -} - -} // namespace NHibernate.Hql.Ast.ANTLR diff --git a/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs b/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs deleted file mode 100644 index f5fd6291738..00000000000 --- a/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs +++ /dev/null @@ -1,12398 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// ANTLR Version: 3.5.0.2 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -// $ANTLR 3.5.0.2 HqlSqlWalker.g 2016-04-29 17:08:21 - -// The variable 'variable' is assigned but its value is never used. -#pragma warning disable 219 -// Unreachable code detected. -#pragma warning disable 162 -// Missing XML comment for publicly visible type or member 'Type_or_Member' -#pragma warning disable 1591 -// CLS compliance checking will not be performed on 'type' because it is not visible from outside this assembly. -#pragma warning disable 3019 - - -using System; -using System.Text; -using NHibernate.Hql.Ast.ANTLR.Tree; - - -using System.Collections.Generic; -using Antlr.Runtime; -using Antlr.Runtime.Misc; -using Antlr.Runtime.Tree; -using RewriteRuleITokenStream = Antlr.Runtime.Tree.RewriteRuleTokenStream; - - - -namespace NHibernate.Hql.Ast.ANTLR -{ -[System.CodeDom.Compiler.GeneratedCode("ANTLR", "3.5.0.2")] -[System.CLSCompliant(false)] -public partial class HqlSqlWalker : Antlr.Runtime.Tree.TreeParser -{ - internal static readonly string[] tokenNames = new string[] { - "", "", "", "", "AGGREGATE", "ALIAS", "ALL", "AND", "ANY", "AS", "ASCENDING", "AVG", "BAND", "BETWEEN", "BNOT", "BOR", "BOTH", "BXOR", "CASE", "CASE2", "CLASS", "CLOSE", "CLOSE_BRACKET", "COLON", "COMMA", "CONCAT", "CONSTANT", "CONSTRUCTOR", "COUNT", "DELETE", "DESCENDING", "DISTINCT", "DIV", "DOT", "ELEMENTS", "ELSE", "EMPTY", "END", "EQ", "ESCAPE", "ESCqs", "EXISTS", "EXPONENT", "EXPR_LIST", "FALSE", "FETCH", "FILTER_ENTITY", "FLOAT_SUFFIX", "FROM", "FULL", "GE", "GROUP", "GT", "HAVING", "HEX_DIGIT", "IDENT", "ID_LETTER", "ID_START_LETTER", "IN", "INDEX_OP", "INDICES", "INNER", "INSERT", "INTO", "IN_LIST", "IS", "IS_NOT_NULL", "IS_NULL", "JAVA_CONSTANT", "JOIN", "LE", "LEADING", "LEFT", "LIKE", "LITERAL_by", "LT", "MAX", "MEMBER", "METHOD_CALL", "MIN", "MINUS", "NE", "NEW", "NOT", "NOT_BETWEEN", "NOT_IN", "NOT_LIKE", "NULL", "NUM_DECIMAL", "NUM_DOUBLE", "NUM_FLOAT", "NUM_INT", "NUM_LONG", "OBJECT", "OF", "ON", "OPEN", "OPEN_BRACKET", "OR", "ORDER", "ORDER_ELEMENT", "OUTER", "PARAM", "PLUS", "PROPERTIES", "QUERY", "QUOTED_String", "RANGE", "RIGHT", "ROW_STAR", "SELECT", "SELECT_FROM", "SET", "SKIP", "SOME", "SQL_NE", "STAR", "SUM", "TAKE", "THEN", "TRAILING", "TRUE", "UNARY_MINUS", "UNARY_PLUS", "UNION", "UPDATE", "VECTOR_EXPR", "VERSIONED", "WEIRD_IDENT", "WHEN", "WHERE", "WITH", "WS", "'ascending'", "'descending'", "ALIAS_REF", "BOGUS", "FILTERS", "FROM_FRAGMENT", "IMPLIED_FROM", "JOIN_FRAGMENT", "LEFT_OUTER", "METHOD_NAME", "NAMED_PARAM", "PROPERTY_REF", "RESULT_VARIABLE_REF", "RIGHT_OUTER", "SELECT_CLAUSE", "SELECT_COLUMNS", "SELECT_EXPR", "SQL_TOKEN", "THETA_JOINS" - }; - public const int EOF=-1; - public const int AGGREGATE=4; - public const int ALIAS=5; - public const int ALL=6; - public const int AND=7; - public const int ANY=8; - public const int AS=9; - public const int ASCENDING=10; - public const int AVG=11; - public const int BAND=12; - public const int BETWEEN=13; - public const int BNOT=14; - public const int BOR=15; - public const int BOTH=16; - public const int BXOR=17; - public const int CASE=18; - public const int CASE2=19; - public const int CLASS=20; - public const int CLOSE=21; - public const int CLOSE_BRACKET=22; - public const int COLON=23; - public const int COMMA=24; - public const int CONCAT=25; - public const int CONSTANT=26; - public const int CONSTRUCTOR=27; - public const int COUNT=28; - public const int DELETE=29; - public const int DESCENDING=30; - public const int DISTINCT=31; - public const int DIV=32; - public const int DOT=33; - public const int ELEMENTS=34; - public const int ELSE=35; - public const int EMPTY=36; - public const int END=37; - public const int EQ=38; - public const int ESCAPE=39; - public const int ESCqs=40; - public const int EXISTS=41; - public const int EXPONENT=42; - public const int EXPR_LIST=43; - public const int FALSE=44; - public const int FETCH=45; - public const int FILTER_ENTITY=46; - public const int FLOAT_SUFFIX=47; - public const int FROM=48; - public const int FULL=49; - public const int GE=50; - public const int GROUP=51; - public const int GT=52; - public const int HAVING=53; - public const int HEX_DIGIT=54; - public const int IDENT=55; - public const int ID_LETTER=56; - public const int ID_START_LETTER=57; - public const int IN=58; - public const int INDEX_OP=59; - public const int INDICES=60; - public const int INNER=61; - public const int INSERT=62; - public const int INTO=63; - public const int IN_LIST=64; - public const int IS=65; - public const int IS_NOT_NULL=66; - public const int IS_NULL=67; - public const int JAVA_CONSTANT=68; - public const int JOIN=69; - public const int LE=70; - public const int LEADING=71; - public const int LEFT=72; - public const int LIKE=73; - public const int LITERAL_by=74; - public const int LT=75; - public const int MAX=76; - public const int MEMBER=77; - public const int METHOD_CALL=78; - public const int MIN=79; - public const int MINUS=80; - public const int NE=81; - public const int NEW=82; - public const int NOT=83; - public const int NOT_BETWEEN=84; - public const int NOT_IN=85; - public const int NOT_LIKE=86; - public const int NULL=87; - public const int NUM_DECIMAL=88; - public const int NUM_DOUBLE=89; - public const int NUM_FLOAT=90; - public const int NUM_INT=91; - public const int NUM_LONG=92; - public const int OBJECT=93; - public const int OF=94; - public const int ON=95; - public const int OPEN=96; - public const int OPEN_BRACKET=97; - public const int OR=98; - public const int ORDER=99; - public const int ORDER_ELEMENT=100; - public const int OUTER=101; - public const int PARAM=102; - public const int PLUS=103; - public const int PROPERTIES=104; - public const int QUERY=105; - public const int QUOTED_String=106; - public const int RANGE=107; - public const int RIGHT=108; - public const int ROW_STAR=109; - public const int SELECT=110; - public const int SELECT_FROM=111; - public const int SET=112; - public const int SKIP=113; - public const int SOME=114; - public const int SQL_NE=115; - public const int STAR=116; - public const int SUM=117; - public const int TAKE=118; - public const int THEN=119; - public const int TRAILING=120; - public const int TRUE=121; - public const int UNARY_MINUS=122; - public const int UNARY_PLUS=123; - public const int UNION=124; - public const int UPDATE=125; - public const int VECTOR_EXPR=126; - public const int VERSIONED=127; - public const int WEIRD_IDENT=128; - public const int WHEN=129; - public const int WHERE=130; - public const int WITH=131; - public const int WS=132; - public const int T__133=133; - public const int T__134=134; - public const int ALIAS_REF=135; - public const int BOGUS=136; - public const int FILTERS=137; - public const int FROM_FRAGMENT=138; - public const int IMPLIED_FROM=139; - public const int JOIN_FRAGMENT=140; - public const int LEFT_OUTER=141; - public const int METHOD_NAME=142; - public const int NAMED_PARAM=143; - public const int PROPERTY_REF=144; - public const int RESULT_VARIABLE_REF=145; - public const int RIGHT_OUTER=146; - public const int SELECT_CLAUSE=147; - public const int SELECT_COLUMNS=148; - public const int SELECT_EXPR=149; - public const int SQL_TOKEN=150; - public const int THETA_JOINS=151; - - public HqlSqlWalker(ITreeNodeStream input) - : this(input, new RecognizerSharedState()) - { - } - public HqlSqlWalker(ITreeNodeStream input, RecognizerSharedState state) - : base(input, state) - { - ITreeAdaptor treeAdaptor = default(ITreeAdaptor); - CreateTreeAdaptor(ref treeAdaptor); - TreeAdaptor = treeAdaptor ?? new CommonTreeAdaptor(); - OnCreated(); - } - // Implement this function in your helper file to use a custom tree adaptor - partial void CreateTreeAdaptor(ref ITreeAdaptor adaptor); - - private ITreeAdaptor adaptor; - - public ITreeAdaptor TreeAdaptor - { - get - { - return adaptor; - } - - set - { - this.adaptor = value; - } - } - - public override string[] TokenNames { get { return HqlSqlWalker.tokenNames; } } - public override string GrammarFileName { get { return "HqlSqlWalker.g"; } } - - - partial void OnCreated(); - partial void EnterRule(string ruleName, int ruleIndex); - partial void LeaveRule(string ruleName, int ruleIndex); - - #region Rules - partial void EnterRule_statement(); - partial void LeaveRule_statement(); - // $ANTLR start "statement" - // HqlSqlWalker.g:43:8: public statement : ( selectStatement | updateStatement | deleteStatement | insertStatement ); - [GrammarRule("statement")] - public AstTreeRuleReturnScope statement() - { - EnterRule_statement(); - EnterRule("statement", 1); - TraceIn("statement", 1); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope selectStatement1 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope updateStatement2 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope deleteStatement3 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope insertStatement4 = default(AstTreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "statement"); - DebugLocation(43, 1); - try - { - // HqlSqlWalker.g:44:2: ( selectStatement | updateStatement | deleteStatement | insertStatement ) - int alt1=4; - try { DebugEnterDecision(1, false); - switch (input.LA(1)) - { - case QUERY: - case UNION: - { - alt1 = 1; - } - break; - case UPDATE: - { - alt1 = 2; - } - break; - case DELETE: - { - alt1 = 3; - } - break; - case INSERT: - { - alt1 = 4; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 1, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(1); } - switch (alt1) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:44:4: selectStatement - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(44, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._selectStatement_in_statement202); - selectStatement1=selectStatement(); - PopFollow(); - - adaptor.AddChild(root_0, selectStatement1.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:44:22: updateStatement - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(44, 22); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._updateStatement_in_statement206); - updateStatement2=updateStatement(); - PopFollow(); - - adaptor.AddChild(root_0, updateStatement2.Tree); - - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:44:40: deleteStatement - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(44, 40); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._deleteStatement_in_statement210); - deleteStatement3=deleteStatement(); - PopFollow(); - - adaptor.AddChild(root_0, deleteStatement3.Tree); - - - } - break; - case 4: - DebugEnterAlt(4); - // HqlSqlWalker.g:44:58: insertStatement - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(44, 58); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._insertStatement_in_statement214); - insertStatement4=insertStatement(); - PopFollow(); - - adaptor.AddChild(root_0, insertStatement4.Tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("statement", 1); - LeaveRule("statement", 1); - LeaveRule_statement(); - } - DebugLocation(45, 1); - } finally { DebugExitRule(GrammarFileName, "statement"); } - return retval; - - } - // $ANTLR end "statement" - - partial void EnterRule_selectStatement(); - partial void LeaveRule_selectStatement(); - // $ANTLR start "selectStatement" - // HqlSqlWalker.g:47:1: selectStatement : query ; - [GrammarRule("selectStatement")] - private AstTreeRuleReturnScope selectStatement() - { - EnterRule_selectStatement(); - EnterRule("selectStatement", 2); - TraceIn("selectStatement", 2); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope query5 = default(AstTreeRuleReturnScope); - - - PrepareFilterParameter(); - - try { DebugEnterRule(GrammarFileName, "selectStatement"); - DebugLocation(47, 1); - try - { - // HqlSqlWalker.g:51:2: ( query ) - DebugEnterAlt(1); - // HqlSqlWalker.g:51:4: query - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(51, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._query_in_selectStatement231); - query5=query(); - PopFollow(); - - adaptor.AddChild(root_0, query5.Tree); - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("selectStatement", 2); - LeaveRule("selectStatement", 2); - LeaveRule_selectStatement(); - } - DebugLocation(52, 1); - } finally { DebugExitRule(GrammarFileName, "selectStatement"); } - return retval; - - } - // $ANTLR end "selectStatement" - - partial void EnterRule_updateStatement(); - partial void LeaveRule_updateStatement(); - // $ANTLR start "updateStatement" - // HqlSqlWalker.g:57:1: updateStatement : ^(u= UPDATE (v= VERSIONED )? f= fromClause s= setClause (w= whereClause )? ) -> ^( $u $f $s ( $w)? ) ; - [GrammarRule("updateStatement")] - private AstTreeRuleReturnScope updateStatement() - { - EnterRule_updateStatement(); - EnterRule("updateStatement", 3); - TraceIn("updateStatement", 3); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode u = default(IASTNode); - IASTNode v = default(IASTNode); - AstTreeRuleReturnScope f = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope s = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope w = default(AstTreeRuleReturnScope); - - IASTNode u_tree = default(IASTNode); - IASTNode v_tree = default(IASTNode); - RewriteRuleNodeStream stream_UPDATE=new RewriteRuleNodeStream(adaptor,"token UPDATE"); - RewriteRuleNodeStream stream_VERSIONED=new RewriteRuleNodeStream(adaptor,"token VERSIONED"); - RewriteRuleSubtreeStream stream_fromClause=new RewriteRuleSubtreeStream(adaptor,"rule fromClause"); - RewriteRuleSubtreeStream stream_setClause=new RewriteRuleSubtreeStream(adaptor,"rule setClause"); - RewriteRuleSubtreeStream stream_whereClause=new RewriteRuleSubtreeStream(adaptor,"rule whereClause"); - try { DebugEnterRule(GrammarFileName, "updateStatement"); - DebugLocation(57, 1); - try - { - // HqlSqlWalker.g:64:2: ( ^(u= UPDATE (v= VERSIONED )? f= fromClause s= setClause (w= whereClause )? ) -> ^( $u $f $s ( $w)? ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:64:4: ^(u= UPDATE (v= VERSIONED )? f= fromClause s= setClause (w= whereClause )? ) - { - DebugLocation(64, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(64, 8); - - _last = (IASTNode)input.LT(1); - u=(IASTNode)Match(input,UPDATE,Follow._UPDATE_in_updateStatement255); - - stream_UPDATE.Add(u); - - - DebugLocation(64, 16); - BeforeStatement( "update", UPDATE ); - - Match(input, TokenTypes.Down, null); - DebugLocation(64, 57); - // HqlSqlWalker.g:64:57: (v= VERSIONED )? - int alt2=2; - try { DebugEnterSubRule(2); - try { DebugEnterDecision(2, false); - int LA2_1 = input.LA(1); - - if ((LA2_1==VERSIONED)) - { - alt2 = 1; - } - } finally { DebugExitDecision(2); } - switch (alt2) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:64:58: v= VERSIONED - { - DebugLocation(64, 59); - - _last = (IASTNode)input.LT(1); - v=(IASTNode)Match(input,VERSIONED,Follow._VERSIONED_in_updateStatement262); - - stream_VERSIONED.Add(v); - - - } - break; - - } - } finally { DebugExitSubRule(2); } - - DebugLocation(64, 73); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._fromClause_in_updateStatement268); - f=fromClause(); - PopFollow(); - - stream_fromClause.Add(f.Tree); - DebugLocation(64, 86); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._setClause_in_updateStatement272); - s=setClause(); - PopFollow(); - - stream_setClause.Add(s.Tree); - DebugLocation(64, 97); - // HqlSqlWalker.g:64:97: (w= whereClause )? - int alt3=2; - try { DebugEnterSubRule(3); - try { DebugEnterDecision(3, false); - int LA3_1 = input.LA(1); - - if ((LA3_1==WHERE)) - { - alt3 = 1; - } - } finally { DebugExitDecision(3); } - switch (alt3) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:64:98: w= whereClause - { - DebugLocation(64, 99); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._whereClause_in_updateStatement277); - w=whereClause(); - PopFollow(); - - stream_whereClause.Add(w.Tree); - - } - break; - - } - } finally { DebugExitSubRule(3); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - - { - // AST REWRITE - // elements: u, f, s, w - // token labels: u - // rule labels: f, s, w, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleNodeStream stream_u=new RewriteRuleNodeStream(adaptor,"token u",u); - RewriteRuleSubtreeStream stream_f=new RewriteRuleSubtreeStream(adaptor,"rule f",f!=null?f.Tree:null); - RewriteRuleSubtreeStream stream_s=new RewriteRuleSubtreeStream(adaptor,"rule s",s!=null?s.Tree:null); - RewriteRuleSubtreeStream stream_w=new RewriteRuleSubtreeStream(adaptor,"rule w",w!=null?w.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 65:3: -> ^( $u $f $s ( $w)? ) - { - DebugLocation(65, 6); - // HqlSqlWalker.g:65:6: ^( $u $f $s ( $w)? ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(65, 9); - root_1 = (IASTNode)adaptor.BecomeRoot(stream_u.NextNode(), root_1); - - DebugLocation(65, 12); - adaptor.AddChild(root_1, stream_f.NextTree()); - DebugLocation(65, 15); - adaptor.AddChild(root_1, stream_s.NextTree()); - DebugLocation(65, 18); - // HqlSqlWalker.g:65:18: ( $w)? - if (stream_w.HasNext) - { - DebugLocation(65, 18); - adaptor.AddChild(root_1, stream_w.NextTree()); - - } - stream_w.Reset(); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - BeforeStatementCompletion( "update" ); - PrepareVersioned( retval.Tree, v ); - PostProcessUpdate( retval.Tree ); - AfterStatementCompletion( "update" ); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("updateStatement", 3); - LeaveRule("updateStatement", 3); - LeaveRule_updateStatement(); - } - DebugLocation(66, 1); - } finally { DebugExitRule(GrammarFileName, "updateStatement"); } - return retval; - - } - // $ANTLR end "updateStatement" - - partial void EnterRule_deleteStatement(); - partial void LeaveRule_deleteStatement(); - // $ANTLR start "deleteStatement" - // HqlSqlWalker.g:68:1: deleteStatement : ^( DELETE fromClause ( whereClause )? ) ; - [GrammarRule("deleteStatement")] - private AstTreeRuleReturnScope deleteStatement() - { - EnterRule_deleteStatement(); - EnterRule("deleteStatement", 4); - TraceIn("deleteStatement", 4); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode DELETE6 = default(IASTNode); - AstTreeRuleReturnScope fromClause7 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope whereClause8 = default(AstTreeRuleReturnScope); - - IASTNode DELETE6_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "deleteStatement"); - DebugLocation(68, 1); - try - { - // HqlSqlWalker.g:74:2: ( ^( DELETE fromClause ( whereClause )? ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:74:4: ^( DELETE fromClause ( whereClause )? ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(74, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(74, 7); - - _last = (IASTNode)input.LT(1); - DELETE6=(IASTNode)Match(input,DELETE,Follow._DELETE_in_deleteStatement320); - DELETE6_tree = (IASTNode)adaptor.DupNode(DELETE6); - - - root_1 = (IASTNode)adaptor.BecomeRoot(DELETE6_tree, root_1); - - - DebugLocation(74, 14); - BeforeStatement( "delete", DELETE ); - - Match(input, TokenTypes.Down, null); - DebugLocation(74, 55); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._fromClause_in_deleteStatement324); - fromClause7=fromClause(); - PopFollow(); - - adaptor.AddChild(root_1, fromClause7.Tree); - - DebugLocation(74, 66); - // HqlSqlWalker.g:74:66: ( whereClause )? - int alt4=2; - try { DebugEnterSubRule(4); - try { DebugEnterDecision(4, false); - int LA4_1 = input.LA(1); - - if ((LA4_1==WHERE)) - { - alt4 = 1; - } - } finally { DebugExitDecision(4); } - switch (alt4) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:74:67: whereClause - { - DebugLocation(74, 67); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._whereClause_in_deleteStatement327); - whereClause8=whereClause(); - PopFollow(); - - adaptor.AddChild(root_1, whereClause8.Tree); - - - } - break; - - } - } finally { DebugExitSubRule(4); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - BeforeStatementCompletion( "delete" ); - PostProcessDelete( retval.Tree ); - AfterStatementCompletion( "delete" ); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("deleteStatement", 4); - LeaveRule("deleteStatement", 4); - LeaveRule_deleteStatement(); - } - DebugLocation(75, 1); - } finally { DebugExitRule(GrammarFileName, "deleteStatement"); } - return retval; - - } - // $ANTLR end "deleteStatement" - - partial void EnterRule_insertStatement(); - partial void LeaveRule_insertStatement(); - // $ANTLR start "insertStatement" - // HqlSqlWalker.g:77:1: insertStatement : ^( INSERT intoClause query ) ; - [GrammarRule("insertStatement")] - private AstTreeRuleReturnScope insertStatement() - { - EnterRule_insertStatement(); - EnterRule("insertStatement", 5); - TraceIn("insertStatement", 5); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode INSERT9 = default(IASTNode); - AstTreeRuleReturnScope intoClause10 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope query11 = default(AstTreeRuleReturnScope); - - IASTNode INSERT9_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "insertStatement"); - DebugLocation(77, 1); - try - { - // HqlSqlWalker.g:86:2: ( ^( INSERT intoClause query ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:86:4: ^( INSERT intoClause query ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(86, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(86, 7); - - _last = (IASTNode)input.LT(1); - INSERT9=(IASTNode)Match(input,INSERT,Follow._INSERT_in_insertStatement357); - INSERT9_tree = (IASTNode)adaptor.DupNode(INSERT9); - - - root_1 = (IASTNode)adaptor.BecomeRoot(INSERT9_tree, root_1); - - - DebugLocation(86, 14); - BeforeStatement( "insert", INSERT ); - - Match(input, TokenTypes.Down, null); - DebugLocation(86, 55); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._intoClause_in_insertStatement361); - intoClause10=intoClause(); - PopFollow(); - - adaptor.AddChild(root_1, intoClause10.Tree); - - DebugLocation(86, 66); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._query_in_insertStatement363); - query11=query(); - PopFollow(); - - adaptor.AddChild(root_1, query11.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - BeforeStatementCompletion( "insert" ); - PostProcessInsert( retval.Tree ); - AfterStatementCompletion( "insert" ); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("insertStatement", 5); - LeaveRule("insertStatement", 5); - LeaveRule_insertStatement(); - } - DebugLocation(87, 1); - } finally { DebugExitRule(GrammarFileName, "insertStatement"); } - return retval; - - } - // $ANTLR end "insertStatement" - - partial void EnterRule_intoClause(); - partial void LeaveRule_intoClause(); - // $ANTLR start "intoClause" - // HqlSqlWalker.g:89:1: intoClause : ^( INTO (p= path ) ps= insertablePropertySpec ) ; - [GrammarRule("intoClause")] - private AstTreeRuleReturnScope intoClause() - { - EnterRule_intoClause(); - EnterRule("intoClause", 6); - TraceIn("intoClause", 6); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode INTO12 = default(IASTNode); - AstTreeRuleReturnScope p = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope ps = default(AstTreeRuleReturnScope); - - IASTNode INTO12_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "intoClause"); - DebugLocation(89, 1); - try - { - // HqlSqlWalker.g:93:2: ( ^( INTO (p= path ) ps= insertablePropertySpec ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:93:4: ^( INTO (p= path ) ps= insertablePropertySpec ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(93, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(93, 7); - - _last = (IASTNode)input.LT(1); - INTO12=(IASTNode)Match(input,INTO,Follow._INTO_in_intoClause387); - INTO12_tree = (IASTNode)adaptor.DupNode(INTO12); - - - root_1 = (IASTNode)adaptor.BecomeRoot(INTO12_tree, root_1); - - - DebugLocation(93, 12); - HandleClauseStart( INTO ); - - Match(input, TokenTypes.Down, null); - DebugLocation(93, 43); - // HqlSqlWalker.g:93:43: (p= path ) - DebugEnterAlt(1); - // HqlSqlWalker.g:93:44: p= path - { - DebugLocation(93, 45); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._path_in_intoClause394); - p=path(); - PopFollow(); - - adaptor.AddChild(root_1, p.Tree); - - - } - - DebugLocation(93, 54); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._insertablePropertySpec_in_intoClause399); - ps=insertablePropertySpec(); - PopFollow(); - - adaptor.AddChild(root_1, ps.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - retval.Tree = CreateIntoClause((p!=null?((HqlSqlWalker.path_return)p).p:default(String)), (ps!=null?((IASTNode)ps.Tree):default(IASTNode))); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("intoClause", 6); - LeaveRule("intoClause", 6); - LeaveRule_intoClause(); - } - DebugLocation(94, 1); - } finally { DebugExitRule(GrammarFileName, "intoClause"); } - return retval; - - } - // $ANTLR end "intoClause" - - partial void EnterRule_insertablePropertySpec(); - partial void LeaveRule_insertablePropertySpec(); - // $ANTLR start "insertablePropertySpec" - // HqlSqlWalker.g:96:1: insertablePropertySpec : ^( RANGE ( IDENT )+ ) ; - [GrammarRule("insertablePropertySpec")] - private AstTreeRuleReturnScope insertablePropertySpec() - { - EnterRule_insertablePropertySpec(); - EnterRule("insertablePropertySpec", 7); - TraceIn("insertablePropertySpec", 7); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode RANGE13 = default(IASTNode); - IASTNode IDENT14 = default(IASTNode); - - IASTNode RANGE13_tree = default(IASTNode); - IASTNode IDENT14_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "insertablePropertySpec"); - DebugLocation(96, 1); - try - { - // HqlSqlWalker.g:97:2: ( ^( RANGE ( IDENT )+ ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:97:4: ^( RANGE ( IDENT )+ ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(97, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(97, 7); - - _last = (IASTNode)input.LT(1); - RANGE13=(IASTNode)Match(input,RANGE,Follow._RANGE_in_insertablePropertySpec415); - RANGE13_tree = (IASTNode)adaptor.DupNode(RANGE13); - - - root_1 = (IASTNode)adaptor.BecomeRoot(RANGE13_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(97, 13); - // HqlSqlWalker.g:97:13: ( IDENT )+ - int cnt5=0; - try { DebugEnterSubRule(5); - while (true) - { - int alt5=2; - try { DebugEnterDecision(5, false); - int LA5_1 = input.LA(1); - - if ((LA5_1==IDENT)) - { - alt5 = 1; - } - - - } finally { DebugExitDecision(5); } - switch (alt5) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:97:14: IDENT - { - DebugLocation(97, 14); - - _last = (IASTNode)input.LT(1); - IDENT14=(IASTNode)Match(input,IDENT,Follow._IDENT_in_insertablePropertySpec418); - IDENT14_tree = (IASTNode)adaptor.DupNode(IDENT14); - - - adaptor.AddChild(root_1, IDENT14_tree); - - - } - break; - - default: - if (cnt5 >= 1) - goto loop5; - - EarlyExitException eee5 = new EarlyExitException( 5, input ); - DebugRecognitionException(eee5); - throw eee5; - } - cnt5++; - } - loop5: - ; - - } finally { DebugExitSubRule(5); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("insertablePropertySpec", 7); - LeaveRule("insertablePropertySpec", 7); - LeaveRule_insertablePropertySpec(); - } - DebugLocation(98, 1); - } finally { DebugExitRule(GrammarFileName, "insertablePropertySpec"); } - return retval; - - } - // $ANTLR end "insertablePropertySpec" - - partial void EnterRule_setClause(); - partial void LeaveRule_setClause(); - // $ANTLR start "setClause" - // HqlSqlWalker.g:100:1: setClause : ^( SET ( assignment )* ) ; - [GrammarRule("setClause")] - private AstTreeRuleReturnScope setClause() - { - EnterRule_setClause(); - EnterRule("setClause", 8); - TraceIn("setClause", 8); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode SET15 = default(IASTNode); - AstTreeRuleReturnScope assignment16 = default(AstTreeRuleReturnScope); - - IASTNode SET15_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "setClause"); - DebugLocation(100, 1); - try - { - // HqlSqlWalker.g:101:2: ( ^( SET ( assignment )* ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:101:4: ^( SET ( assignment )* ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(101, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(101, 7); - - _last = (IASTNode)input.LT(1); - SET15=(IASTNode)Match(input,SET,Follow._SET_in_setClause435); - SET15_tree = (IASTNode)adaptor.DupNode(SET15); - - - root_1 = (IASTNode)adaptor.BecomeRoot(SET15_tree, root_1); - - - DebugLocation(101, 11); - HandleClauseStart( SET ); - - if (input.LA(1) == TokenTypes.Down) { - Match(input, TokenTypes.Down, null); - DebugLocation(101, 41); - // HqlSqlWalker.g:101:41: ( assignment )* - try { DebugEnterSubRule(6); - while (true) - { - int alt6=2; - try { DebugEnterDecision(6, false); - int LA6_1 = input.LA(1); - - if ((LA6_1==EQ)) - { - alt6 = 1; - } - - - } finally { DebugExitDecision(6); } - switch ( alt6 ) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:101:42: assignment - { - DebugLocation(101, 42); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._assignment_in_setClause440); - assignment16=assignment(); - PopFollow(); - - adaptor.AddChild(root_1, assignment16.Tree); - - - } - break; - - default: - goto loop6; - } - } - - loop6: - ; - - } finally { DebugExitSubRule(6); } - - - Match(input, TokenTypes.Up, null); - } - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("setClause", 8); - LeaveRule("setClause", 8); - LeaveRule_setClause(); - } - DebugLocation(102, 1); - } finally { DebugExitRule(GrammarFileName, "setClause"); } - return retval; - - } - // $ANTLR end "setClause" - - partial void EnterRule_assignment(); - partial void LeaveRule_assignment(); - // $ANTLR start "assignment" - // HqlSqlWalker.g:104:1: assignment : ^( EQ (p= propertyRef ) ( newValue ) ) ; - [GrammarRule("assignment")] - private AstTreeRuleReturnScope assignment() - { - EnterRule_assignment(); - EnterRule("assignment", 9); - TraceIn("assignment", 9); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode EQ17 = default(IASTNode); - AstTreeRuleReturnScope p = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope newValue18 = default(AstTreeRuleReturnScope); - - IASTNode EQ17_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "assignment"); - DebugLocation(104, 1); - try - { - // HqlSqlWalker.g:110:2: ( ^( EQ (p= propertyRef ) ( newValue ) ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:110:4: ^( EQ (p= propertyRef ) ( newValue ) ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(110, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(110, 7); - - _last = (IASTNode)input.LT(1); - EQ17=(IASTNode)Match(input,EQ,Follow._EQ_in_assignment467); - EQ17_tree = (IASTNode)adaptor.DupNode(EQ17); - - - root_1 = (IASTNode)adaptor.BecomeRoot(EQ17_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(110, 10); - // HqlSqlWalker.g:110:10: (p= propertyRef ) - DebugEnterAlt(1); - // HqlSqlWalker.g:110:11: p= propertyRef - { - DebugLocation(110, 12); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._propertyRef_in_assignment472); - p=propertyRef(); - PopFollow(); - - adaptor.AddChild(root_1, p.Tree); - - - } - - DebugLocation(110, 26); - Resolve((p!=null?((IASTNode)p.Tree):default(IASTNode))); - DebugLocation(110, 48); - // HqlSqlWalker.g:110:48: ( newValue ) - DebugEnterAlt(1); - // HqlSqlWalker.g:110:49: newValue - { - DebugLocation(110, 49); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._newValue_in_assignment478); - newValue18=newValue(); - PopFollow(); - - adaptor.AddChild(root_1, newValue18.Tree); - - - } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - EvaluateAssignment( retval.Tree ); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("assignment", 9); - LeaveRule("assignment", 9); - LeaveRule_assignment(); - } - DebugLocation(111, 1); - } finally { DebugExitRule(GrammarFileName, "assignment"); } - return retval; - - } - // $ANTLR end "assignment" - - partial void EnterRule_newValue(); - partial void LeaveRule_newValue(); - // $ANTLR start "newValue" - // HqlSqlWalker.g:114:1: newValue : ( expr | query ); - [GrammarRule("newValue")] - private AstTreeRuleReturnScope newValue() - { - EnterRule_newValue(); - EnterRule("newValue", 10); - TraceIn("newValue", 10); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope expr19 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope query20 = default(AstTreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "newValue"); - DebugLocation(114, 1); - try - { - // HqlSqlWalker.g:115:2: ( expr | query ) - int alt7=2; - try { DebugEnterDecision(7, false); - int LA7_1 = input.LA(1); - - if ((LA7_1==AGGREGATE||LA7_1==BAND||(LA7_1>=BNOT && LA7_1<=BOR)||(LA7_1>=BXOR && LA7_1<=CASE2)||LA7_1==COLON||LA7_1==COUNT||(LA7_1>=DIV && LA7_1<=DOT)||LA7_1==FALSE||LA7_1==IDENT||LA7_1==INDEX_OP||LA7_1==JAVA_CONSTANT||LA7_1==METHOD_CALL||LA7_1==MINUS||(LA7_1>=NULL && LA7_1<=NUM_LONG)||(LA7_1>=PARAM && LA7_1<=PLUS)||LA7_1==QUOTED_String||LA7_1==STAR||(LA7_1>=TRUE && LA7_1<=UNARY_MINUS)||LA7_1==VECTOR_EXPR||LA7_1==WEIRD_IDENT)) - { - alt7 = 1; - } - else if ((LA7_1==QUERY||LA7_1==UNION)) - { - alt7 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 7, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(7); } - switch (alt7) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:115:4: expr - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(115, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_newValue494); - expr19=expr(); - PopFollow(); - - adaptor.AddChild(root_0, expr19.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:115:11: query - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(115, 11); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._query_in_newValue498); - query20=query(); - PopFollow(); - - adaptor.AddChild(root_0, query20.Tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("newValue", 10); - LeaveRule("newValue", 10); - LeaveRule_newValue(); - } - DebugLocation(116, 1); - } finally { DebugExitRule(GrammarFileName, "newValue"); } - return retval; - - } - // $ANTLR end "newValue" - - partial void EnterRule_query(); - partial void LeaveRule_query(); - // $ANTLR start "query" - // HqlSqlWalker.g:118:1: query : ( unionedQuery | ^( UNION unionedQuery query ) ); - [GrammarRule("query")] - private AstTreeRuleReturnScope query() - { - EnterRule_query(); - EnterRule("query", 11); - TraceIn("query", 11); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode UNION22 = default(IASTNode); - AstTreeRuleReturnScope unionedQuery21 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope unionedQuery23 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope query24 = default(AstTreeRuleReturnScope); - - IASTNode UNION22_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "query"); - DebugLocation(118, 1); - try - { - // HqlSqlWalker.g:119:2: ( unionedQuery | ^( UNION unionedQuery query ) ) - int alt8=2; - try { DebugEnterDecision(8, false); - int LA8_1 = input.LA(1); - - if ((LA8_1==QUERY)) - { - alt8 = 1; - } - else if ((LA8_1==UNION)) - { - alt8 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 8, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(8); } - switch (alt8) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:119:4: unionedQuery - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(119, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._unionedQuery_in_query509); - unionedQuery21=unionedQuery(); - PopFollow(); - - adaptor.AddChild(root_0, unionedQuery21.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:120:4: ^( UNION unionedQuery query ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(120, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(120, 6); - - _last = (IASTNode)input.LT(1); - UNION22=(IASTNode)Match(input,UNION,Follow._UNION_in_query516); - UNION22_tree = (IASTNode)adaptor.DupNode(UNION22); - - - root_1 = (IASTNode)adaptor.BecomeRoot(UNION22_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(120, 12); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._unionedQuery_in_query518); - unionedQuery23=unionedQuery(); - PopFollow(); - - adaptor.AddChild(root_1, unionedQuery23.Tree); - - DebugLocation(120, 25); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._query_in_query520); - query24=query(); - PopFollow(); - - adaptor.AddChild(root_1, query24.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("query", 11); - LeaveRule("query", 11); - LeaveRule_query(); - } - DebugLocation(121, 1); - } finally { DebugExitRule(GrammarFileName, "query"); } - return retval; - - } - // $ANTLR end "query" - - partial void EnterRule_unionedQuery(); - partial void LeaveRule_unionedQuery(); - // $ANTLR start "unionedQuery" - // HqlSqlWalker.g:125:1: unionedQuery : ^( QUERY ^( SELECT_FROM f= fromClause (s= selectClause )? ) (w= whereClause )? (g= groupClause )? (h= havingClause )? (o= orderClause )? (sk= skipClause )? (tk= takeClause )? ) -> ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $h)? ( $o)? ( $sk)? ( $tk)? ) ; - [GrammarRule("unionedQuery")] - private AstTreeRuleReturnScope unionedQuery() - { - EnterRule_unionedQuery(); - EnterRule("unionedQuery", 12); - TraceIn("unionedQuery", 12); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode QUERY25 = default(IASTNode); - IASTNode SELECT_FROM26 = default(IASTNode); - AstTreeRuleReturnScope f = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope s = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope w = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope g = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope h = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope o = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope sk = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope tk = default(AstTreeRuleReturnScope); - - IASTNode QUERY25_tree = default(IASTNode); - IASTNode SELECT_FROM26_tree = default(IASTNode); - RewriteRuleNodeStream stream_QUERY=new RewriteRuleNodeStream(adaptor,"token QUERY"); - RewriteRuleNodeStream stream_SELECT_FROM=new RewriteRuleNodeStream(adaptor,"token SELECT_FROM"); - RewriteRuleSubtreeStream stream_fromClause=new RewriteRuleSubtreeStream(adaptor,"rule fromClause"); - RewriteRuleSubtreeStream stream_selectClause=new RewriteRuleSubtreeStream(adaptor,"rule selectClause"); - RewriteRuleSubtreeStream stream_whereClause=new RewriteRuleSubtreeStream(adaptor,"rule whereClause"); - RewriteRuleSubtreeStream stream_groupClause=new RewriteRuleSubtreeStream(adaptor,"rule groupClause"); - RewriteRuleSubtreeStream stream_havingClause=new RewriteRuleSubtreeStream(adaptor,"rule havingClause"); - RewriteRuleSubtreeStream stream_orderClause=new RewriteRuleSubtreeStream(adaptor,"rule orderClause"); - RewriteRuleSubtreeStream stream_skipClause=new RewriteRuleSubtreeStream(adaptor,"rule skipClause"); - RewriteRuleSubtreeStream stream_takeClause=new RewriteRuleSubtreeStream(adaptor,"rule takeClause"); - try { DebugEnterRule(GrammarFileName, "unionedQuery"); - DebugLocation(125, 1); - try - { - // HqlSqlWalker.g:132:2: ( ^( QUERY ^( SELECT_FROM f= fromClause (s= selectClause )? ) (w= whereClause )? (g= groupClause )? (h= havingClause )? (o= orderClause )? (sk= skipClause )? (tk= takeClause )? ) -> ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $h)? ( $o)? ( $sk)? ( $tk)? ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:132:4: ^( QUERY ^( SELECT_FROM f= fromClause (s= selectClause )? ) (w= whereClause )? (g= groupClause )? (h= havingClause )? (o= orderClause )? (sk= skipClause )? (tk= takeClause )? ) - { - DebugLocation(132, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(132, 7); - - _last = (IASTNode)input.LT(1); - QUERY25=(IASTNode)Match(input,QUERY,Follow._QUERY_in_unionedQuery543); - - stream_QUERY.Add(QUERY25); - - - DebugLocation(132, 13); - BeforeStatement( "select", SELECT ); - - Match(input, TokenTypes.Down, null); - DebugLocation(134, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_2 = _last; - IASTNode _first_2 = default(IASTNode); - IASTNode root_2 = (IASTNode)adaptor.Nil(); - DebugLocation(134, 6); - - _last = (IASTNode)input.LT(1); - SELECT_FROM26=(IASTNode)Match(input,SELECT_FROM,Follow._SELECT_FROM_in_unionedQuery555); - - stream_SELECT_FROM.Add(SELECT_FROM26); - - - Match(input, TokenTypes.Down, null); - DebugLocation(135, 6); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._fromClause_in_unionedQuery563); - f=fromClause(); - PopFollow(); - - stream_fromClause.Add(f.Tree); - DebugLocation(136, 5); - // HqlSqlWalker.g:136:5: (s= selectClause )? - int alt9=2; - try { DebugEnterSubRule(9); - try { DebugEnterDecision(9, false); - int LA9_1 = input.LA(1); - - if ((LA9_1==SELECT)) - { - alt9 = 1; - } - } finally { DebugExitDecision(9); } - switch (alt9) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:136:6: s= selectClause - { - DebugLocation(136, 7); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._selectClause_in_unionedQuery572); - s=selectClause(); - PopFollow(); - - stream_selectClause.Add(s.Tree); - - } - break; - - } - } finally { DebugExitSubRule(9); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_1, root_2); - _last = _save_last_2; - } - - DebugLocation(138, 4); - // HqlSqlWalker.g:138:4: (w= whereClause )? - int alt10=2; - try { DebugEnterSubRule(10); - try { DebugEnterDecision(10, false); - int LA10_1 = input.LA(1); - - if ((LA10_1==WHERE)) - { - alt10 = 1; - } - } finally { DebugExitDecision(10); } - switch (alt10) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:138:5: w= whereClause - { - DebugLocation(138, 6); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._whereClause_in_unionedQuery587); - w=whereClause(); - PopFollow(); - - stream_whereClause.Add(w.Tree); - - } - break; - - } - } finally { DebugExitSubRule(10); } - - DebugLocation(139, 4); - // HqlSqlWalker.g:139:4: (g= groupClause )? - int alt11=2; - try { DebugEnterSubRule(11); - try { DebugEnterDecision(11, false); - int LA11_1 = input.LA(1); - - if ((LA11_1==GROUP)) - { - alt11 = 1; - } - } finally { DebugExitDecision(11); } - switch (alt11) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:139:5: g= groupClause - { - DebugLocation(139, 6); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._groupClause_in_unionedQuery597); - g=groupClause(); - PopFollow(); - - stream_groupClause.Add(g.Tree); - - } - break; - - } - } finally { DebugExitSubRule(11); } - - DebugLocation(140, 4); - // HqlSqlWalker.g:140:4: (h= havingClause )? - int alt12=2; - try { DebugEnterSubRule(12); - try { DebugEnterDecision(12, false); - int LA12_1 = input.LA(1); - - if ((LA12_1==HAVING)) - { - alt12 = 1; - } - } finally { DebugExitDecision(12); } - switch (alt12) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:140:5: h= havingClause - { - DebugLocation(140, 6); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._havingClause_in_unionedQuery607); - h=havingClause(); - PopFollow(); - - stream_havingClause.Add(h.Tree); - - } - break; - - } - } finally { DebugExitSubRule(12); } - - DebugLocation(141, 4); - // HqlSqlWalker.g:141:4: (o= orderClause )? - int alt13=2; - try { DebugEnterSubRule(13); - try { DebugEnterDecision(13, false); - int LA13_1 = input.LA(1); - - if ((LA13_1==ORDER)) - { - alt13 = 1; - } - } finally { DebugExitDecision(13); } - switch (alt13) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:141:5: o= orderClause - { - DebugLocation(141, 6); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._orderClause_in_unionedQuery617); - o=orderClause(); - PopFollow(); - - stream_orderClause.Add(o.Tree); - - } - break; - - } - } finally { DebugExitSubRule(13); } - - DebugLocation(142, 4); - // HqlSqlWalker.g:142:4: (sk= skipClause )? - int alt14=2; - try { DebugEnterSubRule(14); - try { DebugEnterDecision(14, false); - int LA14_1 = input.LA(1); - - if ((LA14_1==SKIP)) - { - alt14 = 1; - } - } finally { DebugExitDecision(14); } - switch (alt14) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:142:5: sk= skipClause - { - DebugLocation(142, 7); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._skipClause_in_unionedQuery627); - sk=skipClause(); - PopFollow(); - - stream_skipClause.Add(sk.Tree); - - } - break; - - } - } finally { DebugExitSubRule(14); } - - DebugLocation(143, 4); - // HqlSqlWalker.g:143:4: (tk= takeClause )? - int alt15=2; - try { DebugEnterSubRule(15); - try { DebugEnterDecision(15, false); - int LA15_1 = input.LA(1); - - if ((LA15_1==TAKE)) - { - alt15 = 1; - } - } finally { DebugExitDecision(15); } - switch (alt15) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:143:5: tk= takeClause - { - DebugLocation(143, 7); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._takeClause_in_unionedQuery637); - tk=takeClause(); - PopFollow(); - - stream_takeClause.Add(tk.Tree); - - } - break; - - } - } finally { DebugExitSubRule(15); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - - { - // AST REWRITE - // elements: s, f, w, g, h, o, sk, tk - // token labels: - // rule labels: s, f, w, g, h, o, sk, tk, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_s=new RewriteRuleSubtreeStream(adaptor,"rule s",s!=null?s.Tree:null); - RewriteRuleSubtreeStream stream_f=new RewriteRuleSubtreeStream(adaptor,"rule f",f!=null?f.Tree:null); - RewriteRuleSubtreeStream stream_w=new RewriteRuleSubtreeStream(adaptor,"rule w",w!=null?w.Tree:null); - RewriteRuleSubtreeStream stream_g=new RewriteRuleSubtreeStream(adaptor,"rule g",g!=null?g.Tree:null); - RewriteRuleSubtreeStream stream_h=new RewriteRuleSubtreeStream(adaptor,"rule h",h!=null?h.Tree:null); - RewriteRuleSubtreeStream stream_o=new RewriteRuleSubtreeStream(adaptor,"rule o",o!=null?o.Tree:null); - RewriteRuleSubtreeStream stream_sk=new RewriteRuleSubtreeStream(adaptor,"rule sk",sk!=null?sk.Tree:null); - RewriteRuleSubtreeStream stream_tk=new RewriteRuleSubtreeStream(adaptor,"rule tk",tk!=null?tk.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 145:2: -> ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $h)? ( $o)? ( $sk)? ( $tk)? ) - { - DebugLocation(145, 5); - // HqlSqlWalker.g:145:5: ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $h)? ( $o)? ( $sk)? ( $tk)? ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(145, 7); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(SELECT, "SELECT"), root_1); - - DebugLocation(145, 15); - // HqlSqlWalker.g:145:15: ( $s)? - if (stream_s.HasNext) - { - DebugLocation(145, 15); - adaptor.AddChild(root_1, stream_s.NextTree()); - - } - stream_s.Reset(); - DebugLocation(145, 19); - adaptor.AddChild(root_1, stream_f.NextTree()); - DebugLocation(145, 22); - // HqlSqlWalker.g:145:22: ( $w)? - if (stream_w.HasNext) - { - DebugLocation(145, 22); - adaptor.AddChild(root_1, stream_w.NextTree()); - - } - stream_w.Reset(); - DebugLocation(145, 26); - // HqlSqlWalker.g:145:26: ( $g)? - if (stream_g.HasNext) - { - DebugLocation(145, 26); - adaptor.AddChild(root_1, stream_g.NextTree()); - - } - stream_g.Reset(); - DebugLocation(145, 30); - // HqlSqlWalker.g:145:30: ( $h)? - if (stream_h.HasNext) - { - DebugLocation(145, 30); - adaptor.AddChild(root_1, stream_h.NextTree()); - - } - stream_h.Reset(); - DebugLocation(145, 34); - // HqlSqlWalker.g:145:34: ( $o)? - if (stream_o.HasNext) - { - DebugLocation(145, 34); - adaptor.AddChild(root_1, stream_o.NextTree()); - - } - stream_o.Reset(); - DebugLocation(145, 38); - // HqlSqlWalker.g:145:38: ( $sk)? - if (stream_sk.HasNext) - { - DebugLocation(145, 38); - adaptor.AddChild(root_1, stream_sk.NextTree()); - - } - stream_sk.Reset(); - DebugLocation(145, 43); - // HqlSqlWalker.g:145:43: ( $tk)? - if (stream_tk.HasNext) - { - DebugLocation(145, 43); - adaptor.AddChild(root_1, stream_tk.NextTree()); - - } - stream_tk.Reset(); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - // Antlr note: #x_in refers to the input AST, #x refers to the output AST - BeforeStatementCompletion( "select" ); - ProcessQuery( (s!=null?((IASTNode)s.Tree):default(IASTNode)), retval.Tree ); - AfterStatementCompletion( "select" ); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("unionedQuery", 12); - LeaveRule("unionedQuery", 12); - LeaveRule_unionedQuery(); - } - DebugLocation(146, 1); - } finally { DebugExitRule(GrammarFileName, "unionedQuery"); } - return retval; - - } - // $ANTLR end "unionedQuery" - - partial void EnterRule_orderClause(); - partial void LeaveRule_orderClause(); - // $ANTLR start "orderClause" - // HqlSqlWalker.g:148:1: orderClause : ^( ORDER ( orderExprs ) ) ; - [GrammarRule("orderClause")] - private AstTreeRuleReturnScope orderClause() - { - EnterRule_orderClause(); - EnterRule("orderClause", 13); - TraceIn("orderClause", 13); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode ORDER27 = default(IASTNode); - AstTreeRuleReturnScope orderExprs28 = default(AstTreeRuleReturnScope); - - IASTNode ORDER27_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "orderClause"); - DebugLocation(148, 1); - try - { - // HqlSqlWalker.g:149:2: ( ^( ORDER ( orderExprs ) ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:149:4: ^( ORDER ( orderExprs ) ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(149, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(149, 6); - - _last = (IASTNode)input.LT(1); - ORDER27=(IASTNode)Match(input,ORDER,Follow._ORDER_in_orderClause694); - ORDER27_tree = (IASTNode)adaptor.DupNode(ORDER27); - - - root_1 = (IASTNode)adaptor.BecomeRoot(ORDER27_tree, root_1); - - - DebugLocation(149, 12); - HandleClauseStart( ORDER ); - - Match(input, TokenTypes.Down, null); - DebugLocation(149, 44); - // HqlSqlWalker.g:149:44: ( orderExprs ) - DebugEnterAlt(1); - // HqlSqlWalker.g:149:45: orderExprs - { - DebugLocation(149, 45); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._orderExprs_in_orderClause699); - orderExprs28=orderExprs(); - PopFollow(); - - adaptor.AddChild(root_1, orderExprs28.Tree); - - - } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("orderClause", 13); - LeaveRule("orderClause", 13); - LeaveRule_orderClause(); - } - DebugLocation(150, 1); - } finally { DebugExitRule(GrammarFileName, "orderClause"); } - return retval; - - } - // $ANTLR end "orderClause" - - partial void EnterRule_orderExprs(); - partial void LeaveRule_orderExprs(); - // $ANTLR start "orderExprs" - // HqlSqlWalker.g:152:1: orderExprs : orderExpr ( ASCENDING | DESCENDING )? ( orderExprs )? ; - [GrammarRule("orderExprs")] - private AstTreeRuleReturnScope orderExprs() - { - EnterRule_orderExprs(); - EnterRule("orderExprs", 14); - TraceIn("orderExprs", 14); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode set30 = default(IASTNode); - AstTreeRuleReturnScope orderExpr29 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope orderExprs31 = default(AstTreeRuleReturnScope); - - IASTNode set30_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "orderExprs"); - DebugLocation(152, 1); - try - { - // HqlSqlWalker.g:153:2: ( orderExpr ( ASCENDING | DESCENDING )? ( orderExprs )? ) - DebugEnterAlt(1); - // HqlSqlWalker.g:153:4: orderExpr ( ASCENDING | DESCENDING )? ( orderExprs )? - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(153, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._orderExpr_in_orderExprs712); - orderExpr29=orderExpr(); - PopFollow(); - - adaptor.AddChild(root_0, orderExpr29.Tree); - - DebugLocation(153, 14); - // HqlSqlWalker.g:153:14: ( ASCENDING | DESCENDING )? - int alt16=2; - try { DebugEnterSubRule(16); - try { DebugEnterDecision(16, false); - int LA16_1 = input.LA(1); - - if ((LA16_1==ASCENDING||LA16_1==DESCENDING)) - { - alt16 = 1; - } - } finally { DebugExitDecision(16); } - switch (alt16) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g: - { - DebugLocation(153, 14); - - _last = (IASTNode)input.LT(1); - set30=(IASTNode)input.LT(1); - if (input.LA(1)==ASCENDING||input.LA(1)==DESCENDING) - { - input.Consume(); - set30_tree = (IASTNode)adaptor.DupNode(set30); - - - adaptor.AddChild(root_0, set30_tree); - - state.errorRecovery=false; - } - else - { - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - throw mse; - } - - - - } - break; - - } - } finally { DebugExitSubRule(16); } - - DebugLocation(153, 42); - // HqlSqlWalker.g:153:42: ( orderExprs )? - int alt17=2; - try { DebugEnterSubRule(17); - try { DebugEnterDecision(17, false); - int LA17_1 = input.LA(1); - - if ((LA17_1==AGGREGATE||LA17_1==BAND||(LA17_1>=BNOT && LA17_1<=BOR)||(LA17_1>=BXOR && LA17_1<=CASE2)||LA17_1==COLON||LA17_1==COUNT||(LA17_1>=DIV && LA17_1<=DOT)||LA17_1==FALSE||LA17_1==IDENT||LA17_1==INDEX_OP||LA17_1==JAVA_CONSTANT||LA17_1==METHOD_CALL||LA17_1==MINUS||(LA17_1>=NULL && LA17_1<=NUM_LONG)||(LA17_1>=PARAM && LA17_1<=PLUS)||(LA17_1>=QUERY && LA17_1<=QUOTED_String)||LA17_1==STAR||(LA17_1>=TRUE && LA17_1<=UNARY_MINUS)||LA17_1==UNION||LA17_1==VECTOR_EXPR||LA17_1==WEIRD_IDENT)) - { - alt17 = 1; - } - } finally { DebugExitDecision(17); } - switch (alt17) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:153:43: orderExprs - { - DebugLocation(153, 43); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._orderExprs_in_orderExprs726); - orderExprs31=orderExprs(); - PopFollow(); - - adaptor.AddChild(root_0, orderExprs31.Tree); - - - } - break; - - } - } finally { DebugExitSubRule(17); } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("orderExprs", 14); - LeaveRule("orderExprs", 14); - LeaveRule_orderExprs(); - } - DebugLocation(154, 1); - } finally { DebugExitRule(GrammarFileName, "orderExprs"); } - return retval; - - } - // $ANTLR end "orderExprs" - - partial void EnterRule_orderExpr(); - partial void LeaveRule_orderExpr(); - // $ANTLR start "orderExpr" - // HqlSqlWalker.g:156:1: orderExpr : ({...}? resultVariableRef | expr | query ); - [GrammarRule("orderExpr")] - private AstTreeRuleReturnScope orderExpr() - { - EnterRule_orderExpr(); - EnterRule("orderExpr", 15); - TraceIn("orderExpr", 15); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope resultVariableRef32 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr33 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope query34 = default(AstTreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "orderExpr"); - DebugLocation(156, 1); - try - { - // HqlSqlWalker.g:157:2: ({...}? resultVariableRef | expr | query ) - int alt18=3; - try { DebugEnterDecision(18, false); - switch (input.LA(1)) - { - case IDENT: - case WEIRD_IDENT: - { - int LA18_2 = input.LA(2); - - if ((( IsOrderExpressionResultVariableRef( (IASTNode) input.LT(1) ) ))) - { - alt18 = 1; - } - else if ((true)) - { - alt18 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 18, 1, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case AGGREGATE: - case BAND: - case BNOT: - case BOR: - case BXOR: - case CASE: - case CASE2: - case COLON: - case COUNT: - case DIV: - case DOT: - case FALSE: - case INDEX_OP: - case JAVA_CONSTANT: - case METHOD_CALL: - case MINUS: - case NULL: - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case PARAM: - case PLUS: - case QUOTED_String: - case STAR: - case TRUE: - case UNARY_MINUS: - case VECTOR_EXPR: - { - alt18 = 2; - } - break; - case QUERY: - case UNION: - { - alt18 = 3; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 18, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(18); } - switch (alt18) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:157:4: {...}? resultVariableRef - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(157, 4); - if (!(( IsOrderExpressionResultVariableRef( (IASTNode) input.LT(1) ) ))) - { - throw new FailedPredicateException(input, "orderExpr", " IsOrderExpressionResultVariableRef( (IASTNode) input.LT(1) ) "); - } - DebugLocation(157, 70); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._resultVariableRef_in_orderExpr741); - resultVariableRef32=resultVariableRef(); - PopFollow(); - - adaptor.AddChild(root_0, resultVariableRef32.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:158:4: expr - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(158, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_orderExpr746); - expr33=expr(); - PopFollow(); - - adaptor.AddChild(root_0, expr33.Tree); - - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:159:4: query - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(159, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._query_in_orderExpr751); - query34=query(); - PopFollow(); - - adaptor.AddChild(root_0, query34.Tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("orderExpr", 15); - LeaveRule("orderExpr", 15); - LeaveRule_orderExpr(); - } - DebugLocation(160, 1); - } finally { DebugExitRule(GrammarFileName, "orderExpr"); } - return retval; - - } - // $ANTLR end "orderExpr" - - partial void EnterRule_resultVariableRef(); - partial void LeaveRule_resultVariableRef(); - // $ANTLR start "resultVariableRef" - // HqlSqlWalker.g:162:1: resultVariableRef : i= identifier -> ^( RESULT_VARIABLE_REF[$i.tree.Text] ) ; - [GrammarRule("resultVariableRef")] - private AstTreeRuleReturnScope resultVariableRef() - { - EnterRule_resultVariableRef(); - EnterRule("resultVariableRef", 16); - TraceIn("resultVariableRef", 16); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope i = default(AstTreeRuleReturnScope); - - RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier"); - try { DebugEnterRule(GrammarFileName, "resultVariableRef"); - DebugLocation(162, 1); - try - { - // HqlSqlWalker.g:166:2: (i= identifier -> ^( RESULT_VARIABLE_REF[$i.tree.Text] ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:166:4: i= identifier - { - DebugLocation(166, 5); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._identifier_in_resultVariableRef771); - i=identifier(); - PopFollow(); - - stream_identifier.Add(i.Tree); - - - { - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 167:2: -> ^( RESULT_VARIABLE_REF[$i.tree.Text] ) - { - DebugLocation(167, 5); - // HqlSqlWalker.g:167:5: ^( RESULT_VARIABLE_REF[$i.tree.Text] ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(167, 7); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(RESULT_VARIABLE_REF, (i!=null?((IASTNode)i.Tree):default(IASTNode)).Text), root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - HandleResultVariableRef( retval.Tree ); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("resultVariableRef", 16); - LeaveRule("resultVariableRef", 16); - LeaveRule_resultVariableRef(); - } - DebugLocation(168, 1); - } finally { DebugExitRule(GrammarFileName, "resultVariableRef"); } - return retval; - - } - // $ANTLR end "resultVariableRef" - - partial void EnterRule_skipClause(); - partial void LeaveRule_skipClause(); - // $ANTLR start "skipClause" - // HqlSqlWalker.g:170:1: skipClause : ^( SKIP ( NUM_INT | parameter ) ) ; - [GrammarRule("skipClause")] - private AstTreeRuleReturnScope skipClause() - { - EnterRule_skipClause(); - EnterRule("skipClause", 17); - TraceIn("skipClause", 17); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode SKIP35 = default(IASTNode); - IASTNode NUM_INT36 = default(IASTNode); - AstTreeRuleReturnScope parameter37 = default(AstTreeRuleReturnScope); - - IASTNode SKIP35_tree = default(IASTNode); - IASTNode NUM_INT36_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "skipClause"); - DebugLocation(170, 1); - try - { - // HqlSqlWalker.g:171:2: ( ^( SKIP ( NUM_INT | parameter ) ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:171:4: ^( SKIP ( NUM_INT | parameter ) ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(171, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(171, 6); - - _last = (IASTNode)input.LT(1); - SKIP35=(IASTNode)Match(input,SKIP,Follow._SKIP_in_skipClause793); - SKIP35_tree = (IASTNode)adaptor.DupNode(SKIP35); - - - root_1 = (IASTNode)adaptor.BecomeRoot(SKIP35_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(171, 11); - // HqlSqlWalker.g:171:11: ( NUM_INT | parameter ) - int alt19=2; - try { DebugEnterSubRule(19); - try { DebugEnterDecision(19, false); - int LA19_1 = input.LA(1); - - if ((LA19_1==NUM_INT)) - { - alt19 = 1; - } - else if ((LA19_1==COLON||LA19_1==PARAM)) - { - alt19 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 19, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(19); } - switch (alt19) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:171:12: NUM_INT - { - DebugLocation(171, 12); - - _last = (IASTNode)input.LT(1); - NUM_INT36=(IASTNode)Match(input,NUM_INT,Follow._NUM_INT_in_skipClause796); - NUM_INT36_tree = (IASTNode)adaptor.DupNode(NUM_INT36); - - - adaptor.AddChild(root_1, NUM_INT36_tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:171:22: parameter - { - DebugLocation(171, 22); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._parameter_in_skipClause800); - parameter37=parameter(); - PopFollow(); - - adaptor.AddChild(root_1, parameter37.Tree); - - - } - break; - - } - } finally { DebugExitSubRule(19); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("skipClause", 17); - LeaveRule("skipClause", 17); - LeaveRule_skipClause(); - } - DebugLocation(172, 1); - } finally { DebugExitRule(GrammarFileName, "skipClause"); } - return retval; - - } - // $ANTLR end "skipClause" - - partial void EnterRule_takeClause(); - partial void LeaveRule_takeClause(); - // $ANTLR start "takeClause" - // HqlSqlWalker.g:174:1: takeClause : ^( TAKE ( NUM_INT | parameter ) ) ; - [GrammarRule("takeClause")] - private AstTreeRuleReturnScope takeClause() - { - EnterRule_takeClause(); - EnterRule("takeClause", 18); - TraceIn("takeClause", 18); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode TAKE38 = default(IASTNode); - IASTNode NUM_INT39 = default(IASTNode); - AstTreeRuleReturnScope parameter40 = default(AstTreeRuleReturnScope); - - IASTNode TAKE38_tree = default(IASTNode); - IASTNode NUM_INT39_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "takeClause"); - DebugLocation(174, 1); - try - { - // HqlSqlWalker.g:175:2: ( ^( TAKE ( NUM_INT | parameter ) ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:175:4: ^( TAKE ( NUM_INT | parameter ) ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(175, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(175, 6); - - _last = (IASTNode)input.LT(1); - TAKE38=(IASTNode)Match(input,TAKE,Follow._TAKE_in_takeClause814); - TAKE38_tree = (IASTNode)adaptor.DupNode(TAKE38); - - - root_1 = (IASTNode)adaptor.BecomeRoot(TAKE38_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(175, 11); - // HqlSqlWalker.g:175:11: ( NUM_INT | parameter ) - int alt20=2; - try { DebugEnterSubRule(20); - try { DebugEnterDecision(20, false); - int LA20_1 = input.LA(1); - - if ((LA20_1==NUM_INT)) - { - alt20 = 1; - } - else if ((LA20_1==COLON||LA20_1==PARAM)) - { - alt20 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 20, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(20); } - switch (alt20) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:175:12: NUM_INT - { - DebugLocation(175, 12); - - _last = (IASTNode)input.LT(1); - NUM_INT39=(IASTNode)Match(input,NUM_INT,Follow._NUM_INT_in_takeClause817); - NUM_INT39_tree = (IASTNode)adaptor.DupNode(NUM_INT39); - - - adaptor.AddChild(root_1, NUM_INT39_tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:175:22: parameter - { - DebugLocation(175, 22); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._parameter_in_takeClause821); - parameter40=parameter(); - PopFollow(); - - adaptor.AddChild(root_1, parameter40.Tree); - - - } - break; - - } - } finally { DebugExitSubRule(20); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("takeClause", 18); - LeaveRule("takeClause", 18); - LeaveRule_takeClause(); - } - DebugLocation(176, 1); - } finally { DebugExitRule(GrammarFileName, "takeClause"); } - return retval; - - } - // $ANTLR end "takeClause" - - partial void EnterRule_groupClause(); - partial void LeaveRule_groupClause(); - // $ANTLR start "groupClause" - // HqlSqlWalker.g:178:1: groupClause : ^( GROUP ( expr )+ ) ; - [GrammarRule("groupClause")] - private AstTreeRuleReturnScope groupClause() - { - EnterRule_groupClause(); - EnterRule("groupClause", 19); - TraceIn("groupClause", 19); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode GROUP41 = default(IASTNode); - AstTreeRuleReturnScope expr42 = default(AstTreeRuleReturnScope); - - IASTNode GROUP41_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "groupClause"); - DebugLocation(178, 1); - try - { - // HqlSqlWalker.g:179:2: ( ^( GROUP ( expr )+ ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:179:4: ^( GROUP ( expr )+ ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(179, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(179, 6); - - _last = (IASTNode)input.LT(1); - GROUP41=(IASTNode)Match(input,GROUP,Follow._GROUP_in_groupClause835); - GROUP41_tree = (IASTNode)adaptor.DupNode(GROUP41); - - - root_1 = (IASTNode)adaptor.BecomeRoot(GROUP41_tree, root_1); - - - DebugLocation(179, 12); - HandleClauseStart( GROUP ); - - Match(input, TokenTypes.Down, null); - DebugLocation(179, 44); - // HqlSqlWalker.g:179:44: ( expr )+ - int cnt21=0; - try { DebugEnterSubRule(21); - while (true) - { - int alt21=2; - try { DebugEnterDecision(21, false); - int LA21_1 = input.LA(1); - - if ((LA21_1==AGGREGATE||LA21_1==BAND||(LA21_1>=BNOT && LA21_1<=BOR)||(LA21_1>=BXOR && LA21_1<=CASE2)||LA21_1==COLON||LA21_1==COUNT||(LA21_1>=DIV && LA21_1<=DOT)||LA21_1==FALSE||LA21_1==IDENT||LA21_1==INDEX_OP||LA21_1==JAVA_CONSTANT||LA21_1==METHOD_CALL||LA21_1==MINUS||(LA21_1>=NULL && LA21_1<=NUM_LONG)||(LA21_1>=PARAM && LA21_1<=PLUS)||LA21_1==QUOTED_String||LA21_1==STAR||(LA21_1>=TRUE && LA21_1<=UNARY_MINUS)||LA21_1==VECTOR_EXPR||LA21_1==WEIRD_IDENT)) - { - alt21 = 1; - } - - - } finally { DebugExitDecision(21); } - switch (alt21) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:179:45: expr - { - DebugLocation(179, 45); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_groupClause840); - expr42=expr(); - PopFollow(); - - adaptor.AddChild(root_1, expr42.Tree); - - - } - break; - - default: - if (cnt21 >= 1) - goto loop21; - - EarlyExitException eee21 = new EarlyExitException( 21, input ); - DebugRecognitionException(eee21); - throw eee21; - } - cnt21++; - } - loop21: - ; - - } finally { DebugExitSubRule(21); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("groupClause", 19); - LeaveRule("groupClause", 19); - LeaveRule_groupClause(); - } - DebugLocation(180, 1); - } finally { DebugExitRule(GrammarFileName, "groupClause"); } - return retval; - - } - // $ANTLR end "groupClause" - - partial void EnterRule_havingClause(); - partial void LeaveRule_havingClause(); - // $ANTLR start "havingClause" - // HqlSqlWalker.g:182:1: havingClause : ^( HAVING logicalExpr ) ; - [GrammarRule("havingClause")] - private AstTreeRuleReturnScope havingClause() - { - EnterRule_havingClause(); - EnterRule("havingClause", 20); - TraceIn("havingClause", 20); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode HAVING43 = default(IASTNode); - AstTreeRuleReturnScope logicalExpr44 = default(AstTreeRuleReturnScope); - - IASTNode HAVING43_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "havingClause"); - DebugLocation(182, 1); - try - { - // HqlSqlWalker.g:183:2: ( ^( HAVING logicalExpr ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:183:4: ^( HAVING logicalExpr ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(183, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(183, 6); - - _last = (IASTNode)input.LT(1); - HAVING43=(IASTNode)Match(input,HAVING,Follow._HAVING_in_havingClause856); - HAVING43_tree = (IASTNode)adaptor.DupNode(HAVING43); - - - root_1 = (IASTNode)adaptor.BecomeRoot(HAVING43_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(183, 13); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._logicalExpr_in_havingClause858); - logicalExpr44=logicalExpr(); - PopFollow(); - - adaptor.AddChild(root_1, logicalExpr44.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("havingClause", 20); - LeaveRule("havingClause", 20); - LeaveRule_havingClause(); - } - DebugLocation(184, 1); - } finally { DebugExitRule(GrammarFileName, "havingClause"); } - return retval; - - } - // $ANTLR end "havingClause" - - partial void EnterRule_selectClause(); - partial void LeaveRule_selectClause(); - // $ANTLR start "selectClause" - // HqlSqlWalker.g:186:1: selectClause : ^( SELECT (d= DISTINCT )? x= selectExprList ) -> ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) ; - [GrammarRule("selectClause")] - private AstTreeRuleReturnScope selectClause() - { - EnterRule_selectClause(); - EnterRule("selectClause", 21); - TraceIn("selectClause", 21); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode d = default(IASTNode); - IASTNode SELECT45 = default(IASTNode); - AstTreeRuleReturnScope x = default(AstTreeRuleReturnScope); - - IASTNode d_tree = default(IASTNode); - IASTNode SELECT45_tree = default(IASTNode); - RewriteRuleNodeStream stream_SELECT=new RewriteRuleNodeStream(adaptor,"token SELECT"); - RewriteRuleNodeStream stream_DISTINCT=new RewriteRuleNodeStream(adaptor,"token DISTINCT"); - RewriteRuleSubtreeStream stream_selectExprList=new RewriteRuleSubtreeStream(adaptor,"rule selectExprList"); - try { DebugEnterRule(GrammarFileName, "selectClause"); - DebugLocation(186, 1); - try - { - // HqlSqlWalker.g:187:2: ( ^( SELECT (d= DISTINCT )? x= selectExprList ) -> ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:187:4: ^( SELECT (d= DISTINCT )? x= selectExprList ) - { - DebugLocation(187, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(187, 6); - - _last = (IASTNode)input.LT(1); - SELECT45=(IASTNode)Match(input,SELECT,Follow._SELECT_in_selectClause872); - - stream_SELECT.Add(SELECT45); - - - DebugLocation(187, 13); - HandleClauseStart( SELECT ); BeforeSelectClause(); - - Match(input, TokenTypes.Down, null); - DebugLocation(187, 68); - // HqlSqlWalker.g:187:68: (d= DISTINCT )? - int alt22=2; - try { DebugEnterSubRule(22); - try { DebugEnterDecision(22, false); - int LA22_1 = input.LA(1); - - if ((LA22_1==DISTINCT)) - { - alt22 = 1; - } - } finally { DebugExitDecision(22); } - switch (alt22) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:187:69: d= DISTINCT - { - DebugLocation(187, 70); - - _last = (IASTNode)input.LT(1); - d=(IASTNode)Match(input,DISTINCT,Follow._DISTINCT_in_selectClause879); - - stream_DISTINCT.Add(d); - - - } - break; - - } - } finally { DebugExitSubRule(22); } - - DebugLocation(187, 83); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._selectExprList_in_selectClause885); - x=selectExprList(); - PopFollow(); - - stream_selectExprList.Add(x.Tree); - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - - { - // AST REWRITE - // elements: d, x - // token labels: d - // rule labels: x, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleNodeStream stream_d=new RewriteRuleNodeStream(adaptor,"token d",d); - RewriteRuleSubtreeStream stream_x=new RewriteRuleSubtreeStream(adaptor,"rule x",x!=null?x.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 188:2: -> ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) - { - DebugLocation(188, 5); - // HqlSqlWalker.g:188:5: ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(188, 7); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(SELECT_CLAUSE, "{select clause}"), root_1); - - DebugLocation(188, 41); - // HqlSqlWalker.g:188:41: ( $d)? - if (stream_d.HasNext) - { - DebugLocation(188, 41); - adaptor.AddChild(root_1, stream_d.NextNode()); - - } - stream_d.Reset(); - DebugLocation(188, 45); - adaptor.AddChild(root_1, stream_x.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("selectClause", 21); - LeaveRule("selectClause", 21); - LeaveRule_selectClause(); - } - DebugLocation(189, 1); - } finally { DebugExitRule(GrammarFileName, "selectClause"); } - return retval; - - } - // $ANTLR end "selectClause" - - partial void EnterRule_selectExprList(); - partial void LeaveRule_selectExprList(); - // $ANTLR start "selectExprList" - // HqlSqlWalker.g:191:1: selectExprList : ( selectExpr | aliasedSelectExpr )+ ; - [GrammarRule("selectExprList")] - private AstTreeRuleReturnScope selectExprList() - { - EnterRule_selectExprList(); - EnterRule("selectExprList", 22); - TraceIn("selectExprList", 22); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope selectExpr46 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope aliasedSelectExpr47 = default(AstTreeRuleReturnScope); - - - bool oldInSelect = _inSelect; - _inSelect = true; - - try { DebugEnterRule(GrammarFileName, "selectExprList"); - DebugLocation(191, 1); - try - { - // HqlSqlWalker.g:195:2: ( ( selectExpr | aliasedSelectExpr )+ ) - DebugEnterAlt(1); - // HqlSqlWalker.g:195:4: ( selectExpr | aliasedSelectExpr )+ - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(195, 4); - // HqlSqlWalker.g:195:4: ( selectExpr | aliasedSelectExpr )+ - int cnt23=0; - try { DebugEnterSubRule(23); - while (true) - { - int alt23=3; - try { DebugEnterDecision(23, false); - int LA23_1 = input.LA(1); - - if ((LA23_1==AGGREGATE||LA23_1==ALL||LA23_1==BAND||(LA23_1>=BNOT && LA23_1<=BOR)||(LA23_1>=BXOR && LA23_1<=CASE2)||LA23_1==COLON||(LA23_1>=CONSTRUCTOR && LA23_1<=COUNT)||(LA23_1>=DIV && LA23_1<=ELEMENTS)||LA23_1==IDENT||LA23_1==INDICES||LA23_1==METHOD_CALL||LA23_1==MINUS||(LA23_1>=NUM_DECIMAL && LA23_1<=OBJECT)||(LA23_1>=PARAM && LA23_1<=PLUS)||(LA23_1>=QUERY && LA23_1<=QUOTED_String)||LA23_1==STAR||LA23_1==UNARY_MINUS||LA23_1==UNION||LA23_1==WEIRD_IDENT)) - { - alt23 = 1; - } - else if ((LA23_1==AS)) - { - alt23 = 2; - } - - - } finally { DebugExitDecision(23); } - switch (alt23) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:195:6: selectExpr - { - DebugLocation(195, 6); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._selectExpr_in_selectExprList920); - selectExpr46=selectExpr(); - PopFollow(); - - adaptor.AddChild(root_0, selectExpr46.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:195:19: aliasedSelectExpr - { - DebugLocation(195, 19); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._aliasedSelectExpr_in_selectExprList924); - aliasedSelectExpr47=aliasedSelectExpr(); - PopFollow(); - - adaptor.AddChild(root_0, aliasedSelectExpr47.Tree); - - - } - break; - - default: - if (cnt23 >= 1) - goto loop23; - - EarlyExitException eee23 = new EarlyExitException( 23, input ); - DebugRecognitionException(eee23); - throw eee23; - } - cnt23++; - } - loop23: - ; - - } finally { DebugExitSubRule(23); } - - DebugLocation(195, 40); - - _inSelect = oldInSelect; - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("selectExprList", 22); - LeaveRule("selectExprList", 22); - LeaveRule_selectExprList(); - } - DebugLocation(198, 1); - } finally { DebugExitRule(GrammarFileName, "selectExprList"); } - return retval; - - } - // $ANTLR end "selectExprList" - - partial void EnterRule_aliasedSelectExpr(); - partial void LeaveRule_aliasedSelectExpr(); - // $ANTLR start "aliasedSelectExpr" - // HqlSqlWalker.g:200:1: aliasedSelectExpr : ^( AS se= selectExpr i= identifier ) ; - [GrammarRule("aliasedSelectExpr")] - private AstTreeRuleReturnScope aliasedSelectExpr() - { - EnterRule_aliasedSelectExpr(); - EnterRule("aliasedSelectExpr", 23); - TraceIn("aliasedSelectExpr", 23); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode AS48 = default(IASTNode); - AstTreeRuleReturnScope se = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope i = default(AstTreeRuleReturnScope); - - IASTNode AS48_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "aliasedSelectExpr"); - DebugLocation(200, 1); - try - { - // HqlSqlWalker.g:205:2: ( ^( AS se= selectExpr i= identifier ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:205:4: ^( AS se= selectExpr i= identifier ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(205, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(205, 6); - - _last = (IASTNode)input.LT(1); - AS48=(IASTNode)Match(input,AS,Follow._AS_in_aliasedSelectExpr948); - AS48_tree = (IASTNode)adaptor.DupNode(AS48); - - - root_1 = (IASTNode)adaptor.BecomeRoot(AS48_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(205, 11); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._selectExpr_in_aliasedSelectExpr952); - se=selectExpr(); - PopFollow(); - - adaptor.AddChild(root_1, se.Tree); - - DebugLocation(205, 24); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._identifier_in_aliasedSelectExpr956); - i=identifier(); - PopFollow(); - - adaptor.AddChild(root_1, i.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - SetAlias((se!=null?((IASTNode)se.Tree):default(IASTNode)),(i!=null?((IASTNode)i.Tree):default(IASTNode))); - retval.Tree = (se!=null?((IASTNode)se.Tree):default(IASTNode)); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("aliasedSelectExpr", 23); - LeaveRule("aliasedSelectExpr", 23); - LeaveRule_aliasedSelectExpr(); - } - DebugLocation(206, 1); - } finally { DebugExitRule(GrammarFileName, "aliasedSelectExpr"); } - return retval; - - } - // $ANTLR end "aliasedSelectExpr" - - partial void EnterRule_selectExpr(); - partial void LeaveRule_selectExpr(); - // $ANTLR start "selectExpr" - // HqlSqlWalker.g:208:1: selectExpr : (p= propertyRef | ^( ALL ar2= aliasRef ) | ^( OBJECT ar3= aliasRef ) |con= constructor | functionCall | parameter | count | collectionFunction | literal | arithmeticExpr | query ); - [GrammarRule("selectExpr")] - private AstTreeRuleReturnScope selectExpr() - { - EnterRule_selectExpr(); - EnterRule("selectExpr", 24); - TraceIn("selectExpr", 24); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode ALL49 = default(IASTNode); - IASTNode OBJECT50 = default(IASTNode); - AstTreeRuleReturnScope p = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope ar2 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope ar3 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope con = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope functionCall51 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope parameter52 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope count53 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope collectionFunction54 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope literal55 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope arithmeticExpr56 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope query57 = default(AstTreeRuleReturnScope); - - IASTNode ALL49_tree = default(IASTNode); - IASTNode OBJECT50_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "selectExpr"); - DebugLocation(208, 1); - try - { - // HqlSqlWalker.g:209:2: (p= propertyRef | ^( ALL ar2= aliasRef ) | ^( OBJECT ar3= aliasRef ) |con= constructor | functionCall | parameter | count | collectionFunction | literal | arithmeticExpr | query ) - int alt24=11; - try { DebugEnterDecision(24, false); - switch (input.LA(1)) - { - case DOT: - case IDENT: - case WEIRD_IDENT: - { - alt24 = 1; - } - break; - case ALL: - { - alt24 = 2; - } - break; - case OBJECT: - { - alt24 = 3; - } - break; - case CONSTRUCTOR: - { - alt24 = 4; - } - break; - case AGGREGATE: - case METHOD_CALL: - { - alt24 = 5; - } - break; - case COLON: - case PARAM: - { - alt24 = 6; - } - break; - case COUNT: - { - alt24 = 7; - } - break; - case ELEMENTS: - case INDICES: - { - alt24 = 8; - } - break; - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case QUOTED_String: - { - alt24 = 9; - } - break; - case BAND: - case BNOT: - case BOR: - case BXOR: - case CASE: - case CASE2: - case DIV: - case MINUS: - case PLUS: - case STAR: - case UNARY_MINUS: - { - alt24 = 10; - } - break; - case QUERY: - case UNION: - { - alt24 = 11; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 24, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(24); } - switch (alt24) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:209:4: p= propertyRef - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(209, 5); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._propertyRef_in_selectExpr971); - p=propertyRef(); - PopFollow(); - - adaptor.AddChild(root_0, p.Tree); - - DebugLocation(209, 22); - ResolveSelectExpression((p!=null?((IASTNode)p.Tree):default(IASTNode))); - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:210:4: ^( ALL ar2= aliasRef ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(210, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(210, 6); - - _last = (IASTNode)input.LT(1); - ALL49=(IASTNode)Match(input,ALL,Follow._ALL_in_selectExpr983); - ALL49_tree = (IASTNode)adaptor.DupNode(ALL49); - - - root_1 = (IASTNode)adaptor.BecomeRoot(ALL49_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(210, 13); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._aliasRef_in_selectExpr987); - ar2=aliasRef(); - PopFollow(); - - adaptor.AddChild(root_1, ar2.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - DebugLocation(210, 27); - ResolveSelectExpression((ar2!=null?((IASTNode)ar2.Tree):default(IASTNode))); retval.Tree = (ar2!=null?((IASTNode)ar2.Tree):default(IASTNode)); - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:211:4: ^( OBJECT ar3= aliasRef ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(211, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(211, 6); - - _last = (IASTNode)input.LT(1); - OBJECT50=(IASTNode)Match(input,OBJECT,Follow._OBJECT_in_selectExpr999); - OBJECT50_tree = (IASTNode)adaptor.DupNode(OBJECT50); - - - root_1 = (IASTNode)adaptor.BecomeRoot(OBJECT50_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(211, 16); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._aliasRef_in_selectExpr1003); - ar3=aliasRef(); - PopFollow(); - - adaptor.AddChild(root_1, ar3.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - DebugLocation(211, 28); - ResolveSelectExpression((ar3!=null?((IASTNode)ar3.Tree):default(IASTNode))); retval.Tree = (ar3!=null?((IASTNode)ar3.Tree):default(IASTNode)); - - } - break; - case 4: - DebugEnterAlt(4); - // HqlSqlWalker.g:212:4: con= constructor - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(212, 7); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._constructor_in_selectExpr1014); - con=constructor(); - PopFollow(); - - adaptor.AddChild(root_0, con.Tree); - - DebugLocation(212, 24); - ProcessConstructor((con!=null?((IASTNode)con.Tree):default(IASTNode))); - - } - break; - case 5: - DebugEnterAlt(5); - // HqlSqlWalker.g:213:4: functionCall - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(213, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._functionCall_in_selectExpr1025); - functionCall51=functionCall(); - PopFollow(); - - adaptor.AddChild(root_0, functionCall51.Tree); - - - } - break; - case 6: - DebugEnterAlt(6); - // HqlSqlWalker.g:214:4: parameter - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(214, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._parameter_in_selectExpr1030); - parameter52=parameter(); - PopFollow(); - - adaptor.AddChild(root_0, parameter52.Tree); - - - } - break; - case 7: - DebugEnterAlt(7); - // HqlSqlWalker.g:215:4: count - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(215, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._count_in_selectExpr1035); - count53=count(); - PopFollow(); - - adaptor.AddChild(root_0, count53.Tree); - - - } - break; - case 8: - DebugEnterAlt(8); - // HqlSqlWalker.g:216:4: collectionFunction - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(216, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._collectionFunction_in_selectExpr1040); - collectionFunction54=collectionFunction(); - PopFollow(); - - adaptor.AddChild(root_0, collectionFunction54.Tree); - - - } - break; - case 9: - DebugEnterAlt(9); - // HqlSqlWalker.g:217:4: literal - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(217, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._literal_in_selectExpr1048); - literal55=literal(); - PopFollow(); - - adaptor.AddChild(root_0, literal55.Tree); - - - } - break; - case 10: - DebugEnterAlt(10); - // HqlSqlWalker.g:218:4: arithmeticExpr - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(218, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._arithmeticExpr_in_selectExpr1053); - arithmeticExpr56=arithmeticExpr(); - PopFollow(); - - adaptor.AddChild(root_0, arithmeticExpr56.Tree); - - - } - break; - case 11: - DebugEnterAlt(11); - // HqlSqlWalker.g:219:4: query - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(219, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._query_in_selectExpr1058); - query57=query(); - PopFollow(); - - adaptor.AddChild(root_0, query57.Tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("selectExpr", 24); - LeaveRule("selectExpr", 24); - LeaveRule_selectExpr(); - } - DebugLocation(220, 1); - } finally { DebugExitRule(GrammarFileName, "selectExpr"); } - return retval; - - } - // $ANTLR end "selectExpr" - - partial void EnterRule_count(); - partial void LeaveRule_count(); - // $ANTLR start "count" - // HqlSqlWalker.g:222:1: count : ^( COUNT ( DISTINCT | ALL )? ( aggregateExpr | ROW_STAR ) ) ; - [GrammarRule("count")] - private AstTreeRuleReturnScope count() - { - EnterRule_count(); - EnterRule("count", 25); - TraceIn("count", 25); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode COUNT58 = default(IASTNode); - IASTNode set59 = default(IASTNode); - IASTNode ROW_STAR61 = default(IASTNode); - AstTreeRuleReturnScope aggregateExpr60 = default(AstTreeRuleReturnScope); - - IASTNode COUNT58_tree = default(IASTNode); - IASTNode set59_tree = default(IASTNode); - IASTNode ROW_STAR61_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "count"); - DebugLocation(222, 1); - try - { - // HqlSqlWalker.g:223:2: ( ^( COUNT ( DISTINCT | ALL )? ( aggregateExpr | ROW_STAR ) ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:223:4: ^( COUNT ( DISTINCT | ALL )? ( aggregateExpr | ROW_STAR ) ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(223, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(223, 6); - - _last = (IASTNode)input.LT(1); - COUNT58=(IASTNode)Match(input,COUNT,Follow._COUNT_in_count1070); - COUNT58_tree = (IASTNode)adaptor.DupNode(COUNT58); - - - root_1 = (IASTNode)adaptor.BecomeRoot(COUNT58_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(223, 12); - // HqlSqlWalker.g:223:12: ( DISTINCT | ALL )? - int alt25=2; - try { DebugEnterSubRule(25); - try { DebugEnterDecision(25, false); - int LA25_1 = input.LA(1); - - if ((LA25_1==ALL||LA25_1==DISTINCT)) - { - alt25 = 1; - } - } finally { DebugExitDecision(25); } - switch (alt25) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g: - { - DebugLocation(223, 12); - - _last = (IASTNode)input.LT(1); - set59=(IASTNode)input.LT(1); - if (input.LA(1)==ALL||input.LA(1)==DISTINCT) - { - input.Consume(); - set59_tree = (IASTNode)adaptor.DupNode(set59); - - - adaptor.AddChild(root_1, set59_tree); - - state.errorRecovery=false; - } - else - { - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - throw mse; - } - - - - } - break; - - } - } finally { DebugExitSubRule(25); } - - DebugLocation(223, 32); - // HqlSqlWalker.g:223:32: ( aggregateExpr | ROW_STAR ) - int alt26=2; - try { DebugEnterSubRule(26); - try { DebugEnterDecision(26, false); - int LA26_1 = input.LA(1); - - if ((LA26_1==AGGREGATE||LA26_1==BAND||(LA26_1>=BNOT && LA26_1<=BOR)||(LA26_1>=BXOR && LA26_1<=CASE2)||LA26_1==COLON||LA26_1==COUNT||(LA26_1>=DIV && LA26_1<=ELEMENTS)||LA26_1==FALSE||LA26_1==IDENT||(LA26_1>=INDEX_OP && LA26_1<=INDICES)||LA26_1==JAVA_CONSTANT||LA26_1==METHOD_CALL||LA26_1==MINUS||(LA26_1>=NULL && LA26_1<=NUM_LONG)||(LA26_1>=PARAM && LA26_1<=PLUS)||LA26_1==QUOTED_String||LA26_1==STAR||(LA26_1>=TRUE && LA26_1<=UNARY_MINUS)||LA26_1==VECTOR_EXPR||LA26_1==WEIRD_IDENT)) - { - alt26 = 1; - } - else if ((LA26_1==ROW_STAR)) - { - alt26 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 26, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(26); } - switch (alt26) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:223:34: aggregateExpr - { - DebugLocation(223, 34); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._aggregateExpr_in_count1085); - aggregateExpr60=aggregateExpr(); - PopFollow(); - - adaptor.AddChild(root_1, aggregateExpr60.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:223:50: ROW_STAR - { - DebugLocation(223, 50); - - _last = (IASTNode)input.LT(1); - ROW_STAR61=(IASTNode)Match(input,ROW_STAR,Follow._ROW_STAR_in_count1089); - ROW_STAR61_tree = (IASTNode)adaptor.DupNode(ROW_STAR61); - - - adaptor.AddChild(root_1, ROW_STAR61_tree); - - - } - break; - - } - } finally { DebugExitSubRule(26); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("count", 25); - LeaveRule("count", 25); - LeaveRule_count(); - } - DebugLocation(224, 1); - } finally { DebugExitRule(GrammarFileName, "count"); } - return retval; - - } - // $ANTLR end "count" - - partial void EnterRule_constructor(); - partial void LeaveRule_constructor(); - // $ANTLR start "constructor" - // HqlSqlWalker.g:226:1: constructor : ^( CONSTRUCTOR path ( selectExpr | aliasedSelectExpr )* ) ; - [GrammarRule("constructor")] - private AstTreeRuleReturnScope constructor() - { - EnterRule_constructor(); - EnterRule("constructor", 26); - TraceIn("constructor", 26); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode CONSTRUCTOR62 = default(IASTNode); - AstTreeRuleReturnScope path63 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope selectExpr64 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope aliasedSelectExpr65 = default(AstTreeRuleReturnScope); - - IASTNode CONSTRUCTOR62_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "constructor"); - DebugLocation(226, 1); - try - { - // HqlSqlWalker.g:227:2: ( ^( CONSTRUCTOR path ( selectExpr | aliasedSelectExpr )* ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:227:4: ^( CONSTRUCTOR path ( selectExpr | aliasedSelectExpr )* ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(227, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(227, 6); - - _last = (IASTNode)input.LT(1); - CONSTRUCTOR62=(IASTNode)Match(input,CONSTRUCTOR,Follow._CONSTRUCTOR_in_constructor1105); - CONSTRUCTOR62_tree = (IASTNode)adaptor.DupNode(CONSTRUCTOR62); - - - root_1 = (IASTNode)adaptor.BecomeRoot(CONSTRUCTOR62_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(227, 18); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._path_in_constructor1107); - path63=path(); - PopFollow(); - - adaptor.AddChild(root_1, path63.Tree); - - DebugLocation(227, 23); - // HqlSqlWalker.g:227:23: ( selectExpr | aliasedSelectExpr )* - try { DebugEnterSubRule(27); - while (true) - { - int alt27=3; - try { DebugEnterDecision(27, false); - int LA27_1 = input.LA(1); - - if ((LA27_1==AGGREGATE||LA27_1==ALL||LA27_1==BAND||(LA27_1>=BNOT && LA27_1<=BOR)||(LA27_1>=BXOR && LA27_1<=CASE2)||LA27_1==COLON||(LA27_1>=CONSTRUCTOR && LA27_1<=COUNT)||(LA27_1>=DIV && LA27_1<=ELEMENTS)||LA27_1==IDENT||LA27_1==INDICES||LA27_1==METHOD_CALL||LA27_1==MINUS||(LA27_1>=NUM_DECIMAL && LA27_1<=OBJECT)||(LA27_1>=PARAM && LA27_1<=PLUS)||(LA27_1>=QUERY && LA27_1<=QUOTED_String)||LA27_1==STAR||LA27_1==UNARY_MINUS||LA27_1==UNION||LA27_1==WEIRD_IDENT)) - { - alt27 = 1; - } - else if ((LA27_1==AS)) - { - alt27 = 2; - } - - - } finally { DebugExitDecision(27); } - switch ( alt27 ) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:227:25: selectExpr - { - DebugLocation(227, 25); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._selectExpr_in_constructor1111); - selectExpr64=selectExpr(); - PopFollow(); - - adaptor.AddChild(root_1, selectExpr64.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:227:38: aliasedSelectExpr - { - DebugLocation(227, 38); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._aliasedSelectExpr_in_constructor1115); - aliasedSelectExpr65=aliasedSelectExpr(); - PopFollow(); - - adaptor.AddChild(root_1, aliasedSelectExpr65.Tree); - - - } - break; - - default: - goto loop27; - } - } - - loop27: - ; - - } finally { DebugExitSubRule(27); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("constructor", 26); - LeaveRule("constructor", 26); - LeaveRule_constructor(); - } - DebugLocation(228, 1); - } finally { DebugExitRule(GrammarFileName, "constructor"); } - return retval; - - } - // $ANTLR end "constructor" - - partial void EnterRule_aggregateExpr(); - partial void LeaveRule_aggregateExpr(); - // $ANTLR start "aggregateExpr" - // HqlSqlWalker.g:230:1: aggregateExpr : ( expr | collectionFunction ); - [GrammarRule("aggregateExpr")] - private AstTreeRuleReturnScope aggregateExpr() - { - EnterRule_aggregateExpr(); - EnterRule("aggregateExpr", 27); - TraceIn("aggregateExpr", 27); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope expr66 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope collectionFunction67 = default(AstTreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "aggregateExpr"); - DebugLocation(230, 1); - try - { - // HqlSqlWalker.g:231:2: ( expr | collectionFunction ) - int alt28=2; - try { DebugEnterDecision(28, false); - int LA28_1 = input.LA(1); - - if ((LA28_1==AGGREGATE||LA28_1==BAND||(LA28_1>=BNOT && LA28_1<=BOR)||(LA28_1>=BXOR && LA28_1<=CASE2)||LA28_1==COLON||LA28_1==COUNT||(LA28_1>=DIV && LA28_1<=DOT)||LA28_1==FALSE||LA28_1==IDENT||LA28_1==INDEX_OP||LA28_1==JAVA_CONSTANT||LA28_1==METHOD_CALL||LA28_1==MINUS||(LA28_1>=NULL && LA28_1<=NUM_LONG)||(LA28_1>=PARAM && LA28_1<=PLUS)||LA28_1==QUOTED_String||LA28_1==STAR||(LA28_1>=TRUE && LA28_1<=UNARY_MINUS)||LA28_1==VECTOR_EXPR||LA28_1==WEIRD_IDENT)) - { - alt28 = 1; - } - else if ((LA28_1==ELEMENTS||LA28_1==INDICES)) - { - alt28 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 28, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(28); } - switch (alt28) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:231:4: expr - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(231, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_aggregateExpr1131); - expr66=expr(); - PopFollow(); - - adaptor.AddChild(root_0, expr66.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:232:4: collectionFunction - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(232, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._collectionFunction_in_aggregateExpr1137); - collectionFunction67=collectionFunction(); - PopFollow(); - - adaptor.AddChild(root_0, collectionFunction67.Tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("aggregateExpr", 27); - LeaveRule("aggregateExpr", 27); - LeaveRule_aggregateExpr(); - } - DebugLocation(233, 1); - } finally { DebugExitRule(GrammarFileName, "aggregateExpr"); } - return retval; - - } - // $ANTLR end "aggregateExpr" - - partial void EnterRule_fromClause(); - partial void LeaveRule_fromClause(); - // $ANTLR start "fromClause" - // HqlSqlWalker.g:236:1: fromClause : ^(f= FROM fromElementList ) ; - [GrammarRule("fromClause")] - private AstTreeRuleReturnScope fromClause() - { - EnterRule_fromClause(); - EnterRule("fromClause", 28); - TraceIn("fromClause", 28); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode f = default(IASTNode); - AstTreeRuleReturnScope fromElementList68 = default(AstTreeRuleReturnScope); - - IASTNode f_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "fromClause"); - DebugLocation(236, 1); - try - { - // HqlSqlWalker.g:237:2: ( ^(f= FROM fromElementList ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:237:4: ^(f= FROM fromElementList ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(237, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(237, 7); - - _last = (IASTNode)input.LT(1); - f=(IASTNode)Match(input,FROM,Follow._FROM_in_fromClause1153); - f_tree = (IASTNode)adaptor.DupNode(f); - - - root_1 = (IASTNode)adaptor.BecomeRoot(f_tree, root_1); - - - DebugLocation(237, 13); - PushFromClause(f_tree); HandleClauseStart( FROM ); - - Match(input, TokenTypes.Down, null); - DebugLocation(237, 69); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._fromElementList_in_fromClause1157); - fromElementList68=fromElementList(); - PopFollow(); - - adaptor.AddChild(root_1, fromElementList68.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("fromClause", 28); - LeaveRule("fromClause", 28); - LeaveRule_fromClause(); - } - DebugLocation(238, 1); - } finally { DebugExitRule(GrammarFileName, "fromClause"); } - return retval; - - } - // $ANTLR end "fromClause" - - partial void EnterRule_fromElementList(); - partial void LeaveRule_fromElementList(); - // $ANTLR start "fromElementList" - // HqlSqlWalker.g:240:1: fromElementList : ( fromElement )+ ; - [GrammarRule("fromElementList")] - private AstTreeRuleReturnScope fromElementList() - { - EnterRule_fromElementList(); - EnterRule("fromElementList", 29); - TraceIn("fromElementList", 29); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope fromElement69 = default(AstTreeRuleReturnScope); - - - bool oldInFrom = _inFrom; - _inFrom = true; - - try { DebugEnterRule(GrammarFileName, "fromElementList"); - DebugLocation(240, 1); - try - { - // HqlSqlWalker.g:244:2: ( ( fromElement )+ ) - DebugEnterAlt(1); - // HqlSqlWalker.g:244:4: ( fromElement )+ - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(244, 4); - // HqlSqlWalker.g:244:4: ( fromElement )+ - int cnt29=0; - try { DebugEnterSubRule(29); - while (true) - { - int alt29=2; - try { DebugEnterDecision(29, false); - int LA29_1 = input.LA(1); - - if ((LA29_1==FILTER_ENTITY||LA29_1==JOIN||LA29_1==RANGE)) - { - alt29 = 1; - } - - - } finally { DebugExitDecision(29); } - switch (alt29) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:244:5: fromElement - { - DebugLocation(244, 5); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._fromElement_in_fromElementList1175); - fromElement69=fromElement(); - PopFollow(); - - adaptor.AddChild(root_0, fromElement69.Tree); - - - } - break; - - default: - if (cnt29 >= 1) - goto loop29; - - EarlyExitException eee29 = new EarlyExitException( 29, input ); - DebugRecognitionException(eee29); - throw eee29; - } - cnt29++; - } - loop29: - ; - - } finally { DebugExitSubRule(29); } - - DebugLocation(244, 19); - - _inFrom = oldInFrom; - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("fromElementList", 29); - LeaveRule("fromElementList", 29); - LeaveRule_fromElementList(); - } - DebugLocation(247, 1); - } finally { DebugExitRule(GrammarFileName, "fromElementList"); } - return retval; - - } - // $ANTLR end "fromElementList" - - partial void EnterRule_fromElement(); - partial void LeaveRule_fromElement(); - // $ANTLR start "fromElement" - // HqlSqlWalker.g:249:1: fromElement : ( ^( RANGE p= path (a= ALIAS )? (pf= FETCH )? ) -> {fromElement != null}? ^() ->|je= joinElement ->|fe= FILTER_ENTITY a3= ALIAS -> ^() ); - [GrammarRule("fromElement")] - private AstTreeRuleReturnScope fromElement() - { - EnterRule_fromElement(); - EnterRule("fromElement", 30); - TraceIn("fromElement", 30); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode a = default(IASTNode); - IASTNode pf = default(IASTNode); - IASTNode fe = default(IASTNode); - IASTNode a3 = default(IASTNode); - IASTNode RANGE70 = default(IASTNode); - AstTreeRuleReturnScope p = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope je = default(AstTreeRuleReturnScope); - - IASTNode a_tree = default(IASTNode); - IASTNode pf_tree = default(IASTNode); - IASTNode fe_tree = default(IASTNode); - IASTNode a3_tree = default(IASTNode); - IASTNode RANGE70_tree = default(IASTNode); - RewriteRuleNodeStream stream_RANGE=new RewriteRuleNodeStream(adaptor,"token RANGE"); - RewriteRuleNodeStream stream_ALIAS=new RewriteRuleNodeStream(adaptor,"token ALIAS"); - RewriteRuleNodeStream stream_FETCH=new RewriteRuleNodeStream(adaptor,"token FETCH"); - RewriteRuleNodeStream stream_FILTER_ENTITY=new RewriteRuleNodeStream(adaptor,"token FILTER_ENTITY"); - RewriteRuleSubtreeStream stream_path=new RewriteRuleSubtreeStream(adaptor,"rule path"); - RewriteRuleSubtreeStream stream_joinElement=new RewriteRuleSubtreeStream(adaptor,"rule joinElement"); - - IASTNode fromElement = null; - - try { DebugEnterRule(GrammarFileName, "fromElement"); - DebugLocation(249, 1); - try - { - // HqlSqlWalker.g:254:2: ( ^( RANGE p= path (a= ALIAS )? (pf= FETCH )? ) -> {fromElement != null}? ^() ->|je= joinElement ->|fe= FILTER_ENTITY a3= ALIAS -> ^() ) - int alt32=3; - try { DebugEnterDecision(32, false); - switch (input.LA(1)) - { - case RANGE: - { - alt32 = 1; - } - break; - case JOIN: - { - alt32 = 2; - } - break; - case FILTER_ENTITY: - { - alt32 = 3; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 32, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(32); } - switch (alt32) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:254:4: ^( RANGE p= path (a= ALIAS )? (pf= FETCH )? ) - { - DebugLocation(254, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(254, 6); - - _last = (IASTNode)input.LT(1); - RANGE70=(IASTNode)Match(input,RANGE,Follow._RANGE_in_fromElement1200); - - stream_RANGE.Add(RANGE70); - - - Match(input, TokenTypes.Down, null); - DebugLocation(254, 13); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._path_in_fromElement1204); - p=path(); - PopFollow(); - - stream_path.Add(p.Tree); - DebugLocation(254, 19); - // HqlSqlWalker.g:254:19: (a= ALIAS )? - int alt30=2; - try { DebugEnterSubRule(30); - try { DebugEnterDecision(30, false); - int LA30_1 = input.LA(1); - - if ((LA30_1==ALIAS)) - { - alt30 = 1; - } - } finally { DebugExitDecision(30); } - switch (alt30) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:254:20: a= ALIAS - { - DebugLocation(254, 21); - - _last = (IASTNode)input.LT(1); - a=(IASTNode)Match(input,ALIAS,Follow._ALIAS_in_fromElement1209); - - stream_ALIAS.Add(a); - - - } - break; - - } - } finally { DebugExitSubRule(30); } - - DebugLocation(254, 30); - // HqlSqlWalker.g:254:30: (pf= FETCH )? - int alt31=2; - try { DebugEnterSubRule(31); - try { DebugEnterDecision(31, false); - int LA31_1 = input.LA(1); - - if ((LA31_1==FETCH)) - { - alt31 = 1; - } - } finally { DebugExitDecision(31); } - switch (alt31) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:254:31: pf= FETCH - { - DebugLocation(254, 33); - - _last = (IASTNode)input.LT(1); - pf=(IASTNode)Match(input,FETCH,Follow._FETCH_in_fromElement1216); - - stream_FETCH.Add(pf); - - - } - break; - - } - } finally { DebugExitSubRule(31); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - DebugLocation(254, 44); - fromElement = CreateFromElement((p!=null?((HqlSqlWalker.path_return)p).p:default(String)), (p!=null?((IASTNode)p.Tree):default(IASTNode)), a, pf); - - - { - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 255:3: -> {fromElement != null}? ^() - if (fromElement != null) - { - DebugLocation(255, 29); - // HqlSqlWalker.g:255:29: ^() - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(255, 31); - root_1 = (IASTNode)adaptor.BecomeRoot(fromElement, root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - else // 256:3: -> - { - DebugLocation(257, 2); - root_0 = null; - } - - retval.Tree = root_0; - } - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:257:4: je= joinElement - { - DebugLocation(257, 6); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._joinElement_in_fromElement1243); - je=joinElement(); - PopFollow(); - - stream_joinElement.Add(je.Tree); - - - { - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 258:3: -> - { - DebugLocation(260, 2); - root_0 = null; - } - - retval.Tree = root_0; - } - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:260:4: fe= FILTER_ENTITY a3= ALIAS - { - DebugLocation(260, 6); - - _last = (IASTNode)input.LT(1); - fe=(IASTNode)Match(input,FILTER_ENTITY,Follow._FILTER_ENTITY_in_fromElement1258); - - stream_FILTER_ENTITY.Add(fe); - - DebugLocation(260, 23); - - _last = (IASTNode)input.LT(1); - a3=(IASTNode)Match(input,ALIAS,Follow._ALIAS_in_fromElement1262); - - stream_ALIAS.Add(a3); - - - - { - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 261:3: -> ^() - { - DebugLocation(261, 6); - // HqlSqlWalker.g:261:6: ^() - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(261, 8); - root_1 = (IASTNode)adaptor.BecomeRoot(CreateFromFilterElement(fe,a3), root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("fromElement", 30); - LeaveRule("fromElement", 30); - LeaveRule_fromElement(); - } - DebugLocation(262, 1); - } finally { DebugExitRule(GrammarFileName, "fromElement"); } - return retval; - - } - // $ANTLR end "fromElement" - - partial void EnterRule_joinElement(); - partial void LeaveRule_joinElement(); - // $ANTLR start "joinElement" - // HqlSqlWalker.g:264:1: joinElement : ^( JOIN (j= joinType )? (f= FETCH )? pRef= propertyRef (a= ALIAS )? (pf= FETCH )? ( ^( (with= WITH ) ( . )* ) )? ) ; - [GrammarRule("joinElement")] - private AstTreeRuleReturnScope joinElement() - { - EnterRule_joinElement(); - EnterRule("joinElement", 31); - TraceIn("joinElement", 31); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode f = default(IASTNode); - IASTNode a = default(IASTNode); - IASTNode pf = default(IASTNode); - IASTNode with = default(IASTNode); - IASTNode JOIN71 = default(IASTNode); - IASTNode wildcard72 = default(IASTNode); - AstTreeRuleReturnScope j = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope pRef = default(AstTreeRuleReturnScope); - - IASTNode f_tree = default(IASTNode); - IASTNode a_tree = default(IASTNode); - IASTNode pf_tree = default(IASTNode); - IASTNode with_tree = default(IASTNode); - IASTNode JOIN71_tree = default(IASTNode); - IASTNode wildcard72_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "joinElement"); - DebugLocation(264, 1); - try - { - // HqlSqlWalker.g:268:2: ( ^( JOIN (j= joinType )? (f= FETCH )? pRef= propertyRef (a= ALIAS )? (pf= FETCH )? ( ^( (with= WITH ) ( . )* ) )? ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:268:4: ^( JOIN (j= joinType )? (f= FETCH )? pRef= propertyRef (a= ALIAS )? (pf= FETCH )? ( ^( (with= WITH ) ( . )* ) )? ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(268, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(268, 6); - - _last = (IASTNode)input.LT(1); - JOIN71=(IASTNode)Match(input,JOIN,Follow._JOIN_in_joinElement1291); - JOIN71_tree = (IASTNode)adaptor.DupNode(JOIN71); - - - root_1 = (IASTNode)adaptor.BecomeRoot(JOIN71_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(268, 11); - // HqlSqlWalker.g:268:11: (j= joinType )? - int alt33=2; - try { DebugEnterSubRule(33); - try { DebugEnterDecision(33, false); - int LA33_1 = input.LA(1); - - if ((LA33_1==FULL||LA33_1==INNER||LA33_1==LEFT||LA33_1==RIGHT)) - { - alt33 = 1; - } - } finally { DebugExitDecision(33); } - switch (alt33) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:268:12: j= joinType - { - DebugLocation(268, 13); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._joinType_in_joinElement1296); - j=joinType(); - PopFollow(); - - adaptor.AddChild(root_1, j.Tree); - - DebugLocation(268, 23); - SetImpliedJoinType((j!=null?((HqlSqlWalker.joinType_return)j).j:default(int))); - - } - break; - - } - } finally { DebugExitSubRule(33); } - - DebugLocation(268, 56); - // HqlSqlWalker.g:268:56: (f= FETCH )? - int alt34=2; - try { DebugEnterSubRule(34); - try { DebugEnterDecision(34, false); - int LA34_1 = input.LA(1); - - if ((LA34_1==FETCH)) - { - alt34 = 1; - } - } finally { DebugExitDecision(34); } - switch (alt34) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:268:57: f= FETCH - { - DebugLocation(268, 58); - - _last = (IASTNode)input.LT(1); - f=(IASTNode)Match(input,FETCH,Follow._FETCH_in_joinElement1306); - f_tree = (IASTNode)adaptor.DupNode(f); - - - adaptor.AddChild(root_1, f_tree); - - - } - break; - - } - } finally { DebugExitSubRule(34); } - - DebugLocation(268, 71); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._propertyRef_in_joinElement1312); - pRef=propertyRef(); - PopFollow(); - - adaptor.AddChild(root_1, pRef.Tree); - - DebugLocation(268, 84); - // HqlSqlWalker.g:268:84: (a= ALIAS )? - int alt35=2; - try { DebugEnterSubRule(35); - try { DebugEnterDecision(35, false); - int LA35_1 = input.LA(1); - - if ((LA35_1==ALIAS)) - { - alt35 = 1; - } - } finally { DebugExitDecision(35); } - switch (alt35) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:268:85: a= ALIAS - { - DebugLocation(268, 86); - - _last = (IASTNode)input.LT(1); - a=(IASTNode)Match(input,ALIAS,Follow._ALIAS_in_joinElement1317); - a_tree = (IASTNode)adaptor.DupNode(a); - - - adaptor.AddChild(root_1, a_tree); - - - } - break; - - } - } finally { DebugExitSubRule(35); } - - DebugLocation(268, 95); - // HqlSqlWalker.g:268:95: (pf= FETCH )? - int alt36=2; - try { DebugEnterSubRule(36); - try { DebugEnterDecision(36, false); - int LA36_1 = input.LA(1); - - if ((LA36_1==FETCH)) - { - alt36 = 1; - } - } finally { DebugExitDecision(36); } - switch (alt36) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:268:96: pf= FETCH - { - DebugLocation(268, 98); - - _last = (IASTNode)input.LT(1); - pf=(IASTNode)Match(input,FETCH,Follow._FETCH_in_joinElement1324); - pf_tree = (IASTNode)adaptor.DupNode(pf); - - - adaptor.AddChild(root_1, pf_tree); - - - } - break; - - } - } finally { DebugExitSubRule(36); } - - DebugLocation(268, 107); - // HqlSqlWalker.g:268:107: ( ^( (with= WITH ) ( . )* ) )? - int alt38=2; - try { DebugEnterSubRule(38); - try { DebugEnterDecision(38, false); - int LA38_1 = input.LA(1); - - if ((LA38_1==WITH)) - { - alt38 = 1; - } - } finally { DebugExitDecision(38); } - switch (alt38) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:268:108: ^( (with= WITH ) ( . )* ) - { - DebugLocation(268, 108); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_2 = _last; - IASTNode _first_2 = default(IASTNode); - IASTNode root_2 = (IASTNode)adaptor.Nil(); - DebugLocation(268, 110); - // HqlSqlWalker.g:268:110: (with= WITH ) - DebugEnterAlt(1); - // HqlSqlWalker.g:268:111: with= WITH - { - DebugLocation(268, 115); - - _last = (IASTNode)input.LT(1); - with=(IASTNode)Match(input,WITH,Follow._WITH_in_joinElement1333); - with_tree = (IASTNode)adaptor.DupNode(with); - - - adaptor.AddChild(root_2, with_tree); - - - } - - - if (input.LA(1) == TokenTypes.Down) { - Match(input, TokenTypes.Down, null); - DebugLocation(268, 122); - // HqlSqlWalker.g:268:122: ( . )* - try { DebugEnterSubRule(37); - while (true) - { - int alt37=2; - try { DebugEnterDecision(37, false); - int LA37_1 = input.LA(1); - - if (((LA37_1>=AGGREGATE && LA37_1<=THETA_JOINS))) - { - alt37 = 1; - } - else if ((LA37_1==UP)) - { - alt37 = 2; - } - - - } finally { DebugExitDecision(37); } - switch ( alt37 ) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:268:122: . - { - DebugLocation(268, 122); - - _last = (IASTNode)input.LT(1); - wildcard72=(IASTNode)input.LT(1); - - MatchAny(input); - wildcard72_tree = (IASTNode)adaptor.DupTree(wildcard72); - adaptor.AddChild(root_2, wildcard72_tree); - - - } - break; - - default: - goto loop37; - } - } - - loop37: - ; - - } finally { DebugExitSubRule(37); } - - - Match(input, TokenTypes.Up, null); - } - adaptor.AddChild(root_1, root_2); - _last = _save_last_2; - } - - - } - break; - - } - } finally { DebugExitSubRule(38); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - DebugLocation(269, 2); - - CreateFromJoinElement((pRef!=null?((IASTNode)pRef.Tree):default(IASTNode)),a,(j!=null?((HqlSqlWalker.joinType_return)j).j:default(int)),f, pf, with); - SetImpliedJoinType(INNER); // Reset the implied join type. - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("joinElement", 31); - LeaveRule("joinElement", 31); - LeaveRule_joinElement(); - } - DebugLocation(273, 1); - } finally { DebugExitRule(GrammarFileName, "joinElement"); } - return retval; - - } - // $ANTLR end "joinElement" - - private sealed partial class joinType_return : AstTreeRuleReturnScope - { - public int j; - public joinType_return(HqlSqlWalker grammar) {OnCreated(grammar);} - partial void OnCreated(HqlSqlWalker grammar); - } - - partial void EnterRule_joinType(); - partial void LeaveRule_joinType(); - // $ANTLR start "joinType" - // HqlSqlWalker.g:277:1: joinType returns [int j] : ( ( (left= LEFT |right= RIGHT ) (outer= OUTER )? ) | FULL | INNER ); - [GrammarRule("joinType")] - private HqlSqlWalker.joinType_return joinType() - { - EnterRule_joinType(); - EnterRule("joinType", 32); - TraceIn("joinType", 32); - HqlSqlWalker.joinType_return retval = new HqlSqlWalker.joinType_return(this); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode left = default(IASTNode); - IASTNode right = default(IASTNode); - IASTNode outer = default(IASTNode); - IASTNode FULL73 = default(IASTNode); - IASTNode INNER74 = default(IASTNode); - - IASTNode left_tree = default(IASTNode); - IASTNode right_tree = default(IASTNode); - IASTNode outer_tree = default(IASTNode); - IASTNode FULL73_tree = default(IASTNode); - IASTNode INNER74_tree = default(IASTNode); - - retval.j = INNER; - - try { DebugEnterRule(GrammarFileName, "joinType"); - DebugLocation(277, 1); - try - { - // HqlSqlWalker.g:281:2: ( ( (left= LEFT |right= RIGHT ) (outer= OUTER )? ) | FULL | INNER ) - int alt41=3; - try { DebugEnterDecision(41, false); - switch (input.LA(1)) - { - case LEFT: - case RIGHT: - { - alt41 = 1; - } - break; - case FULL: - { - alt41 = 2; - } - break; - case INNER: - { - alt41 = 3; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 41, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(41); } - switch (alt41) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:281:4: ( (left= LEFT |right= RIGHT ) (outer= OUTER )? ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(281, 4); - // HqlSqlWalker.g:281:4: ( (left= LEFT |right= RIGHT ) (outer= OUTER )? ) - DebugEnterAlt(1); - // HqlSqlWalker.g:281:6: (left= LEFT |right= RIGHT ) (outer= OUTER )? - { - DebugLocation(281, 6); - // HqlSqlWalker.g:281:6: (left= LEFT |right= RIGHT ) - int alt39=2; - try { DebugEnterSubRule(39); - try { DebugEnterDecision(39, false); - int LA39_1 = input.LA(1); - - if ((LA39_1==LEFT)) - { - alt39 = 1; - } - else if ((LA39_1==RIGHT)) - { - alt39 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 39, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(39); } - switch (alt39) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:281:7: left= LEFT - { - DebugLocation(281, 11); - - _last = (IASTNode)input.LT(1); - left=(IASTNode)Match(input,LEFT,Follow._LEFT_in_joinType1374); - left_tree = (IASTNode)adaptor.DupNode(left); - - - adaptor.AddChild(root_0, left_tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:281:19: right= RIGHT - { - DebugLocation(281, 24); - - _last = (IASTNode)input.LT(1); - right=(IASTNode)Match(input,RIGHT,Follow._RIGHT_in_joinType1380); - right_tree = (IASTNode)adaptor.DupNode(right); - - - adaptor.AddChild(root_0, right_tree); - - - } - break; - - } - } finally { DebugExitSubRule(39); } - - DebugLocation(281, 32); - // HqlSqlWalker.g:281:32: (outer= OUTER )? - int alt40=2; - try { DebugEnterSubRule(40); - try { DebugEnterDecision(40, false); - int LA40_1 = input.LA(1); - - if ((LA40_1==OUTER)) - { - alt40 = 1; - } - } finally { DebugExitDecision(40); } - switch (alt40) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:281:33: outer= OUTER - { - DebugLocation(281, 38); - - _last = (IASTNode)input.LT(1); - outer=(IASTNode)Match(input,OUTER,Follow._OUTER_in_joinType1386); - outer_tree = (IASTNode)adaptor.DupNode(outer); - - - adaptor.AddChild(root_0, outer_tree); - - - } - break; - - } - } finally { DebugExitSubRule(40); } - - DebugLocation(282, 2); - - if (left != null) retval.j = LEFT_OUTER; - else if (right != null) retval.j = RIGHT_OUTER; - else if (outer != null) retval.j = RIGHT_OUTER; - - - } - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:287:4: FULL - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(287, 4); - - _last = (IASTNode)input.LT(1); - FULL73=(IASTNode)Match(input,FULL,Follow._FULL_in_joinType1400); - FULL73_tree = (IASTNode)adaptor.DupNode(FULL73); - - - adaptor.AddChild(root_0, FULL73_tree); - - DebugLocation(287, 9); - - retval.j = FULL; - - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:290:4: INNER - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(290, 4); - - _last = (IASTNode)input.LT(1); - INNER74=(IASTNode)Match(input,INNER,Follow._INNER_in_joinType1407); - INNER74_tree = (IASTNode)adaptor.DupNode(INNER74); - - - adaptor.AddChild(root_0, INNER74_tree); - - DebugLocation(290, 10); - - retval.j = INNER; - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("joinType", 32); - LeaveRule("joinType", 32); - LeaveRule_joinType(); - } - DebugLocation(293, 1); - } finally { DebugExitRule(GrammarFileName, "joinType"); } - return retval; - - } - // $ANTLR end "joinType" - - private sealed partial class path_return : AstTreeRuleReturnScope - { - public String p; - public path_return(HqlSqlWalker grammar) {OnCreated(grammar);} - partial void OnCreated(HqlSqlWalker grammar); - } - - partial void EnterRule_path(); - partial void LeaveRule_path(); - // $ANTLR start "path" - // HqlSqlWalker.g:297:1: path returns [String p] : (a= identifier | ^( DOT x= path y= identifier ) ); - [GrammarRule("path")] - private HqlSqlWalker.path_return path() - { - EnterRule_path(); - EnterRule("path", 33); - TraceIn("path", 33); - HqlSqlWalker.path_return retval = new HqlSqlWalker.path_return(this); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode DOT75 = default(IASTNode); - AstTreeRuleReturnScope a = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope x = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope y = default(AstTreeRuleReturnScope); - - IASTNode DOT75_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "path"); - DebugLocation(297, 1); - try - { - // HqlSqlWalker.g:298:2: (a= identifier | ^( DOT x= path y= identifier ) ) - int alt42=2; - try { DebugEnterDecision(42, false); - int LA42_1 = input.LA(1); - - if ((LA42_1==IDENT||LA42_1==WEIRD_IDENT)) - { - alt42 = 1; - } - else if ((LA42_1==DOT)) - { - alt42 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 42, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(42); } - switch (alt42) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:298:4: a= identifier - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(298, 5); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._identifier_in_path1429); - a=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, a.Tree); - - DebugLocation(298, 17); - retval.p = (a!=null?((IASTNode)a.Start):default(IASTNode)).ToString(); - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:299:4: ^( DOT x= path y= identifier ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(299, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(299, 6); - - _last = (IASTNode)input.LT(1); - DOT75=(IASTNode)Match(input,DOT,Follow._DOT_in_path1437); - DOT75_tree = (IASTNode)adaptor.DupNode(DOT75); - - - root_1 = (IASTNode)adaptor.BecomeRoot(DOT75_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(299, 11); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._path_in_path1441); - x=path(); - PopFollow(); - - adaptor.AddChild(root_1, x.Tree); - - DebugLocation(299, 18); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._identifier_in_path1445); - y=identifier(); - PopFollow(); - - adaptor.AddChild(root_1, y.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - DebugLocation(299, 31); - - StringBuilder buf = new StringBuilder(); - buf.Append((x!=null?((HqlSqlWalker.path_return)x).p:default(String))).Append('.').Append((y!=null?((IASTNode)y.Start):default(IASTNode)).ToString()); - retval.p = buf.ToString(); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("path", 33); - LeaveRule("path", 33); - LeaveRule_path(); - } - DebugLocation(304, 1); - } finally { DebugExitRule(GrammarFileName, "path"); } - return retval; - - } - // $ANTLR end "path" - - partial void EnterRule_pathAsIdent(); - partial void LeaveRule_pathAsIdent(); - // $ANTLR start "pathAsIdent" - // HqlSqlWalker.g:307:1: pathAsIdent : path -> ^( IDENT[$path.p] ) ; - [GrammarRule("pathAsIdent")] - private AstTreeRuleReturnScope pathAsIdent() - { - EnterRule_pathAsIdent(); - EnterRule("pathAsIdent", 34); - TraceIn("pathAsIdent", 34); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope path76 = default(AstTreeRuleReturnScope); - - RewriteRuleSubtreeStream stream_path=new RewriteRuleSubtreeStream(adaptor,"rule path"); - try { DebugEnterRule(GrammarFileName, "pathAsIdent"); - DebugLocation(307, 4); - try - { - // HqlSqlWalker.g:308:5: ( path -> ^( IDENT[$path.p] ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:308:7: path - { - DebugLocation(308, 7); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._path_in_pathAsIdent1464); - path76=path(); - PopFollow(); - - stream_path.Add(path76.Tree); - - - { - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 309:5: -> ^( IDENT[$path.p] ) - { - DebugLocation(309, 8); - // HqlSqlWalker.g:309:8: ^( IDENT[$path.p] ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(309, 10); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(IDENT, (path76!=null?((HqlSqlWalker.path_return)path76).p:default(String))), root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("pathAsIdent", 34); - LeaveRule("pathAsIdent", 34); - LeaveRule_pathAsIdent(); - } - DebugLocation(310, 4); - } finally { DebugExitRule(GrammarFileName, "pathAsIdent"); } - return retval; - - } - // $ANTLR end "pathAsIdent" - - partial void EnterRule_withClause(); - partial void LeaveRule_withClause(); - // $ANTLR start "withClause" - // HqlSqlWalker.g:312:1: withClause : ^(w= WITH b= logicalExpr ) -> ^( $w $b) ; - [GrammarRule("withClause")] - private AstTreeRuleReturnScope withClause() - { - EnterRule_withClause(); - EnterRule("withClause", 35); - TraceIn("withClause", 35); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode w = default(IASTNode); - AstTreeRuleReturnScope b = default(AstTreeRuleReturnScope); - - IASTNode w_tree = default(IASTNode); - RewriteRuleNodeStream stream_WITH=new RewriteRuleNodeStream(adaptor,"token WITH"); - RewriteRuleSubtreeStream stream_logicalExpr=new RewriteRuleSubtreeStream(adaptor,"rule logicalExpr"); - try { DebugEnterRule(GrammarFileName, "withClause"); - DebugLocation(312, 1); - try - { - // HqlSqlWalker.g:319:2: ( ^(w= WITH b= logicalExpr ) -> ^( $w $b) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:319:4: ^(w= WITH b= logicalExpr ) - { - DebugLocation(319, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(319, 7); - - _last = (IASTNode)input.LT(1); - w=(IASTNode)Match(input,WITH,Follow._WITH_in_withClause1505); - - stream_WITH.Add(w); - - - DebugLocation(319, 13); - HandleClauseStart( WITH ); - - Match(input, TokenTypes.Down, null); - DebugLocation(319, 45); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._logicalExpr_in_withClause1511); - b=logicalExpr(); - PopFollow(); - - stream_logicalExpr.Add(b.Tree); - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - - { - // AST REWRITE - // elements: w, b - // token labels: w - // rule labels: b, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleNodeStream stream_w=new RewriteRuleNodeStream(adaptor,"token w",w); - RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 320:2: -> ^( $w $b) - { - DebugLocation(320, 5); - // HqlSqlWalker.g:320:5: ^( $w $b) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(320, 8); - root_1 = (IASTNode)adaptor.BecomeRoot(stream_w.NextNode(), root_1); - - DebugLocation(320, 11); - adaptor.AddChild(root_1, stream_b.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("withClause", 35); - LeaveRule("withClause", 35); - LeaveRule_withClause(); - } - DebugLocation(321, 1); - } finally { DebugExitRule(GrammarFileName, "withClause"); } - return retval; - - } - // $ANTLR end "withClause" - - partial void EnterRule_whereClause(); - partial void LeaveRule_whereClause(); - // $ANTLR start "whereClause" - // HqlSqlWalker.g:323:1: whereClause : ^(w= WHERE b= logicalExpr ) -> ^( $w $b) ; - [GrammarRule("whereClause")] - private AstTreeRuleReturnScope whereClause() - { - EnterRule_whereClause(); - EnterRule("whereClause", 36); - TraceIn("whereClause", 36); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode w = default(IASTNode); - AstTreeRuleReturnScope b = default(AstTreeRuleReturnScope); - - IASTNode w_tree = default(IASTNode); - RewriteRuleNodeStream stream_WHERE=new RewriteRuleNodeStream(adaptor,"token WHERE"); - RewriteRuleSubtreeStream stream_logicalExpr=new RewriteRuleSubtreeStream(adaptor,"rule logicalExpr"); - try { DebugEnterRule(GrammarFileName, "whereClause"); - DebugLocation(323, 1); - try - { - // HqlSqlWalker.g:324:2: ( ^(w= WHERE b= logicalExpr ) -> ^( $w $b) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:324:4: ^(w= WHERE b= logicalExpr ) - { - DebugLocation(324, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(324, 7); - - _last = (IASTNode)input.LT(1); - w=(IASTNode)Match(input,WHERE,Follow._WHERE_in_whereClause1539); - - stream_WHERE.Add(w); - - - DebugLocation(324, 14); - HandleClauseStart( WHERE ); - - Match(input, TokenTypes.Down, null); - DebugLocation(324, 47); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._logicalExpr_in_whereClause1545); - b=logicalExpr(); - PopFollow(); - - stream_logicalExpr.Add(b.Tree); - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - - { - // AST REWRITE - // elements: w, b - // token labels: w - // rule labels: b, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleNodeStream stream_w=new RewriteRuleNodeStream(adaptor,"token w",w); - RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 325:2: -> ^( $w $b) - { - DebugLocation(325, 5); - // HqlSqlWalker.g:325:5: ^( $w $b) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(325, 8); - root_1 = (IASTNode)adaptor.BecomeRoot(stream_w.NextNode(), root_1); - - DebugLocation(325, 11); - adaptor.AddChild(root_1, stream_b.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("whereClause", 36); - LeaveRule("whereClause", 36); - LeaveRule_whereClause(); - } - DebugLocation(326, 1); - } finally { DebugExitRule(GrammarFileName, "whereClause"); } - return retval; - - } - // $ANTLR end "whereClause" - - partial void EnterRule_logicalExpr(); - partial void LeaveRule_logicalExpr(); - // $ANTLR start "logicalExpr" - // HqlSqlWalker.g:328:1: logicalExpr : ( ^( AND logicalExpr logicalExpr ) | ^( OR logicalExpr logicalExpr ) | ^( NOT logicalExpr ) | comparisonExpr | functionCall | logicalPath ); - [GrammarRule("logicalExpr")] - private AstTreeRuleReturnScope logicalExpr() - { - EnterRule_logicalExpr(); - EnterRule("logicalExpr", 37); - TraceIn("logicalExpr", 37); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode AND77 = default(IASTNode); - IASTNode OR80 = default(IASTNode); - IASTNode NOT83 = default(IASTNode); - AstTreeRuleReturnScope logicalExpr78 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope logicalExpr79 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope logicalExpr81 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope logicalExpr82 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope logicalExpr84 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope comparisonExpr85 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope functionCall86 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope logicalPath87 = default(AstTreeRuleReturnScope); - - IASTNode AND77_tree = default(IASTNode); - IASTNode OR80_tree = default(IASTNode); - IASTNode NOT83_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "logicalExpr"); - DebugLocation(328, 1); - try - { - // HqlSqlWalker.g:329:2: ( ^( AND logicalExpr logicalExpr ) | ^( OR logicalExpr logicalExpr ) | ^( NOT logicalExpr ) | comparisonExpr | functionCall | logicalPath ) - int alt43=6; - try { DebugEnterDecision(43, false); - switch (input.LA(1)) - { - case AND: - { - alt43 = 1; - } - break; - case OR: - { - alt43 = 2; - } - break; - case NOT: - { - alt43 = 3; - } - break; - case BETWEEN: - case EQ: - case EXISTS: - case GE: - case GT: - case IN: - case IS_NOT_NULL: - case IS_NULL: - case LE: - case LIKE: - case LT: - case NE: - case NOT_BETWEEN: - case NOT_IN: - case NOT_LIKE: - { - alt43 = 4; - } - break; - case AGGREGATE: - case METHOD_CALL: - { - alt43 = 5; - } - break; - case DOT: - case IDENT: - case INDEX_OP: - case WEIRD_IDENT: - { - alt43 = 6; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 43, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(43); } - switch (alt43) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:329:4: ^( AND logicalExpr logicalExpr ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(329, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(329, 6); - - _last = (IASTNode)input.LT(1); - AND77=(IASTNode)Match(input,AND,Follow._AND_in_logicalExpr1571); - AND77_tree = (IASTNode)adaptor.DupNode(AND77); - - - root_1 = (IASTNode)adaptor.BecomeRoot(AND77_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(329, 10); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._logicalExpr_in_logicalExpr1573); - logicalExpr78=logicalExpr(); - PopFollow(); - - adaptor.AddChild(root_1, logicalExpr78.Tree); - - DebugLocation(329, 22); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._logicalExpr_in_logicalExpr1575); - logicalExpr79=logicalExpr(); - PopFollow(); - - adaptor.AddChild(root_1, logicalExpr79.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:330:4: ^( OR logicalExpr logicalExpr ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(330, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(330, 6); - - _last = (IASTNode)input.LT(1); - OR80=(IASTNode)Match(input,OR,Follow._OR_in_logicalExpr1582); - OR80_tree = (IASTNode)adaptor.DupNode(OR80); - - - root_1 = (IASTNode)adaptor.BecomeRoot(OR80_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(330, 9); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._logicalExpr_in_logicalExpr1584); - logicalExpr81=logicalExpr(); - PopFollow(); - - adaptor.AddChild(root_1, logicalExpr81.Tree); - - DebugLocation(330, 21); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._logicalExpr_in_logicalExpr1586); - logicalExpr82=logicalExpr(); - PopFollow(); - - adaptor.AddChild(root_1, logicalExpr82.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:331:4: ^( NOT logicalExpr ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(331, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(331, 6); - - _last = (IASTNode)input.LT(1); - NOT83=(IASTNode)Match(input,NOT,Follow._NOT_in_logicalExpr1593); - NOT83_tree = (IASTNode)adaptor.DupNode(NOT83); - - - root_1 = (IASTNode)adaptor.BecomeRoot(NOT83_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(331, 10); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._logicalExpr_in_logicalExpr1595); - logicalExpr84=logicalExpr(); - PopFollow(); - - adaptor.AddChild(root_1, logicalExpr84.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 4: - DebugEnterAlt(4); - // HqlSqlWalker.g:332:4: comparisonExpr - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(332, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._comparisonExpr_in_logicalExpr1601); - comparisonExpr85=comparisonExpr(); - PopFollow(); - - adaptor.AddChild(root_0, comparisonExpr85.Tree); - - - } - break; - case 5: - DebugEnterAlt(5); - // HqlSqlWalker.g:333:4: functionCall - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(333, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._functionCall_in_logicalExpr1606); - functionCall86=functionCall(); - PopFollow(); - - adaptor.AddChild(root_0, functionCall86.Tree); - - - } - break; - case 6: - DebugEnterAlt(6); - // HqlSqlWalker.g:334:4: logicalPath - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(334, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._logicalPath_in_logicalExpr1611); - logicalPath87=logicalPath(); - PopFollow(); - - adaptor.AddChild(root_0, logicalPath87.Tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("logicalExpr", 37); - LeaveRule("logicalExpr", 37); - LeaveRule_logicalExpr(); - } - DebugLocation(335, 1); - } finally { DebugExitRule(GrammarFileName, "logicalExpr"); } - return retval; - - } - // $ANTLR end "logicalExpr" - - partial void EnterRule_logicalPath(); - partial void LeaveRule_logicalPath(); - // $ANTLR start "logicalPath" - // HqlSqlWalker.g:337:1: logicalPath : p= addrExpr[ true ] -> ^( EQ $p TRUE ) ; - [GrammarRule("logicalPath")] - private AstTreeRuleReturnScope logicalPath() - { - EnterRule_logicalPath(); - EnterRule("logicalPath", 38); - TraceIn("logicalPath", 38); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope p = default(AstTreeRuleReturnScope); - - RewriteRuleSubtreeStream stream_addrExpr=new RewriteRuleSubtreeStream(adaptor,"rule addrExpr"); - try { DebugEnterRule(GrammarFileName, "logicalPath"); - DebugLocation(337, 1); - try - { - // HqlSqlWalker.g:341:2: (p= addrExpr[ true ] -> ^( EQ $p TRUE ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:341:4: p= addrExpr[ true ] - { - DebugLocation(341, 5); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._addrExpr_in_logicalPath1630); - p=addrExpr(true); - PopFollow(); - - stream_addrExpr.Add(p.Tree); - DebugLocation(341, 24); - Resolve((p!=null?((IASTNode)p.Tree):default(IASTNode))); - - - { - // AST REWRITE - // elements: p - // token labels: - // rule labels: p, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_p=new RewriteRuleSubtreeStream(adaptor,"rule p",p!=null?p.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 341:45: -> ^( EQ $p TRUE ) - { - DebugLocation(341, 48); - // HqlSqlWalker.g:341:48: ^( EQ $p TRUE ) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(341, 50); - root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(EQ, "EQ"), root_1); - - DebugLocation(341, 54); - adaptor.AddChild(root_1, stream_p.NextTree()); - DebugLocation(341, 56); - adaptor.AddChild(root_1, (IASTNode)adaptor.Create(TRUE, "TRUE")); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - PrepareLogicOperator( retval.Tree ); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("logicalPath", 38); - LeaveRule("logicalPath", 38); - LeaveRule_logicalPath(); - } - DebugLocation(342, 1); - } finally { DebugExitRule(GrammarFileName, "logicalPath"); } - return retval; - - } - // $ANTLR end "logicalPath" - - partial void EnterRule_comparisonExpr(); - partial void LeaveRule_comparisonExpr(); - // $ANTLR start "comparisonExpr" - // HqlSqlWalker.g:345:1: comparisonExpr : ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) ; - [GrammarRule("comparisonExpr")] - private AstTreeRuleReturnScope comparisonExpr() - { - EnterRule_comparisonExpr(); - EnterRule("comparisonExpr", 39); - TraceIn("comparisonExpr", 39); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode EQ88 = default(IASTNode); - IASTNode NE91 = default(IASTNode); - IASTNode LT94 = default(IASTNode); - IASTNode GT97 = default(IASTNode); - IASTNode LE100 = default(IASTNode); - IASTNode GE103 = default(IASTNode); - IASTNode LIKE106 = default(IASTNode); - IASTNode ESCAPE109 = default(IASTNode); - IASTNode NOT_LIKE111 = default(IASTNode); - IASTNode ESCAPE114 = default(IASTNode); - IASTNode BETWEEN116 = default(IASTNode); - IASTNode NOT_BETWEEN120 = default(IASTNode); - IASTNode IN124 = default(IASTNode); - IASTNode NOT_IN127 = default(IASTNode); - IASTNode IS_NULL130 = default(IASTNode); - IASTNode IS_NOT_NULL132 = default(IASTNode); - IASTNode EXISTS134 = default(IASTNode); - AstTreeRuleReturnScope exprOrSubquery89 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery90 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery92 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery93 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery95 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery96 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery98 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery99 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery101 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery102 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery104 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery105 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery107 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr108 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr110 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery112 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr113 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr115 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery117 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery118 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery119 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery121 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery122 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery123 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery125 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope inRhs126 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery128 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope inRhs129 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery131 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery133 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr135 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope collectionFunctionOrSubselect136 = default(AstTreeRuleReturnScope); - - IASTNode EQ88_tree = default(IASTNode); - IASTNode NE91_tree = default(IASTNode); - IASTNode LT94_tree = default(IASTNode); - IASTNode GT97_tree = default(IASTNode); - IASTNode LE100_tree = default(IASTNode); - IASTNode GE103_tree = default(IASTNode); - IASTNode LIKE106_tree = default(IASTNode); - IASTNode ESCAPE109_tree = default(IASTNode); - IASTNode NOT_LIKE111_tree = default(IASTNode); - IASTNode ESCAPE114_tree = default(IASTNode); - IASTNode BETWEEN116_tree = default(IASTNode); - IASTNode NOT_BETWEEN120_tree = default(IASTNode); - IASTNode IN124_tree = default(IASTNode); - IASTNode NOT_IN127_tree = default(IASTNode); - IASTNode IS_NULL130_tree = default(IASTNode); - IASTNode IS_NOT_NULL132_tree = default(IASTNode); - IASTNode EXISTS134_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "comparisonExpr"); - DebugLocation(345, 1); - try - { - // HqlSqlWalker.g:349:2: ( ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:350:2: ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(350, 2); - // HqlSqlWalker.g:350:2: ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) - int alt47=15; - try { DebugEnterSubRule(47); - try { DebugEnterDecision(47, false); - switch (input.LA(1)) - { - case EQ: - { - alt47 = 1; - } - break; - case NE: - { - alt47 = 2; - } - break; - case LT: - { - alt47 = 3; - } - break; - case GT: - { - alt47 = 4; - } - break; - case LE: - { - alt47 = 5; - } - break; - case GE: - { - alt47 = 6; - } - break; - case LIKE: - { - alt47 = 7; - } - break; - case NOT_LIKE: - { - alt47 = 8; - } - break; - case BETWEEN: - { - alt47 = 9; - } - break; - case NOT_BETWEEN: - { - alt47 = 10; - } - break; - case IN: - { - alt47 = 11; - } - break; - case NOT_IN: - { - alt47 = 12; - } - break; - case IS_NULL: - { - alt47 = 13; - } - break; - case IS_NOT_NULL: - { - alt47 = 14; - } - break; - case EXISTS: - { - alt47 = 15; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 47, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(47); } - switch (alt47) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:350:4: ^( EQ exprOrSubquery exprOrSubquery ) - { - DebugLocation(350, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(350, 6); - - _last = (IASTNode)input.LT(1); - EQ88=(IASTNode)Match(input,EQ,Follow._EQ_in_comparisonExpr1668); - EQ88_tree = (IASTNode)adaptor.DupNode(EQ88); - - - root_1 = (IASTNode)adaptor.BecomeRoot(EQ88_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(350, 9); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1670); - exprOrSubquery89=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery89.Tree); - - DebugLocation(350, 24); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1672); - exprOrSubquery90=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery90.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:351:4: ^( NE exprOrSubquery exprOrSubquery ) - { - DebugLocation(351, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(351, 6); - - _last = (IASTNode)input.LT(1); - NE91=(IASTNode)Match(input,NE,Follow._NE_in_comparisonExpr1679); - NE91_tree = (IASTNode)adaptor.DupNode(NE91); - - - root_1 = (IASTNode)adaptor.BecomeRoot(NE91_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(351, 9); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1681); - exprOrSubquery92=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery92.Tree); - - DebugLocation(351, 24); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1683); - exprOrSubquery93=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery93.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:352:4: ^( LT exprOrSubquery exprOrSubquery ) - { - DebugLocation(352, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(352, 6); - - _last = (IASTNode)input.LT(1); - LT94=(IASTNode)Match(input,LT,Follow._LT_in_comparisonExpr1690); - LT94_tree = (IASTNode)adaptor.DupNode(LT94); - - - root_1 = (IASTNode)adaptor.BecomeRoot(LT94_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(352, 9); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1692); - exprOrSubquery95=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery95.Tree); - - DebugLocation(352, 24); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1694); - exprOrSubquery96=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery96.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 4: - DebugEnterAlt(4); - // HqlSqlWalker.g:353:4: ^( GT exprOrSubquery exprOrSubquery ) - { - DebugLocation(353, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(353, 6); - - _last = (IASTNode)input.LT(1); - GT97=(IASTNode)Match(input,GT,Follow._GT_in_comparisonExpr1701); - GT97_tree = (IASTNode)adaptor.DupNode(GT97); - - - root_1 = (IASTNode)adaptor.BecomeRoot(GT97_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(353, 9); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1703); - exprOrSubquery98=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery98.Tree); - - DebugLocation(353, 24); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1705); - exprOrSubquery99=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery99.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 5: - DebugEnterAlt(5); - // HqlSqlWalker.g:354:4: ^( LE exprOrSubquery exprOrSubquery ) - { - DebugLocation(354, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(354, 6); - - _last = (IASTNode)input.LT(1); - LE100=(IASTNode)Match(input,LE,Follow._LE_in_comparisonExpr1712); - LE100_tree = (IASTNode)adaptor.DupNode(LE100); - - - root_1 = (IASTNode)adaptor.BecomeRoot(LE100_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(354, 9); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1714); - exprOrSubquery101=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery101.Tree); - - DebugLocation(354, 24); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1716); - exprOrSubquery102=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery102.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 6: - DebugEnterAlt(6); - // HqlSqlWalker.g:355:4: ^( GE exprOrSubquery exprOrSubquery ) - { - DebugLocation(355, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(355, 6); - - _last = (IASTNode)input.LT(1); - GE103=(IASTNode)Match(input,GE,Follow._GE_in_comparisonExpr1723); - GE103_tree = (IASTNode)adaptor.DupNode(GE103); - - - root_1 = (IASTNode)adaptor.BecomeRoot(GE103_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(355, 9); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1725); - exprOrSubquery104=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery104.Tree); - - DebugLocation(355, 24); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1727); - exprOrSubquery105=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery105.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 7: - DebugEnterAlt(7); - // HqlSqlWalker.g:356:4: ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) - { - DebugLocation(356, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(356, 6); - - _last = (IASTNode)input.LT(1); - LIKE106=(IASTNode)Match(input,LIKE,Follow._LIKE_in_comparisonExpr1734); - LIKE106_tree = (IASTNode)adaptor.DupNode(LIKE106); - - - root_1 = (IASTNode)adaptor.BecomeRoot(LIKE106_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(356, 11); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1736); - exprOrSubquery107=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery107.Tree); - - DebugLocation(356, 26); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_comparisonExpr1738); - expr108=expr(); - PopFollow(); - - adaptor.AddChild(root_1, expr108.Tree); - - DebugLocation(356, 31); - // HqlSqlWalker.g:356:31: ( ^( ESCAPE expr ) )? - int alt44=2; - try { DebugEnterSubRule(44); - try { DebugEnterDecision(44, false); - int LA44_1 = input.LA(1); - - if ((LA44_1==ESCAPE)) - { - alt44 = 1; - } - } finally { DebugExitDecision(44); } - switch (alt44) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:356:33: ^( ESCAPE expr ) - { - DebugLocation(356, 33); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_2 = _last; - IASTNode _first_2 = default(IASTNode); - IASTNode root_2 = (IASTNode)adaptor.Nil(); - DebugLocation(356, 35); - - _last = (IASTNode)input.LT(1); - ESCAPE109=(IASTNode)Match(input,ESCAPE,Follow._ESCAPE_in_comparisonExpr1743); - ESCAPE109_tree = (IASTNode)adaptor.DupNode(ESCAPE109); - - - root_2 = (IASTNode)adaptor.BecomeRoot(ESCAPE109_tree, root_2); - - - Match(input, TokenTypes.Down, null); - DebugLocation(356, 42); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_comparisonExpr1745); - expr110=expr(); - PopFollow(); - - adaptor.AddChild(root_2, expr110.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_1, root_2); - _last = _save_last_2; - } - - - } - break; - - } - } finally { DebugExitSubRule(44); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 8: - DebugEnterAlt(8); - // HqlSqlWalker.g:357:4: ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) - { - DebugLocation(357, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(357, 6); - - _last = (IASTNode)input.LT(1); - NOT_LIKE111=(IASTNode)Match(input,NOT_LIKE,Follow._NOT_LIKE_in_comparisonExpr1757); - NOT_LIKE111_tree = (IASTNode)adaptor.DupNode(NOT_LIKE111); - - - root_1 = (IASTNode)adaptor.BecomeRoot(NOT_LIKE111_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(357, 15); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1759); - exprOrSubquery112=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery112.Tree); - - DebugLocation(357, 30); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_comparisonExpr1761); - expr113=expr(); - PopFollow(); - - adaptor.AddChild(root_1, expr113.Tree); - - DebugLocation(357, 35); - // HqlSqlWalker.g:357:35: ( ^( ESCAPE expr ) )? - int alt45=2; - try { DebugEnterSubRule(45); - try { DebugEnterDecision(45, false); - int LA45_1 = input.LA(1); - - if ((LA45_1==ESCAPE)) - { - alt45 = 1; - } - } finally { DebugExitDecision(45); } - switch (alt45) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:357:37: ^( ESCAPE expr ) - { - DebugLocation(357, 37); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_2 = _last; - IASTNode _first_2 = default(IASTNode); - IASTNode root_2 = (IASTNode)adaptor.Nil(); - DebugLocation(357, 39); - - _last = (IASTNode)input.LT(1); - ESCAPE114=(IASTNode)Match(input,ESCAPE,Follow._ESCAPE_in_comparisonExpr1766); - ESCAPE114_tree = (IASTNode)adaptor.DupNode(ESCAPE114); - - - root_2 = (IASTNode)adaptor.BecomeRoot(ESCAPE114_tree, root_2); - - - Match(input, TokenTypes.Down, null); - DebugLocation(357, 46); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_comparisonExpr1768); - expr115=expr(); - PopFollow(); - - adaptor.AddChild(root_2, expr115.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_1, root_2); - _last = _save_last_2; - } - - - } - break; - - } - } finally { DebugExitSubRule(45); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 9: - DebugEnterAlt(9); - // HqlSqlWalker.g:358:4: ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) - { - DebugLocation(358, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(358, 6); - - _last = (IASTNode)input.LT(1); - BETWEEN116=(IASTNode)Match(input,BETWEEN,Follow._BETWEEN_in_comparisonExpr1780); - BETWEEN116_tree = (IASTNode)adaptor.DupNode(BETWEEN116); - - - root_1 = (IASTNode)adaptor.BecomeRoot(BETWEEN116_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(358, 14); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1782); - exprOrSubquery117=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery117.Tree); - - DebugLocation(358, 29); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1784); - exprOrSubquery118=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery118.Tree); - - DebugLocation(358, 44); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1786); - exprOrSubquery119=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery119.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 10: - DebugEnterAlt(10); - // HqlSqlWalker.g:359:4: ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) - { - DebugLocation(359, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(359, 6); - - _last = (IASTNode)input.LT(1); - NOT_BETWEEN120=(IASTNode)Match(input,NOT_BETWEEN,Follow._NOT_BETWEEN_in_comparisonExpr1793); - NOT_BETWEEN120_tree = (IASTNode)adaptor.DupNode(NOT_BETWEEN120); - - - root_1 = (IASTNode)adaptor.BecomeRoot(NOT_BETWEEN120_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(359, 18); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1795); - exprOrSubquery121=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery121.Tree); - - DebugLocation(359, 33); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1797); - exprOrSubquery122=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery122.Tree); - - DebugLocation(359, 48); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1799); - exprOrSubquery123=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery123.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 11: - DebugEnterAlt(11); - // HqlSqlWalker.g:360:4: ^( IN exprOrSubquery inRhs ) - { - DebugLocation(360, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(360, 6); - - _last = (IASTNode)input.LT(1); - IN124=(IASTNode)Match(input,IN,Follow._IN_in_comparisonExpr1806); - IN124_tree = (IASTNode)adaptor.DupNode(IN124); - - - root_1 = (IASTNode)adaptor.BecomeRoot(IN124_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(360, 9); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1808); - exprOrSubquery125=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery125.Tree); - - DebugLocation(360, 24); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._inRhs_in_comparisonExpr1810); - inRhs126=inRhs(); - PopFollow(); - - adaptor.AddChild(root_1, inRhs126.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 12: - DebugEnterAlt(12); - // HqlSqlWalker.g:361:4: ^( NOT_IN exprOrSubquery inRhs ) - { - DebugLocation(361, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(361, 6); - - _last = (IASTNode)input.LT(1); - NOT_IN127=(IASTNode)Match(input,NOT_IN,Follow._NOT_IN_in_comparisonExpr1818); - NOT_IN127_tree = (IASTNode)adaptor.DupNode(NOT_IN127); - - - root_1 = (IASTNode)adaptor.BecomeRoot(NOT_IN127_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(361, 13); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1820); - exprOrSubquery128=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery128.Tree); - - DebugLocation(361, 28); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._inRhs_in_comparisonExpr1822); - inRhs129=inRhs(); - PopFollow(); - - adaptor.AddChild(root_1, inRhs129.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 13: - DebugEnterAlt(13); - // HqlSqlWalker.g:362:4: ^( IS_NULL exprOrSubquery ) - { - DebugLocation(362, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(362, 6); - - _last = (IASTNode)input.LT(1); - IS_NULL130=(IASTNode)Match(input,IS_NULL,Follow._IS_NULL_in_comparisonExpr1830); - IS_NULL130_tree = (IASTNode)adaptor.DupNode(IS_NULL130); - - - root_1 = (IASTNode)adaptor.BecomeRoot(IS_NULL130_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(362, 14); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1832); - exprOrSubquery131=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery131.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 14: - DebugEnterAlt(14); - // HqlSqlWalker.g:363:4: ^( IS_NOT_NULL exprOrSubquery ) - { - DebugLocation(363, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(363, 6); - - _last = (IASTNode)input.LT(1); - IS_NOT_NULL132=(IASTNode)Match(input,IS_NOT_NULL,Follow._IS_NOT_NULL_in_comparisonExpr1839); - IS_NOT_NULL132_tree = (IASTNode)adaptor.DupNode(IS_NOT_NULL132); - - - root_1 = (IASTNode)adaptor.BecomeRoot(IS_NOT_NULL132_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(363, 18); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_comparisonExpr1841); - exprOrSubquery133=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery133.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 15: - DebugEnterAlt(15); - // HqlSqlWalker.g:366:4: ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) - { - DebugLocation(366, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(366, 6); - - _last = (IASTNode)input.LT(1); - EXISTS134=(IASTNode)Match(input,EXISTS,Follow._EXISTS_in_comparisonExpr1850); - EXISTS134_tree = (IASTNode)adaptor.DupNode(EXISTS134); - - - root_1 = (IASTNode)adaptor.BecomeRoot(EXISTS134_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(366, 13); - // HqlSqlWalker.g:366:13: ( expr | collectionFunctionOrSubselect ) - int alt46=2; - try { DebugEnterSubRule(46); - try { DebugEnterDecision(46, false); - int LA46_1 = input.LA(1); - - if ((LA46_1==AGGREGATE||LA46_1==BAND||(LA46_1>=BNOT && LA46_1<=BOR)||(LA46_1>=BXOR && LA46_1<=CASE2)||LA46_1==COLON||LA46_1==COUNT||(LA46_1>=DIV && LA46_1<=DOT)||LA46_1==FALSE||LA46_1==IDENT||LA46_1==INDEX_OP||LA46_1==JAVA_CONSTANT||LA46_1==METHOD_CALL||LA46_1==MINUS||(LA46_1>=NULL && LA46_1<=NUM_LONG)||(LA46_1>=PARAM && LA46_1<=PLUS)||LA46_1==QUOTED_String||LA46_1==STAR||(LA46_1>=TRUE && LA46_1<=UNARY_MINUS)||LA46_1==VECTOR_EXPR||LA46_1==WEIRD_IDENT)) - { - alt46 = 1; - } - else if ((LA46_1==ELEMENTS||LA46_1==INDICES||LA46_1==QUERY||LA46_1==UNION)) - { - alt46 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 46, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(46); } - switch (alt46) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:366:15: expr - { - DebugLocation(366, 15); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_comparisonExpr1854); - expr135=expr(); - PopFollow(); - - adaptor.AddChild(root_1, expr135.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:366:22: collectionFunctionOrSubselect - { - DebugLocation(366, 22); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._collectionFunctionOrSubselect_in_comparisonExpr1858); - collectionFunctionOrSubselect136=collectionFunctionOrSubselect(); - PopFollow(); - - adaptor.AddChild(root_1, collectionFunctionOrSubselect136.Tree); - - - } - break; - - } - } finally { DebugExitSubRule(46); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - - } - } finally { DebugExitSubRule(47); } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - PrepareLogicOperator( retval.Tree ); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("comparisonExpr", 39); - LeaveRule("comparisonExpr", 39); - LeaveRule_comparisonExpr(); - } - DebugLocation(368, 1); - } finally { DebugExitRule(GrammarFileName, "comparisonExpr"); } - return retval; - - } - // $ANTLR end "comparisonExpr" - - partial void EnterRule_inRhs(); - partial void LeaveRule_inRhs(); - // $ANTLR start "inRhs" - // HqlSqlWalker.g:370:1: inRhs : ^( IN_LIST ( collectionFunctionOrSubselect | ( expr )* ) ) ; - [GrammarRule("inRhs")] - private AstTreeRuleReturnScope inRhs() - { - EnterRule_inRhs(); - EnterRule("inRhs", 40); - TraceIn("inRhs", 40); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode IN_LIST137 = default(IASTNode); - AstTreeRuleReturnScope collectionFunctionOrSubselect138 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr139 = default(AstTreeRuleReturnScope); - - IASTNode IN_LIST137_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "inRhs"); - DebugLocation(370, 1); - try - { - // HqlSqlWalker.g:371:2: ( ^( IN_LIST ( collectionFunctionOrSubselect | ( expr )* ) ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:371:4: ^( IN_LIST ( collectionFunctionOrSubselect | ( expr )* ) ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(371, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(371, 6); - - _last = (IASTNode)input.LT(1); - IN_LIST137=(IASTNode)Match(input,IN_LIST,Follow._IN_LIST_in_inRhs1877); - IN_LIST137_tree = (IASTNode)adaptor.DupNode(IN_LIST137); - - - root_1 = (IASTNode)adaptor.BecomeRoot(IN_LIST137_tree, root_1); - - - if (input.LA(1) == TokenTypes.Down) { - Match(input, TokenTypes.Down, null); - DebugLocation(371, 14); - // HqlSqlWalker.g:371:14: ( collectionFunctionOrSubselect | ( expr )* ) - int alt49=2; - try { DebugEnterSubRule(49); - try { DebugEnterDecision(49, false); - int LA49_1 = input.LA(1); - - if ((LA49_1==ELEMENTS||LA49_1==INDICES||LA49_1==QUERY||LA49_1==UNION)) - { - alt49 = 1; - } - else if (((LA49_1>=UP && LA49_1<=AGGREGATE)||LA49_1==BAND||(LA49_1>=BNOT && LA49_1<=BOR)||(LA49_1>=BXOR && LA49_1<=CASE2)||LA49_1==COLON||LA49_1==COUNT||(LA49_1>=DIV && LA49_1<=DOT)||LA49_1==FALSE||LA49_1==IDENT||LA49_1==INDEX_OP||LA49_1==JAVA_CONSTANT||LA49_1==METHOD_CALL||LA49_1==MINUS||(LA49_1>=NULL && LA49_1<=NUM_LONG)||(LA49_1>=PARAM && LA49_1<=PLUS)||LA49_1==QUOTED_String||LA49_1==STAR||(LA49_1>=TRUE && LA49_1<=UNARY_MINUS)||LA49_1==VECTOR_EXPR||LA49_1==WEIRD_IDENT)) - { - alt49 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 49, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(49); } - switch (alt49) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:371:16: collectionFunctionOrSubselect - { - DebugLocation(371, 16); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._collectionFunctionOrSubselect_in_inRhs1881); - collectionFunctionOrSubselect138=collectionFunctionOrSubselect(); - PopFollow(); - - adaptor.AddChild(root_1, collectionFunctionOrSubselect138.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:371:48: ( expr )* - { - DebugLocation(371, 48); - // HqlSqlWalker.g:371:48: ( expr )* - try { DebugEnterSubRule(48); - while (true) - { - int alt48=2; - try { DebugEnterDecision(48, false); - int LA48_1 = input.LA(1); - - if ((LA48_1==AGGREGATE||LA48_1==BAND||(LA48_1>=BNOT && LA48_1<=BOR)||(LA48_1>=BXOR && LA48_1<=CASE2)||LA48_1==COLON||LA48_1==COUNT||(LA48_1>=DIV && LA48_1<=DOT)||LA48_1==FALSE||LA48_1==IDENT||LA48_1==INDEX_OP||LA48_1==JAVA_CONSTANT||LA48_1==METHOD_CALL||LA48_1==MINUS||(LA48_1>=NULL && LA48_1<=NUM_LONG)||(LA48_1>=PARAM && LA48_1<=PLUS)||LA48_1==QUOTED_String||LA48_1==STAR||(LA48_1>=TRUE && LA48_1<=UNARY_MINUS)||LA48_1==VECTOR_EXPR||LA48_1==WEIRD_IDENT)) - { - alt48 = 1; - } - - - } finally { DebugExitDecision(48); } - switch ( alt48 ) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:371:48: expr - { - DebugLocation(371, 48); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_inRhs1885); - expr139=expr(); - PopFollow(); - - adaptor.AddChild(root_1, expr139.Tree); - - - } - break; - - default: - goto loop48; - } - } - - loop48: - ; - - } finally { DebugExitSubRule(48); } - - - } - break; - - } - } finally { DebugExitSubRule(49); } - - - Match(input, TokenTypes.Up, null); - } - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("inRhs", 40); - LeaveRule("inRhs", 40); - LeaveRule_inRhs(); - } - DebugLocation(372, 1); - } finally { DebugExitRule(GrammarFileName, "inRhs"); } - return retval; - - } - // $ANTLR end "inRhs" - - partial void EnterRule_exprOrSubquery(); - partial void LeaveRule_exprOrSubquery(); - // $ANTLR start "exprOrSubquery" - // HqlSqlWalker.g:374:1: exprOrSubquery : ( expr | query | ^( ANY collectionFunctionOrSubselect ) | ^( ALL collectionFunctionOrSubselect ) | ^( SOME collectionFunctionOrSubselect ) ); - [GrammarRule("exprOrSubquery")] - private AstTreeRuleReturnScope exprOrSubquery() - { - EnterRule_exprOrSubquery(); - EnterRule("exprOrSubquery", 41); - TraceIn("exprOrSubquery", 41); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode ANY142 = default(IASTNode); - IASTNode ALL144 = default(IASTNode); - IASTNode SOME146 = default(IASTNode); - AstTreeRuleReturnScope expr140 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope query141 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope collectionFunctionOrSubselect143 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope collectionFunctionOrSubselect145 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope collectionFunctionOrSubselect147 = default(AstTreeRuleReturnScope); - - IASTNode ANY142_tree = default(IASTNode); - IASTNode ALL144_tree = default(IASTNode); - IASTNode SOME146_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "exprOrSubquery"); - DebugLocation(374, 1); - try - { - // HqlSqlWalker.g:375:2: ( expr | query | ^( ANY collectionFunctionOrSubselect ) | ^( ALL collectionFunctionOrSubselect ) | ^( SOME collectionFunctionOrSubselect ) ) - int alt50=5; - try { DebugEnterDecision(50, false); - switch (input.LA(1)) - { - case AGGREGATE: - case BAND: - case BNOT: - case BOR: - case BXOR: - case CASE: - case CASE2: - case COLON: - case COUNT: - case DIV: - case DOT: - case FALSE: - case IDENT: - case INDEX_OP: - case JAVA_CONSTANT: - case METHOD_CALL: - case MINUS: - case NULL: - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case PARAM: - case PLUS: - case QUOTED_String: - case STAR: - case TRUE: - case UNARY_MINUS: - case VECTOR_EXPR: - case WEIRD_IDENT: - { - alt50 = 1; - } - break; - case QUERY: - case UNION: - { - alt50 = 2; - } - break; - case ANY: - { - alt50 = 3; - } - break; - case ALL: - { - alt50 = 4; - } - break; - case SOME: - { - alt50 = 5; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 50, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(50); } - switch (alt50) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:375:4: expr - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(375, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_exprOrSubquery1901); - expr140=expr(); - PopFollow(); - - adaptor.AddChild(root_0, expr140.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:376:4: query - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(376, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._query_in_exprOrSubquery1906); - query141=query(); - PopFollow(); - - adaptor.AddChild(root_0, query141.Tree); - - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:377:4: ^( ANY collectionFunctionOrSubselect ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(377, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(377, 6); - - _last = (IASTNode)input.LT(1); - ANY142=(IASTNode)Match(input,ANY,Follow._ANY_in_exprOrSubquery1912); - ANY142_tree = (IASTNode)adaptor.DupNode(ANY142); - - - root_1 = (IASTNode)adaptor.BecomeRoot(ANY142_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(377, 10); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._collectionFunctionOrSubselect_in_exprOrSubquery1914); - collectionFunctionOrSubselect143=collectionFunctionOrSubselect(); - PopFollow(); - - adaptor.AddChild(root_1, collectionFunctionOrSubselect143.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 4: - DebugEnterAlt(4); - // HqlSqlWalker.g:378:4: ^( ALL collectionFunctionOrSubselect ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(378, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(378, 6); - - _last = (IASTNode)input.LT(1); - ALL144=(IASTNode)Match(input,ALL,Follow._ALL_in_exprOrSubquery1921); - ALL144_tree = (IASTNode)adaptor.DupNode(ALL144); - - - root_1 = (IASTNode)adaptor.BecomeRoot(ALL144_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(378, 10); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._collectionFunctionOrSubselect_in_exprOrSubquery1923); - collectionFunctionOrSubselect145=collectionFunctionOrSubselect(); - PopFollow(); - - adaptor.AddChild(root_1, collectionFunctionOrSubselect145.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 5: - DebugEnterAlt(5); - // HqlSqlWalker.g:379:4: ^( SOME collectionFunctionOrSubselect ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(379, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(379, 6); - - _last = (IASTNode)input.LT(1); - SOME146=(IASTNode)Match(input,SOME,Follow._SOME_in_exprOrSubquery1930); - SOME146_tree = (IASTNode)adaptor.DupNode(SOME146); - - - root_1 = (IASTNode)adaptor.BecomeRoot(SOME146_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(379, 11); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._collectionFunctionOrSubselect_in_exprOrSubquery1932); - collectionFunctionOrSubselect147=collectionFunctionOrSubselect(); - PopFollow(); - - adaptor.AddChild(root_1, collectionFunctionOrSubselect147.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("exprOrSubquery", 41); - LeaveRule("exprOrSubquery", 41); - LeaveRule_exprOrSubquery(); - } - DebugLocation(380, 1); - } finally { DebugExitRule(GrammarFileName, "exprOrSubquery"); } - return retval; - - } - // $ANTLR end "exprOrSubquery" - - partial void EnterRule_collectionFunctionOrSubselect(); - partial void LeaveRule_collectionFunctionOrSubselect(); - // $ANTLR start "collectionFunctionOrSubselect" - // HqlSqlWalker.g:382:1: collectionFunctionOrSubselect : ( collectionFunction | query ); - [GrammarRule("collectionFunctionOrSubselect")] - private AstTreeRuleReturnScope collectionFunctionOrSubselect() - { - EnterRule_collectionFunctionOrSubselect(); - EnterRule("collectionFunctionOrSubselect", 42); - TraceIn("collectionFunctionOrSubselect", 42); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope collectionFunction148 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope query149 = default(AstTreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "collectionFunctionOrSubselect"); - DebugLocation(382, 1); - try - { - // HqlSqlWalker.g:383:2: ( collectionFunction | query ) - int alt51=2; - try { DebugEnterDecision(51, false); - int LA51_1 = input.LA(1); - - if ((LA51_1==ELEMENTS||LA51_1==INDICES)) - { - alt51 = 1; - } - else if ((LA51_1==QUERY||LA51_1==UNION)) - { - alt51 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 51, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(51); } - switch (alt51) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:383:4: collectionFunction - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(383, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._collectionFunction_in_collectionFunctionOrSubselect1945); - collectionFunction148=collectionFunction(); - PopFollow(); - - adaptor.AddChild(root_0, collectionFunction148.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:384:4: query - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(384, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._query_in_collectionFunctionOrSubselect1950); - query149=query(); - PopFollow(); - - adaptor.AddChild(root_0, query149.Tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("collectionFunctionOrSubselect", 42); - LeaveRule("collectionFunctionOrSubselect", 42); - LeaveRule_collectionFunctionOrSubselect(); - } - DebugLocation(385, 1); - } finally { DebugExitRule(GrammarFileName, "collectionFunctionOrSubselect"); } - return retval; - - } - // $ANTLR end "collectionFunctionOrSubselect" - - partial void EnterRule_expr(); - partial void LeaveRule_expr(); - // $ANTLR start "expr" - // HqlSqlWalker.g:387:1: expr : (ae= addrExpr[ true ] | ^( VECTOR_EXPR ( expr )* ) | constant | arithmeticExpr | functionCall | parameter | count ); - [GrammarRule("expr")] - private AstTreeRuleReturnScope expr() - { - EnterRule_expr(); - EnterRule("expr", 43); - TraceIn("expr", 43); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode VECTOR_EXPR150 = default(IASTNode); - AstTreeRuleReturnScope ae = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr151 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope constant152 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope arithmeticExpr153 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope functionCall154 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope parameter155 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope count156 = default(AstTreeRuleReturnScope); - - IASTNode VECTOR_EXPR150_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "expr"); - DebugLocation(387, 1); - try - { - // HqlSqlWalker.g:388:2: (ae= addrExpr[ true ] | ^( VECTOR_EXPR ( expr )* ) | constant | arithmeticExpr | functionCall | parameter | count ) - int alt53=7; - try { DebugEnterDecision(53, false); - switch (input.LA(1)) - { - case DOT: - case IDENT: - case INDEX_OP: - case WEIRD_IDENT: - { - alt53 = 1; - } - break; - case VECTOR_EXPR: - { - alt53 = 2; - } - break; - case FALSE: - case JAVA_CONSTANT: - case NULL: - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case QUOTED_String: - case TRUE: - { - alt53 = 3; - } - break; - case BAND: - case BNOT: - case BOR: - case BXOR: - case CASE: - case CASE2: - case DIV: - case MINUS: - case PLUS: - case STAR: - case UNARY_MINUS: - { - alt53 = 4; - } - break; - case AGGREGATE: - case METHOD_CALL: - { - alt53 = 5; - } - break; - case COLON: - case PARAM: - { - alt53 = 6; - } - break; - case COUNT: - { - alt53 = 7; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 53, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(53); } - switch (alt53) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:388:4: ae= addrExpr[ true ] - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(388, 6); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._addrExpr_in_expr1964); - ae=addrExpr(true); - PopFollow(); - - adaptor.AddChild(root_0, ae.Tree); - - DebugLocation(388, 25); - Resolve((ae!=null?((IASTNode)ae.Tree):default(IASTNode))); - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:389:4: ^( VECTOR_EXPR ( expr )* ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(389, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(389, 7); - - _last = (IASTNode)input.LT(1); - VECTOR_EXPR150=(IASTNode)Match(input,VECTOR_EXPR,Follow._VECTOR_EXPR_in_expr1976); - VECTOR_EXPR150_tree = (IASTNode)adaptor.DupNode(VECTOR_EXPR150); - - - root_1 = (IASTNode)adaptor.BecomeRoot(VECTOR_EXPR150_tree, root_1); - - - if (input.LA(1) == TokenTypes.Down) { - Match(input, TokenTypes.Down, null); - DebugLocation(389, 19); - // HqlSqlWalker.g:389:19: ( expr )* - try { DebugEnterSubRule(52); - while (true) - { - int alt52=2; - try { DebugEnterDecision(52, false); - int LA52_1 = input.LA(1); - - if ((LA52_1==AGGREGATE||LA52_1==BAND||(LA52_1>=BNOT && LA52_1<=BOR)||(LA52_1>=BXOR && LA52_1<=CASE2)||LA52_1==COLON||LA52_1==COUNT||(LA52_1>=DIV && LA52_1<=DOT)||LA52_1==FALSE||LA52_1==IDENT||LA52_1==INDEX_OP||LA52_1==JAVA_CONSTANT||LA52_1==METHOD_CALL||LA52_1==MINUS||(LA52_1>=NULL && LA52_1<=NUM_LONG)||(LA52_1>=PARAM && LA52_1<=PLUS)||LA52_1==QUOTED_String||LA52_1==STAR||(LA52_1>=TRUE && LA52_1<=UNARY_MINUS)||LA52_1==VECTOR_EXPR||LA52_1==WEIRD_IDENT)) - { - alt52 = 1; - } - - - } finally { DebugExitDecision(52); } - switch ( alt52 ) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:389:20: expr - { - DebugLocation(389, 20); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_expr1979); - expr151=expr(); - PopFollow(); - - adaptor.AddChild(root_1, expr151.Tree); - - - } - break; - - default: - goto loop52; - } - } - - loop52: - ; - - } finally { DebugExitSubRule(52); } - - - Match(input, TokenTypes.Up, null); - } - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:390:4: constant - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(390, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._constant_in_expr1988); - constant152=constant(); - PopFollow(); - - adaptor.AddChild(root_0, constant152.Tree); - - - } - break; - case 4: - DebugEnterAlt(4); - // HqlSqlWalker.g:391:4: arithmeticExpr - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(391, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._arithmeticExpr_in_expr1993); - arithmeticExpr153=arithmeticExpr(); - PopFollow(); - - adaptor.AddChild(root_0, arithmeticExpr153.Tree); - - - } - break; - case 5: - DebugEnterAlt(5); - // HqlSqlWalker.g:392:4: functionCall - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(392, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._functionCall_in_expr1998); - functionCall154=functionCall(); - PopFollow(); - - adaptor.AddChild(root_0, functionCall154.Tree); - - - } - break; - case 6: - DebugEnterAlt(6); - // HqlSqlWalker.g:393:4: parameter - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(393, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._parameter_in_expr2010); - parameter155=parameter(); - PopFollow(); - - adaptor.AddChild(root_0, parameter155.Tree); - - - } - break; - case 7: - DebugEnterAlt(7); - // HqlSqlWalker.g:394:4: count - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(394, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._count_in_expr2015); - count156=count(); - PopFollow(); - - adaptor.AddChild(root_0, count156.Tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("expr", 43); - LeaveRule("expr", 43); - LeaveRule_expr(); - } - DebugLocation(395, 1); - } finally { DebugExitRule(GrammarFileName, "expr"); } - return retval; - - } - // $ANTLR end "expr" - - partial void EnterRule_arithmeticExpr(); - partial void LeaveRule_arithmeticExpr(); - // $ANTLR start "arithmeticExpr" - // HqlSqlWalker.g:397:1: arithmeticExpr : ( ^( PLUS exprOrSubquery exprOrSubquery ) | ^( MINUS exprOrSubquery exprOrSubquery ) | ^( DIV exprOrSubquery exprOrSubquery ) | ^( STAR exprOrSubquery exprOrSubquery ) | ^( BNOT exprOrSubquery ) | ^( BAND exprOrSubquery exprOrSubquery ) | ^( BOR exprOrSubquery exprOrSubquery ) | ^( BXOR exprOrSubquery exprOrSubquery ) | ^( UNARY_MINUS exprOrSubquery ) |c= caseExpr ); - [GrammarRule("arithmeticExpr")] - private AstTreeRuleReturnScope arithmeticExpr() - { - EnterRule_arithmeticExpr(); - EnterRule("arithmeticExpr", 44); - TraceIn("arithmeticExpr", 44); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode PLUS157 = default(IASTNode); - IASTNode MINUS160 = default(IASTNode); - IASTNode DIV163 = default(IASTNode); - IASTNode STAR166 = default(IASTNode); - IASTNode BNOT169 = default(IASTNode); - IASTNode BAND171 = default(IASTNode); - IASTNode BOR174 = default(IASTNode); - IASTNode BXOR177 = default(IASTNode); - IASTNode UNARY_MINUS180 = default(IASTNode); - AstTreeRuleReturnScope c = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery158 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery159 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery161 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery162 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery164 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery165 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery167 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery168 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery170 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery172 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery173 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery175 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery176 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery178 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery179 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope exprOrSubquery181 = default(AstTreeRuleReturnScope); - - IASTNode PLUS157_tree = default(IASTNode); - IASTNode MINUS160_tree = default(IASTNode); - IASTNode DIV163_tree = default(IASTNode); - IASTNode STAR166_tree = default(IASTNode); - IASTNode BNOT169_tree = default(IASTNode); - IASTNode BAND171_tree = default(IASTNode); - IASTNode BOR174_tree = default(IASTNode); - IASTNode BXOR177_tree = default(IASTNode); - IASTNode UNARY_MINUS180_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "arithmeticExpr"); - DebugLocation(397, 1); - try - { - // HqlSqlWalker.g:404:2: ( ^( PLUS exprOrSubquery exprOrSubquery ) | ^( MINUS exprOrSubquery exprOrSubquery ) | ^( DIV exprOrSubquery exprOrSubquery ) | ^( STAR exprOrSubquery exprOrSubquery ) | ^( BNOT exprOrSubquery ) | ^( BAND exprOrSubquery exprOrSubquery ) | ^( BOR exprOrSubquery exprOrSubquery ) | ^( BXOR exprOrSubquery exprOrSubquery ) | ^( UNARY_MINUS exprOrSubquery ) |c= caseExpr ) - int alt54=10; - try { DebugEnterDecision(54, false); - switch (input.LA(1)) - { - case PLUS: - { - alt54 = 1; - } - break; - case MINUS: - { - alt54 = 2; - } - break; - case DIV: - { - alt54 = 3; - } - break; - case STAR: - { - alt54 = 4; - } - break; - case BNOT: - { - alt54 = 5; - } - break; - case BAND: - { - alt54 = 6; - } - break; - case BOR: - { - alt54 = 7; - } - break; - case BXOR: - { - alt54 = 8; - } - break; - case UNARY_MINUS: - { - alt54 = 9; - } - break; - case CASE: - case CASE2: - { - alt54 = 10; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 54, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(54); } - switch (alt54) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:404:4: ^( PLUS exprOrSubquery exprOrSubquery ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(404, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(404, 6); - - _last = (IASTNode)input.LT(1); - PLUS157=(IASTNode)Match(input,PLUS,Follow._PLUS_in_arithmeticExpr2043); - PLUS157_tree = (IASTNode)adaptor.DupNode(PLUS157); - - - root_1 = (IASTNode)adaptor.BecomeRoot(PLUS157_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(404, 11); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2045); - exprOrSubquery158=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery158.Tree); - - DebugLocation(404, 26); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2047); - exprOrSubquery159=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery159.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:405:4: ^( MINUS exprOrSubquery exprOrSubquery ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(405, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(405, 6); - - _last = (IASTNode)input.LT(1); - MINUS160=(IASTNode)Match(input,MINUS,Follow._MINUS_in_arithmeticExpr2054); - MINUS160_tree = (IASTNode)adaptor.DupNode(MINUS160); - - - root_1 = (IASTNode)adaptor.BecomeRoot(MINUS160_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(405, 12); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2056); - exprOrSubquery161=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery161.Tree); - - DebugLocation(405, 27); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2058); - exprOrSubquery162=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery162.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:406:4: ^( DIV exprOrSubquery exprOrSubquery ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(406, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(406, 6); - - _last = (IASTNode)input.LT(1); - DIV163=(IASTNode)Match(input,DIV,Follow._DIV_in_arithmeticExpr2065); - DIV163_tree = (IASTNode)adaptor.DupNode(DIV163); - - - root_1 = (IASTNode)adaptor.BecomeRoot(DIV163_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(406, 10); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2067); - exprOrSubquery164=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery164.Tree); - - DebugLocation(406, 25); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2069); - exprOrSubquery165=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery165.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 4: - DebugEnterAlt(4); - // HqlSqlWalker.g:407:4: ^( STAR exprOrSubquery exprOrSubquery ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(407, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(407, 6); - - _last = (IASTNode)input.LT(1); - STAR166=(IASTNode)Match(input,STAR,Follow._STAR_in_arithmeticExpr2076); - STAR166_tree = (IASTNode)adaptor.DupNode(STAR166); - - - root_1 = (IASTNode)adaptor.BecomeRoot(STAR166_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(407, 11); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2078); - exprOrSubquery167=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery167.Tree); - - DebugLocation(407, 26); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2080); - exprOrSubquery168=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery168.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 5: - DebugEnterAlt(5); - // HqlSqlWalker.g:408:4: ^( BNOT exprOrSubquery ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(408, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(408, 6); - - _last = (IASTNode)input.LT(1); - BNOT169=(IASTNode)Match(input,BNOT,Follow._BNOT_in_arithmeticExpr2087); - BNOT169_tree = (IASTNode)adaptor.DupNode(BNOT169); - - - root_1 = (IASTNode)adaptor.BecomeRoot(BNOT169_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(408, 11); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2089); - exprOrSubquery170=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery170.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 6: - DebugEnterAlt(6); - // HqlSqlWalker.g:409:4: ^( BAND exprOrSubquery exprOrSubquery ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(409, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(409, 6); - - _last = (IASTNode)input.LT(1); - BAND171=(IASTNode)Match(input,BAND,Follow._BAND_in_arithmeticExpr2096); - BAND171_tree = (IASTNode)adaptor.DupNode(BAND171); - - - root_1 = (IASTNode)adaptor.BecomeRoot(BAND171_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(409, 11); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2098); - exprOrSubquery172=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery172.Tree); - - DebugLocation(409, 26); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2100); - exprOrSubquery173=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery173.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 7: - DebugEnterAlt(7); - // HqlSqlWalker.g:410:4: ^( BOR exprOrSubquery exprOrSubquery ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(410, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(410, 6); - - _last = (IASTNode)input.LT(1); - BOR174=(IASTNode)Match(input,BOR,Follow._BOR_in_arithmeticExpr2107); - BOR174_tree = (IASTNode)adaptor.DupNode(BOR174); - - - root_1 = (IASTNode)adaptor.BecomeRoot(BOR174_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(410, 10); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2109); - exprOrSubquery175=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery175.Tree); - - DebugLocation(410, 25); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2111); - exprOrSubquery176=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery176.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 8: - DebugEnterAlt(8); - // HqlSqlWalker.g:411:4: ^( BXOR exprOrSubquery exprOrSubquery ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(411, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(411, 6); - - _last = (IASTNode)input.LT(1); - BXOR177=(IASTNode)Match(input,BXOR,Follow._BXOR_in_arithmeticExpr2118); - BXOR177_tree = (IASTNode)adaptor.DupNode(BXOR177); - - - root_1 = (IASTNode)adaptor.BecomeRoot(BXOR177_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(411, 11); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2120); - exprOrSubquery178=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery178.Tree); - - DebugLocation(411, 26); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2122); - exprOrSubquery179=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery179.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 9: - DebugEnterAlt(9); - // HqlSqlWalker.g:413:4: ^( UNARY_MINUS exprOrSubquery ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(413, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(413, 6); - - _last = (IASTNode)input.LT(1); - UNARY_MINUS180=(IASTNode)Match(input,UNARY_MINUS,Follow._UNARY_MINUS_in_arithmeticExpr2130); - UNARY_MINUS180_tree = (IASTNode)adaptor.DupNode(UNARY_MINUS180); - - - root_1 = (IASTNode)adaptor.BecomeRoot(UNARY_MINUS180_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(413, 18); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._exprOrSubquery_in_arithmeticExpr2132); - exprOrSubquery181=exprOrSubquery(); - PopFollow(); - - adaptor.AddChild(root_1, exprOrSubquery181.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - case 10: - DebugEnterAlt(10); - // HqlSqlWalker.g:414:4: c= caseExpr - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(414, 5); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._caseExpr_in_arithmeticExpr2140); - c=caseExpr(); - PopFollow(); - - adaptor.AddChild(root_0, c.Tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - if ((c!=null?((IASTNode)c.Tree):default(IASTNode)) == null) - { - PrepareArithmeticOperator( retval.Tree ); - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("arithmeticExpr", 44); - LeaveRule("arithmeticExpr", 44); - LeaveRule_arithmeticExpr(); - } - DebugLocation(415, 1); - } finally { DebugExitRule(GrammarFileName, "arithmeticExpr"); } - return retval; - - } - // $ANTLR end "arithmeticExpr" - - partial void EnterRule_caseExpr(); - partial void LeaveRule_caseExpr(); - // $ANTLR start "caseExpr" - // HqlSqlWalker.g:417:1: caseExpr : ( ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) | ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) ); - [GrammarRule("caseExpr")] - private AstTreeRuleReturnScope caseExpr() - { - EnterRule_caseExpr(); - EnterRule("caseExpr", 45); - TraceIn("caseExpr", 45); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode CASE182 = default(IASTNode); - IASTNode WHEN183 = default(IASTNode); - IASTNode ELSE186 = default(IASTNode); - IASTNode CASE2188 = default(IASTNode); - IASTNode WHEN190 = default(IASTNode); - IASTNode ELSE193 = default(IASTNode); - AstTreeRuleReturnScope logicalExpr184 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr185 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr187 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr189 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr191 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr192 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr194 = default(AstTreeRuleReturnScope); - - IASTNode CASE182_tree = default(IASTNode); - IASTNode WHEN183_tree = default(IASTNode); - IASTNode ELSE186_tree = default(IASTNode); - IASTNode CASE2188_tree = default(IASTNode); - IASTNode WHEN190_tree = default(IASTNode); - IASTNode ELSE193_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "caseExpr"); - DebugLocation(417, 1); - try - { - // HqlSqlWalker.g:418:2: ( ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) | ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) ) - int alt59=2; - try { DebugEnterDecision(59, false); - int LA59_1 = input.LA(1); - - if ((LA59_1==CASE)) - { - alt59 = 1; - } - else if ((LA59_1==CASE2)) - { - alt59 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 59, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(59); } - switch (alt59) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:418:4: ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(418, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(418, 6); - - _last = (IASTNode)input.LT(1); - CASE182=(IASTNode)Match(input,CASE,Follow._CASE_in_caseExpr2152); - CASE182_tree = (IASTNode)adaptor.DupNode(CASE182); - - - root_1 = (IASTNode)adaptor.BecomeRoot(CASE182_tree, root_1); - - - DebugLocation(418, 11); - _inCase = true; - - Match(input, TokenTypes.Down, null); - DebugLocation(418, 31); - // HqlSqlWalker.g:418:31: ( ^( WHEN logicalExpr expr ) )+ - int cnt55=0; - try { DebugEnterSubRule(55); - while (true) - { - int alt55=2; - try { DebugEnterDecision(55, false); - int LA55_1 = input.LA(1); - - if ((LA55_1==WHEN)) - { - alt55 = 1; - } - - - } finally { DebugExitDecision(55); } - switch (alt55) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:418:32: ^( WHEN logicalExpr expr ) - { - DebugLocation(418, 32); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_2 = _last; - IASTNode _first_2 = default(IASTNode); - IASTNode root_2 = (IASTNode)adaptor.Nil(); - DebugLocation(418, 34); - - _last = (IASTNode)input.LT(1); - WHEN183=(IASTNode)Match(input,WHEN,Follow._WHEN_in_caseExpr2158); - WHEN183_tree = (IASTNode)adaptor.DupNode(WHEN183); - - - root_2 = (IASTNode)adaptor.BecomeRoot(WHEN183_tree, root_2); - - - Match(input, TokenTypes.Down, null); - DebugLocation(418, 39); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._logicalExpr_in_caseExpr2160); - logicalExpr184=logicalExpr(); - PopFollow(); - - adaptor.AddChild(root_2, logicalExpr184.Tree); - - DebugLocation(418, 51); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_caseExpr2162); - expr185=expr(); - PopFollow(); - - adaptor.AddChild(root_2, expr185.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_1, root_2); - _last = _save_last_2; - } - - - } - break; - - default: - if (cnt55 >= 1) - goto loop55; - - EarlyExitException eee55 = new EarlyExitException( 55, input ); - DebugRecognitionException(eee55); - throw eee55; - } - cnt55++; - } - loop55: - ; - - } finally { DebugExitSubRule(55); } - - DebugLocation(418, 59); - // HqlSqlWalker.g:418:59: ( ^( ELSE expr ) )? - int alt56=2; - try { DebugEnterSubRule(56); - try { DebugEnterDecision(56, false); - int LA56_1 = input.LA(1); - - if ((LA56_1==ELSE)) - { - alt56 = 1; - } - } finally { DebugExitDecision(56); } - switch (alt56) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:418:60: ^( ELSE expr ) - { - DebugLocation(418, 60); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_2 = _last; - IASTNode _first_2 = default(IASTNode); - IASTNode root_2 = (IASTNode)adaptor.Nil(); - DebugLocation(418, 62); - - _last = (IASTNode)input.LT(1); - ELSE186=(IASTNode)Match(input,ELSE,Follow._ELSE_in_caseExpr2169); - ELSE186_tree = (IASTNode)adaptor.DupNode(ELSE186); - - - root_2 = (IASTNode)adaptor.BecomeRoot(ELSE186_tree, root_2); - - - Match(input, TokenTypes.Down, null); - DebugLocation(418, 67); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_caseExpr2171); - expr187=expr(); - PopFollow(); - - adaptor.AddChild(root_2, expr187.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_1, root_2); - _last = _save_last_2; - } - - - } - break; - - } - } finally { DebugExitSubRule(56); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - DebugLocation(418, 76); - _inCase = false; - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:419:4: ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(419, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(419, 6); - - _last = (IASTNode)input.LT(1); - CASE2188=(IASTNode)Match(input,CASE2,Follow._CASE2_in_caseExpr2183); - CASE2188_tree = (IASTNode)adaptor.DupNode(CASE2188); - - - root_1 = (IASTNode)adaptor.BecomeRoot(CASE2188_tree, root_1); - - - DebugLocation(419, 12); - _inCase = true; - - Match(input, TokenTypes.Down, null); - DebugLocation(419, 32); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_caseExpr2187); - expr189=expr(); - PopFollow(); - - adaptor.AddChild(root_1, expr189.Tree); - - DebugLocation(419, 37); - // HqlSqlWalker.g:419:37: ( ^( WHEN expr expr ) )+ - int cnt57=0; - try { DebugEnterSubRule(57); - while (true) - { - int alt57=2; - try { DebugEnterDecision(57, false); - int LA57_1 = input.LA(1); - - if ((LA57_1==WHEN)) - { - alt57 = 1; - } - - - } finally { DebugExitDecision(57); } - switch (alt57) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:419:38: ^( WHEN expr expr ) - { - DebugLocation(419, 38); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_2 = _last; - IASTNode _first_2 = default(IASTNode); - IASTNode root_2 = (IASTNode)adaptor.Nil(); - DebugLocation(419, 40); - - _last = (IASTNode)input.LT(1); - WHEN190=(IASTNode)Match(input,WHEN,Follow._WHEN_in_caseExpr2191); - WHEN190_tree = (IASTNode)adaptor.DupNode(WHEN190); - - - root_2 = (IASTNode)adaptor.BecomeRoot(WHEN190_tree, root_2); - - - Match(input, TokenTypes.Down, null); - DebugLocation(419, 45); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_caseExpr2193); - expr191=expr(); - PopFollow(); - - adaptor.AddChild(root_2, expr191.Tree); - - DebugLocation(419, 50); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_caseExpr2195); - expr192=expr(); - PopFollow(); - - adaptor.AddChild(root_2, expr192.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_1, root_2); - _last = _save_last_2; - } - - - } - break; - - default: - if (cnt57 >= 1) - goto loop57; - - EarlyExitException eee57 = new EarlyExitException( 57, input ); - DebugRecognitionException(eee57); - throw eee57; - } - cnt57++; - } - loop57: - ; - - } finally { DebugExitSubRule(57); } - - DebugLocation(419, 58); - // HqlSqlWalker.g:419:58: ( ^( ELSE expr ) )? - int alt58=2; - try { DebugEnterSubRule(58); - try { DebugEnterDecision(58, false); - int LA58_1 = input.LA(1); - - if ((LA58_1==ELSE)) - { - alt58 = 1; - } - } finally { DebugExitDecision(58); } - switch (alt58) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:419:59: ^( ELSE expr ) - { - DebugLocation(419, 59); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_2 = _last; - IASTNode _first_2 = default(IASTNode); - IASTNode root_2 = (IASTNode)adaptor.Nil(); - DebugLocation(419, 61); - - _last = (IASTNode)input.LT(1); - ELSE193=(IASTNode)Match(input,ELSE,Follow._ELSE_in_caseExpr2202); - ELSE193_tree = (IASTNode)adaptor.DupNode(ELSE193); - - - root_2 = (IASTNode)adaptor.BecomeRoot(ELSE193_tree, root_2); - - - Match(input, TokenTypes.Down, null); - DebugLocation(419, 66); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_caseExpr2204); - expr194=expr(); - PopFollow(); - - adaptor.AddChild(root_2, expr194.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_1, root_2); - _last = _save_last_2; - } - - - } - break; - - } - } finally { DebugExitSubRule(58); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - DebugLocation(419, 75); - _inCase = false; - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("caseExpr", 45); - LeaveRule("caseExpr", 45); - LeaveRule_caseExpr(); - } - DebugLocation(420, 1); - } finally { DebugExitRule(GrammarFileName, "caseExpr"); } - return retval; - - } - // $ANTLR end "caseExpr" - - partial void EnterRule_collectionFunction(); - partial void LeaveRule_collectionFunction(); - // $ANTLR start "collectionFunction" - // HqlSqlWalker.g:424:1: collectionFunction : ( ^(e= ELEMENTS p1= propertyRef ) | ^(i= INDICES p2= propertyRef ) ); - [GrammarRule("collectionFunction")] - private AstTreeRuleReturnScope collectionFunction() - { - EnterRule_collectionFunction(); - EnterRule("collectionFunction", 46); - TraceIn("collectionFunction", 46); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode e = default(IASTNode); - IASTNode i = default(IASTNode); - AstTreeRuleReturnScope p1 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope p2 = default(AstTreeRuleReturnScope); - - IASTNode e_tree = default(IASTNode); - IASTNode i_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "collectionFunction"); - DebugLocation(424, 1); - try - { - // HqlSqlWalker.g:425:2: ( ^(e= ELEMENTS p1= propertyRef ) | ^(i= INDICES p2= propertyRef ) ) - int alt60=2; - try { DebugEnterDecision(60, false); - int LA60_1 = input.LA(1); - - if ((LA60_1==ELEMENTS)) - { - alt60 = 1; - } - else if ((LA60_1==INDICES)) - { - alt60 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 60, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(60); } - switch (alt60) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:425:4: ^(e= ELEMENTS p1= propertyRef ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(425, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(425, 7); - - _last = (IASTNode)input.LT(1); - e=(IASTNode)Match(input,ELEMENTS,Follow._ELEMENTS_in_collectionFunction2226); - e_tree = (IASTNode)adaptor.DupNode(e); - - - root_1 = (IASTNode)adaptor.BecomeRoot(e_tree, root_1); - - - DebugLocation(425, 17); - _inFunctionCall=true; - - Match(input, TokenTypes.Down, null); - DebugLocation(425, 43); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._propertyRef_in_collectionFunction2232); - p1=propertyRef(); - PopFollow(); - - adaptor.AddChild(root_1, p1.Tree); - - DebugLocation(425, 56); - Resolve((p1!=null?((IASTNode)p1.Tree):default(IASTNode))); - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - DebugLocation(426, 3); - ProcessFunction(e_tree,_inSelect); - DebugLocation(426, 43); - _inFunctionCall=false; - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:427:4: ^(i= INDICES p2= propertyRef ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(427, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(427, 7); - - _last = (IASTNode)input.LT(1); - i=(IASTNode)Match(input,INDICES,Follow._INDICES_in_collectionFunction2251); - i_tree = (IASTNode)adaptor.DupNode(i); - - - root_1 = (IASTNode)adaptor.BecomeRoot(i_tree, root_1); - - - DebugLocation(427, 16); - _inFunctionCall=true; - - Match(input, TokenTypes.Down, null); - DebugLocation(427, 42); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._propertyRef_in_collectionFunction2257); - p2=propertyRef(); - PopFollow(); - - adaptor.AddChild(root_1, p2.Tree); - - DebugLocation(427, 55); - Resolve((p2!=null?((IASTNode)p2.Tree):default(IASTNode))); - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - DebugLocation(428, 3); - ProcessFunction(i_tree,_inSelect); - DebugLocation(428, 43); - _inFunctionCall=false; - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("collectionFunction", 46); - LeaveRule("collectionFunction", 46); - LeaveRule_collectionFunction(); - } - DebugLocation(429, 1); - } finally { DebugExitRule(GrammarFileName, "collectionFunction"); } - return retval; - - } - // $ANTLR end "collectionFunction" - - partial void EnterRule_functionCall(); - partial void LeaveRule_functionCall(); - // $ANTLR start "functionCall" - // HqlSqlWalker.g:431:1: functionCall : ( ^(m= METHOD_CALL pathAsIdent ( ^( EXPR_LIST ( expr | query | comparisonExpr )* ) )? ) | ^( AGGREGATE aggregateExpr ) ); - [GrammarRule("functionCall")] - private AstTreeRuleReturnScope functionCall() - { - EnterRule_functionCall(); - EnterRule("functionCall", 47); - TraceIn("functionCall", 47); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode m = default(IASTNode); - IASTNode EXPR_LIST196 = default(IASTNode); - IASTNode AGGREGATE200 = default(IASTNode); - AstTreeRuleReturnScope pathAsIdent195 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope expr197 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope query198 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope comparisonExpr199 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope aggregateExpr201 = default(AstTreeRuleReturnScope); - - IASTNode m_tree = default(IASTNode); - IASTNode EXPR_LIST196_tree = default(IASTNode); - IASTNode AGGREGATE200_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "functionCall"); - DebugLocation(431, 1); - try - { - // HqlSqlWalker.g:432:2: ( ^(m= METHOD_CALL pathAsIdent ( ^( EXPR_LIST ( expr | query | comparisonExpr )* ) )? ) | ^( AGGREGATE aggregateExpr ) ) - int alt63=2; - try { DebugEnterDecision(63, false); - int LA63_1 = input.LA(1); - - if ((LA63_1==METHOD_CALL)) - { - alt63 = 1; - } - else if ((LA63_1==AGGREGATE)) - { - alt63 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 63, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(63); } - switch (alt63) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:432:4: ^(m= METHOD_CALL pathAsIdent ( ^( EXPR_LIST ( expr | query | comparisonExpr )* ) )? ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(432, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(432, 7); - - _last = (IASTNode)input.LT(1); - m=(IASTNode)Match(input,METHOD_CALL,Follow._METHOD_CALL_in_functionCall2282); - m_tree = (IASTNode)adaptor.DupNode(m); - - - root_1 = (IASTNode)adaptor.BecomeRoot(m_tree, root_1); - - - DebugLocation(432, 21); - _inFunctionCall=true; - - Match(input, TokenTypes.Down, null); - DebugLocation(432, 45); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._pathAsIdent_in_functionCall2287); - pathAsIdent195=pathAsIdent(); - PopFollow(); - - adaptor.AddChild(root_1, pathAsIdent195.Tree); - - DebugLocation(432, 57); - // HqlSqlWalker.g:432:57: ( ^( EXPR_LIST ( expr | query | comparisonExpr )* ) )? - int alt62=2; - try { DebugEnterSubRule(62); - try { DebugEnterDecision(62, false); - int LA62_1 = input.LA(1); - - if ((LA62_1==EXPR_LIST)) - { - alt62 = 1; - } - } finally { DebugExitDecision(62); } - switch (alt62) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:432:59: ^( EXPR_LIST ( expr | query | comparisonExpr )* ) - { - DebugLocation(432, 59); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_2 = _last; - IASTNode _first_2 = default(IASTNode); - IASTNode root_2 = (IASTNode)adaptor.Nil(); - DebugLocation(432, 61); - - _last = (IASTNode)input.LT(1); - EXPR_LIST196=(IASTNode)Match(input,EXPR_LIST,Follow._EXPR_LIST_in_functionCall2292); - EXPR_LIST196_tree = (IASTNode)adaptor.DupNode(EXPR_LIST196); - - - root_2 = (IASTNode)adaptor.BecomeRoot(EXPR_LIST196_tree, root_2); - - - if (input.LA(1) == TokenTypes.Down) { - Match(input, TokenTypes.Down, null); - DebugLocation(432, 71); - // HqlSqlWalker.g:432:71: ( expr | query | comparisonExpr )* - try { DebugEnterSubRule(61); - while (true) - { - int alt61=4; - try { DebugEnterDecision(61, false); - switch (input.LA(1)) - { - case AGGREGATE: - case BAND: - case BNOT: - case BOR: - case BXOR: - case CASE: - case CASE2: - case COLON: - case COUNT: - case DIV: - case DOT: - case FALSE: - case IDENT: - case INDEX_OP: - case JAVA_CONSTANT: - case METHOD_CALL: - case MINUS: - case NULL: - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case PARAM: - case PLUS: - case QUOTED_String: - case STAR: - case TRUE: - case UNARY_MINUS: - case VECTOR_EXPR: - case WEIRD_IDENT: - { - alt61 = 1; - } - break; - case QUERY: - case UNION: - { - alt61 = 2; - } - break; - case BETWEEN: - case EQ: - case EXISTS: - case GE: - case GT: - case IN: - case IS_NOT_NULL: - case IS_NULL: - case LE: - case LIKE: - case LT: - case NE: - case NOT_BETWEEN: - case NOT_IN: - case NOT_LIKE: - { - alt61 = 3; - } - break; - } - - } finally { DebugExitDecision(61); } - switch ( alt61 ) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:432:72: expr - { - DebugLocation(432, 72); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_functionCall2295); - expr197=expr(); - PopFollow(); - - adaptor.AddChild(root_2, expr197.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:432:79: query - { - DebugLocation(432, 79); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._query_in_functionCall2299); - query198=query(); - PopFollow(); - - adaptor.AddChild(root_2, query198.Tree); - - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:432:87: comparisonExpr - { - DebugLocation(432, 87); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._comparisonExpr_in_functionCall2303); - comparisonExpr199=comparisonExpr(); - PopFollow(); - - adaptor.AddChild(root_2, comparisonExpr199.Tree); - - - } - break; - - default: - goto loop61; - } - } - - loop61: - ; - - } finally { DebugExitSubRule(61); } - - - Match(input, TokenTypes.Up, null); - } - adaptor.AddChild(root_1, root_2); - _last = _save_last_2; - } - - - } - break; - - } - } finally { DebugExitSubRule(62); } - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - DebugLocation(433, 3); - ProcessFunction(m_tree,_inSelect); _inFunctionCall=false; - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:434:4: ^( AGGREGATE aggregateExpr ) - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(434, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(434, 6); - - _last = (IASTNode)input.LT(1); - AGGREGATE200=(IASTNode)Match(input,AGGREGATE,Follow._AGGREGATE_in_functionCall2322); - AGGREGATE200_tree = (IASTNode)adaptor.DupNode(AGGREGATE200); - - - root_1 = (IASTNode)adaptor.BecomeRoot(AGGREGATE200_tree, root_1); - - - Match(input, TokenTypes.Down, null); - DebugLocation(434, 16); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._aggregateExpr_in_functionCall2324); - aggregateExpr201=aggregateExpr(); - PopFollow(); - - adaptor.AddChild(root_1, aggregateExpr201.Tree); - - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("functionCall", 47); - LeaveRule("functionCall", 47); - LeaveRule_functionCall(); - } - DebugLocation(435, 1); - } finally { DebugExitRule(GrammarFileName, "functionCall"); } - return retval; - - } - // $ANTLR end "functionCall" - - partial void EnterRule_constant(); - partial void LeaveRule_constant(); - // $ANTLR start "constant" - // HqlSqlWalker.g:437:1: constant : ( literal | NULL |t= TRUE |f= FALSE | JAVA_CONSTANT ); - [GrammarRule("constant")] - private AstTreeRuleReturnScope constant() - { - EnterRule_constant(); - EnterRule("constant", 48); - TraceIn("constant", 48); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode t = default(IASTNode); - IASTNode f = default(IASTNode); - IASTNode NULL203 = default(IASTNode); - IASTNode JAVA_CONSTANT204 = default(IASTNode); - AstTreeRuleReturnScope literal202 = default(AstTreeRuleReturnScope); - - IASTNode t_tree = default(IASTNode); - IASTNode f_tree = default(IASTNode); - IASTNode NULL203_tree = default(IASTNode); - IASTNode JAVA_CONSTANT204_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "constant"); - DebugLocation(437, 1); - try - { - // HqlSqlWalker.g:438:2: ( literal | NULL |t= TRUE |f= FALSE | JAVA_CONSTANT ) - int alt64=5; - try { DebugEnterDecision(64, false); - switch (input.LA(1)) - { - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case QUOTED_String: - { - alt64 = 1; - } - break; - case NULL: - { - alt64 = 2; - } - break; - case TRUE: - { - alt64 = 3; - } - break; - case FALSE: - { - alt64 = 4; - } - break; - case JAVA_CONSTANT: - { - alt64 = 5; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 64, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(64); } - switch (alt64) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:438:4: literal - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(438, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._literal_in_constant2337); - literal202=literal(); - PopFollow(); - - adaptor.AddChild(root_0, literal202.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:439:4: NULL - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(439, 4); - - _last = (IASTNode)input.LT(1); - NULL203=(IASTNode)Match(input,NULL,Follow._NULL_in_constant2342); - NULL203_tree = (IASTNode)adaptor.DupNode(NULL203); - - - adaptor.AddChild(root_0, NULL203_tree); - - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:440:4: t= TRUE - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(440, 5); - - _last = (IASTNode)input.LT(1); - t=(IASTNode)Match(input,TRUE,Follow._TRUE_in_constant2349); - t_tree = (IASTNode)adaptor.DupNode(t); - - - adaptor.AddChild(root_0, t_tree); - - DebugLocation(440, 11); - ProcessBool(t); - - } - break; - case 4: - DebugEnterAlt(4); - // HqlSqlWalker.g:441:4: f= FALSE - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(441, 5); - - _last = (IASTNode)input.LT(1); - f=(IASTNode)Match(input,FALSE,Follow._FALSE_in_constant2359); - f_tree = (IASTNode)adaptor.DupNode(f); - - - adaptor.AddChild(root_0, f_tree); - - DebugLocation(441, 12); - ProcessBool(f); - - } - break; - case 5: - DebugEnterAlt(5); - // HqlSqlWalker.g:442:4: JAVA_CONSTANT - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(442, 4); - - _last = (IASTNode)input.LT(1); - JAVA_CONSTANT204=(IASTNode)Match(input,JAVA_CONSTANT,Follow._JAVA_CONSTANT_in_constant2366); - JAVA_CONSTANT204_tree = (IASTNode)adaptor.DupNode(JAVA_CONSTANT204); - - - adaptor.AddChild(root_0, JAVA_CONSTANT204_tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("constant", 48); - LeaveRule("constant", 48); - LeaveRule_constant(); - } - DebugLocation(443, 1); - } finally { DebugExitRule(GrammarFileName, "constant"); } - return retval; - - } - // $ANTLR end "constant" - - partial void EnterRule_literal(); - partial void LeaveRule_literal(); - // $ANTLR start "literal" - // HqlSqlWalker.g:445:1: literal : ( numericLiteral | stringLiteral ); - [GrammarRule("literal")] - private AstTreeRuleReturnScope literal() - { - EnterRule_literal(); - EnterRule("literal", 49); - TraceIn("literal", 49); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope numericLiteral205 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope stringLiteral206 = default(AstTreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "literal"); - DebugLocation(445, 1); - try - { - // HqlSqlWalker.g:446:2: ( numericLiteral | stringLiteral ) - int alt65=2; - try { DebugEnterDecision(65, false); - int LA65_1 = input.LA(1); - - if (((LA65_1>=NUM_DECIMAL && LA65_1<=NUM_LONG))) - { - alt65 = 1; - } - else if ((LA65_1==QUOTED_String)) - { - alt65 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 65, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(65); } - switch (alt65) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:446:4: numericLiteral - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(446, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._numericLiteral_in_literal2377); - numericLiteral205=numericLiteral(); - PopFollow(); - - adaptor.AddChild(root_0, numericLiteral205.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:447:4: stringLiteral - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(447, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._stringLiteral_in_literal2382); - stringLiteral206=stringLiteral(); - PopFollow(); - - adaptor.AddChild(root_0, stringLiteral206.Tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("literal", 49); - LeaveRule("literal", 49); - LeaveRule_literal(); - } - DebugLocation(448, 1); - } finally { DebugExitRule(GrammarFileName, "literal"); } - return retval; - - } - // $ANTLR end "literal" - - partial void EnterRule_numericLiteral(); - partial void LeaveRule_numericLiteral(); - // $ANTLR start "numericLiteral" - // HqlSqlWalker.g:450:1: numericLiteral : ( NUM_INT | NUM_LONG | NUM_FLOAT | NUM_DOUBLE | NUM_DECIMAL ); - [GrammarRule("numericLiteral")] - private AstTreeRuleReturnScope numericLiteral() - { - EnterRule_numericLiteral(); - EnterRule("numericLiteral", 50); - TraceIn("numericLiteral", 50); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode set207 = default(IASTNode); - - IASTNode set207_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "numericLiteral"); - DebugLocation(450, 1); - try - { - // HqlSqlWalker.g:455:2: ( NUM_INT | NUM_LONG | NUM_FLOAT | NUM_DOUBLE | NUM_DECIMAL ) - DebugEnterAlt(1); - // HqlSqlWalker.g: - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(455, 2); - - _last = (IASTNode)input.LT(1); - set207=(IASTNode)input.LT(1); - if ((input.LA(1)>=NUM_DECIMAL && input.LA(1)<=NUM_LONG)) - { - input.Consume(); - set207_tree = (IASTNode)adaptor.DupNode(set207); - - - adaptor.AddChild(root_0, set207_tree); - - state.errorRecovery=false; - } - else - { - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - throw mse; - } - - - - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - ProcessNumericLiteral( retval.Tree ); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("numericLiteral", 50); - LeaveRule("numericLiteral", 50); - LeaveRule_numericLiteral(); - } - DebugLocation(460, 1); - } finally { DebugExitRule(GrammarFileName, "numericLiteral"); } - return retval; - - } - // $ANTLR end "numericLiteral" - - partial void EnterRule_stringLiteral(); - partial void LeaveRule_stringLiteral(); - // $ANTLR start "stringLiteral" - // HqlSqlWalker.g:462:1: stringLiteral : QUOTED_String ; - [GrammarRule("stringLiteral")] - private AstTreeRuleReturnScope stringLiteral() - { - EnterRule_stringLiteral(); - EnterRule("stringLiteral", 51); - TraceIn("stringLiteral", 51); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode QUOTED_String208 = default(IASTNode); - - IASTNode QUOTED_String208_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "stringLiteral"); - DebugLocation(462, 1); - try - { - // HqlSqlWalker.g:463:2: ( QUOTED_String ) - DebugEnterAlt(1); - // HqlSqlWalker.g:463:4: QUOTED_String - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(463, 4); - - _last = (IASTNode)input.LT(1); - QUOTED_String208=(IASTNode)Match(input,QUOTED_String,Follow._QUOTED_String_in_stringLiteral2429); - QUOTED_String208_tree = (IASTNode)adaptor.DupNode(QUOTED_String208); - - - adaptor.AddChild(root_0, QUOTED_String208_tree); - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("stringLiteral", 51); - LeaveRule("stringLiteral", 51); - LeaveRule_stringLiteral(); - } - DebugLocation(464, 1); - } finally { DebugExitRule(GrammarFileName, "stringLiteral"); } - return retval; - - } - // $ANTLR end "stringLiteral" - - partial void EnterRule_identifier(); - partial void LeaveRule_identifier(); - // $ANTLR start "identifier" - // HqlSqlWalker.g:466:1: identifier : ( IDENT | WEIRD_IDENT ) ; - [GrammarRule("identifier")] - private AstTreeRuleReturnScope identifier() - { - EnterRule_identifier(); - EnterRule("identifier", 52); - TraceIn("identifier", 52); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode set209 = default(IASTNode); - - IASTNode set209_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "identifier"); - DebugLocation(466, 1); - try - { - // HqlSqlWalker.g:467:2: ( ( IDENT | WEIRD_IDENT ) ) - DebugEnterAlt(1); - // HqlSqlWalker.g: - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(467, 2); - - _last = (IASTNode)input.LT(1); - set209=(IASTNode)input.LT(1); - if (input.LA(1)==IDENT||input.LA(1)==WEIRD_IDENT) - { - input.Consume(); - set209_tree = (IASTNode)adaptor.DupNode(set209); - - - adaptor.AddChild(root_0, set209_tree); - - state.errorRecovery=false; - } - else - { - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - throw mse; - } - - - - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("identifier", 52); - LeaveRule("identifier", 52); - LeaveRule_identifier(); - } - DebugLocation(468, 1); - } finally { DebugExitRule(GrammarFileName, "identifier"); } - return retval; - - } - // $ANTLR end "identifier" - - partial void EnterRule_addrExpr(); - partial void LeaveRule_addrExpr(); - // $ANTLR start "addrExpr" - // HqlSqlWalker.g:470:1: addrExpr[ bool root ] : ( addrExprDot[root] | addrExprIndex[root] | addrExprIdent[root] ); - [GrammarRule("addrExpr")] - private AstTreeRuleReturnScope addrExpr(bool root) - { - EnterRule_addrExpr(); - EnterRule("addrExpr", 53); - TraceIn("addrExpr", 53); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope addrExprDot210 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope addrExprIndex211 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope addrExprIdent212 = default(AstTreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "addrExpr"); - DebugLocation(470, 2); - try - { - // HqlSqlWalker.g:471:2: ( addrExprDot[root] | addrExprIndex[root] | addrExprIdent[root] ) - int alt66=3; - try { DebugEnterDecision(66, false); - switch (input.LA(1)) - { - case DOT: - { - alt66 = 1; - } - break; - case INDEX_OP: - { - alt66 = 2; - } - break; - case IDENT: - case WEIRD_IDENT: - { - alt66 = 3; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 66, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(66); } - switch (alt66) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:471:4: addrExprDot[root] - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(471, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._addrExprDot_in_addrExpr2459); - addrExprDot210=addrExprDot(root); - PopFollow(); - - adaptor.AddChild(root_0, addrExprDot210.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:472:4: addrExprIndex[root] - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(472, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._addrExprIndex_in_addrExpr2466); - addrExprIndex211=addrExprIndex(root); - PopFollow(); - - adaptor.AddChild(root_0, addrExprIndex211.Tree); - - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:473:4: addrExprIdent[root] - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(473, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._addrExprIdent_in_addrExpr2473); - addrExprIdent212=addrExprIdent(root); - PopFollow(); - - adaptor.AddChild(root_0, addrExprIdent212.Tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("addrExpr", 53); - LeaveRule("addrExpr", 53); - LeaveRule_addrExpr(); - } - DebugLocation(474, 2); - } finally { DebugExitRule(GrammarFileName, "addrExpr"); } - return retval; - - } - // $ANTLR end "addrExpr" - - partial void EnterRule_addrExprDot(); - partial void LeaveRule_addrExprDot(); - // $ANTLR start "addrExprDot" - // HqlSqlWalker.g:476:1: addrExprDot[ bool root ] : ^(d= DOT lhs= addrExprLhs rhs= propertyName ) -> ^( $d $lhs $rhs) ; - [GrammarRule("addrExprDot")] - private AstTreeRuleReturnScope addrExprDot(bool root) - { - EnterRule_addrExprDot(); - EnterRule("addrExprDot", 54); - TraceIn("addrExprDot", 54); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode d = default(IASTNode); - AstTreeRuleReturnScope lhs = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope rhs = default(AstTreeRuleReturnScope); - - IASTNode d_tree = default(IASTNode); - RewriteRuleNodeStream stream_DOT=new RewriteRuleNodeStream(adaptor,"token DOT"); - RewriteRuleSubtreeStream stream_addrExprLhs=new RewriteRuleSubtreeStream(adaptor,"rule addrExprLhs"); - RewriteRuleSubtreeStream stream_propertyName=new RewriteRuleSubtreeStream(adaptor,"rule propertyName"); - try { DebugEnterRule(GrammarFileName, "addrExprDot"); - DebugLocation(476, 1); - try - { - // HqlSqlWalker.g:481:2: ( ^(d= DOT lhs= addrExprLhs rhs= propertyName ) -> ^( $d $lhs $rhs) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:481:4: ^(d= DOT lhs= addrExprLhs rhs= propertyName ) - { - DebugLocation(481, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(481, 7); - - _last = (IASTNode)input.LT(1); - d=(IASTNode)Match(input,DOT,Follow._DOT_in_addrExprDot2497); - - stream_DOT.Add(d); - - - Match(input, TokenTypes.Down, null); - DebugLocation(481, 15); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._addrExprLhs_in_addrExprDot2501); - lhs=addrExprLhs(); - PopFollow(); - - stream_addrExprLhs.Add(lhs.Tree); - DebugLocation(481, 31); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._propertyName_in_addrExprDot2505); - rhs=propertyName(); - PopFollow(); - - stream_propertyName.Add(rhs.Tree); - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - - { - // AST REWRITE - // elements: d, lhs, rhs - // token labels: d - // rule labels: lhs, rhs, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleNodeStream stream_d=new RewriteRuleNodeStream(adaptor,"token d",d); - RewriteRuleSubtreeStream stream_lhs=new RewriteRuleSubtreeStream(adaptor,"rule lhs",lhs!=null?lhs.Tree:null); - RewriteRuleSubtreeStream stream_rhs=new RewriteRuleSubtreeStream(adaptor,"rule rhs",rhs!=null?rhs.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 482:3: -> ^( $d $lhs $rhs) - { - DebugLocation(482, 6); - // HqlSqlWalker.g:482:6: ^( $d $lhs $rhs) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(482, 9); - root_1 = (IASTNode)adaptor.BecomeRoot(stream_d.NextNode(), root_1); - - DebugLocation(482, 12); - adaptor.AddChild(root_1, stream_lhs.NextTree()); - DebugLocation(482, 17); - adaptor.AddChild(root_1, stream_rhs.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - LookupProperty(retval.Tree,root,false); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("addrExprDot", 54); - LeaveRule("addrExprDot", 54); - LeaveRule_addrExprDot(); - } - DebugLocation(483, 1); - } finally { DebugExitRule(GrammarFileName, "addrExprDot"); } - return retval; - - } - // $ANTLR end "addrExprDot" - - partial void EnterRule_addrExprIndex(); - partial void LeaveRule_addrExprIndex(); - // $ANTLR start "addrExprIndex" - // HqlSqlWalker.g:485:1: addrExprIndex[ bool root ] : ^(i= INDEX_OP lhs2= addrExprLhs rhs2= expr ) -> ^( $i $lhs2 $rhs2) ; - [GrammarRule("addrExprIndex")] - private AstTreeRuleReturnScope addrExprIndex(bool root) - { - EnterRule_addrExprIndex(); - EnterRule("addrExprIndex", 55); - TraceIn("addrExprIndex", 55); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode i = default(IASTNode); - AstTreeRuleReturnScope lhs2 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope rhs2 = default(AstTreeRuleReturnScope); - - IASTNode i_tree = default(IASTNode); - RewriteRuleNodeStream stream_INDEX_OP=new RewriteRuleNodeStream(adaptor,"token INDEX_OP"); - RewriteRuleSubtreeStream stream_addrExprLhs=new RewriteRuleSubtreeStream(adaptor,"rule addrExprLhs"); - RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr"); - try { DebugEnterRule(GrammarFileName, "addrExprIndex"); - DebugLocation(485, 1); - try - { - // HqlSqlWalker.g:491:2: ( ^(i= INDEX_OP lhs2= addrExprLhs rhs2= expr ) -> ^( $i $lhs2 $rhs2) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:491:4: ^(i= INDEX_OP lhs2= addrExprLhs rhs2= expr ) - { - DebugLocation(491, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(491, 7); - - _last = (IASTNode)input.LT(1); - i=(IASTNode)Match(input,INDEX_OP,Follow._INDEX_OP_in_addrExprIndex2544); - - stream_INDEX_OP.Add(i); - - - Match(input, TokenTypes.Down, null); - DebugLocation(491, 21); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._addrExprLhs_in_addrExprIndex2548); - lhs2=addrExprLhs(); - PopFollow(); - - stream_addrExprLhs.Add(lhs2.Tree); - DebugLocation(491, 38); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._expr_in_addrExprIndex2552); - rhs2=expr(); - PopFollow(); - - stream_expr.Add(rhs2.Tree); - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - - { - // AST REWRITE - // elements: i, lhs2, rhs2 - // token labels: i - // rule labels: lhs2, rhs2, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleNodeStream stream_i=new RewriteRuleNodeStream(adaptor,"token i",i); - RewriteRuleSubtreeStream stream_lhs2=new RewriteRuleSubtreeStream(adaptor,"rule lhs2",lhs2!=null?lhs2.Tree:null); - RewriteRuleSubtreeStream stream_rhs2=new RewriteRuleSubtreeStream(adaptor,"rule rhs2",rhs2!=null?rhs2.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 492:3: -> ^( $i $lhs2 $rhs2) - { - DebugLocation(492, 6); - // HqlSqlWalker.g:492:6: ^( $i $lhs2 $rhs2) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(492, 9); - root_1 = (IASTNode)adaptor.BecomeRoot(stream_i.NextNode(), root_1); - - DebugLocation(492, 12); - adaptor.AddChild(root_1, stream_lhs2.NextTree()); - DebugLocation(492, 18); - adaptor.AddChild(root_1, stream_rhs2.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - ProcessIndex(retval.Tree); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("addrExprIndex", 55); - LeaveRule("addrExprIndex", 55); - LeaveRule_addrExprIndex(); - } - DebugLocation(493, 1); - } finally { DebugExitRule(GrammarFileName, "addrExprIndex"); } - return retval; - - } - // $ANTLR end "addrExprIndex" - - partial void EnterRule_addrExprIdent(); - partial void LeaveRule_addrExprIdent(); - // $ANTLR start "addrExprIdent" - // HqlSqlWalker.g:495:1: addrExprIdent[ bool root ] : p= identifier -> {IsNonQualifiedPropertyRef($p.tree)}? ^() -> ^() ; - [GrammarRule("addrExprIdent")] - private AstTreeRuleReturnScope addrExprIdent(bool root) - { - EnterRule_addrExprIdent(); - EnterRule("addrExprIdent", 56); - TraceIn("addrExprIdent", 56); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope p = default(AstTreeRuleReturnScope); - - RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier"); - try { DebugEnterRule(GrammarFileName, "addrExprIdent"); - DebugLocation(495, 1); - try - { - // HqlSqlWalker.g:496:2: (p= identifier -> {IsNonQualifiedPropertyRef($p.tree)}? ^() -> ^() ) - DebugEnterAlt(1); - // HqlSqlWalker.g:496:4: p= identifier - { - DebugLocation(496, 5); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._identifier_in_addrExprIdent2584); - p=identifier(); - PopFollow(); - - stream_identifier.Add(p.Tree); - - - { - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 497:2: -> {IsNonQualifiedPropertyRef($p.tree)}? ^() - if (IsNonQualifiedPropertyRef((p!=null?((IASTNode)p.Tree):default(IASTNode)))) - { - DebugLocation(497, 43); - // HqlSqlWalker.g:497:43: ^() - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(497, 45); - root_1 = (IASTNode)adaptor.BecomeRoot(LookupNonQualifiedProperty((p!=null?((IASTNode)p.Tree):default(IASTNode))), root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - else // 498:2: -> ^() - { - DebugLocation(498, 5); - // HqlSqlWalker.g:498:5: ^() - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(498, 7); - root_1 = (IASTNode)adaptor.BecomeRoot(Resolve((p!=null?((IASTNode)p.Tree):default(IASTNode))), root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("addrExprIdent", 56); - LeaveRule("addrExprIdent", 56); - LeaveRule_addrExprIdent(); - } - DebugLocation(499, 1); - } finally { DebugExitRule(GrammarFileName, "addrExprIdent"); } - return retval; - - } - // $ANTLR end "addrExprIdent" - - partial void EnterRule_addrExprLhs(); - partial void LeaveRule_addrExprLhs(); - // $ANTLR start "addrExprLhs" - // HqlSqlWalker.g:501:1: addrExprLhs : addrExpr[ false ] ; - [GrammarRule("addrExprLhs")] - private AstTreeRuleReturnScope addrExprLhs() - { - EnterRule_addrExprLhs(); - EnterRule("addrExprLhs", 57); - TraceIn("addrExprLhs", 57); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope addrExpr213 = default(AstTreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "addrExprLhs"); - DebugLocation(501, 1); - try - { - // HqlSqlWalker.g:502:2: ( addrExpr[ false ] ) - DebugEnterAlt(1); - // HqlSqlWalker.g:502:4: addrExpr[ false ] - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(502, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._addrExpr_in_addrExprLhs2612); - addrExpr213=addrExpr(false); - PopFollow(); - - adaptor.AddChild(root_0, addrExpr213.Tree); - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("addrExprLhs", 57); - LeaveRule("addrExprLhs", 57); - LeaveRule_addrExprLhs(); - } - DebugLocation(503, 1); - } finally { DebugExitRule(GrammarFileName, "addrExprLhs"); } - return retval; - - } - // $ANTLR end "addrExprLhs" - - partial void EnterRule_propertyName(); - partial void LeaveRule_propertyName(); - // $ANTLR start "propertyName" - // HqlSqlWalker.g:505:1: propertyName : ( identifier | CLASS | ELEMENTS | INDICES ); - [GrammarRule("propertyName")] - private AstTreeRuleReturnScope propertyName() - { - EnterRule_propertyName(); - EnterRule("propertyName", 58); - TraceIn("propertyName", 58); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode CLASS215 = default(IASTNode); - IASTNode ELEMENTS216 = default(IASTNode); - IASTNode INDICES217 = default(IASTNode); - AstTreeRuleReturnScope identifier214 = default(AstTreeRuleReturnScope); - - IASTNode CLASS215_tree = default(IASTNode); - IASTNode ELEMENTS216_tree = default(IASTNode); - IASTNode INDICES217_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "propertyName"); - DebugLocation(505, 1); - try - { - // HqlSqlWalker.g:506:2: ( identifier | CLASS | ELEMENTS | INDICES ) - int alt67=4; - try { DebugEnterDecision(67, false); - switch (input.LA(1)) - { - case IDENT: - case WEIRD_IDENT: - { - alt67 = 1; - } - break; - case CLASS: - { - alt67 = 2; - } - break; - case ELEMENTS: - { - alt67 = 3; - } - break; - case INDICES: - { - alt67 = 4; - } - break; - default: - { - NoViableAltException nvae = new NoViableAltException("", 67, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(67); } - switch (alt67) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:506:4: identifier - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(506, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._identifier_in_propertyName2625); - identifier214=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, identifier214.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:507:4: CLASS - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(507, 4); - - _last = (IASTNode)input.LT(1); - CLASS215=(IASTNode)Match(input,CLASS,Follow._CLASS_in_propertyName2630); - CLASS215_tree = (IASTNode)adaptor.DupNode(CLASS215); - - - adaptor.AddChild(root_0, CLASS215_tree); - - - } - break; - case 3: - DebugEnterAlt(3); - // HqlSqlWalker.g:508:4: ELEMENTS - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(508, 4); - - _last = (IASTNode)input.LT(1); - ELEMENTS216=(IASTNode)Match(input,ELEMENTS,Follow._ELEMENTS_in_propertyName2635); - ELEMENTS216_tree = (IASTNode)adaptor.DupNode(ELEMENTS216); - - - adaptor.AddChild(root_0, ELEMENTS216_tree); - - - } - break; - case 4: - DebugEnterAlt(4); - // HqlSqlWalker.g:509:4: INDICES - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(509, 4); - - _last = (IASTNode)input.LT(1); - INDICES217=(IASTNode)Match(input,INDICES,Follow._INDICES_in_propertyName2640); - INDICES217_tree = (IASTNode)adaptor.DupNode(INDICES217); - - - adaptor.AddChild(root_0, INDICES217_tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("propertyName", 58); - LeaveRule("propertyName", 58); - LeaveRule_propertyName(); - } - DebugLocation(510, 1); - } finally { DebugExitRule(GrammarFileName, "propertyName"); } - return retval; - - } - // $ANTLR end "propertyName" - - partial void EnterRule_propertyRef(); - partial void LeaveRule_propertyRef(); - // $ANTLR start "propertyRef" - // HqlSqlWalker.g:512:1: propertyRef : ( propertyRefPath | propertyRefIdent ); - [GrammarRule("propertyRef")] - private AstTreeRuleReturnScope propertyRef() - { - EnterRule_propertyRef(); - EnterRule("propertyRef", 59); - TraceIn("propertyRef", 59); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope propertyRefPath218 = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope propertyRefIdent219 = default(AstTreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "propertyRef"); - DebugLocation(512, 1); - try - { - // HqlSqlWalker.g:513:2: ( propertyRefPath | propertyRefIdent ) - int alt68=2; - try { DebugEnterDecision(68, false); - int LA68_1 = input.LA(1); - - if ((LA68_1==DOT)) - { - alt68 = 1; - } - else if ((LA68_1==IDENT||LA68_1==WEIRD_IDENT)) - { - alt68 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 68, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(68); } - switch (alt68) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:513:4: propertyRefPath - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(513, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._propertyRefPath_in_propertyRef2652); - propertyRefPath218=propertyRefPath(); - PopFollow(); - - adaptor.AddChild(root_0, propertyRefPath218.Tree); - - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:514:4: propertyRefIdent - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(514, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._propertyRefIdent_in_propertyRef2657); - propertyRefIdent219=propertyRefIdent(); - PopFollow(); - - adaptor.AddChild(root_0, propertyRefIdent219.Tree); - - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("propertyRef", 59); - LeaveRule("propertyRef", 59); - LeaveRule_propertyRef(); - } - DebugLocation(515, 1); - } finally { DebugExitRule(GrammarFileName, "propertyRef"); } - return retval; - - } - // $ANTLR end "propertyRef" - - partial void EnterRule_propertyRefPath(); - partial void LeaveRule_propertyRefPath(); - // $ANTLR start "propertyRefPath" - // HqlSqlWalker.g:517:1: propertyRefPath : ^(d= DOT lhs= propertyRefLhs rhs= propertyName ) -> ^( $d $lhs $rhs) ; - [GrammarRule("propertyRefPath")] - private AstTreeRuleReturnScope propertyRefPath() - { - EnterRule_propertyRefPath(); - EnterRule("propertyRefPath", 60); - TraceIn("propertyRefPath", 60); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode d = default(IASTNode); - AstTreeRuleReturnScope lhs = default(AstTreeRuleReturnScope); - AstTreeRuleReturnScope rhs = default(AstTreeRuleReturnScope); - - IASTNode d_tree = default(IASTNode); - RewriteRuleNodeStream stream_DOT=new RewriteRuleNodeStream(adaptor,"token DOT"); - RewriteRuleSubtreeStream stream_propertyRefLhs=new RewriteRuleSubtreeStream(adaptor,"rule propertyRefLhs"); - RewriteRuleSubtreeStream stream_propertyName=new RewriteRuleSubtreeStream(adaptor,"rule propertyName"); - try { DebugEnterRule(GrammarFileName, "propertyRefPath"); - DebugLocation(517, 1); - try - { - // HqlSqlWalker.g:522:2: ( ^(d= DOT lhs= propertyRefLhs rhs= propertyName ) -> ^( $d $lhs $rhs) ) - DebugEnterAlt(1); - // HqlSqlWalker.g:522:4: ^(d= DOT lhs= propertyRefLhs rhs= propertyName ) - { - DebugLocation(522, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(522, 7); - - _last = (IASTNode)input.LT(1); - d=(IASTNode)Match(input,DOT,Follow._DOT_in_propertyRefPath2677); - - stream_DOT.Add(d); - - - Match(input, TokenTypes.Down, null); - DebugLocation(522, 15); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._propertyRefLhs_in_propertyRefPath2681); - lhs=propertyRefLhs(); - PopFollow(); - - stream_propertyRefLhs.Add(lhs.Tree); - DebugLocation(522, 34); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._propertyName_in_propertyRefPath2685); - rhs=propertyName(); - PopFollow(); - - stream_propertyName.Add(rhs.Tree); - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - - { - // AST REWRITE - // elements: d, lhs, rhs - // token labels: d - // rule labels: lhs, rhs, retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleNodeStream stream_d=new RewriteRuleNodeStream(adaptor,"token d",d); - RewriteRuleSubtreeStream stream_lhs=new RewriteRuleSubtreeStream(adaptor,"rule lhs",lhs!=null?lhs.Tree:null); - RewriteRuleSubtreeStream stream_rhs=new RewriteRuleSubtreeStream(adaptor,"rule rhs",rhs!=null?rhs.Tree:null); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 523:3: -> ^( $d $lhs $rhs) - { - DebugLocation(523, 6); - // HqlSqlWalker.g:523:6: ^( $d $lhs $rhs) - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(523, 9); - root_1 = (IASTNode)adaptor.BecomeRoot(stream_d.NextNode(), root_1); - - DebugLocation(523, 12); - adaptor.AddChild(root_1, stream_lhs.NextTree()); - DebugLocation(523, 17); - adaptor.AddChild(root_1, stream_rhs.NextTree()); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - // This gives lookupProperty() a chance to transform the tree to process collection properties (.elements, etc). - retval.Tree = LookupProperty((IASTNode) retval.Tree,false,true); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("propertyRefPath", 60); - LeaveRule("propertyRefPath", 60); - LeaveRule_propertyRefPath(); - } - DebugLocation(524, 1); - } finally { DebugExitRule(GrammarFileName, "propertyRefPath"); } - return retval; - - } - // $ANTLR end "propertyRefPath" - - partial void EnterRule_propertyRefIdent(); - partial void LeaveRule_propertyRefIdent(); - // $ANTLR start "propertyRefIdent" - // HqlSqlWalker.g:526:1: propertyRefIdent : p= identifier ; - [GrammarRule("propertyRefIdent")] - private AstTreeRuleReturnScope propertyRefIdent() - { - EnterRule_propertyRefIdent(); - EnterRule("propertyRefIdent", 61); - TraceIn("propertyRefIdent", 61); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope p = default(AstTreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "propertyRefIdent"); - DebugLocation(526, 1); - try - { - // HqlSqlWalker.g:540:2: (p= identifier ) - DebugEnterAlt(1); - // HqlSqlWalker.g:540:4: p= identifier - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(540, 5); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._identifier_in_propertyRefIdent2722); - p=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, p.Tree); - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - // In many cases, things other than property-refs are recognized - // by this propertyRef rule. Some of those I have seen: - // 1) select-clause from-aliases - // 2) sql-functions - if ( IsNonQualifiedPropertyRef((p!=null?((IASTNode)p.Tree):default(IASTNode))) ) { - retval.Tree = LookupNonQualifiedProperty((p!=null?((IASTNode)p.Tree):default(IASTNode))); - } - else { - Resolve((p!=null?((IASTNode)p.Tree):default(IASTNode))); - retval.Tree = (p!=null?((IASTNode)p.Tree):default(IASTNode)); - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("propertyRefIdent", 61); - LeaveRule("propertyRefIdent", 61); - LeaveRule_propertyRefIdent(); - } - DebugLocation(541, 1); - } finally { DebugExitRule(GrammarFileName, "propertyRefIdent"); } - return retval; - - } - // $ANTLR end "propertyRefIdent" - - partial void EnterRule_propertyRefLhs(); - partial void LeaveRule_propertyRefLhs(); - // $ANTLR start "propertyRefLhs" - // HqlSqlWalker.g:543:1: propertyRefLhs : propertyRef ; - [GrammarRule("propertyRefLhs")] - private AstTreeRuleReturnScope propertyRefLhs() - { - EnterRule_propertyRefLhs(); - EnterRule("propertyRefLhs", 62); - TraceIn("propertyRefLhs", 62); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope propertyRef220 = default(AstTreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "propertyRefLhs"); - DebugLocation(543, 1); - try - { - // HqlSqlWalker.g:544:2: ( propertyRef ) - DebugEnterAlt(1); - // HqlSqlWalker.g:544:4: propertyRef - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(544, 4); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._propertyRef_in_propertyRefLhs2734); - propertyRef220=propertyRef(); - PopFollow(); - - adaptor.AddChild(root_0, propertyRef220.Tree); - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("propertyRefLhs", 62); - LeaveRule("propertyRefLhs", 62); - LeaveRule_propertyRefLhs(); - } - DebugLocation(545, 1); - } finally { DebugExitRule(GrammarFileName, "propertyRefLhs"); } - return retval; - - } - // $ANTLR end "propertyRefLhs" - - partial void EnterRule_aliasRef(); - partial void LeaveRule_aliasRef(); - // $ANTLR start "aliasRef" - // HqlSqlWalker.g:547:1: aliasRef : i= identifier ; - [GrammarRule("aliasRef")] - private AstTreeRuleReturnScope aliasRef() - { - EnterRule_aliasRef(); - EnterRule("aliasRef", 63); - TraceIn("aliasRef", 63); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - AstTreeRuleReturnScope i = default(AstTreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "aliasRef"); - DebugLocation(547, 1); - try - { - // HqlSqlWalker.g:552:2: (i= identifier ) - DebugEnterAlt(1); - // HqlSqlWalker.g:552:4: i= identifier - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(552, 5); - - _last = (IASTNode)input.LT(1); - PushFollow(Follow._identifier_in_aliasRef2755); - i=identifier(); - PopFollow(); - - adaptor.AddChild(root_0, i.Tree); - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - - LookupAlias(retval.Tree); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("aliasRef", 63); - LeaveRule("aliasRef", 63); - LeaveRule_aliasRef(); - } - DebugLocation(554, 1); - } finally { DebugExitRule(GrammarFileName, "aliasRef"); } - return retval; - - } - // $ANTLR end "aliasRef" - - partial void EnterRule_parameter(); - partial void LeaveRule_parameter(); - // $ANTLR start "parameter" - // HqlSqlWalker.g:556:1: parameter : ( ^(c= COLON a= identifier ) -> ^() | ^(p= PARAM (n= NUM_INT )? ) -> {n != null}? ^() -> ^() ); - [GrammarRule("parameter")] - private AstTreeRuleReturnScope parameter() - { - EnterRule_parameter(); - EnterRule("parameter", 64); - TraceIn("parameter", 64); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode c = default(IASTNode); - IASTNode p = default(IASTNode); - IASTNode n = default(IASTNode); - AstTreeRuleReturnScope a = default(AstTreeRuleReturnScope); - - IASTNode c_tree = default(IASTNode); - IASTNode p_tree = default(IASTNode); - IASTNode n_tree = default(IASTNode); - RewriteRuleNodeStream stream_COLON=new RewriteRuleNodeStream(adaptor,"token COLON"); - RewriteRuleNodeStream stream_PARAM=new RewriteRuleNodeStream(adaptor,"token PARAM"); - RewriteRuleNodeStream stream_NUM_INT=new RewriteRuleNodeStream(adaptor,"token NUM_INT"); - RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier"); - try { DebugEnterRule(GrammarFileName, "parameter"); - DebugLocation(556, 1); - try - { - // HqlSqlWalker.g:557:2: ( ^(c= COLON a= identifier ) -> ^() | ^(p= PARAM (n= NUM_INT )? ) -> {n != null}? ^() -> ^() ) - int alt70=2; - try { DebugEnterDecision(70, false); - int LA70_1 = input.LA(1); - - if ((LA70_1==COLON)) - { - alt70 = 1; - } - else if ((LA70_1==PARAM)) - { - alt70 = 2; - } - else - { - NoViableAltException nvae = new NoViableAltException("", 70, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(70); } - switch (alt70) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:557:4: ^(c= COLON a= identifier ) - { - DebugLocation(557, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(557, 7); - - _last = (IASTNode)input.LT(1); - c=(IASTNode)Match(input,COLON,Follow._COLON_in_parameter2773); - - stream_COLON.Add(c); - - - Match(input, TokenTypes.Down, null); - DebugLocation(557, 15); - _last = (IASTNode)input.LT(1); - PushFollow(Follow._identifier_in_parameter2777); - a=identifier(); - PopFollow(); - - stream_identifier.Add(a.Tree); - - Match(input, TokenTypes.Up, null); - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - - { - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 559:3: -> ^() - { - DebugLocation(559, 6); - // HqlSqlWalker.g:559:6: ^() - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(559, 8); - root_1 = (IASTNode)adaptor.BecomeRoot(GenerateNamedParameter( c, (a!=null?((IASTNode)a.Tree):default(IASTNode)) ), root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - case 2: - DebugEnterAlt(2); - // HqlSqlWalker.g:560:4: ^(p= PARAM (n= NUM_INT )? ) - { - DebugLocation(560, 4); - - _last = (IASTNode)input.LT(1); - { - IASTNode _save_last_1 = _last; - IASTNode _first_1 = default(IASTNode); - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(560, 7); - - _last = (IASTNode)input.LT(1); - p=(IASTNode)Match(input,PARAM,Follow._PARAM_in_parameter2798); - - stream_PARAM.Add(p); - - - if (input.LA(1) == TokenTypes.Down) { - Match(input, TokenTypes.Down, null); - DebugLocation(560, 14); - // HqlSqlWalker.g:560:14: (n= NUM_INT )? - int alt69=2; - try { DebugEnterSubRule(69); - try { DebugEnterDecision(69, false); - int LA69_1 = input.LA(1); - - if ((LA69_1==NUM_INT)) - { - alt69 = 1; - } - } finally { DebugExitDecision(69); } - switch (alt69) - { - case 1: - DebugEnterAlt(1); - // HqlSqlWalker.g:560:15: n= NUM_INT - { - DebugLocation(560, 16); - - _last = (IASTNode)input.LT(1); - n=(IASTNode)Match(input,NUM_INT,Follow._NUM_INT_in_parameter2803); - - stream_NUM_INT.Add(n); - - - } - break; - - } - } finally { DebugExitSubRule(69); } - - - Match(input, TokenTypes.Up, null); - } - adaptor.AddChild(root_0, root_1); - _last = _save_last_1; - } - - - - { - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.Tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.Tree:null); - - root_0 = (IASTNode)adaptor.Nil(); - // 561:3: -> {n != null}? ^() - if (n != null) - { - DebugLocation(561, 19); - // HqlSqlWalker.g:561:19: ^() - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(561, 21); - root_1 = (IASTNode)adaptor.BecomeRoot(GenerateNamedParameter( p, n ), root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - else // 562:3: -> ^() - { - DebugLocation(562, 6); - // HqlSqlWalker.g:562:6: ^() - { - IASTNode root_1 = (IASTNode)adaptor.Nil(); - DebugLocation(562, 8); - root_1 = (IASTNode)adaptor.BecomeRoot(GeneratePositionalParameter( p ), root_1); - - adaptor.AddChild(root_0, root_1); - } - - } - - retval.Tree = root_0; - } - - } - break; - - } - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("parameter", 64); - LeaveRule("parameter", 64); - LeaveRule_parameter(); - } - DebugLocation(563, 1); - } finally { DebugExitRule(GrammarFileName, "parameter"); } - return retval; - - } - // $ANTLR end "parameter" - - partial void EnterRule_numericInteger(); - partial void LeaveRule_numericInteger(); - // $ANTLR start "numericInteger" - // HqlSqlWalker.g:565:1: numericInteger : NUM_INT ; - [GrammarRule("numericInteger")] - private AstTreeRuleReturnScope numericInteger() - { - EnterRule_numericInteger(); - EnterRule("numericInteger", 65); - TraceIn("numericInteger", 65); - AstTreeRuleReturnScope retval = new AstTreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - IASTNode root_0 = default(IASTNode); - - IASTNode _first_0 = default(IASTNode); - IASTNode _last = default(IASTNode); - - IASTNode NUM_INT221 = default(IASTNode); - - IASTNode NUM_INT221_tree = default(IASTNode); - try { DebugEnterRule(GrammarFileName, "numericInteger"); - DebugLocation(565, 1); - try - { - // HqlSqlWalker.g:566:2: ( NUM_INT ) - DebugEnterAlt(1); - // HqlSqlWalker.g:566:4: NUM_INT - { - root_0 = (IASTNode)adaptor.Nil(); - - DebugLocation(566, 4); - - _last = (IASTNode)input.LT(1); - NUM_INT221=(IASTNode)Match(input,NUM_INT,Follow._NUM_INT_in_numericInteger2836); - NUM_INT221_tree = (IASTNode)adaptor.DupNode(NUM_INT221); - - - adaptor.AddChild(root_0, NUM_INT221_tree); - - - } - - retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("numericInteger", 65); - LeaveRule("numericInteger", 65); - LeaveRule_numericInteger(); - } - DebugLocation(567, 1); - } finally { DebugExitRule(GrammarFileName, "numericInteger"); } - return retval; - - } - // $ANTLR end "numericInteger" - #endregion Rules - - - #region Follow sets - private static class Follow - { - public static readonly BitSet _selectStatement_in_statement202 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _updateStatement_in_statement206 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _deleteStatement_in_statement210 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _insertStatement_in_statement214 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _query_in_selectStatement231 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _UPDATE_in_updateStatement255 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _VERSIONED_in_updateStatement262 = new BitSet(new ulong[]{0x1000000000000UL}); - public static readonly BitSet _fromClause_in_updateStatement268 = new BitSet(new ulong[]{0x0UL,0x1000000000000UL}); - public static readonly BitSet _setClause_in_updateStatement272 = new BitSet(new ulong[]{0x8UL,0x0UL,0x4UL}); - public static readonly BitSet _whereClause_in_updateStatement277 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _DELETE_in_deleteStatement320 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _fromClause_in_deleteStatement324 = new BitSet(new ulong[]{0x8UL,0x0UL,0x4UL}); - public static readonly BitSet _whereClause_in_deleteStatement327 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _INSERT_in_insertStatement357 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _intoClause_in_insertStatement361 = new BitSet(new ulong[]{0x0UL,0x1000020000000000UL}); - public static readonly BitSet _query_in_insertStatement363 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _INTO_in_intoClause387 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _path_in_intoClause394 = new BitSet(new ulong[]{0x0UL,0x80000000000UL}); - public static readonly BitSet _insertablePropertySpec_in_intoClause399 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _RANGE_in_insertablePropertySpec415 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _IDENT_in_insertablePropertySpec418 = new BitSet(new ulong[]{0x80000000000008UL}); - public static readonly BitSet _SET_in_setClause435 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _assignment_in_setClause440 = new BitSet(new ulong[]{0x4000000008UL}); - public static readonly BitSet _EQ_in_assignment467 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _propertyRef_in_assignment472 = new BitSet(new ulong[]{0x8801003108ED010UL,0x561006C01F814010UL,0x1UL}); - public static readonly BitSet _newValue_in_assignment478 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _expr_in_newValue494 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _query_in_newValue498 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _unionedQuery_in_query509 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _UNION_in_query516 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _unionedQuery_in_query518 = new BitSet(new ulong[]{0x0UL,0x1000020000000000UL}); - public static readonly BitSet _query_in_query520 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _QUERY_in_unionedQuery543 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _SELECT_FROM_in_unionedQuery555 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _fromClause_in_unionedQuery563 = new BitSet(new ulong[]{0x8UL,0x400000000000UL}); - public static readonly BitSet _selectClause_in_unionedQuery572 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _whereClause_in_unionedQuery587 = new BitSet(new ulong[]{0x28000000000008UL,0x42000800000000UL}); - public static readonly BitSet _groupClause_in_unionedQuery597 = new BitSet(new ulong[]{0x20000000000008UL,0x42000800000000UL}); - public static readonly BitSet _havingClause_in_unionedQuery607 = new BitSet(new ulong[]{0x8UL,0x42000800000000UL}); - public static readonly BitSet _orderClause_in_unionedQuery617 = new BitSet(new ulong[]{0x8UL,0x42000000000000UL}); - public static readonly BitSet _skipClause_in_unionedQuery627 = new BitSet(new ulong[]{0x8UL,0x40000000000000UL}); - public static readonly BitSet _takeClause_in_unionedQuery637 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _ORDER_in_orderClause694 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _orderExprs_in_orderClause699 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _orderExpr_in_orderExprs712 = new BitSet(new ulong[]{0x8801003508ED412UL,0x561006C01F814010UL,0x1UL}); - public static readonly BitSet _orderExprs_in_orderExprs726 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _resultVariableRef_in_orderExpr741 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _expr_in_orderExpr746 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _query_in_orderExpr751 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _identifier_in_resultVariableRef771 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _SKIP_in_skipClause793 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _NUM_INT_in_skipClause796 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _parameter_in_skipClause800 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _TAKE_in_takeClause814 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _NUM_INT_in_takeClause817 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _parameter_in_takeClause821 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _GROUP_in_groupClause835 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_groupClause840 = new BitSet(new ulong[]{0x8801003108ED018UL,0x461004C01F814010UL,0x1UL}); - public static readonly BitSet _HAVING_in_havingClause856 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _logicalExpr_in_havingClause858 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _SELECT_in_selectClause872 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _DISTINCT_in_selectClause879 = new BitSet(new ulong[]{0x10800007188ED250UL,0x141006C03F014000UL,0x1UL}); - public static readonly BitSet _selectExprList_in_selectClause885 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _selectExpr_in_selectExprList920 = new BitSet(new ulong[]{0x10800007188ED252UL,0x141006C03F014000UL,0x1UL}); - public static readonly BitSet _aliasedSelectExpr_in_selectExprList924 = new BitSet(new ulong[]{0x10800007188ED252UL,0x141006C03F014000UL,0x1UL}); - public static readonly BitSet _AS_in_aliasedSelectExpr948 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _selectExpr_in_aliasedSelectExpr952 = new BitSet(new ulong[]{0x80000000000000UL,0x0UL,0x1UL}); - public static readonly BitSet _identifier_in_aliasedSelectExpr956 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _propertyRef_in_selectExpr971 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _ALL_in_selectExpr983 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _aliasRef_in_selectExpr987 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _OBJECT_in_selectExpr999 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _aliasRef_in_selectExpr1003 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _constructor_in_selectExpr1014 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _functionCall_in_selectExpr1025 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _parameter_in_selectExpr1030 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _count_in_selectExpr1035 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _collectionFunction_in_selectExpr1040 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _literal_in_selectExpr1048 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _arithmeticExpr_in_selectExpr1053 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _query_in_selectExpr1058 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _COUNT_in_count1070 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _aggregateExpr_in_count1085 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _ROW_STAR_in_count1089 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _CONSTRUCTOR_in_constructor1105 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _path_in_constructor1107 = new BitSet(new ulong[]{0x10800007188ED258UL,0x141006C03F014000UL,0x1UL}); - public static readonly BitSet _selectExpr_in_constructor1111 = new BitSet(new ulong[]{0x10800007188ED258UL,0x141006C03F014000UL,0x1UL}); - public static readonly BitSet _aliasedSelectExpr_in_constructor1115 = new BitSet(new ulong[]{0x10800007188ED258UL,0x141006C03F014000UL,0x1UL}); - public static readonly BitSet _expr_in_aggregateExpr1131 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _collectionFunction_in_aggregateExpr1137 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _FROM_in_fromClause1153 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _fromElementList_in_fromClause1157 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _fromElement_in_fromElementList1175 = new BitSet(new ulong[]{0x400000000002UL,0x80000000020UL}); - public static readonly BitSet _RANGE_in_fromElement1200 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _path_in_fromElement1204 = new BitSet(new ulong[]{0x200000000028UL}); - public static readonly BitSet _ALIAS_in_fromElement1209 = new BitSet(new ulong[]{0x200000000008UL}); - public static readonly BitSet _FETCH_in_fromElement1216 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _joinElement_in_fromElement1243 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _FILTER_ENTITY_in_fromElement1258 = new BitSet(new ulong[]{0x20UL}); - public static readonly BitSet _ALIAS_in_fromElement1262 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _JOIN_in_joinElement1291 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _joinType_in_joinElement1296 = new BitSet(new ulong[]{0x80200200000000UL,0x0UL,0x1UL}); - public static readonly BitSet _FETCH_in_joinElement1306 = new BitSet(new ulong[]{0x80000200000000UL,0x0UL,0x1UL}); - public static readonly BitSet _propertyRef_in_joinElement1312 = new BitSet(new ulong[]{0x200000000028UL,0x0UL,0x8UL}); - public static readonly BitSet _ALIAS_in_joinElement1317 = new BitSet(new ulong[]{0x200000000008UL,0x0UL,0x8UL}); - public static readonly BitSet _FETCH_in_joinElement1324 = new BitSet(new ulong[]{0x8UL,0x0UL,0x8UL}); - public static readonly BitSet _WITH_in_joinElement1333 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _LEFT_in_joinType1374 = new BitSet(new ulong[]{0x2UL,0x2000000000UL}); - public static readonly BitSet _RIGHT_in_joinType1380 = new BitSet(new ulong[]{0x2UL,0x2000000000UL}); - public static readonly BitSet _OUTER_in_joinType1386 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _FULL_in_joinType1400 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _INNER_in_joinType1407 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _identifier_in_path1429 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _DOT_in_path1437 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _path_in_path1441 = new BitSet(new ulong[]{0x80000000000000UL,0x0UL,0x1UL}); - public static readonly BitSet _identifier_in_path1445 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _path_in_pathAsIdent1464 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _WITH_in_withClause1505 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _logicalExpr_in_withClause1511 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _WHERE_in_whereClause1539 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _logicalExpr_in_whereClause1545 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _AND_in_logicalExpr1571 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _logicalExpr_in_logicalExpr1573 = new BitSet(new ulong[]{0xC94024200002090UL,0x4007A4A4CUL,0x1UL}); - public static readonly BitSet _logicalExpr_in_logicalExpr1575 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _OR_in_logicalExpr1582 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _logicalExpr_in_logicalExpr1584 = new BitSet(new ulong[]{0xC94024200002090UL,0x4007A4A4CUL,0x1UL}); - public static readonly BitSet _logicalExpr_in_logicalExpr1586 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _NOT_in_logicalExpr1593 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _logicalExpr_in_logicalExpr1595 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _comparisonExpr_in_logicalExpr1601 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _functionCall_in_logicalExpr1606 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _logicalPath_in_logicalExpr1611 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _addrExpr_in_logicalPath1630 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _EQ_in_comparisonExpr1668 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1670 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1672 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _NE_in_comparisonExpr1679 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1681 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1683 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _LT_in_comparisonExpr1690 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1692 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1694 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _GT_in_comparisonExpr1701 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1703 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1705 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _LE_in_comparisonExpr1712 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1714 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1716 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _GE_in_comparisonExpr1723 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1725 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1727 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _LIKE_in_comparisonExpr1734 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1736 = new BitSet(new ulong[]{0x8801003108ED010UL,0x461004C01F814010UL,0x1UL}); - public static readonly BitSet _expr_in_comparisonExpr1738 = new BitSet(new ulong[]{0x8000000008UL}); - public static readonly BitSet _ESCAPE_in_comparisonExpr1743 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_comparisonExpr1745 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _NOT_LIKE_in_comparisonExpr1757 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1759 = new BitSet(new ulong[]{0x8801003108ED010UL,0x461004C01F814010UL,0x1UL}); - public static readonly BitSet _expr_in_comparisonExpr1761 = new BitSet(new ulong[]{0x8000000008UL}); - public static readonly BitSet _ESCAPE_in_comparisonExpr1766 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_comparisonExpr1768 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _BETWEEN_in_comparisonExpr1780 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1782 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1784 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1786 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _NOT_BETWEEN_in_comparisonExpr1793 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1795 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1797 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1799 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _IN_in_comparisonExpr1806 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1808 = new BitSet(new ulong[]{0x0UL,0x1UL}); - public static readonly BitSet _inRhs_in_comparisonExpr1810 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _NOT_IN_in_comparisonExpr1818 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1820 = new BitSet(new ulong[]{0x0UL,0x1UL}); - public static readonly BitSet _inRhs_in_comparisonExpr1822 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _IS_NULL_in_comparisonExpr1830 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1832 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _IS_NOT_NULL_in_comparisonExpr1839 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_comparisonExpr1841 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _EXISTS_in_comparisonExpr1850 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_comparisonExpr1854 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _collectionFunctionOrSubselect_in_comparisonExpr1858 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _IN_LIST_in_inRhs1877 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _collectionFunctionOrSubselect_in_inRhs1881 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _expr_in_inRhs1885 = new BitSet(new ulong[]{0x8801003108ED018UL,0x461004C01F814010UL,0x1UL}); - public static readonly BitSet _expr_in_exprOrSubquery1901 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _query_in_exprOrSubquery1906 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _ANY_in_exprOrSubquery1912 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _collectionFunctionOrSubselect_in_exprOrSubquery1914 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _ALL_in_exprOrSubquery1921 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _collectionFunctionOrSubselect_in_exprOrSubquery1923 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _SOME_in_exprOrSubquery1930 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _collectionFunctionOrSubselect_in_exprOrSubquery1932 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _collectionFunction_in_collectionFunctionOrSubselect1945 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _query_in_collectionFunctionOrSubselect1950 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _addrExpr_in_expr1964 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _VECTOR_EXPR_in_expr1976 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_expr1979 = new BitSet(new ulong[]{0x8801003108ED018UL,0x461004C01F814010UL,0x1UL}); - public static readonly BitSet _constant_in_expr1988 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _arithmeticExpr_in_expr1993 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _functionCall_in_expr1998 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _parameter_in_expr2010 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _count_in_expr2015 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _PLUS_in_arithmeticExpr2043 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2045 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2047 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _MINUS_in_arithmeticExpr2054 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2056 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2058 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _DIV_in_arithmeticExpr2065 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2067 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2069 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _STAR_in_arithmeticExpr2076 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2078 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2080 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _BNOT_in_arithmeticExpr2087 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2089 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _BAND_in_arithmeticExpr2096 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2098 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2100 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _BOR_in_arithmeticExpr2107 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2109 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2111 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _BXOR_in_arithmeticExpr2118 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2120 = new BitSet(new ulong[]{0x8801003108ED150UL,0x561406C01F814010UL,0x1UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2122 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _UNARY_MINUS_in_arithmeticExpr2130 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _exprOrSubquery_in_arithmeticExpr2132 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _caseExpr_in_arithmeticExpr2140 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _CASE_in_caseExpr2152 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _WHEN_in_caseExpr2158 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _logicalExpr_in_caseExpr2160 = new BitSet(new ulong[]{0x8801003108ED010UL,0x461004C01F814010UL,0x1UL}); - public static readonly BitSet _expr_in_caseExpr2162 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _ELSE_in_caseExpr2169 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_caseExpr2171 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _CASE2_in_caseExpr2183 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_caseExpr2187 = new BitSet(new ulong[]{0x0UL,0x0UL,0x2UL}); - public static readonly BitSet _WHEN_in_caseExpr2191 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_caseExpr2193 = new BitSet(new ulong[]{0x8801003108ED010UL,0x461004C01F814010UL,0x1UL}); - public static readonly BitSet _expr_in_caseExpr2195 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _ELSE_in_caseExpr2202 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_caseExpr2204 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _ELEMENTS_in_collectionFunction2226 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _propertyRef_in_collectionFunction2232 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _INDICES_in_collectionFunction2251 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _propertyRef_in_collectionFunction2257 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _METHOD_CALL_in_functionCall2282 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _pathAsIdent_in_functionCall2287 = new BitSet(new ulong[]{0x80000000008UL}); - public static readonly BitSet _EXPR_LIST_in_functionCall2292 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_functionCall2295 = new BitSet(new ulong[]{0xC941243108EF018UL,0x561006C01FF34A5CUL,0x1UL}); - public static readonly BitSet _query_in_functionCall2299 = new BitSet(new ulong[]{0xC941243108EF018UL,0x561006C01FF34A5CUL,0x1UL}); - public static readonly BitSet _comparisonExpr_in_functionCall2303 = new BitSet(new ulong[]{0xC941243108EF018UL,0x561006C01FF34A5CUL,0x1UL}); - public static readonly BitSet _AGGREGATE_in_functionCall2322 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _aggregateExpr_in_functionCall2324 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _literal_in_constant2337 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _NULL_in_constant2342 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _TRUE_in_constant2349 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _FALSE_in_constant2359 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _JAVA_CONSTANT_in_constant2366 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _numericLiteral_in_literal2377 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _stringLiteral_in_literal2382 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _QUOTED_String_in_stringLiteral2429 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _addrExprDot_in_addrExpr2459 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _addrExprIndex_in_addrExpr2466 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _addrExprIdent_in_addrExpr2473 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _DOT_in_addrExprDot2497 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _addrExprLhs_in_addrExprDot2501 = new BitSet(new ulong[]{0x1080000400100000UL,0x0UL,0x1UL}); - public static readonly BitSet _propertyName_in_addrExprDot2505 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _INDEX_OP_in_addrExprIndex2544 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _addrExprLhs_in_addrExprIndex2548 = new BitSet(new ulong[]{0x8801003108ED010UL,0x461004C01F814010UL,0x1UL}); - public static readonly BitSet _expr_in_addrExprIndex2552 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _identifier_in_addrExprIdent2584 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _addrExpr_in_addrExprLhs2612 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _identifier_in_propertyName2625 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _CLASS_in_propertyName2630 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _ELEMENTS_in_propertyName2635 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _INDICES_in_propertyName2640 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _propertyRefPath_in_propertyRef2652 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _propertyRefIdent_in_propertyRef2657 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _DOT_in_propertyRefPath2677 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _propertyRefLhs_in_propertyRefPath2681 = new BitSet(new ulong[]{0x1080000400100000UL,0x0UL,0x1UL}); - public static readonly BitSet _propertyName_in_propertyRefPath2685 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _identifier_in_propertyRefIdent2722 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _propertyRef_in_propertyRefLhs2734 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _identifier_in_aliasRef2755 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _COLON_in_parameter2773 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _identifier_in_parameter2777 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _PARAM_in_parameter2798 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _NUM_INT_in_parameter2803 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _NUM_INT_in_numericInteger2836 = new BitSet(new ulong[]{0x2UL}); - } - #endregion Follow sets -} - -} // namespace NHibernate.Hql.Ast.ANTLR diff --git a/src/NHibernate/Hql/Ast/ANTLR/Generated/SqlGenerator.cs b/src/NHibernate/Hql/Ast/ANTLR/Generated/SqlGenerator.cs deleted file mode 100644 index a802a9f78ca..00000000000 --- a/src/NHibernate/Hql/Ast/ANTLR/Generated/SqlGenerator.cs +++ /dev/null @@ -1,8526 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// ANTLR Version: 3.5.0.2 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -// $ANTLR 3.5.0.2 SqlGenerator.g 2015-05-03 23:15:29 - -// The variable 'variable' is assigned but its value is never used. -#pragma warning disable 219 -// Unreachable code detected. -#pragma warning disable 162 -// Missing XML comment for publicly visible type or member 'Type_or_Member' -#pragma warning disable 1591 -// CLS compliance checking will not be performed on 'type' because it is not visible from outside this assembly. -#pragma warning disable 3019 - - -using NHibernate.Hql.Ast.ANTLR.Tree; - - -using System.Collections.Generic; -using Antlr.Runtime; -using Antlr.Runtime.Misc; -using Antlr.Runtime.Tree; -using RewriteRuleITokenStream = Antlr.Runtime.Tree.RewriteRuleTokenStream; - -namespace NHibernate.Hql.Ast.ANTLR -{ -/** - * SQL Generator Tree Parser, providing SQL rendering of SQL ASTs produced by the previous phase, HqlSqlWalker. All - * syntax decoration such as extra spaces, lack of spaces, extra parens, etc. should be added by this class. - *
- * This grammar processes the HQL/SQL AST and produces an SQL string. The intent is to move dialect-specific - * code into a sub-class that will override some of the methods, just like the other two grammars in this system. - * @author Joshua Davis (joshua@hibernate.org) - */ -[System.CodeDom.Compiler.GeneratedCode("ANTLR", "3.5.0.2")] -[System.CLSCompliant(false)] -public partial class SqlGenerator : Antlr.Runtime.Tree.TreeParser -{ - internal static readonly string[] tokenNames = new string[] { - "", "", "", "", "AGGREGATE", "ALIAS", "ALL", "AND", "ANY", "AS", "ASCENDING", "AVG", "BAND", "BETWEEN", "BNOT", "BOR", "BOTH", "BXOR", "CASE", "CASE2", "CLASS", "CLOSE", "CLOSE_BRACKET", "COLON", "COMMA", "CONCAT", "CONSTANT", "CONSTRUCTOR", "COUNT", "DELETE", "DESCENDING", "DISTINCT", "DIV", "DOT", "ELEMENTS", "ELSE", "EMPTY", "END", "EQ", "ESCAPE", "ESCqs", "EXISTS", "EXPONENT", "EXPR_LIST", "FALSE", "FETCH", "FILTER_ENTITY", "FLOAT_SUFFIX", "FROM", "FULL", "GE", "GROUP", "GT", "HAVING", "HEX_DIGIT", "IDENT", "ID_LETTER", "ID_START_LETTER", "IN", "INDEX_OP", "INDICES", "INNER", "INSERT", "INTO", "IN_LIST", "IS", "IS_NOT_NULL", "IS_NULL", "JAVA_CONSTANT", "JOIN", "LE", "LEADING", "LEFT", "LIKE", "LITERAL_by", "LT", "MAX", "MEMBER", "METHOD_CALL", "MIN", "MINUS", "NE", "NEW", "NOT", "NOT_BETWEEN", "NOT_IN", "NOT_LIKE", "NULL", "NUM_DECIMAL", "NUM_DOUBLE", "NUM_FLOAT", "NUM_INT", "NUM_LONG", "OBJECT", "OF", "ON", "OPEN", "OPEN_BRACKET", "OR", "ORDER", "ORDER_ELEMENT", "OUTER", "PARAM", "PLUS", "PROPERTIES", "QUERY", "QUOTED_String", "RANGE", "RIGHT", "ROW_STAR", "SELECT", "SELECT_FROM", "SET", "SKIP", "SOME", "SQL_NE", "STAR", "SUM", "TAKE", "THEN", "TRAILING", "TRUE", "UNARY_MINUS", "UNARY_PLUS", "UNION", "UPDATE", "VECTOR_EXPR", "VERSIONED", "WEIRD_IDENT", "WHEN", "WHERE", "WITH", "WS", "'ascending'", "'descending'", "ALIAS_REF", "BOGUS", "FILTERS", "FROM_FRAGMENT", "IMPLIED_FROM", "JOIN_FRAGMENT", "LEFT_OUTER", "METHOD_NAME", "NAMED_PARAM", "PROPERTY_REF", "RESULT_VARIABLE_REF", "RIGHT_OUTER", "SELECT_CLAUSE", "SELECT_COLUMNS", "SELECT_EXPR", "SQL_TOKEN", "THETA_JOINS" - }; - public const int EOF=-1; - public const int AGGREGATE=4; - public const int ALIAS=5; - public const int ALL=6; - public const int AND=7; - public const int ANY=8; - public const int AS=9; - public const int ASCENDING=10; - public const int AVG=11; - public const int BAND=12; - public const int BETWEEN=13; - public const int BNOT=14; - public const int BOR=15; - public const int BOTH=16; - public const int BXOR=17; - public const int CASE=18; - public const int CASE2=19; - public const int CLASS=20; - public const int CLOSE=21; - public const int CLOSE_BRACKET=22; - public const int COLON=23; - public const int COMMA=24; - public const int CONCAT=25; - public const int CONSTANT=26; - public const int CONSTRUCTOR=27; - public const int COUNT=28; - public const int DELETE=29; - public const int DESCENDING=30; - public const int DISTINCT=31; - public const int DIV=32; - public const int DOT=33; - public const int ELEMENTS=34; - public const int ELSE=35; - public const int EMPTY=36; - public const int END=37; - public const int EQ=38; - public const int ESCAPE=39; - public const int ESCqs=40; - public const int EXISTS=41; - public const int EXPONENT=42; - public const int EXPR_LIST=43; - public const int FALSE=44; - public const int FETCH=45; - public const int FILTER_ENTITY=46; - public const int FLOAT_SUFFIX=47; - public const int FROM=48; - public const int FULL=49; - public const int GE=50; - public const int GROUP=51; - public const int GT=52; - public const int HAVING=53; - public const int HEX_DIGIT=54; - public const int IDENT=55; - public const int ID_LETTER=56; - public const int ID_START_LETTER=57; - public const int IN=58; - public const int INDEX_OP=59; - public const int INDICES=60; - public const int INNER=61; - public const int INSERT=62; - public const int INTO=63; - public const int IN_LIST=64; - public const int IS=65; - public const int IS_NOT_NULL=66; - public const int IS_NULL=67; - public const int JAVA_CONSTANT=68; - public const int JOIN=69; - public const int LE=70; - public const int LEADING=71; - public const int LEFT=72; - public const int LIKE=73; - public const int LITERAL_by=74; - public const int LT=75; - public const int MAX=76; - public const int MEMBER=77; - public const int METHOD_CALL=78; - public const int MIN=79; - public const int MINUS=80; - public const int NE=81; - public const int NEW=82; - public const int NOT=83; - public const int NOT_BETWEEN=84; - public const int NOT_IN=85; - public const int NOT_LIKE=86; - public const int NULL=87; - public const int NUM_DECIMAL=88; - public const int NUM_DOUBLE=89; - public const int NUM_FLOAT=90; - public const int NUM_INT=91; - public const int NUM_LONG=92; - public const int OBJECT=93; - public const int OF=94; - public const int ON=95; - public const int OPEN=96; - public const int OPEN_BRACKET=97; - public const int OR=98; - public const int ORDER=99; - public const int ORDER_ELEMENT=100; - public const int OUTER=101; - public const int PARAM=102; - public const int PLUS=103; - public const int PROPERTIES=104; - public const int QUERY=105; - public const int QUOTED_String=106; - public const int RANGE=107; - public const int RIGHT=108; - public const int ROW_STAR=109; - public const int SELECT=110; - public const int SELECT_FROM=111; - public const int SET=112; - public const int SKIP=113; - public const int SOME=114; - public const int SQL_NE=115; - public const int STAR=116; - public const int SUM=117; - public const int TAKE=118; - public const int THEN=119; - public const int TRAILING=120; - public const int TRUE=121; - public const int UNARY_MINUS=122; - public const int UNARY_PLUS=123; - public const int UNION=124; - public const int UPDATE=125; - public const int VECTOR_EXPR=126; - public const int VERSIONED=127; - public const int WEIRD_IDENT=128; - public const int WHEN=129; - public const int WHERE=130; - public const int WITH=131; - public const int WS=132; - public const int T__133=133; - public const int T__134=134; - public const int ALIAS_REF=135; - public const int BOGUS=136; - public const int FILTERS=137; - public const int FROM_FRAGMENT=138; - public const int IMPLIED_FROM=139; - public const int JOIN_FRAGMENT=140; - public const int LEFT_OUTER=141; - public const int METHOD_NAME=142; - public const int NAMED_PARAM=143; - public const int PROPERTY_REF=144; - public const int RESULT_VARIABLE_REF=145; - public const int RIGHT_OUTER=146; - public const int SELECT_CLAUSE=147; - public const int SELECT_COLUMNS=148; - public const int SELECT_EXPR=149; - public const int SQL_TOKEN=150; - public const int THETA_JOINS=151; - - public SqlGenerator(ITreeNodeStream input) - : this(input, new RecognizerSharedState()) - { - } - public SqlGenerator(ITreeNodeStream input, RecognizerSharedState state) - : base(input, state) - { - OnCreated(); - } - - public override string[] TokenNames { get { return SqlGenerator.tokenNames; } } - public override string GrammarFileName { get { return "SqlGenerator.g"; } } - - - partial void OnCreated(); - partial void EnterRule(string ruleName, int ruleIndex); - partial void LeaveRule(string ruleName, int ruleIndex); - - #region Rules - partial void EnterRule_statement(); - partial void LeaveRule_statement(); - // $ANTLR start "statement" - // SqlGenerator.g:27:8: public statement : ( selectStatement | updateStatement | deleteStatement | insertStatement ); - [GrammarRule("statement")] - public void statement() - { - EnterRule_statement(); - EnterRule("statement", 1); - TraceIn("statement", 1); - try { DebugEnterRule(GrammarFileName, "statement"); - DebugLocation(27, 1); - try - { - // SqlGenerator.g:28:2: ( selectStatement | updateStatement | deleteStatement | insertStatement ) - int alt1=4; - try { DebugEnterDecision(1, false); - switch (input.LA(1)) - { - case SELECT: - { - alt1 = 1; - } - break; - case UPDATE: - { - alt1 = 2; - } - break; - case DELETE: - { - alt1 = 3; - } - break; - case INSERT: - { - alt1 = 4; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 1, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(1); } - switch (alt1) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:28:4: selectStatement - { - DebugLocation(28, 4); - PushFollow(Follow._selectStatement_in_statement59); - selectStatement(); - PopFollow(); - if (state.failed) return; - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:29:4: updateStatement - { - DebugLocation(29, 4); - PushFollow(Follow._updateStatement_in_statement64); - updateStatement(); - PopFollow(); - if (state.failed) return; - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:30:4: deleteStatement - { - DebugLocation(30, 4); - PushFollow(Follow._deleteStatement_in_statement69); - deleteStatement(); - PopFollow(); - if (state.failed) return; - - } - break; - case 4: - DebugEnterAlt(4); - // SqlGenerator.g:31:4: insertStatement - { - DebugLocation(31, 4); - PushFollow(Follow._insertStatement_in_statement74); - insertStatement(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("statement", 1); - LeaveRule("statement", 1); - LeaveRule_statement(); - } - DebugLocation(32, 1); - } finally { DebugExitRule(GrammarFileName, "statement"); } - return; - - } - // $ANTLR end "statement" - - partial void EnterRule_selectStatement(); - partial void LeaveRule_selectStatement(); - // $ANTLR start "selectStatement" - // SqlGenerator.g:34:1: selectStatement : ^( SELECT selectClause from ( ^( WHERE whereExpr ) )? ( ^( GROUP groupExprs ) )? ( ^( HAVING booleanExpr[false] ) )? ( ^( ORDER orderExprs ) )? ( ^( SKIP si= limitValue ) )? ( ^( TAKE ti= limitValue ) )? ) ; - [GrammarRule("selectStatement")] - private void selectStatement() - { - EnterRule_selectStatement(); - EnterRule("selectStatement", 2); - TraceIn("selectStatement", 2); - TreeRuleReturnScope si = default(TreeRuleReturnScope); - TreeRuleReturnScope ti = default(TreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "selectStatement"); - DebugLocation(34, 1); - try - { - // SqlGenerator.g:35:2: ( ^( SELECT selectClause from ( ^( WHERE whereExpr ) )? ( ^( GROUP groupExprs ) )? ( ^( HAVING booleanExpr[false] ) )? ( ^( ORDER orderExprs ) )? ( ^( SKIP si= limitValue ) )? ( ^( TAKE ti= limitValue ) )? ) ) - DebugEnterAlt(1); - // SqlGenerator.g:35:4: ^( SELECT selectClause from ( ^( WHERE whereExpr ) )? ( ^( GROUP groupExprs ) )? ( ^( HAVING booleanExpr[false] ) )? ( ^( ORDER orderExprs ) )? ( ^( SKIP si= limitValue ) )? ( ^( TAKE ti= limitValue ) )? ) - { - DebugLocation(35, 4); - DebugLocation(35, 6); - Match(input,SELECT,Follow._SELECT_in_selectStatement86); if (state.failed) return; - - DebugLocation(35, 13); - if (state.backtracking == 0) - { - StartQuery(); Out("select "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(36, 3); - PushFollow(Follow._selectClause_in_selectStatement92); - selectClause(); - PopFollow(); - if (state.failed) return; - DebugLocation(37, 3); - PushFollow(Follow._from_in_selectStatement96); - from(); - PopFollow(); - if (state.failed) return; - DebugLocation(38, 3); - // SqlGenerator.g:38:3: ( ^( WHERE whereExpr ) )? - int alt2=2; - try { DebugEnterSubRule(2); - try { DebugEnterDecision(2, false); - int LA2_1 = input.LA(1); - - if ((LA2_1==WHERE)) - { - alt2 = 1; - } - } finally { DebugExitDecision(2); } - switch (alt2) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:38:5: ^( WHERE whereExpr ) - { - DebugLocation(38, 5); - DebugLocation(38, 7); - Match(input,WHERE,Follow._WHERE_in_selectStatement103); if (state.failed) return; - - DebugLocation(38, 13); - if (state.backtracking == 0) - { - Out(" where "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(38, 33); - PushFollow(Follow._whereExpr_in_selectStatement107); - whereExpr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } finally { DebugExitSubRule(2); } - - DebugLocation(39, 3); - // SqlGenerator.g:39:3: ( ^( GROUP groupExprs ) )? - int alt3=2; - try { DebugEnterSubRule(3); - try { DebugEnterDecision(3, false); - int LA3_1 = input.LA(1); - - if ((LA3_1==GROUP)) - { - alt3 = 1; - } - } finally { DebugExitDecision(3); } - switch (alt3) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:39:5: ^( GROUP groupExprs ) - { - DebugLocation(39, 5); - DebugLocation(39, 7); - Match(input,GROUP,Follow._GROUP_in_selectStatement119); if (state.failed) return; - - DebugLocation(39, 13); - if (state.backtracking == 0) - { - Out(" group by "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(39, 36); - PushFollow(Follow._groupExprs_in_selectStatement123); - groupExprs(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } finally { DebugExitSubRule(3); } - - DebugLocation(40, 3); - // SqlGenerator.g:40:3: ( ^( HAVING booleanExpr[false] ) )? - int alt4=2; - try { DebugEnterSubRule(4); - try { DebugEnterDecision(4, false); - int LA4_1 = input.LA(1); - - if ((LA4_1==HAVING)) - { - alt4 = 1; - } - } finally { DebugExitDecision(4); } - switch (alt4) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:40:5: ^( HAVING booleanExpr[false] ) - { - DebugLocation(40, 5); - DebugLocation(40, 7); - Match(input,HAVING,Follow._HAVING_in_selectStatement135); if (state.failed) return; - - DebugLocation(40, 14); - if (state.backtracking == 0) - { - Out(" having "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(40, 35); - PushFollow(Follow._booleanExpr_in_selectStatement139); - booleanExpr(false); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } finally { DebugExitSubRule(4); } - - DebugLocation(41, 3); - // SqlGenerator.g:41:3: ( ^( ORDER orderExprs ) )? - int alt5=2; - try { DebugEnterSubRule(5); - try { DebugEnterDecision(5, false); - int LA5_1 = input.LA(1); - - if ((LA5_1==ORDER)) - { - alt5 = 1; - } - } finally { DebugExitDecision(5); } - switch (alt5) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:41:5: ^( ORDER orderExprs ) - { - DebugLocation(41, 5); - DebugLocation(41, 7); - Match(input,ORDER,Follow._ORDER_in_selectStatement151); if (state.failed) return; - - DebugLocation(41, 13); - if (state.backtracking == 0) - { - Out(" order by "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(41, 36); - PushFollow(Follow._orderExprs_in_selectStatement155); - orderExprs(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } finally { DebugExitSubRule(5); } - - DebugLocation(42, 3); - // SqlGenerator.g:42:3: ( ^( SKIP si= limitValue ) )? - int alt6=2; - try { DebugEnterSubRule(6); - try { DebugEnterDecision(6, false); - int LA6_1 = input.LA(1); - - if ((LA6_1==SKIP)) - { - alt6 = 1; - } - } finally { DebugExitDecision(6); } - switch (alt6) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:42:5: ^( SKIP si= limitValue ) - { - DebugLocation(42, 5); - DebugLocation(42, 7); - Match(input,SKIP,Follow._SKIP_in_selectStatement167); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(42, 14); - PushFollow(Follow._limitValue_in_selectStatement171); - si=limitValue(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - DebugLocation(42, 27); - if (state.backtracking == 0) - { - Skip((si!=null?((IASTNode)si.Start):default(IASTNode))); - } - - } - break; - - } - } finally { DebugExitSubRule(6); } - - DebugLocation(43, 3); - // SqlGenerator.g:43:3: ( ^( TAKE ti= limitValue ) )? - int alt7=2; - try { DebugEnterSubRule(7); - try { DebugEnterDecision(7, false); - int LA7_1 = input.LA(1); - - if ((LA7_1==TAKE)) - { - alt7 = 1; - } - } finally { DebugExitDecision(7); } - switch (alt7) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:43:5: ^( TAKE ti= limitValue ) - { - DebugLocation(43, 5); - DebugLocation(43, 7); - Match(input,TAKE,Follow._TAKE_in_selectStatement183); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(43, 14); - PushFollow(Follow._limitValue_in_selectStatement187); - ti=limitValue(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - DebugLocation(43, 27); - if (state.backtracking == 0) - { - Take((ti!=null?((IASTNode)ti.Start):default(IASTNode))); - } - - } - break; - - } - } finally { DebugExitSubRule(7); } - - DebugLocation(44, 3); - if (state.backtracking == 0) - { - EndQuery(); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("selectStatement", 2); - LeaveRule("selectStatement", 2); - LeaveRule_selectStatement(); - } - DebugLocation(46, 1); - } finally { DebugExitRule(GrammarFileName, "selectStatement"); } - return; - - } - // $ANTLR end "selectStatement" - - partial void EnterRule_updateStatement(); - partial void LeaveRule_updateStatement(); - // $ANTLR start "updateStatement" - // SqlGenerator.g:51:1: updateStatement : ^( UPDATE ^( FROM fromTable ) setClause ( whereClause )? ) ; - [GrammarRule("updateStatement")] - private void updateStatement() - { - EnterRule_updateStatement(); - EnterRule("updateStatement", 3); - TraceIn("updateStatement", 3); - try { DebugEnterRule(GrammarFileName, "updateStatement"); - DebugLocation(51, 1); - try - { - // SqlGenerator.g:52:2: ( ^( UPDATE ^( FROM fromTable ) setClause ( whereClause )? ) ) - DebugEnterAlt(1); - // SqlGenerator.g:52:4: ^( UPDATE ^( FROM fromTable ) setClause ( whereClause )? ) - { - DebugLocation(52, 4); - DebugLocation(52, 6); - Match(input,UPDATE,Follow._UPDATE_in_updateStatement214); if (state.failed) return; - - DebugLocation(52, 13); - if (state.backtracking == 0) - { - Out("update "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(53, 3); - DebugLocation(53, 6); - Match(input,FROM,Follow._FROM_in_updateStatement222); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(53, 11); - PushFollow(Follow._fromTable_in_updateStatement224); - fromTable(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - DebugLocation(54, 3); - PushFollow(Follow._setClause_in_updateStatement230); - setClause(); - PopFollow(); - if (state.failed) return; - DebugLocation(55, 3); - // SqlGenerator.g:55:3: ( whereClause )? - int alt8=2; - try { DebugEnterSubRule(8); - try { DebugEnterDecision(8, false); - int LA8_1 = input.LA(1); - - if ((LA8_1==WHERE)) - { - alt8 = 1; - } - } finally { DebugExitDecision(8); } - switch (alt8) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:55:4: whereClause - { - DebugLocation(55, 4); - PushFollow(Follow._whereClause_in_updateStatement235); - whereClause(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(8); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("updateStatement", 3); - LeaveRule("updateStatement", 3); - LeaveRule_updateStatement(); - } - DebugLocation(57, 1); - } finally { DebugExitRule(GrammarFileName, "updateStatement"); } - return; - - } - // $ANTLR end "updateStatement" - - partial void EnterRule_deleteStatement(); - partial void LeaveRule_deleteStatement(); - // $ANTLR start "deleteStatement" - // SqlGenerator.g:59:1: deleteStatement : ^( DELETE from ( whereClause )? ) ; - [GrammarRule("deleteStatement")] - private void deleteStatement() - { - EnterRule_deleteStatement(); - EnterRule("deleteStatement", 4); - TraceIn("deleteStatement", 4); - try { DebugEnterRule(GrammarFileName, "deleteStatement"); - DebugLocation(59, 1); - try - { - // SqlGenerator.g:61:2: ( ^( DELETE from ( whereClause )? ) ) - DebugEnterAlt(1); - // SqlGenerator.g:61:4: ^( DELETE from ( whereClause )? ) - { - DebugLocation(61, 4); - DebugLocation(61, 6); - Match(input,DELETE,Follow._DELETE_in_deleteStatement254); if (state.failed) return; - - DebugLocation(61, 13); - if (state.backtracking == 0) - { - Out("delete"); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(62, 3); - PushFollow(Follow._from_in_deleteStatement260); - from(); - PopFollow(); - if (state.failed) return; - DebugLocation(63, 3); - // SqlGenerator.g:63:3: ( whereClause )? - int alt9=2; - try { DebugEnterSubRule(9); - try { DebugEnterDecision(9, false); - int LA9_1 = input.LA(1); - - if ((LA9_1==WHERE)) - { - alt9 = 1; - } - } finally { DebugExitDecision(9); } - switch (alt9) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:63:4: whereClause - { - DebugLocation(63, 4); - PushFollow(Follow._whereClause_in_deleteStatement265); - whereClause(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(9); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("deleteStatement", 4); - LeaveRule("deleteStatement", 4); - LeaveRule_deleteStatement(); - } - DebugLocation(65, 1); - } finally { DebugExitRule(GrammarFileName, "deleteStatement"); } - return; - - } - // $ANTLR end "deleteStatement" - - partial void EnterRule_insertStatement(); - partial void LeaveRule_insertStatement(); - // $ANTLR start "insertStatement" - // SqlGenerator.g:67:1: insertStatement : ^( INSERT ^(i= INTO ( . )* ) selectStatement ) ; - [GrammarRule("insertStatement")] - private void insertStatement() - { - EnterRule_insertStatement(); - EnterRule("insertStatement", 5); - TraceIn("insertStatement", 5); - IASTNode i = default(IASTNode); - - try { DebugEnterRule(GrammarFileName, "insertStatement"); - DebugLocation(67, 1); - try - { - // SqlGenerator.g:68:2: ( ^( INSERT ^(i= INTO ( . )* ) selectStatement ) ) - DebugEnterAlt(1); - // SqlGenerator.g:68:4: ^( INSERT ^(i= INTO ( . )* ) selectStatement ) - { - DebugLocation(68, 4); - DebugLocation(68, 6); - Match(input,INSERT,Follow._INSERT_in_insertStatement282); if (state.failed) return; - - DebugLocation(68, 13); - if (state.backtracking == 0) - { - Out( "insert " ); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(69, 3); - DebugLocation(69, 6); - i=(IASTNode)Match(input,INTO,Follow._INTO_in_insertStatement291); if (state.failed) return; - - DebugLocation(69, 12); - if (state.backtracking == 0) - { - Out( i ); Out( " " ); - } - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(69, 38); - // SqlGenerator.g:69:38: ( . )* - try { DebugEnterSubRule(10); - while (true) - { - int alt10=2; - try { DebugEnterDecision(10, false); - int LA10_1 = input.LA(1); - - if (((LA10_1>=AGGREGATE && LA10_1<=THETA_JOINS))) - { - alt10 = 1; - } - else if ((LA10_1==UP)) - { - alt10 = 2; - } - - - } finally { DebugExitDecision(10); } - switch ( alt10 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:69:38: . - { - DebugLocation(69, 38); - MatchAny(input); if (state.failed) return; - - } - break; - - default: - goto loop10; - } - } - - loop10: - ; - - } finally { DebugExitSubRule(10); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - } - - DebugLocation(70, 3); - PushFollow(Follow._selectStatement_in_insertStatement301); - selectStatement(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("insertStatement", 5); - LeaveRule("insertStatement", 5); - LeaveRule_insertStatement(); - } - DebugLocation(72, 1); - } finally { DebugExitRule(GrammarFileName, "insertStatement"); } - return; - - } - // $ANTLR end "insertStatement" - - partial void EnterRule_setClause(); - partial void LeaveRule_setClause(); - // $ANTLR start "setClause" - // SqlGenerator.g:74:1: setClause : ^( SET comparisonExpr[false] ( comparisonExpr[false] )* ) ; - [GrammarRule("setClause")] - private void setClause() - { - EnterRule_setClause(); - EnterRule("setClause", 6); - TraceIn("setClause", 6); - try { DebugEnterRule(GrammarFileName, "setClause"); - DebugLocation(74, 1); - try - { - // SqlGenerator.g:77:2: ( ^( SET comparisonExpr[false] ( comparisonExpr[false] )* ) ) - DebugEnterAlt(1); - // SqlGenerator.g:77:4: ^( SET comparisonExpr[false] ( comparisonExpr[false] )* ) - { - DebugLocation(77, 4); - DebugLocation(77, 7); - Match(input,SET,Follow._SET_in_setClause321); if (state.failed) return; - - DebugLocation(77, 11); - if (state.backtracking == 0) - { - Out(" set "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(77, 29); - PushFollow(Follow._comparisonExpr_in_setClause325); - comparisonExpr(false); - PopFollow(); - if (state.failed) return; - DebugLocation(77, 51); - // SqlGenerator.g:77:51: ( comparisonExpr[false] )* - try { DebugEnterSubRule(11); - while (true) - { - int alt11=2; - try { DebugEnterDecision(11, false); - int LA11_1 = input.LA(1); - - if ((LA11_1==BETWEEN||LA11_1==EQ||LA11_1==EXISTS||LA11_1==GE||LA11_1==GT||LA11_1==IN||(LA11_1>=IS_NOT_NULL && LA11_1<=IS_NULL)||LA11_1==LE||LA11_1==LIKE||LA11_1==LT||LA11_1==NE||(LA11_1>=NOT_BETWEEN && LA11_1<=NOT_LIKE))) - { - alt11 = 1; - } - - - } finally { DebugExitDecision(11); } - switch ( alt11 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:77:53: comparisonExpr[false] - { - DebugLocation(77, 53); - if (state.backtracking == 0) - { - Out(", "); - } - DebugLocation(77, 68); - PushFollow(Follow._comparisonExpr_in_setClause332); - comparisonExpr(false); - PopFollow(); - if (state.failed) return; - - } - break; - - default: - goto loop11; - } - } - - loop11: - ; - - } finally { DebugExitSubRule(11); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("setClause", 6); - LeaveRule("setClause", 6); - LeaveRule_setClause(); - } - DebugLocation(78, 1); - } finally { DebugExitRule(GrammarFileName, "setClause"); } - return; - - } - // $ANTLR end "setClause" - - partial void EnterRule_whereClause(); - partial void LeaveRule_whereClause(); - // $ANTLR start "whereClause" - // SqlGenerator.g:80:8: public whereClause : ^( WHERE whereClauseExpr ) ; - [GrammarRule("whereClause")] - public void whereClause() - { - EnterRule_whereClause(); - EnterRule("whereClause", 7); - TraceIn("whereClause", 7); - try { DebugEnterRule(GrammarFileName, "whereClause"); - DebugLocation(80, 1); - try - { - // SqlGenerator.g:81:2: ( ^( WHERE whereClauseExpr ) ) - DebugEnterAlt(1); - // SqlGenerator.g:81:4: ^( WHERE whereClauseExpr ) - { - DebugLocation(81, 4); - DebugLocation(81, 6); - Match(input,WHERE,Follow._WHERE_in_whereClause352); if (state.failed) return; - - DebugLocation(81, 12); - if (state.backtracking == 0) - { - Out(" where "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(81, 32); - PushFollow(Follow._whereClauseExpr_in_whereClause356); - whereClauseExpr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("whereClause", 7); - LeaveRule("whereClause", 7); - LeaveRule_whereClause(); - } - DebugLocation(82, 1); - } finally { DebugExitRule(GrammarFileName, "whereClause"); } - return; - - } - // $ANTLR end "whereClause" - - partial void EnterRule_whereClauseExpr(); - partial void LeaveRule_whereClauseExpr(); - // $ANTLR start "whereClauseExpr" - // SqlGenerator.g:84:1: whereClauseExpr : ( ( SQL_TOKEN )=> conditionList | booleanExpr[ false ] ); - [GrammarRule("whereClauseExpr")] - private void whereClauseExpr() - { - EnterRule_whereClauseExpr(); - EnterRule("whereClauseExpr", 8); - TraceIn("whereClauseExpr", 8); - try { DebugEnterRule(GrammarFileName, "whereClauseExpr"); - DebugLocation(84, 1); - try - { - // SqlGenerator.g:85:2: ( ( SQL_TOKEN )=> conditionList | booleanExpr[ false ] ) - int alt12=2; - try { DebugEnterDecision(12, false); - int LA12_1 = input.LA(1); - - if ((LA12_1==SQL_TOKEN)) - { - int LA12_2 = input.LA(2); - - if ((LA12_2==DOWN) && (EvaluatePredicate(synpred1_SqlGenerator_fragment))) - { - alt12 = 1; - } - else if ((LA12_2==UP)) - { - alt12 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 12, 1, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - else if ((LA12_1==AND||LA12_1==BETWEEN||LA12_1==EQ||LA12_1==EXISTS||LA12_1==GE||LA12_1==GT||LA12_1==IN||(LA12_1>=IS_NOT_NULL && LA12_1<=IS_NULL)||LA12_1==LE||LA12_1==LIKE||LA12_1==LT||LA12_1==METHOD_CALL||LA12_1==NE||(LA12_1>=NOT && LA12_1<=NOT_LIKE)||LA12_1==OR)) - { - alt12 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 12, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(12); } - switch (alt12) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:85:4: ( SQL_TOKEN )=> conditionList - { - DebugLocation(85, 19); - PushFollow(Follow._conditionList_in_whereClauseExpr375); - conditionList(); - PopFollow(); - if (state.failed) return; - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:86:4: booleanExpr[ false ] - { - DebugLocation(86, 4); - PushFollow(Follow._booleanExpr_in_whereClauseExpr380); - booleanExpr(false); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("whereClauseExpr", 8); - LeaveRule("whereClauseExpr", 8); - LeaveRule_whereClauseExpr(); - } - DebugLocation(87, 1); - } finally { DebugExitRule(GrammarFileName, "whereClauseExpr"); } - return; - - } - // $ANTLR end "whereClauseExpr" - - partial void EnterRule_orderExprs(); - partial void LeaveRule_orderExprs(); - // $ANTLR start "orderExprs" - // SqlGenerator.g:89:1: orderExprs : ( expr ) (dir= orderDirection )? ( orderExprs )? ; - [GrammarRule("orderExprs")] - private void orderExprs() - { - EnterRule_orderExprs(); - EnterRule("orderExprs", 9); - TraceIn("orderExprs", 9); - TreeRuleReturnScope dir = default(TreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "orderExprs"); - DebugLocation(89, 1); - try - { - // SqlGenerator.g:91:2: ( ( expr ) (dir= orderDirection )? ( orderExprs )? ) - DebugEnterAlt(1); - // SqlGenerator.g:91:4: ( expr ) (dir= orderDirection )? ( orderExprs )? - { - DebugLocation(91, 4); - // SqlGenerator.g:91:4: ( expr ) - DebugEnterAlt(1); - // SqlGenerator.g:91:6: expr - { - DebugLocation(91, 6); - PushFollow(Follow._expr_in_orderExprs396); - expr(); - PopFollow(); - if (state.failed) return; - - } - - DebugLocation(91, 13); - // SqlGenerator.g:91:13: (dir= orderDirection )? - int alt13=2; - try { DebugEnterSubRule(13); - try { DebugEnterDecision(13, false); - int LA13_1 = input.LA(1); - - if ((LA13_1==ASCENDING||LA13_1==DESCENDING)) - { - alt13 = 1; - } - } finally { DebugExitDecision(13); } - switch (alt13) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:91:14: dir= orderDirection - { - DebugLocation(91, 17); - PushFollow(Follow._orderDirection_in_orderExprs403); - dir=orderDirection(); - PopFollow(); - if (state.failed) return; - DebugLocation(91, 33); - if (state.backtracking == 0) - { - Out(" "); Out((dir!=null?((IASTNode)dir.Start):default(IASTNode))); - } - - } - break; - - } - } finally { DebugExitSubRule(13); } - - DebugLocation(91, 66); - // SqlGenerator.g:91:66: ( orderExprs )? - int alt14=2; - try { DebugEnterSubRule(14); - try { DebugEnterDecision(14, false); - int LA14_1 = input.LA(1); - - if ((LA14_1==AGGREGATE||LA14_1==ALL||LA14_1==ANY||LA14_1==BAND||(LA14_1>=BNOT && LA14_1<=BOR)||(LA14_1>=BXOR && LA14_1<=CASE2)||LA14_1==CONSTANT||LA14_1==COUNT||(LA14_1>=DIV && LA14_1<=DOT)||LA14_1==FALSE||LA14_1==IDENT||LA14_1==INDEX_OP||LA14_1==JAVA_CONSTANT||LA14_1==METHOD_CALL||LA14_1==MINUS||(LA14_1>=NULL && LA14_1<=NUM_LONG)||(LA14_1>=PARAM && LA14_1<=PLUS)||LA14_1==QUOTED_String||LA14_1==SELECT||LA14_1==SOME||LA14_1==STAR||(LA14_1>=TRUE && LA14_1<=UNARY_MINUS)||LA14_1==UNION||LA14_1==VECTOR_EXPR||LA14_1==ALIAS_REF||LA14_1==NAMED_PARAM||LA14_1==RESULT_VARIABLE_REF||LA14_1==SQL_TOKEN)) - { - alt14 = 1; - } - } finally { DebugExitDecision(14); } - switch (alt14) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:91:68: orderExprs - { - DebugLocation(91, 68); - if (state.backtracking == 0) - { - Out(", "); - } - DebugLocation(91, 82); - PushFollow(Follow._orderExprs_in_orderExprs413); - orderExprs(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(14); } - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("orderExprs", 9); - LeaveRule("orderExprs", 9); - LeaveRule_orderExprs(); - } - DebugLocation(92, 1); - } finally { DebugExitRule(GrammarFileName, "orderExprs"); } - return; - - } - // $ANTLR end "orderExprs" - - partial void EnterRule_groupExprs(); - partial void LeaveRule_groupExprs(); - // $ANTLR start "groupExprs" - // SqlGenerator.g:94:1: groupExprs : expr ( groupExprs )? ; - [GrammarRule("groupExprs")] - private void groupExprs() - { - EnterRule_groupExprs(); - EnterRule("groupExprs", 10); - TraceIn("groupExprs", 10); - try { DebugEnterRule(GrammarFileName, "groupExprs"); - DebugLocation(94, 1); - try - { - // SqlGenerator.g:96:2: ( expr ( groupExprs )? ) - DebugEnterAlt(1); - // SqlGenerator.g:96:4: expr ( groupExprs )? - { - DebugLocation(96, 4); - PushFollow(Follow._expr_in_groupExprs428); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(96, 9); - // SqlGenerator.g:96:9: ( groupExprs )? - int alt15=2; - try { DebugEnterSubRule(15); - try { DebugEnterDecision(15, false); - int LA15_1 = input.LA(1); - - if ((LA15_1==AGGREGATE||LA15_1==ALL||LA15_1==ANY||LA15_1==BAND||(LA15_1>=BNOT && LA15_1<=BOR)||(LA15_1>=BXOR && LA15_1<=CASE2)||LA15_1==CONSTANT||LA15_1==COUNT||(LA15_1>=DIV && LA15_1<=DOT)||LA15_1==FALSE||LA15_1==IDENT||LA15_1==INDEX_OP||LA15_1==JAVA_CONSTANT||LA15_1==METHOD_CALL||LA15_1==MINUS||(LA15_1>=NULL && LA15_1<=NUM_LONG)||(LA15_1>=PARAM && LA15_1<=PLUS)||LA15_1==QUOTED_String||LA15_1==SELECT||LA15_1==SOME||LA15_1==STAR||(LA15_1>=TRUE && LA15_1<=UNARY_MINUS)||LA15_1==UNION||LA15_1==VECTOR_EXPR||LA15_1==ALIAS_REF||LA15_1==NAMED_PARAM||LA15_1==RESULT_VARIABLE_REF||LA15_1==SQL_TOKEN)) - { - alt15 = 1; - } - } finally { DebugExitDecision(15); } - switch (alt15) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:96:11: groupExprs - { - DebugLocation(96, 11); - if (state.backtracking == 0) - { - Out(" , "); - } - DebugLocation(96, 26); - PushFollow(Follow._groupExprs_in_groupExprs434); - groupExprs(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(15); } - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("groupExprs", 10); - LeaveRule("groupExprs", 10); - LeaveRule_groupExprs(); - } - DebugLocation(97, 1); - } finally { DebugExitRule(GrammarFileName, "groupExprs"); } - return; - - } - // $ANTLR end "groupExprs" - - partial void EnterRule_orderDirection(); - partial void LeaveRule_orderDirection(); - // $ANTLR start "orderDirection" - // SqlGenerator.g:99:1: orderDirection : ( ASCENDING | DESCENDING ); - [GrammarRule("orderDirection")] - private TreeRuleReturnScope orderDirection() - { - EnterRule_orderDirection(); - EnterRule("orderDirection", 11); - TraceIn("orderDirection", 11); - TreeRuleReturnScope retval = new TreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - try { DebugEnterRule(GrammarFileName, "orderDirection"); - DebugLocation(99, 1); - try - { - // SqlGenerator.g:100:2: ( ASCENDING | DESCENDING ) - DebugEnterAlt(1); - // SqlGenerator.g: - { - DebugLocation(100, 2); - if (input.LA(1)==ASCENDING||input.LA(1)==DESCENDING) - { - input.Consume(); - state.errorRecovery=false;state.failed=false; - } - else - { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - throw mse; - } - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("orderDirection", 11); - LeaveRule("orderDirection", 11); - LeaveRule_orderDirection(); - } - DebugLocation(102, 1); - } finally { DebugExitRule(GrammarFileName, "orderDirection"); } - return retval; - - } - // $ANTLR end "orderDirection" - - partial void EnterRule_whereExpr(); - partial void LeaveRule_whereExpr(); - // $ANTLR start "whereExpr" - // SqlGenerator.g:104:8: public whereExpr : ( filters ( thetaJoins )? ( booleanExpr[ true ] )? | thetaJoins ( booleanExpr[ true ] )? | booleanExpr[false] ); - [GrammarRule("whereExpr")] - public void whereExpr() - { - EnterRule_whereExpr(); - EnterRule("whereExpr", 12); - TraceIn("whereExpr", 12); - try { DebugEnterRule(GrammarFileName, "whereExpr"); - DebugLocation(104, 1); - try - { - // SqlGenerator.g:108:2: ( filters ( thetaJoins )? ( booleanExpr[ true ] )? | thetaJoins ( booleanExpr[ true ] )? | booleanExpr[false] ) - int alt19=3; - try { DebugEnterDecision(19, false); - switch (input.LA(1)) - { - case FILTERS: - { - alt19 = 1; - } - break; - case THETA_JOINS: - { - alt19 = 2; - } - break; - case AND: - case BETWEEN: - case EQ: - case EXISTS: - case GE: - case GT: - case IN: - case IS_NOT_NULL: - case IS_NULL: - case LE: - case LIKE: - case LT: - case METHOD_CALL: - case NE: - case NOT: - case NOT_BETWEEN: - case NOT_IN: - case NOT_LIKE: - case OR: - case SQL_TOKEN: - { - alt19 = 3; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 19, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(19); } - switch (alt19) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:108:4: filters ( thetaJoins )? ( booleanExpr[ true ] )? - { - DebugLocation(108, 4); - PushFollow(Follow._filters_in_whereExpr471); - filters(); - PopFollow(); - if (state.failed) return; - DebugLocation(109, 3); - // SqlGenerator.g:109:3: ( thetaJoins )? - int alt16=2; - try { DebugEnterSubRule(16); - try { DebugEnterDecision(16, false); - int LA16_1 = input.LA(1); - - if ((LA16_1==THETA_JOINS)) - { - alt16 = 1; - } - } finally { DebugExitDecision(16); } - switch (alt16) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:109:5: thetaJoins - { - DebugLocation(109, 5); - if (state.backtracking == 0) - { - Out(" and "); - } - DebugLocation(109, 23); - PushFollow(Follow._thetaJoins_in_whereExpr479); - thetaJoins(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(16); } - - DebugLocation(110, 3); - // SqlGenerator.g:110:3: ( booleanExpr[ true ] )? - int alt17=2; - try { DebugEnterSubRule(17); - try { DebugEnterDecision(17, false); - int LA17_1 = input.LA(1); - - if ((LA17_1==AND||LA17_1==BETWEEN||LA17_1==EQ||LA17_1==EXISTS||LA17_1==GE||LA17_1==GT||LA17_1==IN||(LA17_1>=IS_NOT_NULL && LA17_1<=IS_NULL)||LA17_1==LE||LA17_1==LIKE||LA17_1==LT||LA17_1==METHOD_CALL||LA17_1==NE||(LA17_1>=NOT && LA17_1<=NOT_LIKE)||LA17_1==OR||LA17_1==SQL_TOKEN)) - { - alt17 = 1; - } - } finally { DebugExitDecision(17); } - switch (alt17) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:110:5: booleanExpr[ true ] - { - DebugLocation(110, 5); - if (state.backtracking == 0) - { - Out(" and "); - } - DebugLocation(110, 23); - PushFollow(Follow._booleanExpr_in_whereExpr490); - booleanExpr(true); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(17); } - - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:111:4: thetaJoins ( booleanExpr[ true ] )? - { - DebugLocation(111, 4); - PushFollow(Follow._thetaJoins_in_whereExpr500); - thetaJoins(); - PopFollow(); - if (state.failed) return; - DebugLocation(112, 3); - // SqlGenerator.g:112:3: ( booleanExpr[ true ] )? - int alt18=2; - try { DebugEnterSubRule(18); - try { DebugEnterDecision(18, false); - int LA18_1 = input.LA(1); - - if ((LA18_1==AND||LA18_1==BETWEEN||LA18_1==EQ||LA18_1==EXISTS||LA18_1==GE||LA18_1==GT||LA18_1==IN||(LA18_1>=IS_NOT_NULL && LA18_1<=IS_NULL)||LA18_1==LE||LA18_1==LIKE||LA18_1==LT||LA18_1==METHOD_CALL||LA18_1==NE||(LA18_1>=NOT && LA18_1<=NOT_LIKE)||LA18_1==OR||LA18_1==SQL_TOKEN)) - { - alt18 = 1; - } - } finally { DebugExitDecision(18); } - switch (alt18) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:112:5: booleanExpr[ true ] - { - DebugLocation(112, 5); - if (state.backtracking == 0) - { - Out(" and "); - } - DebugLocation(112, 23); - PushFollow(Follow._booleanExpr_in_whereExpr508); - booleanExpr(true); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(18); } - - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:113:4: booleanExpr[false] - { - DebugLocation(113, 4); - PushFollow(Follow._booleanExpr_in_whereExpr519); - booleanExpr(false); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("whereExpr", 12); - LeaveRule("whereExpr", 12); - LeaveRule_whereExpr(); - } - DebugLocation(114, 1); - } finally { DebugExitRule(GrammarFileName, "whereExpr"); } - return; - - } - // $ANTLR end "whereExpr" - - partial void EnterRule_filters(); - partial void LeaveRule_filters(); - // $ANTLR start "filters" - // SqlGenerator.g:116:1: filters : ^( FILTERS conditionList ) ; - [GrammarRule("filters")] - private void filters() - { - EnterRule_filters(); - EnterRule("filters", 13); - TraceIn("filters", 13); - try { DebugEnterRule(GrammarFileName, "filters"); - DebugLocation(116, 1); - try - { - // SqlGenerator.g:117:2: ( ^( FILTERS conditionList ) ) - DebugEnterAlt(1); - // SqlGenerator.g:117:4: ^( FILTERS conditionList ) - { - DebugLocation(117, 4); - DebugLocation(117, 6); - Match(input,FILTERS,Follow._FILTERS_in_filters532); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(117, 14); - PushFollow(Follow._conditionList_in_filters534); - conditionList(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("filters", 13); - LeaveRule("filters", 13); - LeaveRule_filters(); - } - DebugLocation(118, 1); - } finally { DebugExitRule(GrammarFileName, "filters"); } - return; - - } - // $ANTLR end "filters" - - partial void EnterRule_thetaJoins(); - partial void LeaveRule_thetaJoins(); - // $ANTLR start "thetaJoins" - // SqlGenerator.g:120:1: thetaJoins : ^( THETA_JOINS conditionList ) ; - [GrammarRule("thetaJoins")] - private void thetaJoins() - { - EnterRule_thetaJoins(); - EnterRule("thetaJoins", 14); - TraceIn("thetaJoins", 14); - try { DebugEnterRule(GrammarFileName, "thetaJoins"); - DebugLocation(120, 1); - try - { - // SqlGenerator.g:121:2: ( ^( THETA_JOINS conditionList ) ) - DebugEnterAlt(1); - // SqlGenerator.g:121:4: ^( THETA_JOINS conditionList ) - { - DebugLocation(121, 4); - DebugLocation(121, 6); - Match(input,THETA_JOINS,Follow._THETA_JOINS_in_thetaJoins548); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(121, 18); - PushFollow(Follow._conditionList_in_thetaJoins550); - conditionList(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("thetaJoins", 14); - LeaveRule("thetaJoins", 14); - LeaveRule_thetaJoins(); - } - DebugLocation(122, 1); - } finally { DebugExitRule(GrammarFileName, "thetaJoins"); } - return; - - } - // $ANTLR end "thetaJoins" - - partial void EnterRule_conditionList(); - partial void LeaveRule_conditionList(); - // $ANTLR start "conditionList" - // SqlGenerator.g:124:1: conditionList : sqlToken ( conditionList )? ; - [GrammarRule("conditionList")] - private void conditionList() - { - EnterRule_conditionList(); - EnterRule("conditionList", 15); - TraceIn("conditionList", 15); - try { DebugEnterRule(GrammarFileName, "conditionList"); - DebugLocation(124, 1); - try - { - // SqlGenerator.g:125:2: ( sqlToken ( conditionList )? ) - DebugEnterAlt(1); - // SqlGenerator.g:125:4: sqlToken ( conditionList )? - { - DebugLocation(125, 4); - PushFollow(Follow._sqlToken_in_conditionList563); - sqlToken(); - PopFollow(); - if (state.failed) return; - DebugLocation(125, 13); - // SqlGenerator.g:125:13: ( conditionList )? - int alt20=2; - try { DebugEnterSubRule(20); - try { DebugEnterDecision(20, false); - int LA20_1 = input.LA(1); - - if ((LA20_1==SQL_TOKEN)) - { - alt20 = 1; - } - } finally { DebugExitDecision(20); } - switch (alt20) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:125:15: conditionList - { - DebugLocation(125, 15); - if (state.backtracking == 0) - { - Out(" and "); - } - DebugLocation(125, 33); - PushFollow(Follow._conditionList_in_conditionList569); - conditionList(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(20); } - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("conditionList", 15); - LeaveRule("conditionList", 15); - LeaveRule_conditionList(); - } - DebugLocation(126, 1); - } finally { DebugExitRule(GrammarFileName, "conditionList"); } - return; - - } - // $ANTLR end "conditionList" - - partial void EnterRule_selectClause(); - partial void LeaveRule_selectClause(); - // $ANTLR start "selectClause" - // SqlGenerator.g:128:1: selectClause : ^( SELECT_CLAUSE ( distinctOrAll )? ( selectColumn )+ ) ; - [GrammarRule("selectClause")] - private void selectClause() - { - EnterRule_selectClause(); - EnterRule("selectClause", 16); - TraceIn("selectClause", 16); - try { DebugEnterRule(GrammarFileName, "selectClause"); - DebugLocation(128, 1); - try - { - // SqlGenerator.g:129:2: ( ^( SELECT_CLAUSE ( distinctOrAll )? ( selectColumn )+ ) ) - DebugEnterAlt(1); - // SqlGenerator.g:129:4: ^( SELECT_CLAUSE ( distinctOrAll )? ( selectColumn )+ ) - { - DebugLocation(129, 4); - DebugLocation(129, 6); - Match(input,SELECT_CLAUSE,Follow._SELECT_CLAUSE_in_selectClause584); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(129, 20); - // SqlGenerator.g:129:20: ( distinctOrAll )? - int alt21=2; - try { DebugEnterSubRule(21); - try { DebugEnterDecision(21, false); - int LA21_1 = input.LA(1); - - if ((LA21_1==ALL||LA21_1==DISTINCT)) - { - alt21 = 1; - } - } finally { DebugExitDecision(21); } - switch (alt21) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:129:21: distinctOrAll - { - DebugLocation(129, 21); - PushFollow(Follow._distinctOrAll_in_selectClause587); - distinctOrAll(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(21); } - - DebugLocation(129, 37); - // SqlGenerator.g:129:37: ( selectColumn )+ - int cnt22=0; - try { DebugEnterSubRule(22); - while (true) - { - int alt22=2; - try { DebugEnterDecision(22, false); - int LA22_1 = input.LA(1); - - if ((LA22_1==AGGREGATE||LA22_1==BAND||(LA22_1>=BNOT && LA22_1<=BOR)||(LA22_1>=BXOR && LA22_1<=CASE2)||(LA22_1>=CONSTANT && LA22_1<=COUNT)||(LA22_1>=DIV && LA22_1<=DOT)||LA22_1==FALSE||LA22_1==IDENT||LA22_1==JAVA_CONSTANT||LA22_1==METHOD_CALL||LA22_1==MINUS||(LA22_1>=NUM_DECIMAL && LA22_1<=NUM_LONG)||(LA22_1>=PARAM && LA22_1<=PLUS)||LA22_1==QUOTED_String||LA22_1==SELECT||LA22_1==STAR||(LA22_1>=TRUE && LA22_1<=UNARY_MINUS)||LA22_1==ALIAS_REF||LA22_1==NAMED_PARAM||(LA22_1>=SELECT_EXPR && LA22_1<=SQL_TOKEN))) - { - alt22 = 1; - } - - - } finally { DebugExitDecision(22); } - switch (alt22) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:129:39: selectColumn - { - DebugLocation(129, 39); - PushFollow(Follow._selectColumn_in_selectClause593); - selectColumn(); - PopFollow(); - if (state.failed) return; - - } - break; - - default: - if (cnt22 >= 1) - goto loop22; - - if (state.backtracking>0) {state.failed=true; return;} - EarlyExitException eee22 = new EarlyExitException( 22, input ); - DebugRecognitionException(eee22); - throw eee22; - } - cnt22++; - } - loop22: - ; - - } finally { DebugExitSubRule(22); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("selectClause", 16); - LeaveRule("selectClause", 16); - LeaveRule_selectClause(); - } - DebugLocation(130, 1); - } finally { DebugExitRule(GrammarFileName, "selectClause"); } - return; - - } - // $ANTLR end "selectClause" - - partial void EnterRule_selectColumn(); - partial void LeaveRule_selectColumn(); - // $ANTLR start "selectColumn" - // SqlGenerator.g:132:1: selectColumn : p= selectExpr (sc= SELECT_COLUMNS )? ; - [GrammarRule("selectColumn")] - private void selectColumn() - { - EnterRule_selectColumn(); - EnterRule("selectColumn", 17); - TraceIn("selectColumn", 17); - IASTNode sc = default(IASTNode); - TreeRuleReturnScope p = default(TreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "selectColumn"); - DebugLocation(132, 1); - try - { - // SqlGenerator.g:133:2: (p= selectExpr (sc= SELECT_COLUMNS )? ) - DebugEnterAlt(1); - // SqlGenerator.g:133:4: p= selectExpr (sc= SELECT_COLUMNS )? - { - DebugLocation(133, 5); - PushFollow(Follow._selectExpr_in_selectColumn611); - p=selectExpr(); - PopFollow(); - if (state.failed) return; - DebugLocation(133, 17); - // SqlGenerator.g:133:17: (sc= SELECT_COLUMNS )? - int alt23=2; - try { DebugEnterSubRule(23); - try { DebugEnterDecision(23, false); - int LA23_1 = input.LA(1); - - if ((LA23_1==SELECT_COLUMNS)) - { - alt23 = 1; - } - } finally { DebugExitDecision(23); } - switch (alt23) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:133:18: sc= SELECT_COLUMNS - { - DebugLocation(133, 20); - sc=(IASTNode)Match(input,SELECT_COLUMNS,Follow._SELECT_COLUMNS_in_selectColumn616); if (state.failed) return; - DebugLocation(133, 36); - if (state.backtracking == 0) - { - Out(sc); - } - - } - break; - - } - } finally { DebugExitSubRule(23); } - - DebugLocation(133, 53); - if (state.backtracking == 0) - { - Separator( (sc != null) ? sc : (p!=null?((IASTNode)p.Start):default(IASTNode)) ,", "); - } - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("selectColumn", 17); - LeaveRule("selectColumn", 17); - LeaveRule_selectColumn(); - } - DebugLocation(134, 1); - } finally { DebugExitRule(GrammarFileName, "selectColumn"); } - return; - - } - // $ANTLR end "selectColumn" - - partial void EnterRule_selectExpr(); - partial void LeaveRule_selectExpr(); - // $ANTLR start "selectExpr" - // SqlGenerator.g:136:1: selectExpr : (e= selectAtom | count | ^( CONSTRUCTOR ( DOT | IDENT ) ( selectColumn )+ ) | methodCall | aggregate |c= constant | arithmeticExpr | parameter | selectStatement ); - [GrammarRule("selectExpr")] - private TreeRuleReturnScope selectExpr() - { - EnterRule_selectExpr(); - EnterRule("selectExpr", 18); - TraceIn("selectExpr", 18); - TreeRuleReturnScope retval = new TreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - TreeRuleReturnScope e = default(TreeRuleReturnScope); - TreeRuleReturnScope c = default(TreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "selectExpr"); - DebugLocation(136, 1); - try - { - // SqlGenerator.g:137:2: (e= selectAtom | count | ^( CONSTRUCTOR ( DOT | IDENT ) ( selectColumn )+ ) | methodCall | aggregate |c= constant | arithmeticExpr | parameter | selectStatement ) - int alt25=9; - try { DebugEnterDecision(25, false); - switch (input.LA(1)) - { - case DOT: - case ALIAS_REF: - case SELECT_EXPR: - case SQL_TOKEN: - { - alt25 = 1; - } - break; - case COUNT: - { - alt25 = 2; - } - break; - case CONSTRUCTOR: - { - alt25 = 3; - } - break; - case METHOD_CALL: - { - alt25 = 4; - } - break; - case AGGREGATE: - { - alt25 = 5; - } - break; - case CONSTANT: - case FALSE: - case IDENT: - case JAVA_CONSTANT: - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case QUOTED_String: - case TRUE: - { - alt25 = 6; - } - break; - case BAND: - case BNOT: - case BOR: - case BXOR: - case CASE: - case CASE2: - case DIV: - case MINUS: - case PLUS: - case STAR: - case UNARY_MINUS: - { - alt25 = 7; - } - break; - case PARAM: - case NAMED_PARAM: - { - alt25 = 8; - } - break; - case SELECT: - { - alt25 = 9; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return retval;} - NoViableAltException nvae = new NoViableAltException("", 25, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(25); } - switch (alt25) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:137:4: e= selectAtom - { - DebugLocation(137, 5); - PushFollow(Follow._selectAtom_in_selectExpr636); - e=selectAtom(); - PopFollow(); - if (state.failed) return retval; - DebugLocation(137, 17); - if (state.backtracking == 0) - { - Out((e!=null?((IASTNode)e.Start):default(IASTNode))); - } - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:138:4: count - { - DebugLocation(138, 4); - PushFollow(Follow._count_in_selectExpr643); - count(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:139:4: ^( CONSTRUCTOR ( DOT | IDENT ) ( selectColumn )+ ) - { - DebugLocation(139, 4); - DebugLocation(139, 6); - Match(input,CONSTRUCTOR,Follow._CONSTRUCTOR_in_selectExpr649); if (state.failed) return retval; - - Match(input, TokenTypes.Down, null); if (state.failed) return retval; - DebugLocation(139, 18); - if (input.LA(1)==DOT||input.LA(1)==IDENT) - { - input.Consume(); - state.errorRecovery=false;state.failed=false; - } - else - { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - throw mse; - } - - DebugLocation(139, 32); - // SqlGenerator.g:139:32: ( selectColumn )+ - int cnt24=0; - try { DebugEnterSubRule(24); - while (true) - { - int alt24=2; - try { DebugEnterDecision(24, false); - int LA24_1 = input.LA(1); - - if ((LA24_1==AGGREGATE||LA24_1==BAND||(LA24_1>=BNOT && LA24_1<=BOR)||(LA24_1>=BXOR && LA24_1<=CASE2)||(LA24_1>=CONSTANT && LA24_1<=COUNT)||(LA24_1>=DIV && LA24_1<=DOT)||LA24_1==FALSE||LA24_1==IDENT||LA24_1==JAVA_CONSTANT||LA24_1==METHOD_CALL||LA24_1==MINUS||(LA24_1>=NUM_DECIMAL && LA24_1<=NUM_LONG)||(LA24_1>=PARAM && LA24_1<=PLUS)||LA24_1==QUOTED_String||LA24_1==SELECT||LA24_1==STAR||(LA24_1>=TRUE && LA24_1<=UNARY_MINUS)||LA24_1==ALIAS_REF||LA24_1==NAMED_PARAM||(LA24_1>=SELECT_EXPR && LA24_1<=SQL_TOKEN))) - { - alt24 = 1; - } - - - } finally { DebugExitDecision(24); } - switch (alt24) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:139:34: selectColumn - { - DebugLocation(139, 34); - PushFollow(Follow._selectColumn_in_selectExpr661); - selectColumn(); - PopFollow(); - if (state.failed) return retval; - - } - break; - - default: - if (cnt24 >= 1) - goto loop24; - - if (state.backtracking>0) {state.failed=true; return retval;} - EarlyExitException eee24 = new EarlyExitException( 24, input ); - DebugRecognitionException(eee24); - throw eee24; - } - cnt24++; - } - loop24: - ; - - } finally { DebugExitSubRule(24); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return retval; - - - } - break; - case 4: - DebugEnterAlt(4); - // SqlGenerator.g:140:4: methodCall - { - DebugLocation(140, 4); - PushFollow(Follow._methodCall_in_selectExpr671); - methodCall(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 5: - DebugEnterAlt(5); - // SqlGenerator.g:141:4: aggregate - { - DebugLocation(141, 4); - PushFollow(Follow._aggregate_in_selectExpr676); - aggregate(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 6: - DebugEnterAlt(6); - // SqlGenerator.g:142:4: c= constant - { - DebugLocation(142, 5); - PushFollow(Follow._constant_in_selectExpr683); - c=constant(); - PopFollow(); - if (state.failed) return retval; - DebugLocation(142, 15); - if (state.backtracking == 0) - { - Out((c!=null?((IASTNode)c.Start):default(IASTNode))); - } - - } - break; - case 7: - DebugEnterAlt(7); - // SqlGenerator.g:143:4: arithmeticExpr - { - DebugLocation(143, 4); - PushFollow(Follow._arithmeticExpr_in_selectExpr690); - arithmeticExpr(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 8: - DebugEnterAlt(8); - // SqlGenerator.g:144:4: parameter - { - DebugLocation(144, 4); - PushFollow(Follow._parameter_in_selectExpr695); - parameter(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 9: - DebugEnterAlt(9); - // SqlGenerator.g:147:4: selectStatement - { - DebugLocation(147, 4); - if (state.backtracking == 0) - { - Out("("); - } - DebugLocation(147, 18); - PushFollow(Follow._selectStatement_in_selectExpr704); - selectStatement(); - PopFollow(); - if (state.failed) return retval; - DebugLocation(147, 34); - if (state.backtracking == 0) - { - Out(")"); - } - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("selectExpr", 18); - LeaveRule("selectExpr", 18); - LeaveRule_selectExpr(); - } - DebugLocation(148, 1); - } finally { DebugExitRule(GrammarFileName, "selectExpr"); } - return retval; - - } - // $ANTLR end "selectExpr" - - partial void EnterRule_count(); - partial void LeaveRule_count(); - // $ANTLR start "count" - // SqlGenerator.g:150:1: count : ^( COUNT ( distinctOrAll )? countExpr ) ; - [GrammarRule("count")] - private void count() - { - EnterRule_count(); - EnterRule("count", 19); - TraceIn("count", 19); - try { DebugEnterRule(GrammarFileName, "count"); - DebugLocation(150, 1); - try - { - // SqlGenerator.g:151:2: ( ^( COUNT ( distinctOrAll )? countExpr ) ) - DebugEnterAlt(1); - // SqlGenerator.g:151:4: ^( COUNT ( distinctOrAll )? countExpr ) - { - DebugLocation(151, 4); - DebugLocation(151, 6); - Match(input,COUNT,Follow._COUNT_in_count718); if (state.failed) return; - - DebugLocation(151, 12); - if (state.backtracking == 0) - { - Out("count("); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(151, 32); - // SqlGenerator.g:151:32: ( distinctOrAll )? - int alt26=2; - try { DebugEnterSubRule(26); - try { DebugEnterDecision(26, false); - int LA26_1 = input.LA(1); - - if ((LA26_1==ALL||LA26_1==DISTINCT)) - { - alt26 = 1; - } - } finally { DebugExitDecision(26); } - switch (alt26) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:151:34: distinctOrAll - { - DebugLocation(151, 34); - PushFollow(Follow._distinctOrAll_in_count725); - distinctOrAll(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(26); } - - DebugLocation(151, 52); - PushFollow(Follow._countExpr_in_count731); - countExpr(); - PopFollow(); - if (state.failed) return; - DebugLocation(151, 62); - if (state.backtracking == 0) - { - Out(")"); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("count", 19); - LeaveRule("count", 19); - LeaveRule_count(); - } - DebugLocation(152, 1); - } finally { DebugExitRule(GrammarFileName, "count"); } - return; - - } - // $ANTLR end "count" - - partial void EnterRule_distinctOrAll(); - partial void LeaveRule_distinctOrAll(); - // $ANTLR start "distinctOrAll" - // SqlGenerator.g:154:1: distinctOrAll : ( DISTINCT | ^( ALL ( . )* ) ); - [GrammarRule("distinctOrAll")] - private void distinctOrAll() - { - EnterRule_distinctOrAll(); - EnterRule("distinctOrAll", 20); - TraceIn("distinctOrAll", 20); - try { DebugEnterRule(GrammarFileName, "distinctOrAll"); - DebugLocation(154, 1); - try - { - // SqlGenerator.g:155:2: ( DISTINCT | ^( ALL ( . )* ) ) - int alt28=2; - try { DebugEnterDecision(28, false); - int LA28_1 = input.LA(1); - - if ((LA28_1==DISTINCT)) - { - alt28 = 1; - } - else if ((LA28_1==ALL)) - { - alt28 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 28, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(28); } - switch (alt28) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:155:4: DISTINCT - { - DebugLocation(155, 4); - Match(input,DISTINCT,Follow._DISTINCT_in_distinctOrAll746); if (state.failed) return; - DebugLocation(155, 13); - if (state.backtracking == 0) - { - Out("distinct "); - } - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:156:4: ^( ALL ( . )* ) - { - DebugLocation(156, 4); - DebugLocation(156, 6); - Match(input,ALL,Follow._ALL_in_distinctOrAll754); if (state.failed) return; - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(156, 10); - // SqlGenerator.g:156:10: ( . )* - try { DebugEnterSubRule(27); - while (true) - { - int alt27=2; - try { DebugEnterDecision(27, false); - int LA27_1 = input.LA(1); - - if (((LA27_1>=AGGREGATE && LA27_1<=THETA_JOINS))) - { - alt27 = 1; - } - else if ((LA27_1==UP)) - { - alt27 = 2; - } - - - } finally { DebugExitDecision(27); } - switch ( alt27 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:156:10: . - { - DebugLocation(156, 10); - MatchAny(input); if (state.failed) return; - - } - break; - - default: - goto loop27; - } - } - - loop27: - ; - - } finally { DebugExitSubRule(27); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - } - - DebugLocation(156, 14); - if (state.backtracking == 0) - { - Out("all "); - } - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("distinctOrAll", 20); - LeaveRule("distinctOrAll", 20); - LeaveRule_distinctOrAll(); - } - DebugLocation(157, 1); - } finally { DebugExitRule(GrammarFileName, "distinctOrAll"); } - return; - - } - // $ANTLR end "distinctOrAll" - - partial void EnterRule_countExpr(); - partial void LeaveRule_countExpr(); - // $ANTLR start "countExpr" - // SqlGenerator.g:159:1: countExpr : ( ROW_STAR | simpleExpr ); - [GrammarRule("countExpr")] - private void countExpr() - { - EnterRule_countExpr(); - EnterRule("countExpr", 21); - TraceIn("countExpr", 21); - try { DebugEnterRule(GrammarFileName, "countExpr"); - DebugLocation(159, 1); - try - { - // SqlGenerator.g:161:2: ( ROW_STAR | simpleExpr ) - int alt29=2; - try { DebugEnterDecision(29, false); - int LA29_1 = input.LA(1); - - if ((LA29_1==ROW_STAR)) - { - alt29 = 1; - } - else if ((LA29_1==AGGREGATE||LA29_1==BAND||(LA29_1>=BNOT && LA29_1<=BOR)||(LA29_1>=BXOR && LA29_1<=CASE2)||LA29_1==CONSTANT||LA29_1==COUNT||(LA29_1>=DIV && LA29_1<=DOT)||LA29_1==FALSE||LA29_1==IDENT||LA29_1==INDEX_OP||LA29_1==JAVA_CONSTANT||LA29_1==METHOD_CALL||LA29_1==MINUS||(LA29_1>=NULL && LA29_1<=NUM_LONG)||(LA29_1>=PARAM && LA29_1<=PLUS)||LA29_1==QUOTED_String||LA29_1==STAR||(LA29_1>=TRUE && LA29_1<=UNARY_MINUS)||LA29_1==ALIAS_REF||LA29_1==NAMED_PARAM||LA29_1==RESULT_VARIABLE_REF||LA29_1==SQL_TOKEN)) - { - alt29 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 29, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(29); } - switch (alt29) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:161:4: ROW_STAR - { - DebugLocation(161, 4); - Match(input,ROW_STAR,Follow._ROW_STAR_in_countExpr773); if (state.failed) return; - DebugLocation(161, 13); - if (state.backtracking == 0) - { - Out("*"); - } - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:162:4: simpleExpr - { - DebugLocation(162, 4); - PushFollow(Follow._simpleExpr_in_countExpr780); - simpleExpr(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("countExpr", 21); - LeaveRule("countExpr", 21); - LeaveRule_countExpr(); - } - DebugLocation(163, 1); - } finally { DebugExitRule(GrammarFileName, "countExpr"); } - return; - - } - // $ANTLR end "countExpr" - - partial void EnterRule_selectAtom(); - partial void LeaveRule_selectAtom(); - // $ANTLR start "selectAtom" - // SqlGenerator.g:165:1: selectAtom : ( ^( DOT ( . )* ) | ^( SQL_TOKEN ( . )* ) | ^( ALIAS_REF ( . )* ) | ^( SELECT_EXPR ( . )* ) ); - [GrammarRule("selectAtom")] - private TreeRuleReturnScope selectAtom() - { - EnterRule_selectAtom(); - EnterRule("selectAtom", 22); - TraceIn("selectAtom", 22); - TreeRuleReturnScope retval = new TreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - try { DebugEnterRule(GrammarFileName, "selectAtom"); - DebugLocation(165, 1); - try - { - // SqlGenerator.g:166:2: ( ^( DOT ( . )* ) | ^( SQL_TOKEN ( . )* ) | ^( ALIAS_REF ( . )* ) | ^( SELECT_EXPR ( . )* ) ) - int alt34=4; - try { DebugEnterDecision(34, false); - switch (input.LA(1)) - { - case DOT: - { - alt34 = 1; - } - break; - case SQL_TOKEN: - { - alt34 = 2; - } - break; - case ALIAS_REF: - { - alt34 = 3; - } - break; - case SELECT_EXPR: - { - alt34 = 4; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return retval;} - NoViableAltException nvae = new NoViableAltException("", 34, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(34); } - switch (alt34) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:166:4: ^( DOT ( . )* ) - { - DebugLocation(166, 4); - DebugLocation(166, 6); - Match(input,DOT,Follow._DOT_in_selectAtom792); if (state.failed) return retval; - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return retval; - DebugLocation(166, 10); - // SqlGenerator.g:166:10: ( . )* - try { DebugEnterSubRule(30); - while (true) - { - int alt30=2; - try { DebugEnterDecision(30, false); - int LA30_1 = input.LA(1); - - if (((LA30_1>=AGGREGATE && LA30_1<=THETA_JOINS))) - { - alt30 = 1; - } - else if ((LA30_1==UP)) - { - alt30 = 2; - } - - - } finally { DebugExitDecision(30); } - switch ( alt30 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:166:10: . - { - DebugLocation(166, 10); - MatchAny(input); if (state.failed) return retval; - - } - break; - - default: - goto loop30; - } - } - - loop30: - ; - - } finally { DebugExitSubRule(30); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return retval; - } - - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:167:4: ^( SQL_TOKEN ( . )* ) - { - DebugLocation(167, 4); - DebugLocation(167, 6); - Match(input,SQL_TOKEN,Follow._SQL_TOKEN_in_selectAtom802); if (state.failed) return retval; - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return retval; - DebugLocation(167, 16); - // SqlGenerator.g:167:16: ( . )* - try { DebugEnterSubRule(31); - while (true) - { - int alt31=2; - try { DebugEnterDecision(31, false); - int LA31_1 = input.LA(1); - - if (((LA31_1>=AGGREGATE && LA31_1<=THETA_JOINS))) - { - alt31 = 1; - } - else if ((LA31_1==UP)) - { - alt31 = 2; - } - - - } finally { DebugExitDecision(31); } - switch ( alt31 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:167:16: . - { - DebugLocation(167, 16); - MatchAny(input); if (state.failed) return retval; - - } - break; - - default: - goto loop31; - } - } - - loop31: - ; - - } finally { DebugExitSubRule(31); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return retval; - } - - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:168:4: ^( ALIAS_REF ( . )* ) - { - DebugLocation(168, 4); - DebugLocation(168, 6); - Match(input,ALIAS_REF,Follow._ALIAS_REF_in_selectAtom812); if (state.failed) return retval; - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return retval; - DebugLocation(168, 16); - // SqlGenerator.g:168:16: ( . )* - try { DebugEnterSubRule(32); - while (true) - { - int alt32=2; - try { DebugEnterDecision(32, false); - int LA32_1 = input.LA(1); - - if (((LA32_1>=AGGREGATE && LA32_1<=THETA_JOINS))) - { - alt32 = 1; - } - else if ((LA32_1==UP)) - { - alt32 = 2; - } - - - } finally { DebugExitDecision(32); } - switch ( alt32 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:168:16: . - { - DebugLocation(168, 16); - MatchAny(input); if (state.failed) return retval; - - } - break; - - default: - goto loop32; - } - } - - loop32: - ; - - } finally { DebugExitSubRule(32); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return retval; - } - - - } - break; - case 4: - DebugEnterAlt(4); - // SqlGenerator.g:169:4: ^( SELECT_EXPR ( . )* ) - { - DebugLocation(169, 4); - DebugLocation(169, 6); - Match(input,SELECT_EXPR,Follow._SELECT_EXPR_in_selectAtom822); if (state.failed) return retval; - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return retval; - DebugLocation(169, 18); - // SqlGenerator.g:169:18: ( . )* - try { DebugEnterSubRule(33); - while (true) - { - int alt33=2; - try { DebugEnterDecision(33, false); - int LA33_1 = input.LA(1); - - if (((LA33_1>=AGGREGATE && LA33_1<=THETA_JOINS))) - { - alt33 = 1; - } - else if ((LA33_1==UP)) - { - alt33 = 2; - } - - - } finally { DebugExitDecision(33); } - switch ( alt33 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:169:18: . - { - DebugLocation(169, 18); - MatchAny(input); if (state.failed) return retval; - - } - break; - - default: - goto loop33; - } - } - - loop33: - ; - - } finally { DebugExitSubRule(33); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return retval; - } - - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("selectAtom", 22); - LeaveRule("selectAtom", 22); - LeaveRule_selectAtom(); - } - DebugLocation(170, 1); - } finally { DebugExitRule(GrammarFileName, "selectAtom"); } - return retval; - - } - // $ANTLR end "selectAtom" - - partial void EnterRule_from(); - partial void LeaveRule_from(); - // $ANTLR start "from" - // SqlGenerator.g:177:1: from : ^(f= FROM ( fromTable )* ) ; - [GrammarRule("from")] - private void from() - { - EnterRule_from(); - EnterRule("from", 23); - TraceIn("from", 23); - IASTNode f = default(IASTNode); - - try { DebugEnterRule(GrammarFileName, "from"); - DebugLocation(177, 1); - try - { - // SqlGenerator.g:178:2: ( ^(f= FROM ( fromTable )* ) ) - DebugEnterAlt(1); - // SqlGenerator.g:178:4: ^(f= FROM ( fromTable )* ) - { - DebugLocation(178, 4); - DebugLocation(178, 7); - f=(IASTNode)Match(input,FROM,Follow._FROM_in_from845); if (state.failed) return; - - DebugLocation(178, 13); - if (state.backtracking == 0) - { - Out(" from "); - } - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(179, 3); - // SqlGenerator.g:179:3: ( fromTable )* - try { DebugEnterSubRule(35); - while (true) - { - int alt35=2; - try { DebugEnterDecision(35, false); - int LA35_1 = input.LA(1); - - if ((LA35_1==FROM_FRAGMENT||LA35_1==JOIN_FRAGMENT)) - { - alt35 = 1; - } - - - } finally { DebugExitDecision(35); } - switch ( alt35 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:179:4: fromTable - { - DebugLocation(179, 4); - PushFollow(Follow._fromTable_in_from852); - fromTable(); - PopFollow(); - if (state.failed) return; - - } - break; - - default: - goto loop35; - } - } - - loop35: - ; - - } finally { DebugExitSubRule(35); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - } - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("from", 23); - LeaveRule("from", 23); - LeaveRule_from(); - } - DebugLocation(180, 1); - } finally { DebugExitRule(GrammarFileName, "from"); } - return; - - } - // $ANTLR end "from" - - partial void EnterRule_fromTable(); - partial void LeaveRule_fromTable(); - // $ANTLR start "fromTable" - // SqlGenerator.g:182:1: fromTable : ( ^(a= FROM_FRAGMENT ( tableJoin[ a ] )* ) | ^(a= JOIN_FRAGMENT ( tableJoin[ a ] )* ) ); - [GrammarRule("fromTable")] - private void fromTable() - { - EnterRule_fromTable(); - EnterRule("fromTable", 24); - TraceIn("fromTable", 24); - IASTNode a = default(IASTNode); - - try { DebugEnterRule(GrammarFileName, "fromTable"); - DebugLocation(182, 1); - try - { - // SqlGenerator.g:187:2: ( ^(a= FROM_FRAGMENT ( tableJoin[ a ] )* ) | ^(a= JOIN_FRAGMENT ( tableJoin[ a ] )* ) ) - int alt38=2; - try { DebugEnterDecision(38, false); - int LA38_1 = input.LA(1); - - if ((LA38_1==FROM_FRAGMENT)) - { - alt38 = 1; - } - else if ((LA38_1==JOIN_FRAGMENT)) - { - alt38 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 38, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(38); } - switch (alt38) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:187:4: ^(a= FROM_FRAGMENT ( tableJoin[ a ] )* ) - { - DebugLocation(187, 4); - DebugLocation(187, 8); - a=(IASTNode)Match(input,FROM_FRAGMENT,Follow._FROM_FRAGMENT_in_fromTable878); if (state.failed) return; - - DebugLocation(187, 24); - if (state.backtracking == 0) - { - Out(a); - } - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(187, 36); - // SqlGenerator.g:187:36: ( tableJoin[ a ] )* - try { DebugEnterSubRule(36); - while (true) - { - int alt36=2; - try { DebugEnterDecision(36, false); - int LA36_1 = input.LA(1); - - if ((LA36_1==FROM_FRAGMENT||LA36_1==JOIN_FRAGMENT)) - { - alt36 = 1; - } - - - } finally { DebugExitDecision(36); } - switch ( alt36 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:187:37: tableJoin[ a ] - { - DebugLocation(187, 37); - PushFollow(Follow._tableJoin_in_fromTable884); - tableJoin(a); - PopFollow(); - if (state.failed) return; - - } - break; - - default: - goto loop36; - } - } - - loop36: - ; - - } finally { DebugExitSubRule(36); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - } - - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:188:4: ^(a= JOIN_FRAGMENT ( tableJoin[ a ] )* ) - { - DebugLocation(188, 4); - DebugLocation(188, 8); - a=(IASTNode)Match(input,JOIN_FRAGMENT,Follow._JOIN_FRAGMENT_in_fromTable899); if (state.failed) return; - - DebugLocation(188, 24); - if (state.backtracking == 0) - { - Out(a); - } - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(188, 36); - // SqlGenerator.g:188:36: ( tableJoin[ a ] )* - try { DebugEnterSubRule(37); - while (true) - { - int alt37=2; - try { DebugEnterDecision(37, false); - int LA37_1 = input.LA(1); - - if ((LA37_1==FROM_FRAGMENT||LA37_1==JOIN_FRAGMENT)) - { - alt37 = 1; - } - - - } finally { DebugExitDecision(37); } - switch ( alt37 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:188:37: tableJoin[ a ] - { - DebugLocation(188, 37); - PushFollow(Follow._tableJoin_in_fromTable905); - tableJoin(a); - PopFollow(); - if (state.failed) return; - - } - break; - - default: - goto loop37; - } - } - - loop37: - ; - - } finally { DebugExitSubRule(37); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - } - - - } - break; - - } - if (state.backtracking == 0) - { - - FromFragmentSeparator(a); - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("fromTable", 24); - LeaveRule("fromTable", 24); - LeaveRule_fromTable(); - } - DebugLocation(189, 1); - } finally { DebugExitRule(GrammarFileName, "fromTable"); } - return; - - } - // $ANTLR end "fromTable" - - partial void EnterRule_tableJoin(); - partial void LeaveRule_tableJoin(); - // $ANTLR start "tableJoin" - // SqlGenerator.g:191:1: tableJoin[ IASTNode parent ] : ( ^(c= JOIN_FRAGMENT ( tableJoin[ c ] )* ) | ^(d= FROM_FRAGMENT ( tableJoin[ d ] )* ) ); - [GrammarRule("tableJoin")] - private void tableJoin(IASTNode parent) - { - EnterRule_tableJoin(); - EnterRule("tableJoin", 25); - TraceIn("tableJoin", 25); - IASTNode c = default(IASTNode); - IASTNode d = default(IASTNode); - - try { DebugEnterRule(GrammarFileName, "tableJoin"); - DebugLocation(191, 1); - try - { - // SqlGenerator.g:192:2: ( ^(c= JOIN_FRAGMENT ( tableJoin[ c ] )* ) | ^(d= FROM_FRAGMENT ( tableJoin[ d ] )* ) ) - int alt41=2; - try { DebugEnterDecision(41, false); - int LA41_1 = input.LA(1); - - if ((LA41_1==JOIN_FRAGMENT)) - { - alt41 = 1; - } - else if ((LA41_1==FROM_FRAGMENT)) - { - alt41 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 41, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(41); } - switch (alt41) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:192:4: ^(c= JOIN_FRAGMENT ( tableJoin[ c ] )* ) - { - DebugLocation(192, 4); - DebugLocation(192, 8); - c=(IASTNode)Match(input,JOIN_FRAGMENT,Follow._JOIN_FRAGMENT_in_tableJoin928); if (state.failed) return; - - DebugLocation(192, 23); - if (state.backtracking == 0) - { - Out(" "); Out(c); - } - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(192, 46); - // SqlGenerator.g:192:46: ( tableJoin[ c ] )* - try { DebugEnterSubRule(39); - while (true) - { - int alt39=2; - try { DebugEnterDecision(39, false); - int LA39_1 = input.LA(1); - - if ((LA39_1==FROM_FRAGMENT||LA39_1==JOIN_FRAGMENT)) - { - alt39 = 1; - } - - - } finally { DebugExitDecision(39); } - switch ( alt39 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:192:47: tableJoin[ c ] - { - DebugLocation(192, 47); - PushFollow(Follow._tableJoin_in_tableJoin933); - tableJoin(c); - PopFollow(); - if (state.failed) return; - - } - break; - - default: - goto loop39; - } - } - - loop39: - ; - - } finally { DebugExitSubRule(39); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - } - - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:193:4: ^(d= FROM_FRAGMENT ( tableJoin[ d ] )* ) - { - DebugLocation(193, 4); - DebugLocation(193, 8); - d=(IASTNode)Match(input,FROM_FRAGMENT,Follow._FROM_FRAGMENT_in_tableJoin949); if (state.failed) return; - - DebugLocation(193, 23); - if (state.backtracking == 0) - { - NestedFromFragment(d,parent); - } - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(193, 58); - // SqlGenerator.g:193:58: ( tableJoin[ d ] )* - try { DebugEnterSubRule(40); - while (true) - { - int alt40=2; - try { DebugEnterDecision(40, false); - int LA40_1 = input.LA(1); - - if ((LA40_1==FROM_FRAGMENT||LA40_1==JOIN_FRAGMENT)) - { - alt40 = 1; - } - - - } finally { DebugExitDecision(40); } - switch ( alt40 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:193:59: tableJoin[ d ] - { - DebugLocation(193, 59); - PushFollow(Follow._tableJoin_in_tableJoin954); - tableJoin(d); - PopFollow(); - if (state.failed) return; - - } - break; - - default: - goto loop40; - } - } - - loop40: - ; - - } finally { DebugExitSubRule(40); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - } - - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("tableJoin", 25); - LeaveRule("tableJoin", 25); - LeaveRule_tableJoin(); - } - DebugLocation(194, 1); - } finally { DebugExitRule(GrammarFileName, "tableJoin"); } - return; - - } - // $ANTLR end "tableJoin" - - partial void EnterRule_booleanOp(); - partial void LeaveRule_booleanOp(); - // $ANTLR start "booleanOp" - // SqlGenerator.g:196:1: booleanOp[ bool parens ] : ( ^( AND booleanExpr[true] booleanExpr[true] ) | ^( OR booleanExpr[false] booleanExpr[false] ) | ^( NOT booleanExpr[false] ) ); - [GrammarRule("booleanOp")] - private void booleanOp(bool parens) - { - EnterRule_booleanOp(); - EnterRule("booleanOp", 26); - TraceIn("booleanOp", 26); - try { DebugEnterRule(GrammarFileName, "booleanOp"); - DebugLocation(196, 1); - try - { - // SqlGenerator.g:197:2: ( ^( AND booleanExpr[true] booleanExpr[true] ) | ^( OR booleanExpr[false] booleanExpr[false] ) | ^( NOT booleanExpr[false] ) ) - int alt42=3; - try { DebugEnterDecision(42, false); - switch (input.LA(1)) - { - case AND: - { - alt42 = 1; - } - break; - case OR: - { - alt42 = 2; - } - break; - case NOT: - { - alt42 = 3; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 42, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(42); } - switch (alt42) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:197:4: ^( AND booleanExpr[true] booleanExpr[true] ) - { - DebugLocation(197, 4); - DebugLocation(197, 6); - Match(input,AND,Follow._AND_in_booleanOp974); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(197, 10); - PushFollow(Follow._booleanExpr_in_booleanOp976); - booleanExpr(true); - PopFollow(); - if (state.failed) return; - DebugLocation(197, 28); - if (state.backtracking == 0) - { - Out(" and "); - } - DebugLocation(197, 46); - PushFollow(Follow._booleanExpr_in_booleanOp981); - booleanExpr(true); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:198:4: ^( OR booleanExpr[false] booleanExpr[false] ) - { - DebugLocation(198, 4); - DebugLocation(198, 6); - Match(input,OR,Follow._OR_in_booleanOp989); if (state.failed) return; - - DebugLocation(198, 9); - if (state.backtracking == 0) - { - if (parens) Out("("); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(198, 35); - PushFollow(Follow._booleanExpr_in_booleanOp993); - booleanExpr(false); - PopFollow(); - if (state.failed) return; - DebugLocation(198, 54); - if (state.backtracking == 0) - { - Out(" or "); - } - DebugLocation(198, 71); - PushFollow(Follow._booleanExpr_in_booleanOp998); - booleanExpr(false); - PopFollow(); - if (state.failed) return; - DebugLocation(198, 90); - if (state.backtracking == 0) - { - if (parens) Out(")"); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:199:4: ^( NOT booleanExpr[false] ) - { - DebugLocation(199, 4); - DebugLocation(199, 6); - Match(input,NOT,Follow._NOT_in_booleanOp1008); if (state.failed) return; - - DebugLocation(199, 10); - if (state.backtracking == 0) - { - Out(" not ("); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(199, 29); - PushFollow(Follow._booleanExpr_in_booleanOp1012); - booleanExpr(false); - PopFollow(); - if (state.failed) return; - DebugLocation(199, 48); - if (state.backtracking == 0) - { - Out(")"); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("booleanOp", 26); - LeaveRule("booleanOp", 26); - LeaveRule_booleanOp(); - } - DebugLocation(200, 1); - } finally { DebugExitRule(GrammarFileName, "booleanOp"); } - return; - - } - // $ANTLR end "booleanOp" - - partial void EnterRule_booleanExpr(); - partial void LeaveRule_booleanExpr(); - // $ANTLR start "booleanExpr" - // SqlGenerator.g:202:1: booleanExpr[ bool parens ] : ( booleanOp[ parens ] | comparisonExpr[ parens ] | methodCall |st= SQL_TOKEN ); - [GrammarRule("booleanExpr")] - private void booleanExpr(bool parens) - { - EnterRule_booleanExpr(); - EnterRule("booleanExpr", 27); - TraceIn("booleanExpr", 27); - IASTNode st = default(IASTNode); - - try { DebugEnterRule(GrammarFileName, "booleanExpr"); - DebugLocation(202, 1); - try - { - // SqlGenerator.g:203:2: ( booleanOp[ parens ] | comparisonExpr[ parens ] | methodCall |st= SQL_TOKEN ) - int alt43=4; - try { DebugEnterDecision(43, false); - switch (input.LA(1)) - { - case AND: - case NOT: - case OR: - { - alt43 = 1; - } - break; - case BETWEEN: - case EQ: - case EXISTS: - case GE: - case GT: - case IN: - case IS_NOT_NULL: - case IS_NULL: - case LE: - case LIKE: - case LT: - case NE: - case NOT_BETWEEN: - case NOT_IN: - case NOT_LIKE: - { - alt43 = 2; - } - break; - case METHOD_CALL: - { - alt43 = 3; - } - break; - case SQL_TOKEN: - { - alt43 = 4; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 43, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(43); } - switch (alt43) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:203:4: booleanOp[ parens ] - { - DebugLocation(203, 4); - PushFollow(Follow._booleanOp_in_booleanExpr1029); - booleanOp(parens); - PopFollow(); - if (state.failed) return; - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:204:4: comparisonExpr[ parens ] - { - DebugLocation(204, 4); - PushFollow(Follow._comparisonExpr_in_booleanExpr1036); - comparisonExpr(parens); - PopFollow(); - if (state.failed) return; - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:205:4: methodCall - { - DebugLocation(205, 4); - PushFollow(Follow._methodCall_in_booleanExpr1043); - methodCall(); - PopFollow(); - if (state.failed) return; - - } - break; - case 4: - DebugEnterAlt(4); - // SqlGenerator.g:206:4: st= SQL_TOKEN - { - DebugLocation(206, 6); - st=(IASTNode)Match(input,SQL_TOKEN,Follow._SQL_TOKEN_in_booleanExpr1050); if (state.failed) return; - DebugLocation(206, 17); - if (state.backtracking == 0) - { - Out(st); - } - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("booleanExpr", 27); - LeaveRule("booleanExpr", 27); - LeaveRule_booleanExpr(); - } - DebugLocation(207, 1); - } finally { DebugExitRule(GrammarFileName, "booleanExpr"); } - return; - - } - // $ANTLR end "booleanExpr" - - partial void EnterRule_comparisonExpr(); - partial void LeaveRule_comparisonExpr(); - // $ANTLR start "comparisonExpr" - // SqlGenerator.g:209:8: public comparisonExpr[ bool parens ] : ( binaryComparisonExpression | exoticComparisonExpression ); - [GrammarRule("comparisonExpr")] - public void comparisonExpr(bool parens) - { - EnterRule_comparisonExpr(); - EnterRule("comparisonExpr", 28); - TraceIn("comparisonExpr", 28); - try { DebugEnterRule(GrammarFileName, "comparisonExpr"); - DebugLocation(209, 1); - try - { - // SqlGenerator.g:210:2: ( binaryComparisonExpression | exoticComparisonExpression ) - int alt44=2; - try { DebugEnterDecision(44, false); - int LA44_1 = input.LA(1); - - if ((LA44_1==EQ||LA44_1==GE||LA44_1==GT||LA44_1==LE||LA44_1==LT||LA44_1==NE)) - { - alt44 = 1; - } - else if ((LA44_1==BETWEEN||LA44_1==EXISTS||LA44_1==IN||(LA44_1>=IS_NOT_NULL && LA44_1<=IS_NULL)||LA44_1==LIKE||(LA44_1>=NOT_BETWEEN && LA44_1<=NOT_LIKE))) - { - alt44 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 44, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(44); } - switch (alt44) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:210:4: binaryComparisonExpression - { - DebugLocation(210, 4); - PushFollow(Follow._binaryComparisonExpression_in_comparisonExpr1068); - binaryComparisonExpression(); - PopFollow(); - if (state.failed) return; - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:211:4: exoticComparisonExpression - { - DebugLocation(211, 4); - if (state.backtracking == 0) - { - if (parens) Out("("); - } - DebugLocation(211, 30); - PushFollow(Follow._exoticComparisonExpression_in_comparisonExpr1075); - exoticComparisonExpression(); - PopFollow(); - if (state.failed) return; - DebugLocation(211, 57); - if (state.backtracking == 0) - { - if (parens) Out(")"); - } - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("comparisonExpr", 28); - LeaveRule("comparisonExpr", 28); - LeaveRule_comparisonExpr(); - } - DebugLocation(212, 1); - } finally { DebugExitRule(GrammarFileName, "comparisonExpr"); } - return; - - } - // $ANTLR end "comparisonExpr" - - partial void EnterRule_binaryComparisonExpression(); - partial void LeaveRule_binaryComparisonExpression(); - // $ANTLR start "binaryComparisonExpression" - // SqlGenerator.g:214:1: binaryComparisonExpression : ( ^( EQ expr expr ) | ^( NE expr expr ) | ^( GT expr expr ) | ^( GE expr expr ) | ^( LT expr expr ) | ^( LE expr expr ) ); - [GrammarRule("binaryComparisonExpression")] - private void binaryComparisonExpression() - { - EnterRule_binaryComparisonExpression(); - EnterRule("binaryComparisonExpression", 29); - TraceIn("binaryComparisonExpression", 29); - try { DebugEnterRule(GrammarFileName, "binaryComparisonExpression"); - DebugLocation(214, 1); - try - { - // SqlGenerator.g:215:2: ( ^( EQ expr expr ) | ^( NE expr expr ) | ^( GT expr expr ) | ^( GE expr expr ) | ^( LT expr expr ) | ^( LE expr expr ) ) - int alt45=6; - try { DebugEnterDecision(45, false); - switch (input.LA(1)) - { - case EQ: - { - alt45 = 1; - } - break; - case NE: - { - alt45 = 2; - } - break; - case GT: - { - alt45 = 3; - } - break; - case GE: - { - alt45 = 4; - } - break; - case LT: - { - alt45 = 5; - } - break; - case LE: - { - alt45 = 6; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 45, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(45); } - switch (alt45) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:215:4: ^( EQ expr expr ) - { - DebugLocation(215, 4); - DebugLocation(215, 6); - Match(input,EQ,Follow._EQ_in_binaryComparisonExpression1090); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(215, 9); - PushFollow(Follow._expr_in_binaryComparisonExpression1092); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(215, 14); - if (state.backtracking == 0) - { - Out("="); - } - DebugLocation(215, 28); - PushFollow(Follow._expr_in_binaryComparisonExpression1096); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:216:4: ^( NE expr expr ) - { - DebugLocation(216, 4); - DebugLocation(216, 6); - Match(input,NE,Follow._NE_in_binaryComparisonExpression1103); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(216, 9); - PushFollow(Follow._expr_in_binaryComparisonExpression1105); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(216, 14); - if (state.backtracking == 0) - { - Out("<>"); - } - DebugLocation(216, 29); - PushFollow(Follow._expr_in_binaryComparisonExpression1109); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:217:4: ^( GT expr expr ) - { - DebugLocation(217, 4); - DebugLocation(217, 6); - Match(input,GT,Follow._GT_in_binaryComparisonExpression1116); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(217, 9); - PushFollow(Follow._expr_in_binaryComparisonExpression1118); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(217, 14); - if (state.backtracking == 0) - { - Out(">"); - } - DebugLocation(217, 28); - PushFollow(Follow._expr_in_binaryComparisonExpression1122); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 4: - DebugEnterAlt(4); - // SqlGenerator.g:218:4: ^( GE expr expr ) - { - DebugLocation(218, 4); - DebugLocation(218, 6); - Match(input,GE,Follow._GE_in_binaryComparisonExpression1129); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(218, 9); - PushFollow(Follow._expr_in_binaryComparisonExpression1131); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(218, 14); - if (state.backtracking == 0) - { - Out(">="); - } - DebugLocation(218, 29); - PushFollow(Follow._expr_in_binaryComparisonExpression1135); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 5: - DebugEnterAlt(5); - // SqlGenerator.g:219:4: ^( LT expr expr ) - { - DebugLocation(219, 4); - DebugLocation(219, 6); - Match(input,LT,Follow._LT_in_binaryComparisonExpression1142); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(219, 9); - PushFollow(Follow._expr_in_binaryComparisonExpression1144); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(219, 14); - if (state.backtracking == 0) - { - Out("<"); - } - DebugLocation(219, 28); - PushFollow(Follow._expr_in_binaryComparisonExpression1148); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 6: - DebugEnterAlt(6); - // SqlGenerator.g:220:4: ^( LE expr expr ) - { - DebugLocation(220, 4); - DebugLocation(220, 6); - Match(input,LE,Follow._LE_in_binaryComparisonExpression1155); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(220, 9); - PushFollow(Follow._expr_in_binaryComparisonExpression1157); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(220, 14); - if (state.backtracking == 0) - { - Out("<="); - } - DebugLocation(220, 29); - PushFollow(Follow._expr_in_binaryComparisonExpression1161); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("binaryComparisonExpression", 29); - LeaveRule("binaryComparisonExpression", 29); - LeaveRule_binaryComparisonExpression(); - } - DebugLocation(221, 1); - } finally { DebugExitRule(GrammarFileName, "binaryComparisonExpression"); } - return; - - } - // $ANTLR end "binaryComparisonExpression" - - partial void EnterRule_exoticComparisonExpression(); - partial void LeaveRule_exoticComparisonExpression(); - // $ANTLR start "exoticComparisonExpression" - // SqlGenerator.g:223:1: exoticComparisonExpression : ( ^( LIKE expr expr likeEscape ) | ^( NOT_LIKE expr expr likeEscape ) | ^( BETWEEN expr expr expr ) | ^( NOT_BETWEEN expr expr expr ) | ^( IN expr inList ) | ^( NOT_IN expr inList ) | ^( EXISTS quantified ) | ^( IS_NULL expr ) | ^( IS_NOT_NULL expr ) ); - [GrammarRule("exoticComparisonExpression")] - private void exoticComparisonExpression() - { - EnterRule_exoticComparisonExpression(); - EnterRule("exoticComparisonExpression", 30); - TraceIn("exoticComparisonExpression", 30); - try { DebugEnterRule(GrammarFileName, "exoticComparisonExpression"); - DebugLocation(223, 1); - try - { - // SqlGenerator.g:224:2: ( ^( LIKE expr expr likeEscape ) | ^( NOT_LIKE expr expr likeEscape ) | ^( BETWEEN expr expr expr ) | ^( NOT_BETWEEN expr expr expr ) | ^( IN expr inList ) | ^( NOT_IN expr inList ) | ^( EXISTS quantified ) | ^( IS_NULL expr ) | ^( IS_NOT_NULL expr ) ) - int alt46=9; - try { DebugEnterDecision(46, false); - switch (input.LA(1)) - { - case LIKE: - { - alt46 = 1; - } - break; - case NOT_LIKE: - { - alt46 = 2; - } - break; - case BETWEEN: - { - alt46 = 3; - } - break; - case NOT_BETWEEN: - { - alt46 = 4; - } - break; - case IN: - { - alt46 = 5; - } - break; - case NOT_IN: - { - alt46 = 6; - } - break; - case EXISTS: - { - alt46 = 7; - } - break; - case IS_NULL: - { - alt46 = 8; - } - break; - case IS_NOT_NULL: - { - alt46 = 9; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 46, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(46); } - switch (alt46) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:224:4: ^( LIKE expr expr likeEscape ) - { - DebugLocation(224, 4); - DebugLocation(224, 6); - Match(input,LIKE,Follow._LIKE_in_exoticComparisonExpression1175); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(224, 11); - PushFollow(Follow._expr_in_exoticComparisonExpression1177); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(224, 16); - if (state.backtracking == 0) - { - Out(" like "); - } - DebugLocation(224, 35); - PushFollow(Follow._expr_in_exoticComparisonExpression1181); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(224, 40); - PushFollow(Follow._likeEscape_in_exoticComparisonExpression1183); - likeEscape(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:225:4: ^( NOT_LIKE expr expr likeEscape ) - { - DebugLocation(225, 4); - DebugLocation(225, 6); - Match(input,NOT_LIKE,Follow._NOT_LIKE_in_exoticComparisonExpression1191); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(225, 15); - PushFollow(Follow._expr_in_exoticComparisonExpression1193); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(225, 20); - if (state.backtracking == 0) - { - Out(" not like "); - } - DebugLocation(225, 43); - PushFollow(Follow._expr_in_exoticComparisonExpression1197); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(225, 48); - PushFollow(Follow._likeEscape_in_exoticComparisonExpression1199); - likeEscape(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:226:4: ^( BETWEEN expr expr expr ) - { - DebugLocation(226, 4); - DebugLocation(226, 6); - Match(input,BETWEEN,Follow._BETWEEN_in_exoticComparisonExpression1206); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(226, 14); - PushFollow(Follow._expr_in_exoticComparisonExpression1208); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(226, 19); - if (state.backtracking == 0) - { - Out(" between "); - } - DebugLocation(226, 41); - PushFollow(Follow._expr_in_exoticComparisonExpression1212); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(226, 46); - if (state.backtracking == 0) - { - Out(" and "); - } - DebugLocation(226, 64); - PushFollow(Follow._expr_in_exoticComparisonExpression1216); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 4: - DebugEnterAlt(4); - // SqlGenerator.g:227:4: ^( NOT_BETWEEN expr expr expr ) - { - DebugLocation(227, 4); - DebugLocation(227, 6); - Match(input,NOT_BETWEEN,Follow._NOT_BETWEEN_in_exoticComparisonExpression1223); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(227, 18); - PushFollow(Follow._expr_in_exoticComparisonExpression1225); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(227, 23); - if (state.backtracking == 0) - { - Out(" not between "); - } - DebugLocation(227, 49); - PushFollow(Follow._expr_in_exoticComparisonExpression1229); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(227, 54); - if (state.backtracking == 0) - { - Out(" and "); - } - DebugLocation(227, 72); - PushFollow(Follow._expr_in_exoticComparisonExpression1233); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 5: - DebugEnterAlt(5); - // SqlGenerator.g:228:4: ^( IN expr inList ) - { - DebugLocation(228, 4); - DebugLocation(228, 6); - Match(input,IN,Follow._IN_in_exoticComparisonExpression1240); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(228, 9); - PushFollow(Follow._expr_in_exoticComparisonExpression1242); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(228, 14); - if (state.backtracking == 0) - { - Out(" in"); - } - DebugLocation(228, 30); - PushFollow(Follow._inList_in_exoticComparisonExpression1246); - inList(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 6: - DebugEnterAlt(6); - // SqlGenerator.g:229:4: ^( NOT_IN expr inList ) - { - DebugLocation(229, 4); - DebugLocation(229, 6); - Match(input,NOT_IN,Follow._NOT_IN_in_exoticComparisonExpression1254); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(229, 13); - PushFollow(Follow._expr_in_exoticComparisonExpression1256); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(229, 18); - if (state.backtracking == 0) - { - Out(" not in "); - } - DebugLocation(229, 39); - PushFollow(Follow._inList_in_exoticComparisonExpression1260); - inList(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 7: - DebugEnterAlt(7); - // SqlGenerator.g:230:4: ^( EXISTS quantified ) - { - DebugLocation(230, 4); - DebugLocation(230, 6); - Match(input,EXISTS,Follow._EXISTS_in_exoticComparisonExpression1268); if (state.failed) return; - - DebugLocation(230, 13); - if (state.backtracking == 0) - { - OptionalSpace(); Out("exists "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(230, 50); - PushFollow(Follow._quantified_in_exoticComparisonExpression1272); - quantified(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 8: - DebugEnterAlt(8); - // SqlGenerator.g:231:4: ^( IS_NULL expr ) - { - DebugLocation(231, 4); - DebugLocation(231, 6); - Match(input,IS_NULL,Follow._IS_NULL_in_exoticComparisonExpression1280); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(231, 14); - PushFollow(Follow._expr_in_exoticComparisonExpression1282); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - DebugLocation(231, 20); - if (state.backtracking == 0) - { - Out(" is null"); - } - - } - break; - case 9: - DebugEnterAlt(9); - // SqlGenerator.g:232:4: ^( IS_NOT_NULL expr ) - { - DebugLocation(232, 4); - DebugLocation(232, 6); - Match(input,IS_NOT_NULL,Follow._IS_NOT_NULL_in_exoticComparisonExpression1291); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(232, 18); - PushFollow(Follow._expr_in_exoticComparisonExpression1293); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - DebugLocation(232, 24); - if (state.backtracking == 0) - { - Out(" is not null"); - } - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("exoticComparisonExpression", 30); - LeaveRule("exoticComparisonExpression", 30); - LeaveRule_exoticComparisonExpression(); - } - DebugLocation(233, 1); - } finally { DebugExitRule(GrammarFileName, "exoticComparisonExpression"); } - return; - - } - // $ANTLR end "exoticComparisonExpression" - - partial void EnterRule_likeEscape(); - partial void LeaveRule_likeEscape(); - // $ANTLR start "likeEscape" - // SqlGenerator.g:235:1: likeEscape : ( ^( ESCAPE expr ) )? ; - [GrammarRule("likeEscape")] - private void likeEscape() - { - EnterRule_likeEscape(); - EnterRule("likeEscape", 31); - TraceIn("likeEscape", 31); - try { DebugEnterRule(GrammarFileName, "likeEscape"); - DebugLocation(235, 1); - try - { - // SqlGenerator.g:236:2: ( ( ^( ESCAPE expr ) )? ) - DebugEnterAlt(1); - // SqlGenerator.g:236:4: ( ^( ESCAPE expr ) )? - { - DebugLocation(236, 4); - // SqlGenerator.g:236:4: ( ^( ESCAPE expr ) )? - int alt47=2; - try { DebugEnterSubRule(47); - try { DebugEnterDecision(47, false); - int LA47_1 = input.LA(1); - - if ((LA47_1==ESCAPE)) - { - alt47 = 1; - } - } finally { DebugExitDecision(47); } - switch (alt47) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:236:6: ^( ESCAPE expr ) - { - DebugLocation(236, 6); - DebugLocation(236, 8); - Match(input,ESCAPE,Follow._ESCAPE_in_likeEscape1310); if (state.failed) return; - - DebugLocation(236, 15); - if (state.backtracking == 0) - { - Out(" escape "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(236, 36); - PushFollow(Follow._expr_in_likeEscape1314); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } finally { DebugExitSubRule(47); } - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("likeEscape", 31); - LeaveRule("likeEscape", 31); - LeaveRule_likeEscape(); - } - DebugLocation(237, 1); - } finally { DebugExitRule(GrammarFileName, "likeEscape"); } - return; - - } - // $ANTLR end "likeEscape" - - partial void EnterRule_inList(); - partial void LeaveRule_inList(); - // $ANTLR start "inList" - // SqlGenerator.g:239:1: inList : ^( IN_LIST ( parenSelect | simpleExprList ) ) ; - [GrammarRule("inList")] - private void inList() - { - EnterRule_inList(); - EnterRule("inList", 32); - TraceIn("inList", 32); - try { DebugEnterRule(GrammarFileName, "inList"); - DebugLocation(239, 1); - try - { - // SqlGenerator.g:240:2: ( ^( IN_LIST ( parenSelect | simpleExprList ) ) ) - DebugEnterAlt(1); - // SqlGenerator.g:240:4: ^( IN_LIST ( parenSelect | simpleExprList ) ) - { - DebugLocation(240, 4); - DebugLocation(240, 6); - Match(input,IN_LIST,Follow._IN_LIST_in_inList1330); if (state.failed) return; - - DebugLocation(240, 14); - if (state.backtracking == 0) - { - Out(" "); - } - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(240, 28); - // SqlGenerator.g:240:28: ( parenSelect | simpleExprList ) - int alt48=2; - try { DebugEnterSubRule(48); - try { DebugEnterDecision(48, false); - int LA48_1 = input.LA(1); - - if ((LA48_1==SELECT||LA48_1==UNION)) - { - alt48 = 1; - } - else if (((LA48_1>=UP && LA48_1<=AGGREGATE)||LA48_1==BAND||(LA48_1>=BNOT && LA48_1<=BOR)||(LA48_1>=BXOR && LA48_1<=CASE2)||LA48_1==CONSTANT||LA48_1==COUNT||(LA48_1>=DIV && LA48_1<=DOT)||LA48_1==FALSE||LA48_1==IDENT||LA48_1==INDEX_OP||LA48_1==JAVA_CONSTANT||LA48_1==METHOD_CALL||LA48_1==MINUS||(LA48_1>=NULL && LA48_1<=NUM_LONG)||(LA48_1>=PARAM && LA48_1<=PLUS)||LA48_1==QUOTED_String||LA48_1==STAR||(LA48_1>=TRUE && LA48_1<=UNARY_MINUS)||LA48_1==ALIAS_REF||LA48_1==NAMED_PARAM||LA48_1==RESULT_VARIABLE_REF||LA48_1==SQL_TOKEN)) - { - alt48 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 48, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(48); } - switch (alt48) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:240:30: parenSelect - { - DebugLocation(240, 30); - PushFollow(Follow._parenSelect_in_inList1336); - parenSelect(); - PopFollow(); - if (state.failed) return; - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:240:44: simpleExprList - { - DebugLocation(240, 44); - PushFollow(Follow._simpleExprList_in_inList1340); - simpleExprList(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(48); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - } - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("inList", 32); - LeaveRule("inList", 32); - LeaveRule_inList(); - } - DebugLocation(241, 1); - } finally { DebugExitRule(GrammarFileName, "inList"); } - return; - - } - // $ANTLR end "inList" - - partial void EnterRule_simpleExprList(); - partial void LeaveRule_simpleExprList(); - // $ANTLR start "simpleExprList" - // SqlGenerator.g:243:1: simpleExprList : (e= simpleExpr )* ; - [GrammarRule("simpleExprList")] - private void simpleExprList() - { - EnterRule_simpleExprList(); - EnterRule("simpleExprList", 33); - TraceIn("simpleExprList", 33); - TreeRuleReturnScope e = default(TreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "simpleExprList"); - DebugLocation(243, 1); - try - { - // SqlGenerator.g:244:2: ( (e= simpleExpr )* ) - DebugEnterAlt(1); - // SqlGenerator.g:244:4: (e= simpleExpr )* - { - DebugLocation(244, 4); - if (state.backtracking == 0) - { - Out("("); - } - DebugLocation(244, 18); - // SqlGenerator.g:244:18: (e= simpleExpr )* - try { DebugEnterSubRule(49); - while (true) - { - int alt49=2; - try { DebugEnterDecision(49, false); - int LA49_1 = input.LA(1); - - if ((LA49_1==AGGREGATE||LA49_1==BAND||(LA49_1>=BNOT && LA49_1<=BOR)||(LA49_1>=BXOR && LA49_1<=CASE2)||LA49_1==CONSTANT||LA49_1==COUNT||(LA49_1>=DIV && LA49_1<=DOT)||LA49_1==FALSE||LA49_1==IDENT||LA49_1==INDEX_OP||LA49_1==JAVA_CONSTANT||LA49_1==METHOD_CALL||LA49_1==MINUS||(LA49_1>=NULL && LA49_1<=NUM_LONG)||(LA49_1>=PARAM && LA49_1<=PLUS)||LA49_1==QUOTED_String||LA49_1==STAR||(LA49_1>=TRUE && LA49_1<=UNARY_MINUS)||LA49_1==ALIAS_REF||LA49_1==NAMED_PARAM||LA49_1==RESULT_VARIABLE_REF||LA49_1==SQL_TOKEN)) - { - alt49 = 1; - } - - - } finally { DebugExitDecision(49); } - switch ( alt49 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:244:19: e= simpleExpr - { - DebugLocation(244, 20); - PushFollow(Follow._simpleExpr_in_simpleExprList1361); - e=simpleExpr(); - PopFollow(); - if (state.failed) return; - DebugLocation(244, 32); - if (state.backtracking == 0) - { - Separator((e!=null?((IASTNode)e.Start):default(IASTNode))," , "); - } - - } - break; - - default: - goto loop49; - } - } - - loop49: - ; - - } finally { DebugExitSubRule(49); } - - DebugLocation(244, 66); - if (state.backtracking == 0) - { - Out(")"); - } - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("simpleExprList", 33); - LeaveRule("simpleExprList", 33); - LeaveRule_simpleExprList(); - } - DebugLocation(245, 1); - } finally { DebugExitRule(GrammarFileName, "simpleExprList"); } - return; - - } - // $ANTLR end "simpleExprList" - - partial void EnterRule_expr(); - partial void LeaveRule_expr(); - // $ANTLR start "expr" - // SqlGenerator.g:248:1: expr : ( simpleExpr | ^( VECTOR_EXPR (e= expr )* ) | parenSelect | ^( ANY quantified ) | ^( ALL quantified ) | ^( SOME quantified ) ); - [GrammarRule("expr")] - private TreeRuleReturnScope expr() - { - EnterRule_expr(); - EnterRule("expr", 34); - TraceIn("expr", 34); - TreeRuleReturnScope retval = new TreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - TreeRuleReturnScope e = default(TreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "expr"); - DebugLocation(248, 1); - try - { - // SqlGenerator.g:249:2: ( simpleExpr | ^( VECTOR_EXPR (e= expr )* ) | parenSelect | ^( ANY quantified ) | ^( ALL quantified ) | ^( SOME quantified ) ) - int alt51=6; - try { DebugEnterDecision(51, false); - switch (input.LA(1)) - { - case AGGREGATE: - case BAND: - case BNOT: - case BOR: - case BXOR: - case CASE: - case CASE2: - case CONSTANT: - case COUNT: - case DIV: - case DOT: - case FALSE: - case IDENT: - case INDEX_OP: - case JAVA_CONSTANT: - case METHOD_CALL: - case MINUS: - case NULL: - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case PARAM: - case PLUS: - case QUOTED_String: - case STAR: - case TRUE: - case UNARY_MINUS: - case ALIAS_REF: - case NAMED_PARAM: - case RESULT_VARIABLE_REF: - case SQL_TOKEN: - { - alt51 = 1; - } - break; - case VECTOR_EXPR: - { - alt51 = 2; - } - break; - case SELECT: - case UNION: - { - alt51 = 3; - } - break; - case ANY: - { - alt51 = 4; - } - break; - case ALL: - { - alt51 = 5; - } - break; - case SOME: - { - alt51 = 6; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return retval;} - NoViableAltException nvae = new NoViableAltException("", 51, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(51); } - switch (alt51) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:249:4: simpleExpr - { - DebugLocation(249, 4); - PushFollow(Follow._simpleExpr_in_expr1380); - simpleExpr(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:250:4: ^( VECTOR_EXPR (e= expr )* ) - { - DebugLocation(250, 4); - DebugLocation(250, 7); - Match(input,VECTOR_EXPR,Follow._VECTOR_EXPR_in_expr1387); if (state.failed) return retval; - - DebugLocation(250, 19); - if (state.backtracking == 0) - { - Out("("); - } - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return retval; - DebugLocation(250, 33); - // SqlGenerator.g:250:33: (e= expr )* - try { DebugEnterSubRule(50); - while (true) - { - int alt50=2; - try { DebugEnterDecision(50, false); - int LA50_1 = input.LA(1); - - if ((LA50_1==AGGREGATE||LA50_1==ALL||LA50_1==ANY||LA50_1==BAND||(LA50_1>=BNOT && LA50_1<=BOR)||(LA50_1>=BXOR && LA50_1<=CASE2)||LA50_1==CONSTANT||LA50_1==COUNT||(LA50_1>=DIV && LA50_1<=DOT)||LA50_1==FALSE||LA50_1==IDENT||LA50_1==INDEX_OP||LA50_1==JAVA_CONSTANT||LA50_1==METHOD_CALL||LA50_1==MINUS||(LA50_1>=NULL && LA50_1<=NUM_LONG)||(LA50_1>=PARAM && LA50_1<=PLUS)||LA50_1==QUOTED_String||LA50_1==SELECT||LA50_1==SOME||LA50_1==STAR||(LA50_1>=TRUE && LA50_1<=UNARY_MINUS)||LA50_1==UNION||LA50_1==VECTOR_EXPR||LA50_1==ALIAS_REF||LA50_1==NAMED_PARAM||LA50_1==RESULT_VARIABLE_REF||LA50_1==SQL_TOKEN)) - { - alt50 = 1; - } - - - } finally { DebugExitDecision(50); } - switch ( alt50 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:250:34: e= expr - { - DebugLocation(250, 35); - PushFollow(Follow._expr_in_expr1394); - e=expr(); - PopFollow(); - if (state.failed) return retval; - DebugLocation(250, 41); - if (state.backtracking == 0) - { - Separator((e!=null?((IASTNode)e.Start):default(IASTNode))," , "); - } - - } - break; - - default: - goto loop50; - } - } - - loop50: - ; - - } finally { DebugExitSubRule(50); } - - DebugLocation(250, 76); - if (state.backtracking == 0) - { - Out(")"); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return retval; - } - - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:251:4: parenSelect - { - DebugLocation(251, 4); - PushFollow(Follow._parenSelect_in_expr1409); - parenSelect(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 4: - DebugEnterAlt(4); - // SqlGenerator.g:252:4: ^( ANY quantified ) - { - DebugLocation(252, 4); - DebugLocation(252, 6); - Match(input,ANY,Follow._ANY_in_expr1415); if (state.failed) return retval; - - DebugLocation(252, 10); - if (state.backtracking == 0) - { - Out("any "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return retval; - DebugLocation(252, 27); - PushFollow(Follow._quantified_in_expr1419); - quantified(); - PopFollow(); - if (state.failed) return retval; - - Match(input, TokenTypes.Up, null); if (state.failed) return retval; - - - } - break; - case 5: - DebugEnterAlt(5); - // SqlGenerator.g:253:4: ^( ALL quantified ) - { - DebugLocation(253, 4); - DebugLocation(253, 6); - Match(input,ALL,Follow._ALL_in_expr1427); if (state.failed) return retval; - - DebugLocation(253, 10); - if (state.backtracking == 0) - { - Out("all "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return retval; - DebugLocation(253, 27); - PushFollow(Follow._quantified_in_expr1431); - quantified(); - PopFollow(); - if (state.failed) return retval; - - Match(input, TokenTypes.Up, null); if (state.failed) return retval; - - - } - break; - case 6: - DebugEnterAlt(6); - // SqlGenerator.g:254:4: ^( SOME quantified ) - { - DebugLocation(254, 4); - DebugLocation(254, 6); - Match(input,SOME,Follow._SOME_in_expr1439); if (state.failed) return retval; - - DebugLocation(254, 11); - if (state.backtracking == 0) - { - Out("some "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return retval; - DebugLocation(254, 29); - PushFollow(Follow._quantified_in_expr1443); - quantified(); - PopFollow(); - if (state.failed) return retval; - - Match(input, TokenTypes.Up, null); if (state.failed) return retval; - - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("expr", 34); - LeaveRule("expr", 34); - LeaveRule_expr(); - } - DebugLocation(255, 1); - } finally { DebugExitRule(GrammarFileName, "expr"); } - return retval; - - } - // $ANTLR end "expr" - - partial void EnterRule_quantified(); - partial void LeaveRule_quantified(); - // $ANTLR start "quantified" - // SqlGenerator.g:257:1: quantified : ( sqlToken | selectStatement ) ; - [GrammarRule("quantified")] - private void quantified() - { - EnterRule_quantified(); - EnterRule("quantified", 35); - TraceIn("quantified", 35); - try { DebugEnterRule(GrammarFileName, "quantified"); - DebugLocation(257, 1); - try - { - // SqlGenerator.g:258:2: ( ( sqlToken | selectStatement ) ) - DebugEnterAlt(1); - // SqlGenerator.g:258:4: ( sqlToken | selectStatement ) - { - DebugLocation(258, 4); - if (state.backtracking == 0) - { - Out("("); - } - DebugLocation(258, 18); - // SqlGenerator.g:258:18: ( sqlToken | selectStatement ) - int alt52=2; - try { DebugEnterSubRule(52); - try { DebugEnterDecision(52, false); - int LA52_1 = input.LA(1); - - if ((LA52_1==SQL_TOKEN)) - { - alt52 = 1; - } - else if ((LA52_1==SELECT)) - { - alt52 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 52, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(52); } - switch (alt52) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:258:20: sqlToken - { - DebugLocation(258, 20); - PushFollow(Follow._sqlToken_in_quantified1461); - sqlToken(); - PopFollow(); - if (state.failed) return; - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:258:31: selectStatement - { - DebugLocation(258, 31); - PushFollow(Follow._selectStatement_in_quantified1465); - selectStatement(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(52); } - - DebugLocation(258, 49); - if (state.backtracking == 0) - { - Out(")"); - } - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("quantified", 35); - LeaveRule("quantified", 35); - LeaveRule_quantified(); - } - DebugLocation(259, 1); - } finally { DebugExitRule(GrammarFileName, "quantified"); } - return; - - } - // $ANTLR end "quantified" - - partial void EnterRule_parenSelect(); - partial void LeaveRule_parenSelect(); - // $ANTLR start "parenSelect" - // SqlGenerator.g:261:1: parenSelect : ( selectStatement | ^( UNION selectStatement parenSelect ) ); - [GrammarRule("parenSelect")] - private void parenSelect() - { - EnterRule_parenSelect(); - EnterRule("parenSelect", 36); - TraceIn("parenSelect", 36); - try { DebugEnterRule(GrammarFileName, "parenSelect"); - DebugLocation(261, 1); - try - { - // SqlGenerator.g:262:2: ( selectStatement | ^( UNION selectStatement parenSelect ) ) - int alt53=2; - try { DebugEnterDecision(53, false); - int LA53_1 = input.LA(1); - - if ((LA53_1==SELECT)) - { - alt53 = 1; - } - else if ((LA53_1==UNION)) - { - alt53 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 53, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(53); } - switch (alt53) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:262:4: selectStatement - { - DebugLocation(262, 4); - if (state.backtracking == 0) - { - Out("("); - } - DebugLocation(262, 18); - PushFollow(Follow._selectStatement_in_parenSelect1484); - selectStatement(); - PopFollow(); - if (state.failed) return; - DebugLocation(262, 34); - if (state.backtracking == 0) - { - Out(")"); - } - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:263:4: ^( UNION selectStatement parenSelect ) - { - DebugLocation(263, 4); - DebugLocation(263, 6); - Match(input,UNION,Follow._UNION_in_parenSelect1493); if (state.failed) return; - - DebugLocation(263, 12); - if (state.backtracking == 0) - { - Out("("); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(263, 26); - PushFollow(Follow._selectStatement_in_parenSelect1497); - selectStatement(); - PopFollow(); - if (state.failed) return; - DebugLocation(263, 42); - if (state.backtracking == 0) - { - Out(") union "); - } - DebugLocation(263, 63); - PushFollow(Follow._parenSelect_in_parenSelect1501); - parenSelect(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("parenSelect", 36); - LeaveRule("parenSelect", 36); - LeaveRule_parenSelect(); - } - DebugLocation(264, 1); - } finally { DebugExitRule(GrammarFileName, "parenSelect"); } - return; - - } - // $ANTLR end "parenSelect" - - partial void EnterRule_simpleExpr(); - partial void LeaveRule_simpleExpr(); - // $ANTLR start "simpleExpr" - // SqlGenerator.g:267:8: public simpleExpr : (c= constant | NULL | addrExpr | sqlToken | aggregate | methodCall | count | parameter | arithmeticExpr ); - [GrammarRule("simpleExpr")] - public TreeRuleReturnScope simpleExpr() - { - EnterRule_simpleExpr(); - EnterRule("simpleExpr", 37); - TraceIn("simpleExpr", 37); - TreeRuleReturnScope retval = new TreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - TreeRuleReturnScope c = default(TreeRuleReturnScope); - - try { DebugEnterRule(GrammarFileName, "simpleExpr"); - DebugLocation(267, 1); - try - { - // SqlGenerator.g:268:2: (c= constant | NULL | addrExpr | sqlToken | aggregate | methodCall | count | parameter | arithmeticExpr ) - int alt54=9; - try { DebugEnterDecision(54, false); - switch (input.LA(1)) - { - case CONSTANT: - case FALSE: - case IDENT: - case JAVA_CONSTANT: - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case QUOTED_String: - case TRUE: - { - alt54 = 1; - } - break; - case NULL: - { - alt54 = 2; - } - break; - case DOT: - case INDEX_OP: - case ALIAS_REF: - case RESULT_VARIABLE_REF: - { - alt54 = 3; - } - break; - case SQL_TOKEN: - { - alt54 = 4; - } - break; - case AGGREGATE: - { - alt54 = 5; - } - break; - case METHOD_CALL: - { - alt54 = 6; - } - break; - case COUNT: - { - alt54 = 7; - } - break; - case PARAM: - case NAMED_PARAM: - { - alt54 = 8; - } - break; - case BAND: - case BNOT: - case BOR: - case BXOR: - case CASE: - case CASE2: - case DIV: - case MINUS: - case PLUS: - case STAR: - case UNARY_MINUS: - { - alt54 = 9; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return retval;} - NoViableAltException nvae = new NoViableAltException("", 54, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(54); } - switch (alt54) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:268:4: c= constant - { - DebugLocation(268, 5); - PushFollow(Follow._constant_in_simpleExpr1520); - c=constant(); - PopFollow(); - if (state.failed) return retval; - DebugLocation(268, 15); - if (state.backtracking == 0) - { - Out((c!=null?((IASTNode)c.Start):default(IASTNode))); - } - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:269:4: NULL - { - DebugLocation(269, 4); - Match(input,NULL,Follow._NULL_in_simpleExpr1527); if (state.failed) return retval; - DebugLocation(269, 9); - if (state.backtracking == 0) - { - Out("null"); - } - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:270:4: addrExpr - { - DebugLocation(270, 4); - PushFollow(Follow._addrExpr_in_simpleExpr1534); - addrExpr(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 4: - DebugEnterAlt(4); - // SqlGenerator.g:271:4: sqlToken - { - DebugLocation(271, 4); - PushFollow(Follow._sqlToken_in_simpleExpr1539); - sqlToken(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 5: - DebugEnterAlt(5); - // SqlGenerator.g:272:4: aggregate - { - DebugLocation(272, 4); - PushFollow(Follow._aggregate_in_simpleExpr1544); - aggregate(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 6: - DebugEnterAlt(6); - // SqlGenerator.g:273:4: methodCall - { - DebugLocation(273, 4); - PushFollow(Follow._methodCall_in_simpleExpr1549); - methodCall(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 7: - DebugEnterAlt(7); - // SqlGenerator.g:274:4: count - { - DebugLocation(274, 4); - PushFollow(Follow._count_in_simpleExpr1554); - count(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 8: - DebugEnterAlt(8); - // SqlGenerator.g:275:4: parameter - { - DebugLocation(275, 4); - PushFollow(Follow._parameter_in_simpleExpr1559); - parameter(); - PopFollow(); - if (state.failed) return retval; - - } - break; - case 9: - DebugEnterAlt(9); - // SqlGenerator.g:276:4: arithmeticExpr - { - DebugLocation(276, 4); - PushFollow(Follow._arithmeticExpr_in_simpleExpr1564); - arithmeticExpr(); - PopFollow(); - if (state.failed) return retval; - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("simpleExpr", 37); - LeaveRule("simpleExpr", 37); - LeaveRule_simpleExpr(); - } - DebugLocation(277, 1); - } finally { DebugExitRule(GrammarFileName, "simpleExpr"); } - return retval; - - } - // $ANTLR end "simpleExpr" - - partial void EnterRule_constant(); - partial void LeaveRule_constant(); - // $ANTLR start "constant" - // SqlGenerator.g:279:1: constant : ( NUM_DOUBLE | NUM_DECIMAL | NUM_FLOAT | NUM_INT | NUM_LONG | QUOTED_String | CONSTANT | JAVA_CONSTANT | TRUE | FALSE | IDENT ); - [GrammarRule("constant")] - private TreeRuleReturnScope constant() - { - EnterRule_constant(); - EnterRule("constant", 38); - TraceIn("constant", 38); - TreeRuleReturnScope retval = new TreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - try { DebugEnterRule(GrammarFileName, "constant"); - DebugLocation(279, 1); - try - { - // SqlGenerator.g:280:2: ( NUM_DOUBLE | NUM_DECIMAL | NUM_FLOAT | NUM_INT | NUM_LONG | QUOTED_String | CONSTANT | JAVA_CONSTANT | TRUE | FALSE | IDENT ) - DebugEnterAlt(1); - // SqlGenerator.g: - { - DebugLocation(280, 2); - if (input.LA(1)==CONSTANT||input.LA(1)==FALSE||input.LA(1)==IDENT||input.LA(1)==JAVA_CONSTANT||(input.LA(1)>=NUM_DECIMAL && input.LA(1)<=NUM_LONG)||input.LA(1)==QUOTED_String||input.LA(1)==TRUE) - { - input.Consume(); - state.errorRecovery=false;state.failed=false; - } - else - { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - throw mse; - } - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("constant", 38); - LeaveRule("constant", 38); - LeaveRule_constant(); - } - DebugLocation(291, 1); - } finally { DebugExitRule(GrammarFileName, "constant"); } - return retval; - - } - // $ANTLR end "constant" - - partial void EnterRule_arithmeticExpr(); - partial void LeaveRule_arithmeticExpr(); - // $ANTLR start "arithmeticExpr" - // SqlGenerator.g:293:1: arithmeticExpr : ( additiveExpr | bitwiseExpr | multiplicativeExpr | ^( UNARY_MINUS nestedExprAfterMinusDiv ) | caseExpr ); - [GrammarRule("arithmeticExpr")] - private void arithmeticExpr() - { - EnterRule_arithmeticExpr(); - EnterRule("arithmeticExpr", 39); - TraceIn("arithmeticExpr", 39); - try { DebugEnterRule(GrammarFileName, "arithmeticExpr"); - DebugLocation(293, 1); - try - { - // SqlGenerator.g:294:2: ( additiveExpr | bitwiseExpr | multiplicativeExpr | ^( UNARY_MINUS nestedExprAfterMinusDiv ) | caseExpr ) - int alt55=5; - try { DebugEnterDecision(55, false); - switch (input.LA(1)) - { - case MINUS: - case PLUS: - { - alt55 = 1; - } - break; - case BAND: - case BNOT: - case BOR: - case BXOR: - { - alt55 = 2; - } - break; - case DIV: - case STAR: - { - alt55 = 3; - } - break; - case UNARY_MINUS: - { - alt55 = 4; - } - break; - case CASE: - case CASE2: - { - alt55 = 5; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 55, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(55); } - switch (alt55) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:294:4: additiveExpr - { - DebugLocation(294, 4); - PushFollow(Follow._additiveExpr_in_arithmeticExpr1638); - additiveExpr(); - PopFollow(); - if (state.failed) return; - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:295:4: bitwiseExpr - { - DebugLocation(295, 4); - PushFollow(Follow._bitwiseExpr_in_arithmeticExpr1643); - bitwiseExpr(); - PopFollow(); - if (state.failed) return; - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:296:4: multiplicativeExpr - { - DebugLocation(296, 4); - PushFollow(Follow._multiplicativeExpr_in_arithmeticExpr1648); - multiplicativeExpr(); - PopFollow(); - if (state.failed) return; - - } - break; - case 4: - DebugEnterAlt(4); - // SqlGenerator.g:298:4: ^( UNARY_MINUS nestedExprAfterMinusDiv ) - { - DebugLocation(298, 4); - DebugLocation(298, 6); - Match(input,UNARY_MINUS,Follow._UNARY_MINUS_in_arithmeticExpr1655); if (state.failed) return; - - DebugLocation(298, 18); - if (state.backtracking == 0) - { - Out("-"); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(298, 32); - PushFollow(Follow._nestedExprAfterMinusDiv_in_arithmeticExpr1659); - nestedExprAfterMinusDiv(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 5: - DebugEnterAlt(5); - // SqlGenerator.g:299:4: caseExpr - { - DebugLocation(299, 4); - PushFollow(Follow._caseExpr_in_arithmeticExpr1665); - caseExpr(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("arithmeticExpr", 39); - LeaveRule("arithmeticExpr", 39); - LeaveRule_arithmeticExpr(); - } - DebugLocation(300, 1); - } finally { DebugExitRule(GrammarFileName, "arithmeticExpr"); } - return; - - } - // $ANTLR end "arithmeticExpr" - - partial void EnterRule_additiveExpr(); - partial void LeaveRule_additiveExpr(); - // $ANTLR start "additiveExpr" - // SqlGenerator.g:302:1: additiveExpr : ( ^( PLUS expr expr ) | ^( MINUS expr nestedExprAfterMinusDiv ) ); - [GrammarRule("additiveExpr")] - private void additiveExpr() - { - EnterRule_additiveExpr(); - EnterRule("additiveExpr", 40); - TraceIn("additiveExpr", 40); - try { DebugEnterRule(GrammarFileName, "additiveExpr"); - DebugLocation(302, 1); - try - { - // SqlGenerator.g:303:2: ( ^( PLUS expr expr ) | ^( MINUS expr nestedExprAfterMinusDiv ) ) - int alt56=2; - try { DebugEnterDecision(56, false); - int LA56_1 = input.LA(1); - - if ((LA56_1==PLUS)) - { - alt56 = 1; - } - else if ((LA56_1==MINUS)) - { - alt56 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 56, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(56); } - switch (alt56) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:303:4: ^( PLUS expr expr ) - { - DebugLocation(303, 4); - DebugLocation(303, 6); - Match(input,PLUS,Follow._PLUS_in_additiveExpr1677); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(303, 11); - PushFollow(Follow._expr_in_additiveExpr1679); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(303, 16); - if (state.backtracking == 0) - { - Out("+"); - } - DebugLocation(303, 30); - PushFollow(Follow._expr_in_additiveExpr1683); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:304:4: ^( MINUS expr nestedExprAfterMinusDiv ) - { - DebugLocation(304, 4); - DebugLocation(304, 6); - Match(input,MINUS,Follow._MINUS_in_additiveExpr1690); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(304, 12); - PushFollow(Follow._expr_in_additiveExpr1692); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(304, 17); - if (state.backtracking == 0) - { - Out("-"); - } - DebugLocation(304, 31); - PushFollow(Follow._nestedExprAfterMinusDiv_in_additiveExpr1696); - nestedExprAfterMinusDiv(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("additiveExpr", 40); - LeaveRule("additiveExpr", 40); - LeaveRule_additiveExpr(); - } - DebugLocation(305, 1); - } finally { DebugExitRule(GrammarFileName, "additiveExpr"); } - return; - - } - // $ANTLR end "additiveExpr" - - partial void EnterRule_bitwiseExpr(); - partial void LeaveRule_bitwiseExpr(); - // $ANTLR start "bitwiseExpr" - // SqlGenerator.g:307:1: bitwiseExpr : ( ^( BAND expr nestedExpr ) | ^( BOR expr nestedExpr ) | ^( BXOR expr nestedExpr ) | ^( BNOT nestedExpr ) ); - [GrammarRule("bitwiseExpr")] - private void bitwiseExpr() - { - EnterRule_bitwiseExpr(); - EnterRule("bitwiseExpr", 41); - TraceIn("bitwiseExpr", 41); - try { DebugEnterRule(GrammarFileName, "bitwiseExpr"); - DebugLocation(307, 1); - try - { - // SqlGenerator.g:308:2: ( ^( BAND expr nestedExpr ) | ^( BOR expr nestedExpr ) | ^( BXOR expr nestedExpr ) | ^( BNOT nestedExpr ) ) - int alt57=4; - try { DebugEnterDecision(57, false); - switch (input.LA(1)) - { - case BAND: - { - alt57 = 1; - } - break; - case BOR: - { - alt57 = 2; - } - break; - case BXOR: - { - alt57 = 3; - } - break; - case BNOT: - { - alt57 = 4; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 57, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(57); } - switch (alt57) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:308:4: ^( BAND expr nestedExpr ) - { - DebugLocation(308, 4); - DebugLocation(308, 6); - Match(input,BAND,Follow._BAND_in_bitwiseExpr1709); if (state.failed) return; - - DebugLocation(308, 11); - if (state.backtracking == 0) - { - BeginBitwiseOp("band"); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(308, 39); - PushFollow(Follow._expr_in_bitwiseExpr1713); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(308, 44); - PushFollow(Follow._nestedExpr_in_bitwiseExpr1715); - nestedExpr(); - PopFollow(); - if (state.failed) return; - DebugLocation(308, 55); - if (state.backtracking == 0) - { - EndBitwiseOp("band"); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:309:4: ^( BOR expr nestedExpr ) - { - DebugLocation(309, 4); - DebugLocation(309, 6); - Match(input,BOR,Follow._BOR_in_bitwiseExpr1724); if (state.failed) return; - - DebugLocation(309, 10); - if (state.backtracking == 0) - { - BeginBitwiseOp("bor"); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(309, 37); - PushFollow(Follow._expr_in_bitwiseExpr1728); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(309, 42); - PushFollow(Follow._nestedExpr_in_bitwiseExpr1730); - nestedExpr(); - PopFollow(); - if (state.failed) return; - DebugLocation(309, 53); - if (state.backtracking == 0) - { - EndBitwiseOp("bor"); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:310:4: ^( BXOR expr nestedExpr ) - { - DebugLocation(310, 4); - DebugLocation(310, 6); - Match(input,BXOR,Follow._BXOR_in_bitwiseExpr1739); if (state.failed) return; - - DebugLocation(310, 11); - if (state.backtracking == 0) - { - BeginBitwiseOp("bxor"); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(310, 39); - PushFollow(Follow._expr_in_bitwiseExpr1743); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(310, 44); - PushFollow(Follow._nestedExpr_in_bitwiseExpr1745); - nestedExpr(); - PopFollow(); - if (state.failed) return; - DebugLocation(310, 55); - if (state.backtracking == 0) - { - EndBitwiseOp("bxor"); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 4: - DebugEnterAlt(4); - // SqlGenerator.g:311:4: ^( BNOT nestedExpr ) - { - DebugLocation(311, 4); - DebugLocation(311, 6); - Match(input,BNOT,Follow._BNOT_in_bitwiseExpr1754); if (state.failed) return; - - DebugLocation(311, 11); - if (state.backtracking == 0) - { - BeginBitwiseOp("bnot"); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(311, 39); - PushFollow(Follow._nestedExpr_in_bitwiseExpr1758); - nestedExpr(); - PopFollow(); - if (state.failed) return; - DebugLocation(311, 50); - if (state.backtracking == 0) - { - EndBitwiseOp("bnot"); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("bitwiseExpr", 41); - LeaveRule("bitwiseExpr", 41); - LeaveRule_bitwiseExpr(); - } - DebugLocation(312, 1); - } finally { DebugExitRule(GrammarFileName, "bitwiseExpr"); } - return; - - } - // $ANTLR end "bitwiseExpr" - - partial void EnterRule_multiplicativeExpr(); - partial void LeaveRule_multiplicativeExpr(); - // $ANTLR start "multiplicativeExpr" - // SqlGenerator.g:314:1: multiplicativeExpr : ( ^( STAR nestedExpr nestedExpr ) | ^( DIV nestedExpr nestedExprAfterMinusDiv ) ); - [GrammarRule("multiplicativeExpr")] - private void multiplicativeExpr() - { - EnterRule_multiplicativeExpr(); - EnterRule("multiplicativeExpr", 42); - TraceIn("multiplicativeExpr", 42); - try { DebugEnterRule(GrammarFileName, "multiplicativeExpr"); - DebugLocation(314, 1); - try - { - // SqlGenerator.g:315:2: ( ^( STAR nestedExpr nestedExpr ) | ^( DIV nestedExpr nestedExprAfterMinusDiv ) ) - int alt58=2; - try { DebugEnterDecision(58, false); - int LA58_1 = input.LA(1); - - if ((LA58_1==STAR)) - { - alt58 = 1; - } - else if ((LA58_1==DIV)) - { - alt58 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 58, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(58); } - switch (alt58) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:315:4: ^( STAR nestedExpr nestedExpr ) - { - DebugLocation(315, 4); - DebugLocation(315, 6); - Match(input,STAR,Follow._STAR_in_multiplicativeExpr1773); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(315, 11); - PushFollow(Follow._nestedExpr_in_multiplicativeExpr1775); - nestedExpr(); - PopFollow(); - if (state.failed) return; - DebugLocation(315, 22); - if (state.backtracking == 0) - { - Out("*"); - } - DebugLocation(315, 36); - PushFollow(Follow._nestedExpr_in_multiplicativeExpr1779); - nestedExpr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:316:4: ^( DIV nestedExpr nestedExprAfterMinusDiv ) - { - DebugLocation(316, 4); - DebugLocation(316, 6); - Match(input,DIV,Follow._DIV_in_multiplicativeExpr1786); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(316, 10); - PushFollow(Follow._nestedExpr_in_multiplicativeExpr1788); - nestedExpr(); - PopFollow(); - if (state.failed) return; - DebugLocation(316, 21); - if (state.backtracking == 0) - { - Out("/"); - } - DebugLocation(316, 35); - PushFollow(Follow._nestedExprAfterMinusDiv_in_multiplicativeExpr1792); - nestedExprAfterMinusDiv(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("multiplicativeExpr", 42); - LeaveRule("multiplicativeExpr", 42); - LeaveRule_multiplicativeExpr(); - } - DebugLocation(317, 1); - } finally { DebugExitRule(GrammarFileName, "multiplicativeExpr"); } - return; - - } - // $ANTLR end "multiplicativeExpr" - - partial void EnterRule_nestedExpr(); - partial void LeaveRule_nestedExpr(); - // $ANTLR start "nestedExpr" - // SqlGenerator.g:319:1: nestedExpr : ( ( additiveExpr )=> additiveExpr | ( bitwiseExpr )=> bitwiseExpr | expr ); - [GrammarRule("nestedExpr")] - private void nestedExpr() - { - EnterRule_nestedExpr(); - EnterRule("nestedExpr", 43); - TraceIn("nestedExpr", 43); - try { DebugEnterRule(GrammarFileName, "nestedExpr"); - DebugLocation(319, 1); - try - { - // SqlGenerator.g:321:2: ( ( additiveExpr )=> additiveExpr | ( bitwiseExpr )=> bitwiseExpr | expr ) - int alt59=3; - try { DebugEnterDecision(59, false); - switch (input.LA(1)) - { - case PLUS: - { - int LA59_2 = input.LA(2); - - if ((EvaluatePredicate(synpred2_SqlGenerator_fragment))) - { - alt59 = 1; - } - else if ((true)) - { - alt59 = 3; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 59, 1, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case MINUS: - { - int LA59_2 = input.LA(2); - - if ((EvaluatePredicate(synpred2_SqlGenerator_fragment))) - { - alt59 = 1; - } - else if ((true)) - { - alt59 = 3; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 59, 2, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case BAND: - { - int LA59_2 = input.LA(2); - - if ((EvaluatePredicate(synpred3_SqlGenerator_fragment))) - { - alt59 = 2; - } - else if ((true)) - { - alt59 = 3; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 59, 3, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case BOR: - { - int LA59_2 = input.LA(2); - - if ((EvaluatePredicate(synpred3_SqlGenerator_fragment))) - { - alt59 = 2; - } - else if ((true)) - { - alt59 = 3; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 59, 4, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case BXOR: - { - int LA59_2 = input.LA(2); - - if ((EvaluatePredicate(synpred3_SqlGenerator_fragment))) - { - alt59 = 2; - } - else if ((true)) - { - alt59 = 3; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 59, 5, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case BNOT: - { - int LA59_2 = input.LA(2); - - if ((EvaluatePredicate(synpred3_SqlGenerator_fragment))) - { - alt59 = 2; - } - else if ((true)) - { - alt59 = 3; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 59, 6, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case AGGREGATE: - case ALL: - case ANY: - case CASE: - case CASE2: - case CONSTANT: - case COUNT: - case DIV: - case DOT: - case FALSE: - case IDENT: - case INDEX_OP: - case JAVA_CONSTANT: - case METHOD_CALL: - case NULL: - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case PARAM: - case QUOTED_String: - case SELECT: - case SOME: - case STAR: - case TRUE: - case UNARY_MINUS: - case UNION: - case VECTOR_EXPR: - case ALIAS_REF: - case NAMED_PARAM: - case RESULT_VARIABLE_REF: - case SQL_TOKEN: - { - alt59 = 3; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 59, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(59); } - switch (alt59) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:321:4: ( additiveExpr )=> additiveExpr - { - DebugLocation(321, 22); - if (state.backtracking == 0) - { - Out("("); - } - DebugLocation(321, 36); - PushFollow(Follow._additiveExpr_in_nestedExpr1814); - additiveExpr(); - PopFollow(); - if (state.failed) return; - DebugLocation(321, 49); - if (state.backtracking == 0) - { - Out(")"); - } - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:322:4: ( bitwiseExpr )=> bitwiseExpr - { - DebugLocation(322, 21); - if (state.backtracking == 0) - { - Out("("); - } - DebugLocation(322, 35); - PushFollow(Follow._bitwiseExpr_in_nestedExpr1829); - bitwiseExpr(); - PopFollow(); - if (state.failed) return; - DebugLocation(322, 47); - if (state.backtracking == 0) - { - Out(")"); - } - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:323:4: expr - { - DebugLocation(323, 4); - PushFollow(Follow._expr_in_nestedExpr1836); - expr(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("nestedExpr", 43); - LeaveRule("nestedExpr", 43); - LeaveRule_nestedExpr(); - } - DebugLocation(324, 1); - } finally { DebugExitRule(GrammarFileName, "nestedExpr"); } - return; - - } - // $ANTLR end "nestedExpr" - - partial void EnterRule_nestedExprAfterMinusDiv(); - partial void LeaveRule_nestedExprAfterMinusDiv(); - // $ANTLR start "nestedExprAfterMinusDiv" - // SqlGenerator.g:326:1: nestedExprAfterMinusDiv : ( ( arithmeticExpr )=> arithmeticExpr | expr ); - [GrammarRule("nestedExprAfterMinusDiv")] - private void nestedExprAfterMinusDiv() - { - EnterRule_nestedExprAfterMinusDiv(); - EnterRule("nestedExprAfterMinusDiv", 44); - TraceIn("nestedExprAfterMinusDiv", 44); - try { DebugEnterRule(GrammarFileName, "nestedExprAfterMinusDiv"); - DebugLocation(326, 1); - try - { - // SqlGenerator.g:328:2: ( ( arithmeticExpr )=> arithmeticExpr | expr ) - int alt60=2; - try { DebugEnterDecision(60, false); - switch (input.LA(1)) - { - case PLUS: - { - int LA60_2 = input.LA(2); - - if ((EvaluatePredicate(synpred4_SqlGenerator_fragment))) - { - alt60 = 1; - } - else if ((true)) - { - alt60 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 60, 1, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case MINUS: - { - int LA60_2 = input.LA(2); - - if ((EvaluatePredicate(synpred4_SqlGenerator_fragment))) - { - alt60 = 1; - } - else if ((true)) - { - alt60 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 60, 2, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case BAND: - { - int LA60_2 = input.LA(2); - - if ((EvaluatePredicate(synpred4_SqlGenerator_fragment))) - { - alt60 = 1; - } - else if ((true)) - { - alt60 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 60, 3, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case BOR: - { - int LA60_2 = input.LA(2); - - if ((EvaluatePredicate(synpred4_SqlGenerator_fragment))) - { - alt60 = 1; - } - else if ((true)) - { - alt60 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 60, 4, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case BXOR: - { - int LA60_2 = input.LA(2); - - if ((EvaluatePredicate(synpred4_SqlGenerator_fragment))) - { - alt60 = 1; - } - else if ((true)) - { - alt60 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 60, 5, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case BNOT: - { - int LA60_2 = input.LA(2); - - if ((EvaluatePredicate(synpred4_SqlGenerator_fragment))) - { - alt60 = 1; - } - else if ((true)) - { - alt60 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 60, 6, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case STAR: - { - int LA60_2 = input.LA(2); - - if ((EvaluatePredicate(synpred4_SqlGenerator_fragment))) - { - alt60 = 1; - } - else if ((true)) - { - alt60 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 60, 7, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case DIV: - { - int LA60_2 = input.LA(2); - - if ((EvaluatePredicate(synpred4_SqlGenerator_fragment))) - { - alt60 = 1; - } - else if ((true)) - { - alt60 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 60, 8, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case UNARY_MINUS: - { - int LA60_2 = input.LA(2); - - if ((EvaluatePredicate(synpred4_SqlGenerator_fragment))) - { - alt60 = 1; - } - else if ((true)) - { - alt60 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 60, 9, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case CASE: - { - int LA60_2 = input.LA(2); - - if ((EvaluatePredicate(synpred4_SqlGenerator_fragment))) - { - alt60 = 1; - } - else if ((true)) - { - alt60 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 60, 10, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case CASE2: - { - int LA60_2 = input.LA(2); - - if ((EvaluatePredicate(synpred4_SqlGenerator_fragment))) - { - alt60 = 1; - } - else if ((true)) - { - alt60 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 60, 11, input, 2); - DebugRecognitionException(nvae); - throw nvae; - } - } - break; - case AGGREGATE: - case ALL: - case ANY: - case CONSTANT: - case COUNT: - case DOT: - case FALSE: - case IDENT: - case INDEX_OP: - case JAVA_CONSTANT: - case METHOD_CALL: - case NULL: - case NUM_DECIMAL: - case NUM_DOUBLE: - case NUM_FLOAT: - case NUM_INT: - case NUM_LONG: - case PARAM: - case QUOTED_String: - case SELECT: - case SOME: - case TRUE: - case UNION: - case VECTOR_EXPR: - case ALIAS_REF: - case NAMED_PARAM: - case RESULT_VARIABLE_REF: - case SQL_TOKEN: - { - alt60 = 2; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 60, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(60); } - switch (alt60) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:328:4: ( arithmeticExpr )=> arithmeticExpr - { - DebugLocation(328, 24); - if (state.backtracking == 0) - { - Out("("); - } - DebugLocation(328, 38); - PushFollow(Follow._arithmeticExpr_in_nestedExprAfterMinusDiv1858); - arithmeticExpr(); - PopFollow(); - if (state.failed) return; - DebugLocation(328, 53); - if (state.backtracking == 0) - { - Out(")"); - } - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:329:4: expr - { - DebugLocation(329, 4); - PushFollow(Follow._expr_in_nestedExprAfterMinusDiv1865); - expr(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("nestedExprAfterMinusDiv", 44); - LeaveRule("nestedExprAfterMinusDiv", 44); - LeaveRule_nestedExprAfterMinusDiv(); - } - DebugLocation(330, 1); - } finally { DebugExitRule(GrammarFileName, "nestedExprAfterMinusDiv"); } - return; - - } - // $ANTLR end "nestedExprAfterMinusDiv" - - partial void EnterRule_caseExpr(); - partial void LeaveRule_caseExpr(); - // $ANTLR start "caseExpr" - // SqlGenerator.g:332:1: caseExpr : ( ^( CASE ( ^( WHEN booleanExpr[false] expr ) )+ ( ^( ELSE expr ) )? ) | ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) ); - [GrammarRule("caseExpr")] - private void caseExpr() - { - EnterRule_caseExpr(); - EnterRule("caseExpr", 45); - TraceIn("caseExpr", 45); - try { DebugEnterRule(GrammarFileName, "caseExpr"); - DebugLocation(332, 1); - try - { - // SqlGenerator.g:333:2: ( ^( CASE ( ^( WHEN booleanExpr[false] expr ) )+ ( ^( ELSE expr ) )? ) | ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) ) - int alt65=2; - try { DebugEnterDecision(65, false); - int LA65_1 = input.LA(1); - - if ((LA65_1==CASE)) - { - alt65 = 1; - } - else if ((LA65_1==CASE2)) - { - alt65 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 65, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(65); } - switch (alt65) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:333:4: ^( CASE ( ^( WHEN booleanExpr[false] expr ) )+ ( ^( ELSE expr ) )? ) - { - DebugLocation(333, 4); - DebugLocation(333, 6); - Match(input,CASE,Follow._CASE_in_caseExpr1877); if (state.failed) return; - - DebugLocation(333, 11); - if (state.backtracking == 0) - { - Out("case"); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(334, 3); - // SqlGenerator.g:334:3: ( ^( WHEN booleanExpr[false] expr ) )+ - int cnt61=0; - try { DebugEnterSubRule(61); - while (true) - { - int alt61=2; - try { DebugEnterDecision(61, false); - int LA61_1 = input.LA(1); - - if ((LA61_1==WHEN)) - { - alt61 = 1; - } - - - } finally { DebugExitDecision(61); } - switch (alt61) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:334:5: ^( WHEN booleanExpr[false] expr ) - { - DebugLocation(334, 5); - DebugLocation(334, 7); - Match(input,WHEN,Follow._WHEN_in_caseExpr1887); if (state.failed) return; - - DebugLocation(334, 12); - if (state.backtracking == 0) - { - Out( " when "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(334, 32); - PushFollow(Follow._booleanExpr_in_caseExpr1891); - booleanExpr(false); - PopFollow(); - if (state.failed) return; - DebugLocation(334, 51); - if (state.backtracking == 0) - { - Out(" then "); - } - DebugLocation(334, 70); - PushFollow(Follow._expr_in_caseExpr1896); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - default: - if (cnt61 >= 1) - goto loop61; - - if (state.backtracking>0) {state.failed=true; return;} - EarlyExitException eee61 = new EarlyExitException( 61, input ); - DebugRecognitionException(eee61); - throw eee61; - } - cnt61++; - } - loop61: - ; - - } finally { DebugExitSubRule(61); } - - DebugLocation(335, 3); - // SqlGenerator.g:335:3: ( ^( ELSE expr ) )? - int alt62=2; - try { DebugEnterSubRule(62); - try { DebugEnterDecision(62, false); - int LA62_1 = input.LA(1); - - if ((LA62_1==ELSE)) - { - alt62 = 1; - } - } finally { DebugExitDecision(62); } - switch (alt62) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:335:5: ^( ELSE expr ) - { - DebugLocation(335, 5); - DebugLocation(335, 7); - Match(input,ELSE,Follow._ELSE_in_caseExpr1908); if (state.failed) return; - - DebugLocation(335, 12); - if (state.backtracking == 0) - { - Out(" else "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(335, 31); - PushFollow(Follow._expr_in_caseExpr1912); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } finally { DebugExitSubRule(62); } - - DebugLocation(336, 3); - if (state.backtracking == 0) - { - Out(" end"); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:337:4: ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) - { - DebugLocation(337, 4); - DebugLocation(337, 6); - Match(input,CASE2,Follow._CASE2_in_caseExpr1928); if (state.failed) return; - - DebugLocation(337, 12); - if (state.backtracking == 0) - { - Out("case "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(337, 30); - PushFollow(Follow._expr_in_caseExpr1932); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(338, 3); - // SqlGenerator.g:338:3: ( ^( WHEN expr expr ) )+ - int cnt63=0; - try { DebugEnterSubRule(63); - while (true) - { - int alt63=2; - try { DebugEnterDecision(63, false); - int LA63_1 = input.LA(1); - - if ((LA63_1==WHEN)) - { - alt63 = 1; - } - - - } finally { DebugExitDecision(63); } - switch (alt63) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:338:5: ^( WHEN expr expr ) - { - DebugLocation(338, 5); - DebugLocation(338, 7); - Match(input,WHEN,Follow._WHEN_in_caseExpr1939); if (state.failed) return; - - DebugLocation(338, 12); - if (state.backtracking == 0) - { - Out( " when "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(338, 32); - PushFollow(Follow._expr_in_caseExpr1943); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(338, 37); - if (state.backtracking == 0) - { - Out(" then "); - } - DebugLocation(338, 56); - PushFollow(Follow._expr_in_caseExpr1947); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - default: - if (cnt63 >= 1) - goto loop63; - - if (state.backtracking>0) {state.failed=true; return;} - EarlyExitException eee63 = new EarlyExitException( 63, input ); - DebugRecognitionException(eee63); - throw eee63; - } - cnt63++; - } - loop63: - ; - - } finally { DebugExitSubRule(63); } - - DebugLocation(339, 3); - // SqlGenerator.g:339:3: ( ^( ELSE expr ) )? - int alt64=2; - try { DebugEnterSubRule(64); - try { DebugEnterDecision(64, false); - int LA64_1 = input.LA(1); - - if ((LA64_1==ELSE)) - { - alt64 = 1; - } - } finally { DebugExitDecision(64); } - switch (alt64) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:339:5: ^( ELSE expr ) - { - DebugLocation(339, 5); - DebugLocation(339, 7); - Match(input,ELSE,Follow._ELSE_in_caseExpr1959); if (state.failed) return; - - DebugLocation(339, 12); - if (state.backtracking == 0) - { - Out(" else "); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(339, 31); - PushFollow(Follow._expr_in_caseExpr1963); - expr(); - PopFollow(); - if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } finally { DebugExitSubRule(64); } - - DebugLocation(340, 3); - if (state.backtracking == 0) - { - Out(" end"); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("caseExpr", 45); - LeaveRule("caseExpr", 45); - LeaveRule_caseExpr(); - } - DebugLocation(341, 1); - } finally { DebugExitRule(GrammarFileName, "caseExpr"); } - return; - - } - // $ANTLR end "caseExpr" - - partial void EnterRule_aggregate(); - partial void LeaveRule_aggregate(); - // $ANTLR start "aggregate" - // SqlGenerator.g:343:1: aggregate : ^(a= AGGREGATE expr ) ; - [GrammarRule("aggregate")] - private void aggregate() - { - EnterRule_aggregate(); - EnterRule("aggregate", 46); - TraceIn("aggregate", 46); - IASTNode a = default(IASTNode); - - try { DebugEnterRule(GrammarFileName, "aggregate"); - DebugLocation(343, 1); - try - { - // SqlGenerator.g:344:2: ( ^(a= AGGREGATE expr ) ) - DebugEnterAlt(1); - // SqlGenerator.g:344:4: ^(a= AGGREGATE expr ) - { - DebugLocation(344, 4); - DebugLocation(344, 7); - a=(IASTNode)Match(input,AGGREGATE,Follow._AGGREGATE_in_aggregate1987); if (state.failed) return; - - DebugLocation(344, 18); - if (state.backtracking == 0) - { - Out(a); Out("("); - } - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(344, 41); - PushFollow(Follow._expr_in_aggregate1992); - expr(); - PopFollow(); - if (state.failed) return; - DebugLocation(344, 46); - if (state.backtracking == 0) - { - Out(")"); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("aggregate", 46); - LeaveRule("aggregate", 46); - LeaveRule_aggregate(); - } - DebugLocation(345, 1); - } finally { DebugExitRule(GrammarFileName, "aggregate"); } - return; - - } - // $ANTLR end "aggregate" - - partial void EnterRule_methodCall(); - partial void LeaveRule_methodCall(); - // $ANTLR start "methodCall" - // SqlGenerator.g:348:1: methodCall : ^(m= METHOD_CALL i= METHOD_NAME ( ^( EXPR_LIST ( arguments )? ) )? ) ; - [GrammarRule("methodCall")] - private void methodCall() - { - EnterRule_methodCall(); - EnterRule("methodCall", 47); - TraceIn("methodCall", 47); - IASTNode m = default(IASTNode); - IASTNode i = default(IASTNode); - - try { DebugEnterRule(GrammarFileName, "methodCall"); - DebugLocation(348, 1); - try - { - // SqlGenerator.g:349:2: ( ^(m= METHOD_CALL i= METHOD_NAME ( ^( EXPR_LIST ( arguments )? ) )? ) ) - DebugEnterAlt(1); - // SqlGenerator.g:349:4: ^(m= METHOD_CALL i= METHOD_NAME ( ^( EXPR_LIST ( arguments )? ) )? ) - { - DebugLocation(349, 4); - DebugLocation(349, 7); - m=(IASTNode)Match(input,METHOD_CALL,Follow._METHOD_CALL_in_methodCall2011); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(349, 21); - i=(IASTNode)Match(input,METHOD_NAME,Follow._METHOD_NAME_in_methodCall2015); if (state.failed) return; - DebugLocation(349, 34); - if (state.backtracking == 0) - { - BeginFunctionTemplate(m,i); - } - DebugLocation(350, 3); - // SqlGenerator.g:350:3: ( ^( EXPR_LIST ( arguments )? ) )? - int alt67=2; - try { DebugEnterSubRule(67); - try { DebugEnterDecision(67, false); - int LA67_1 = input.LA(1); - - if ((LA67_1==EXPR_LIST)) - { - alt67 = 1; - } - } finally { DebugExitDecision(67); } - switch (alt67) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:350:5: ^( EXPR_LIST ( arguments )? ) - { - DebugLocation(350, 5); - DebugLocation(350, 7); - Match(input,EXPR_LIST,Follow._EXPR_LIST_in_methodCall2024); if (state.failed) return; - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(350, 17); - // SqlGenerator.g:350:17: ( arguments )? - int alt66=2; - try { DebugEnterSubRule(66); - try { DebugEnterDecision(66, false); - int LA66_1 = input.LA(1); - - if ((LA66_1==AGGREGATE||LA66_1==ALL||LA66_1==ANY||(LA66_1>=BAND && LA66_1<=BOR)||(LA66_1>=BXOR && LA66_1<=CASE2)||LA66_1==CONSTANT||LA66_1==COUNT||(LA66_1>=DIV && LA66_1<=DOT)||LA66_1==EQ||LA66_1==EXISTS||LA66_1==FALSE||LA66_1==GE||LA66_1==GT||LA66_1==IDENT||(LA66_1>=IN && LA66_1<=INDEX_OP)||(LA66_1>=IS_NOT_NULL && LA66_1<=JAVA_CONSTANT)||LA66_1==LE||LA66_1==LIKE||LA66_1==LT||LA66_1==METHOD_CALL||(LA66_1>=MINUS && LA66_1<=NE)||(LA66_1>=NOT_BETWEEN && LA66_1<=NUM_LONG)||(LA66_1>=PARAM && LA66_1<=PLUS)||LA66_1==QUOTED_String||LA66_1==SELECT||LA66_1==SOME||LA66_1==STAR||(LA66_1>=TRUE && LA66_1<=UNARY_MINUS)||LA66_1==UNION||LA66_1==VECTOR_EXPR||LA66_1==ALIAS_REF||LA66_1==NAMED_PARAM||LA66_1==RESULT_VARIABLE_REF||LA66_1==SQL_TOKEN)) - { - alt66 = 1; - } - } finally { DebugExitDecision(66); } - switch (alt66) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:350:18: arguments - { - DebugLocation(350, 18); - PushFollow(Follow._arguments_in_methodCall2027); - arguments(); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(66); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - } - - - } - break; - - } - } finally { DebugExitSubRule(67); } - - DebugLocation(351, 3); - if (state.backtracking == 0) - { - EndFunctionTemplate(m); - } - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("methodCall", 47); - LeaveRule("methodCall", 47); - LeaveRule_methodCall(); - } - DebugLocation(352, 1); - } finally { DebugExitRule(GrammarFileName, "methodCall"); } - return; - - } - // $ANTLR end "methodCall" - - partial void EnterRule_arguments(); - partial void LeaveRule_arguments(); - // $ANTLR start "arguments" - // SqlGenerator.g:354:1: arguments : ( expr | comparisonExpr[true] ) ( ( expr | comparisonExpr[true] ) )* ; - [GrammarRule("arguments")] - private void arguments() - { - EnterRule_arguments(); - EnterRule("arguments", 48); - TraceIn("arguments", 48); - try { DebugEnterRule(GrammarFileName, "arguments"); - DebugLocation(354, 1); - try - { - // SqlGenerator.g:355:2: ( ( expr | comparisonExpr[true] ) ( ( expr | comparisonExpr[true] ) )* ) - DebugEnterAlt(1); - // SqlGenerator.g:355:4: ( expr | comparisonExpr[true] ) ( ( expr | comparisonExpr[true] ) )* - { - DebugLocation(355, 4); - // SqlGenerator.g:355:4: ( expr | comparisonExpr[true] ) - int alt68=2; - try { DebugEnterSubRule(68); - try { DebugEnterDecision(68, false); - int LA68_1 = input.LA(1); - - if ((LA68_1==AGGREGATE||LA68_1==ALL||LA68_1==ANY||LA68_1==BAND||(LA68_1>=BNOT && LA68_1<=BOR)||(LA68_1>=BXOR && LA68_1<=CASE2)||LA68_1==CONSTANT||LA68_1==COUNT||(LA68_1>=DIV && LA68_1<=DOT)||LA68_1==FALSE||LA68_1==IDENT||LA68_1==INDEX_OP||LA68_1==JAVA_CONSTANT||LA68_1==METHOD_CALL||LA68_1==MINUS||(LA68_1>=NULL && LA68_1<=NUM_LONG)||(LA68_1>=PARAM && LA68_1<=PLUS)||LA68_1==QUOTED_String||LA68_1==SELECT||LA68_1==SOME||LA68_1==STAR||(LA68_1>=TRUE && LA68_1<=UNARY_MINUS)||LA68_1==UNION||LA68_1==VECTOR_EXPR||LA68_1==ALIAS_REF||LA68_1==NAMED_PARAM||LA68_1==RESULT_VARIABLE_REF||LA68_1==SQL_TOKEN)) - { - alt68 = 1; - } - else if ((LA68_1==BETWEEN||LA68_1==EQ||LA68_1==EXISTS||LA68_1==GE||LA68_1==GT||LA68_1==IN||(LA68_1>=IS_NOT_NULL && LA68_1<=IS_NULL)||LA68_1==LE||LA68_1==LIKE||LA68_1==LT||LA68_1==NE||(LA68_1>=NOT_BETWEEN && LA68_1<=NOT_LIKE))) - { - alt68 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 68, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(68); } - switch (alt68) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:355:5: expr - { - DebugLocation(355, 5); - PushFollow(Follow._expr_in_arguments2052); - expr(); - PopFollow(); - if (state.failed) return; - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:355:12: comparisonExpr[true] - { - DebugLocation(355, 12); - PushFollow(Follow._comparisonExpr_in_arguments2056); - comparisonExpr(true); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(68); } - - DebugLocation(355, 34); - // SqlGenerator.g:355:34: ( ( expr | comparisonExpr[true] ) )* - try { DebugEnterSubRule(70); - while (true) - { - int alt70=2; - try { DebugEnterDecision(70, false); - int LA70_1 = input.LA(1); - - if ((LA70_1==AGGREGATE||LA70_1==ALL||LA70_1==ANY||(LA70_1>=BAND && LA70_1<=BOR)||(LA70_1>=BXOR && LA70_1<=CASE2)||LA70_1==CONSTANT||LA70_1==COUNT||(LA70_1>=DIV && LA70_1<=DOT)||LA70_1==EQ||LA70_1==EXISTS||LA70_1==FALSE||LA70_1==GE||LA70_1==GT||LA70_1==IDENT||(LA70_1>=IN && LA70_1<=INDEX_OP)||(LA70_1>=IS_NOT_NULL && LA70_1<=JAVA_CONSTANT)||LA70_1==LE||LA70_1==LIKE||LA70_1==LT||LA70_1==METHOD_CALL||(LA70_1>=MINUS && LA70_1<=NE)||(LA70_1>=NOT_BETWEEN && LA70_1<=NUM_LONG)||(LA70_1>=PARAM && LA70_1<=PLUS)||LA70_1==QUOTED_String||LA70_1==SELECT||LA70_1==SOME||LA70_1==STAR||(LA70_1>=TRUE && LA70_1<=UNARY_MINUS)||LA70_1==UNION||LA70_1==VECTOR_EXPR||LA70_1==ALIAS_REF||LA70_1==NAMED_PARAM||LA70_1==RESULT_VARIABLE_REF||LA70_1==SQL_TOKEN)) - { - alt70 = 1; - } - - - } finally { DebugExitDecision(70); } - switch ( alt70 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:355:36: ( expr | comparisonExpr[true] ) - { - DebugLocation(355, 36); - if (state.backtracking == 0) - { - CommaBetweenParameters(", "); - } - DebugLocation(355, 70); - // SqlGenerator.g:355:70: ( expr | comparisonExpr[true] ) - int alt69=2; - try { DebugEnterSubRule(69); - try { DebugEnterDecision(69, false); - int LA69_1 = input.LA(1); - - if ((LA69_1==AGGREGATE||LA69_1==ALL||LA69_1==ANY||LA69_1==BAND||(LA69_1>=BNOT && LA69_1<=BOR)||(LA69_1>=BXOR && LA69_1<=CASE2)||LA69_1==CONSTANT||LA69_1==COUNT||(LA69_1>=DIV && LA69_1<=DOT)||LA69_1==FALSE||LA69_1==IDENT||LA69_1==INDEX_OP||LA69_1==JAVA_CONSTANT||LA69_1==METHOD_CALL||LA69_1==MINUS||(LA69_1>=NULL && LA69_1<=NUM_LONG)||(LA69_1>=PARAM && LA69_1<=PLUS)||LA69_1==QUOTED_String||LA69_1==SELECT||LA69_1==SOME||LA69_1==STAR||(LA69_1>=TRUE && LA69_1<=UNARY_MINUS)||LA69_1==UNION||LA69_1==VECTOR_EXPR||LA69_1==ALIAS_REF||LA69_1==NAMED_PARAM||LA69_1==RESULT_VARIABLE_REF||LA69_1==SQL_TOKEN)) - { - alt69 = 1; - } - else if ((LA69_1==BETWEEN||LA69_1==EQ||LA69_1==EXISTS||LA69_1==GE||LA69_1==GT||LA69_1==IN||(LA69_1>=IS_NOT_NULL && LA69_1<=IS_NULL)||LA69_1==LE||LA69_1==LIKE||LA69_1==LT||LA69_1==NE||(LA69_1>=NOT_BETWEEN && LA69_1<=NOT_LIKE))) - { - alt69 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 69, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(69); } - switch (alt69) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:355:71: expr - { - DebugLocation(355, 71); - PushFollow(Follow._expr_in_arguments2065); - expr(); - PopFollow(); - if (state.failed) return; - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:355:78: comparisonExpr[true] - { - DebugLocation(355, 78); - PushFollow(Follow._comparisonExpr_in_arguments2069); - comparisonExpr(true); - PopFollow(); - if (state.failed) return; - - } - break; - - } - } finally { DebugExitSubRule(69); } - - - } - break; - - default: - goto loop70; - } - } - - loop70: - ; - - } finally { DebugExitSubRule(70); } - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("arguments", 48); - LeaveRule("arguments", 48); - LeaveRule_arguments(); - } - DebugLocation(356, 1); - } finally { DebugExitRule(GrammarFileName, "arguments"); } - return; - - } - // $ANTLR end "arguments" - - partial void EnterRule_parameter(); - partial void LeaveRule_parameter(); - // $ANTLR start "parameter" - // SqlGenerator.g:358:1: parameter : (n= NAMED_PARAM |p= PARAM ); - [GrammarRule("parameter")] - private void parameter() - { - EnterRule_parameter(); - EnterRule("parameter", 49); - TraceIn("parameter", 49); - IASTNode n = default(IASTNode); - IASTNode p = default(IASTNode); - - try { DebugEnterRule(GrammarFileName, "parameter"); - DebugLocation(358, 1); - try - { - // SqlGenerator.g:359:2: (n= NAMED_PARAM |p= PARAM ) - int alt71=2; - try { DebugEnterDecision(71, false); - int LA71_1 = input.LA(1); - - if ((LA71_1==NAMED_PARAM)) - { - alt71 = 1; - } - else if ((LA71_1==PARAM)) - { - alt71 = 2; - } - else - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 71, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } finally { DebugExitDecision(71); } - switch (alt71) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:359:4: n= NAMED_PARAM - { - DebugLocation(359, 5); - n=(IASTNode)Match(input,NAMED_PARAM,Follow._NAMED_PARAM_in_parameter2087); if (state.failed) return; - DebugLocation(359, 18); - if (state.backtracking == 0) - { - Out(n); - } - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:360:4: p= PARAM - { - DebugLocation(360, 5); - p=(IASTNode)Match(input,PARAM,Follow._PARAM_in_parameter2096); if (state.failed) return; - DebugLocation(360, 12); - if (state.backtracking == 0) - { - Out(p); - } - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("parameter", 49); - LeaveRule("parameter", 49); - LeaveRule_parameter(); - } - DebugLocation(361, 1); - } finally { DebugExitRule(GrammarFileName, "parameter"); } - return; - - } - // $ANTLR end "parameter" - - partial void EnterRule_limitValue(); - partial void LeaveRule_limitValue(); - // $ANTLR start "limitValue" - // SqlGenerator.g:363:1: limitValue : ( NUM_INT | NAMED_PARAM | PARAM ); - [GrammarRule("limitValue")] - private TreeRuleReturnScope limitValue() - { - EnterRule_limitValue(); - EnterRule("limitValue", 50); - TraceIn("limitValue", 50); - TreeRuleReturnScope retval = new TreeRuleReturnScope(); - retval.Start = (IASTNode)input.LT(1); - - try { DebugEnterRule(GrammarFileName, "limitValue"); - DebugLocation(363, 1); - try - { - // SqlGenerator.g:364:2: ( NUM_INT | NAMED_PARAM | PARAM ) - DebugEnterAlt(1); - // SqlGenerator.g: - { - DebugLocation(364, 2); - if (input.LA(1)==NUM_INT||input.LA(1)==PARAM||input.LA(1)==NAMED_PARAM) - { - input.Consume(); - state.errorRecovery=false;state.failed=false; - } - else - { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - throw mse; - } - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("limitValue", 50); - LeaveRule("limitValue", 50); - LeaveRule_limitValue(); - } - DebugLocation(367, 1); - } finally { DebugExitRule(GrammarFileName, "limitValue"); } - return retval; - - } - // $ANTLR end "limitValue" - - partial void EnterRule_addrExpr(); - partial void LeaveRule_addrExpr(); - // $ANTLR start "addrExpr" - // SqlGenerator.g:369:1: addrExpr : ( ^(r= DOT . . ) |i= ALIAS_REF | ^(j= INDEX_OP ( . )* ) |v= RESULT_VARIABLE_REF ); - [GrammarRule("addrExpr")] - private void addrExpr() - { - EnterRule_addrExpr(); - EnterRule("addrExpr", 51); - TraceIn("addrExpr", 51); - IASTNode r = default(IASTNode); - IASTNode i = default(IASTNode); - IASTNode j = default(IASTNode); - IASTNode v = default(IASTNode); - - try { DebugEnterRule(GrammarFileName, "addrExpr"); - DebugLocation(369, 1); - try - { - // SqlGenerator.g:370:2: ( ^(r= DOT . . ) |i= ALIAS_REF | ^(j= INDEX_OP ( . )* ) |v= RESULT_VARIABLE_REF ) - int alt73=4; - try { DebugEnterDecision(73, false); - switch (input.LA(1)) - { - case DOT: - { - alt73 = 1; - } - break; - case ALIAS_REF: - { - alt73 = 2; - } - break; - case INDEX_OP: - { - alt73 = 3; - } - break; - case RESULT_VARIABLE_REF: - { - alt73 = 4; - } - break; - default: - { - if (state.backtracking>0) {state.failed=true; return;} - NoViableAltException nvae = new NoViableAltException("", 73, 0, input, 1); - DebugRecognitionException(nvae); - throw nvae; - } - } - - } finally { DebugExitDecision(73); } - switch (alt73) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:370:4: ^(r= DOT . . ) - { - DebugLocation(370, 4); - DebugLocation(370, 7); - r=(IASTNode)Match(input,DOT,Follow._DOT_in_addrExpr2133); if (state.failed) return; - - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(370, 12); - MatchAny(input); if (state.failed) return; - DebugLocation(370, 14); - MatchAny(input); if (state.failed) return; - - Match(input, TokenTypes.Up, null); if (state.failed) return; - - DebugLocation(370, 17); - if (state.backtracking == 0) - { - Out(r); - } - - } - break; - case 2: - DebugEnterAlt(2); - // SqlGenerator.g:371:4: i= ALIAS_REF - { - DebugLocation(371, 5); - i=(IASTNode)Match(input,ALIAS_REF,Follow._ALIAS_REF_in_addrExpr2147); if (state.failed) return; - DebugLocation(371, 16); - if (state.backtracking == 0) - { - Out(i); - } - - } - break; - case 3: - DebugEnterAlt(3); - // SqlGenerator.g:372:4: ^(j= INDEX_OP ( . )* ) - { - DebugLocation(372, 4); - DebugLocation(372, 7); - j=(IASTNode)Match(input,INDEX_OP,Follow._INDEX_OP_in_addrExpr2157); if (state.failed) return; - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(372, 17); - // SqlGenerator.g:372:17: ( . )* - try { DebugEnterSubRule(72); - while (true) - { - int alt72=2; - try { DebugEnterDecision(72, false); - int LA72_1 = input.LA(1); - - if (((LA72_1>=AGGREGATE && LA72_1<=THETA_JOINS))) - { - alt72 = 1; - } - else if ((LA72_1==UP)) - { - alt72 = 2; - } - - - } finally { DebugExitDecision(72); } - switch ( alt72 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:372:17: . - { - DebugLocation(372, 17); - MatchAny(input); if (state.failed) return; - - } - break; - - default: - goto loop72; - } - } - - loop72: - ; - - } finally { DebugExitSubRule(72); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - } - - DebugLocation(372, 21); - if (state.backtracking == 0) - { - Out(j); - } - - } - break; - case 4: - DebugEnterAlt(4); - // SqlGenerator.g:373:4: v= RESULT_VARIABLE_REF - { - DebugLocation(373, 5); - v=(IASTNode)Match(input,RESULT_VARIABLE_REF,Follow._RESULT_VARIABLE_REF_in_addrExpr2170); if (state.failed) return; - DebugLocation(373, 26); - if (state.backtracking == 0) - { - Out(v); - } - - } - break; - - } - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("addrExpr", 51); - LeaveRule("addrExpr", 51); - LeaveRule_addrExpr(); - } - DebugLocation(374, 1); - } finally { DebugExitRule(GrammarFileName, "addrExpr"); } - return; - - } - // $ANTLR end "addrExpr" - - partial void EnterRule_sqlToken(); - partial void LeaveRule_sqlToken(); - // $ANTLR start "sqlToken" - // SqlGenerator.g:376:1: sqlToken : ^(t= SQL_TOKEN ( . )* ) ; - [GrammarRule("sqlToken")] - private void sqlToken() - { - EnterRule_sqlToken(); - EnterRule("sqlToken", 52); - TraceIn("sqlToken", 52); - IASTNode t = default(IASTNode); - - try { DebugEnterRule(GrammarFileName, "sqlToken"); - DebugLocation(376, 1); - try - { - // SqlGenerator.g:377:2: ( ^(t= SQL_TOKEN ( . )* ) ) - DebugEnterAlt(1); - // SqlGenerator.g:377:4: ^(t= SQL_TOKEN ( . )* ) - { - DebugLocation(377, 4); - DebugLocation(377, 7); - t=(IASTNode)Match(input,SQL_TOKEN,Follow._SQL_TOKEN_in_sqlToken2186); if (state.failed) return; - - DebugLocation(377, 18); - if (state.backtracking == 0) - { - Out(t); - } - - if (input.LA(1) == TokenTypes.Down) - { - Match(input, TokenTypes.Down, null); if (state.failed) return; - DebugLocation(377, 30); - // SqlGenerator.g:377:30: ( . )* - try { DebugEnterSubRule(74); - while (true) - { - int alt74=2; - try { DebugEnterDecision(74, false); - int LA74_1 = input.LA(1); - - if (((LA74_1>=AGGREGATE && LA74_1<=THETA_JOINS))) - { - alt74 = 1; - } - else if ((LA74_1==UP)) - { - alt74 = 2; - } - - - } finally { DebugExitDecision(74); } - switch ( alt74 ) - { - case 1: - DebugEnterAlt(1); - // SqlGenerator.g:377:30: . - { - DebugLocation(377, 30); - MatchAny(input); if (state.failed) return; - - } - break; - - default: - goto loop74; - } - } - - loop74: - ; - - } finally { DebugExitSubRule(74); } - - - Match(input, TokenTypes.Up, null); if (state.failed) return; - } - - - } - - } - catch (RecognitionException re) - { - ReportError(re); - Recover(input,re); - } - finally - { - TraceOut("sqlToken", 52); - LeaveRule("sqlToken", 52); - LeaveRule_sqlToken(); - } - DebugLocation(378, 1); - } finally { DebugExitRule(GrammarFileName, "sqlToken"); } - return; - - } - // $ANTLR end "sqlToken" - - partial void EnterRule_synpred1_SqlGenerator_fragment(); - partial void LeaveRule_synpred1_SqlGenerator_fragment(); - - // $ANTLR start synpred1_SqlGenerator - private void synpred1_SqlGenerator_fragment() - { - EnterRule_synpred1_SqlGenerator_fragment(); - EnterRule("synpred1_SqlGenerator_fragment", 53); - TraceIn("synpred1_SqlGenerator_fragment", 53); - try - { - // SqlGenerator.g:85:4: ( SQL_TOKEN ) - DebugEnterAlt(1); - // SqlGenerator.g:85:5: SQL_TOKEN - { - DebugLocation(85, 5); - Match(input,SQL_TOKEN,Follow._SQL_TOKEN_in_synpred1_SqlGenerator370); if (state.failed) return; - - } - - } - finally - { - TraceOut("synpred1_SqlGenerator_fragment", 53); - LeaveRule("synpred1_SqlGenerator_fragment", 53); - LeaveRule_synpred1_SqlGenerator_fragment(); - } - } - // $ANTLR end synpred1_SqlGenerator - - partial void EnterRule_synpred2_SqlGenerator_fragment(); - partial void LeaveRule_synpred2_SqlGenerator_fragment(); - - // $ANTLR start synpred2_SqlGenerator - private void synpred2_SqlGenerator_fragment() - { - EnterRule_synpred2_SqlGenerator_fragment(); - EnterRule("synpred2_SqlGenerator_fragment", 54); - TraceIn("synpred2_SqlGenerator_fragment", 54); - try - { - // SqlGenerator.g:321:4: ( additiveExpr ) - DebugEnterAlt(1); - // SqlGenerator.g:321:5: additiveExpr - { - DebugLocation(321, 5); - PushFollow(Follow._additiveExpr_in_synpred2_SqlGenerator1807); - additiveExpr(); - PopFollow(); - if (state.failed) return; - - } - - } - finally - { - TraceOut("synpred2_SqlGenerator_fragment", 54); - LeaveRule("synpred2_SqlGenerator_fragment", 54); - LeaveRule_synpred2_SqlGenerator_fragment(); - } - } - // $ANTLR end synpred2_SqlGenerator - - partial void EnterRule_synpred3_SqlGenerator_fragment(); - partial void LeaveRule_synpred3_SqlGenerator_fragment(); - - // $ANTLR start synpred3_SqlGenerator - private void synpred3_SqlGenerator_fragment() - { - EnterRule_synpred3_SqlGenerator_fragment(); - EnterRule("synpred3_SqlGenerator_fragment", 55); - TraceIn("synpred3_SqlGenerator_fragment", 55); - try - { - // SqlGenerator.g:322:4: ( bitwiseExpr ) - DebugEnterAlt(1); - // SqlGenerator.g:322:5: bitwiseExpr - { - DebugLocation(322, 5); - PushFollow(Follow._bitwiseExpr_in_synpred3_SqlGenerator1822); - bitwiseExpr(); - PopFollow(); - if (state.failed) return; - - } - - } - finally - { - TraceOut("synpred3_SqlGenerator_fragment", 55); - LeaveRule("synpred3_SqlGenerator_fragment", 55); - LeaveRule_synpred3_SqlGenerator_fragment(); - } - } - // $ANTLR end synpred3_SqlGenerator - - partial void EnterRule_synpred4_SqlGenerator_fragment(); - partial void LeaveRule_synpred4_SqlGenerator_fragment(); - - // $ANTLR start synpred4_SqlGenerator - private void synpred4_SqlGenerator_fragment() - { - EnterRule_synpred4_SqlGenerator_fragment(); - EnterRule("synpred4_SqlGenerator_fragment", 56); - TraceIn("synpred4_SqlGenerator_fragment", 56); - try - { - // SqlGenerator.g:328:4: ( arithmeticExpr ) - DebugEnterAlt(1); - // SqlGenerator.g:328:5: arithmeticExpr - { - DebugLocation(328, 5); - PushFollow(Follow._arithmeticExpr_in_synpred4_SqlGenerator1851); - arithmeticExpr(); - PopFollow(); - if (state.failed) return; - - } - - } - finally - { - TraceOut("synpred4_SqlGenerator_fragment", 56); - LeaveRule("synpred4_SqlGenerator_fragment", 56); - LeaveRule_synpred4_SqlGenerator_fragment(); - } - } - // $ANTLR end synpred4_SqlGenerator - #endregion Rules - - #region Synpreds - private bool EvaluatePredicate(System.Action fragment) - { - bool success = false; - state.backtracking++; - try { DebugBeginBacktrack(state.backtracking); - int start = input.Mark(); - try - { - fragment(); - } - catch ( RecognitionException re ) - { - System.Console.Error.WriteLine("impossible: "+re); - } - success = !state.failed; - input.Rewind(start); - } finally { DebugEndBacktrack(state.backtracking, success); } - state.backtracking--; - state.failed=false; - return success; - } - #endregion Synpreds - - - #region Follow sets - private static class Follow - { - public static readonly BitSet _selectStatement_in_statement59 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _updateStatement_in_statement64 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _deleteStatement_in_statement69 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _insertStatement_in_statement74 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _SELECT_in_selectStatement86 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _selectClause_in_selectStatement92 = new BitSet(new ulong[]{0x1000000000000UL}); - public static readonly BitSet _from_in_selectStatement96 = new BitSet(new ulong[]{0x28000000000008UL,0x42000800000000UL,0x4UL}); - public static readonly BitSet _WHERE_in_selectStatement103 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _whereExpr_in_selectStatement107 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _GROUP_in_selectStatement119 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _groupExprs_in_selectStatement123 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _HAVING_in_selectStatement135 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _booleanExpr_in_selectStatement139 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _ORDER_in_selectStatement151 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _orderExprs_in_selectStatement155 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _SKIP_in_selectStatement167 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _limitValue_in_selectStatement171 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _TAKE_in_selectStatement183 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _limitValue_in_selectStatement187 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _UPDATE_in_updateStatement214 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _FROM_in_updateStatement222 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _fromTable_in_updateStatement224 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _setClause_in_updateStatement230 = new BitSet(new ulong[]{0x8UL,0x0UL,0x4UL}); - public static readonly BitSet _whereClause_in_updateStatement235 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _DELETE_in_deleteStatement254 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _from_in_deleteStatement260 = new BitSet(new ulong[]{0x8UL,0x0UL,0x4UL}); - public static readonly BitSet _whereClause_in_deleteStatement265 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _INSERT_in_insertStatement282 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _INTO_in_insertStatement291 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _selectStatement_in_insertStatement301 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _SET_in_setClause321 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _comparisonExpr_in_setClause325 = new BitSet(new ulong[]{0x414024000002008UL,0x720A4CUL}); - public static readonly BitSet _comparisonExpr_in_setClause332 = new BitSet(new ulong[]{0x414024000002008UL,0x720A4CUL}); - public static readonly BitSet _WHERE_in_whereClause352 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _whereClauseExpr_in_whereClause356 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _conditionList_in_whereClauseExpr375 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _booleanExpr_in_whereClauseExpr380 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _expr_in_orderExprs396 = new BitSet(new ulong[]{0x8801003540ED552UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _orderDirection_in_orderExprs403 = new BitSet(new ulong[]{0x8801003140ED152UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _orderExprs_in_orderExprs413 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _expr_in_groupExprs428 = new BitSet(new ulong[]{0x8801003140ED152UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _groupExprs_in_groupExprs434 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _filters_in_whereExpr471 = new BitSet(new ulong[]{0x414024000002082UL,0x4007A4A4CUL,0xC00000UL}); - public static readonly BitSet _thetaJoins_in_whereExpr479 = new BitSet(new ulong[]{0x414024000002082UL,0x4007A4A4CUL,0x400000UL}); - public static readonly BitSet _booleanExpr_in_whereExpr490 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _thetaJoins_in_whereExpr500 = new BitSet(new ulong[]{0x414024000002082UL,0x4007A4A4CUL,0x400000UL}); - public static readonly BitSet _booleanExpr_in_whereExpr508 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _booleanExpr_in_whereExpr519 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _FILTERS_in_filters532 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _conditionList_in_filters534 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _THETA_JOINS_in_thetaJoins548 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _conditionList_in_thetaJoins550 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _sqlToken_in_conditionList563 = new BitSet(new ulong[]{0x2UL,0x0UL,0x400000UL}); - public static readonly BitSet _conditionList_in_conditionList569 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _SELECT_CLAUSE_in_selectClause584 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _distinctOrAll_in_selectClause587 = new BitSet(new ulong[]{0x8010031C0ED010UL,0x61044C01F014010UL,0x608080UL}); - public static readonly BitSet _selectColumn_in_selectClause593 = new BitSet(new ulong[]{0x8010031C0ED018UL,0x61044C01F014010UL,0x608080UL}); - public static readonly BitSet _selectExpr_in_selectColumn611 = new BitSet(new ulong[]{0x2UL,0x0UL,0x100000UL}); - public static readonly BitSet _SELECT_COLUMNS_in_selectColumn616 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _selectAtom_in_selectExpr636 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _count_in_selectExpr643 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _CONSTRUCTOR_in_selectExpr649 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _set_in_selectExpr651 = new BitSet(new ulong[]{0x8010031C0ED010UL,0x61044C01F014010UL,0x608080UL}); - public static readonly BitSet _selectColumn_in_selectExpr661 = new BitSet(new ulong[]{0x8010031C0ED018UL,0x61044C01F014010UL,0x608080UL}); - public static readonly BitSet _methodCall_in_selectExpr671 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _aggregate_in_selectExpr676 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _constant_in_selectExpr683 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _arithmeticExpr_in_selectExpr690 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _parameter_in_selectExpr695 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _selectStatement_in_selectExpr704 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _COUNT_in_count718 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _distinctOrAll_in_count725 = new BitSet(new ulong[]{0x8801003140ED010UL,0x61024C01F814010UL,0x428080UL}); - public static readonly BitSet _countExpr_in_count731 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _DISTINCT_in_distinctOrAll746 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _ALL_in_distinctOrAll754 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _ROW_STAR_in_countExpr773 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _simpleExpr_in_countExpr780 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _DOT_in_selectAtom792 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _SQL_TOKEN_in_selectAtom802 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _ALIAS_REF_in_selectAtom812 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _SELECT_EXPR_in_selectAtom822 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _FROM_in_from845 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _fromTable_in_from852 = new BitSet(new ulong[]{0x8UL,0x0UL,0x1400UL}); - public static readonly BitSet _FROM_FRAGMENT_in_fromTable878 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _tableJoin_in_fromTable884 = new BitSet(new ulong[]{0x8UL,0x0UL,0x1400UL}); - public static readonly BitSet _JOIN_FRAGMENT_in_fromTable899 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _tableJoin_in_fromTable905 = new BitSet(new ulong[]{0x8UL,0x0UL,0x1400UL}); - public static readonly BitSet _JOIN_FRAGMENT_in_tableJoin928 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _tableJoin_in_tableJoin933 = new BitSet(new ulong[]{0x8UL,0x0UL,0x1400UL}); - public static readonly BitSet _FROM_FRAGMENT_in_tableJoin949 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _tableJoin_in_tableJoin954 = new BitSet(new ulong[]{0x8UL,0x0UL,0x1400UL}); - public static readonly BitSet _AND_in_booleanOp974 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _booleanExpr_in_booleanOp976 = new BitSet(new ulong[]{0x414024000002080UL,0x4007A4A4CUL,0x400000UL}); - public static readonly BitSet _booleanExpr_in_booleanOp981 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _OR_in_booleanOp989 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _booleanExpr_in_booleanOp993 = new BitSet(new ulong[]{0x414024000002080UL,0x4007A4A4CUL,0x400000UL}); - public static readonly BitSet _booleanExpr_in_booleanOp998 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _NOT_in_booleanOp1008 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _booleanExpr_in_booleanOp1012 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _booleanOp_in_booleanExpr1029 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _comparisonExpr_in_booleanExpr1036 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _methodCall_in_booleanExpr1043 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _SQL_TOKEN_in_booleanExpr1050 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _binaryComparisonExpression_in_comparisonExpr1068 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _exoticComparisonExpression_in_comparisonExpr1075 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _EQ_in_binaryComparisonExpression1090 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_binaryComparisonExpression1092 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_binaryComparisonExpression1096 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _NE_in_binaryComparisonExpression1103 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_binaryComparisonExpression1105 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_binaryComparisonExpression1109 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _GT_in_binaryComparisonExpression1116 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_binaryComparisonExpression1118 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_binaryComparisonExpression1122 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _GE_in_binaryComparisonExpression1129 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_binaryComparisonExpression1131 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_binaryComparisonExpression1135 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _LT_in_binaryComparisonExpression1142 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_binaryComparisonExpression1144 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_binaryComparisonExpression1148 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _LE_in_binaryComparisonExpression1155 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_binaryComparisonExpression1157 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_binaryComparisonExpression1161 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _LIKE_in_exoticComparisonExpression1175 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1177 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1181 = new BitSet(new ulong[]{0x8000000008UL}); - public static readonly BitSet _likeEscape_in_exoticComparisonExpression1183 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _NOT_LIKE_in_exoticComparisonExpression1191 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1193 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1197 = new BitSet(new ulong[]{0x8000000008UL}); - public static readonly BitSet _likeEscape_in_exoticComparisonExpression1199 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _BETWEEN_in_exoticComparisonExpression1206 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1208 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1212 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1216 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _NOT_BETWEEN_in_exoticComparisonExpression1223 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1225 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1229 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1233 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _IN_in_exoticComparisonExpression1240 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1242 = new BitSet(new ulong[]{0x0UL,0x1UL}); - public static readonly BitSet _inList_in_exoticComparisonExpression1246 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _NOT_IN_in_exoticComparisonExpression1254 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1256 = new BitSet(new ulong[]{0x0UL,0x1UL}); - public static readonly BitSet _inList_in_exoticComparisonExpression1260 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _EXISTS_in_exoticComparisonExpression1268 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _quantified_in_exoticComparisonExpression1272 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _IS_NULL_in_exoticComparisonExpression1280 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1282 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _IS_NOT_NULL_in_exoticComparisonExpression1291 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_exoticComparisonExpression1293 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _ESCAPE_in_likeEscape1310 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_likeEscape1314 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _IN_LIST_in_inList1330 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _parenSelect_in_inList1336 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _simpleExprList_in_inList1340 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _simpleExpr_in_simpleExprList1361 = new BitSet(new ulong[]{0x8801003140ED012UL,0x61004C01F814010UL,0x428080UL}); - public static readonly BitSet _simpleExpr_in_expr1380 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _VECTOR_EXPR_in_expr1387 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_expr1394 = new BitSet(new ulong[]{0x8801003140ED158UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _parenSelect_in_expr1409 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _ANY_in_expr1415 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _quantified_in_expr1419 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _ALL_in_expr1427 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _quantified_in_expr1431 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _SOME_in_expr1439 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _quantified_in_expr1443 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _sqlToken_in_quantified1461 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _selectStatement_in_quantified1465 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _selectStatement_in_parenSelect1484 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _UNION_in_parenSelect1493 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _selectStatement_in_parenSelect1497 = new BitSet(new ulong[]{0x0UL,0x1000400000000000UL}); - public static readonly BitSet _parenSelect_in_parenSelect1501 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _constant_in_simpleExpr1520 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _NULL_in_simpleExpr1527 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _addrExpr_in_simpleExpr1534 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _sqlToken_in_simpleExpr1539 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _aggregate_in_simpleExpr1544 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _methodCall_in_simpleExpr1549 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _count_in_simpleExpr1554 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _parameter_in_simpleExpr1559 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _arithmeticExpr_in_simpleExpr1564 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _additiveExpr_in_arithmeticExpr1638 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _bitwiseExpr_in_arithmeticExpr1643 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _multiplicativeExpr_in_arithmeticExpr1648 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _UNARY_MINUS_in_arithmeticExpr1655 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _nestedExprAfterMinusDiv_in_arithmeticExpr1659 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _caseExpr_in_arithmeticExpr1665 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _PLUS_in_additiveExpr1677 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_additiveExpr1679 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_additiveExpr1683 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _MINUS_in_additiveExpr1690 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_additiveExpr1692 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _nestedExprAfterMinusDiv_in_additiveExpr1696 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _BAND_in_bitwiseExpr1709 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_bitwiseExpr1713 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _nestedExpr_in_bitwiseExpr1715 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _BOR_in_bitwiseExpr1724 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_bitwiseExpr1728 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _nestedExpr_in_bitwiseExpr1730 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _BXOR_in_bitwiseExpr1739 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_bitwiseExpr1743 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _nestedExpr_in_bitwiseExpr1745 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _BNOT_in_bitwiseExpr1754 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _nestedExpr_in_bitwiseExpr1758 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _STAR_in_multiplicativeExpr1773 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _nestedExpr_in_multiplicativeExpr1775 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _nestedExpr_in_multiplicativeExpr1779 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _DIV_in_multiplicativeExpr1786 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _nestedExpr_in_multiplicativeExpr1788 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _nestedExprAfterMinusDiv_in_multiplicativeExpr1792 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _additiveExpr_in_nestedExpr1814 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _bitwiseExpr_in_nestedExpr1829 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _expr_in_nestedExpr1836 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _arithmeticExpr_in_nestedExprAfterMinusDiv1858 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _expr_in_nestedExprAfterMinusDiv1865 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _CASE_in_caseExpr1877 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _WHEN_in_caseExpr1887 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _booleanExpr_in_caseExpr1891 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_caseExpr1896 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _ELSE_in_caseExpr1908 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_caseExpr1912 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _CASE2_in_caseExpr1928 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_caseExpr1932 = new BitSet(new ulong[]{0x0UL,0x0UL,0x2UL}); - public static readonly BitSet _WHEN_in_caseExpr1939 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_caseExpr1943 = new BitSet(new ulong[]{0x8801003140ED150UL,0x561444C01F814010UL,0x428080UL}); - public static readonly BitSet _expr_in_caseExpr1947 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _ELSE_in_caseExpr1959 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_caseExpr1963 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _AGGREGATE_in_aggregate1987 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _expr_in_aggregate1992 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _METHOD_CALL_in_methodCall2011 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _METHOD_NAME_in_methodCall2015 = new BitSet(new ulong[]{0x80000000008UL}); - public static readonly BitSet _EXPR_LIST_in_methodCall2024 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _arguments_in_methodCall2027 = new BitSet(new ulong[]{0x8UL}); - public static readonly BitSet _expr_in_arguments2052 = new BitSet(new ulong[]{0xC941243140EF152UL,0x561444C01FF34A5CUL,0x428080UL}); - public static readonly BitSet _comparisonExpr_in_arguments2056 = new BitSet(new ulong[]{0xC941243140EF152UL,0x561444C01FF34A5CUL,0x428080UL}); - public static readonly BitSet _expr_in_arguments2065 = new BitSet(new ulong[]{0xC941243140EF152UL,0x561444C01FF34A5CUL,0x428080UL}); - public static readonly BitSet _comparisonExpr_in_arguments2069 = new BitSet(new ulong[]{0xC941243140EF152UL,0x561444C01FF34A5CUL,0x428080UL}); - public static readonly BitSet _NAMED_PARAM_in_parameter2087 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _PARAM_in_parameter2096 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _DOT_in_addrExpr2133 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _ALIAS_REF_in_addrExpr2147 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _INDEX_OP_in_addrExpr2157 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _RESULT_VARIABLE_REF_in_addrExpr2170 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _SQL_TOKEN_in_sqlToken2186 = new BitSet(new ulong[]{0x4UL}); - public static readonly BitSet _SQL_TOKEN_in_synpred1_SqlGenerator370 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _additiveExpr_in_synpred2_SqlGenerator1807 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _bitwiseExpr_in_synpred3_SqlGenerator1822 = new BitSet(new ulong[]{0x2UL}); - public static readonly BitSet _arithmeticExpr_in_synpred4_SqlGenerator1851 = new BitSet(new ulong[]{0x2UL}); - } - #endregion Follow sets -} - -} // namespace NHibernate.Hql.Ast.ANTLR diff --git a/src/NHibernate/NHibernate.csproj b/src/NHibernate/NHibernate.csproj index d04b1d71ba6..851c1a7fc6d 100644 --- a/src/NHibernate/NHibernate.csproj +++ b/src/NHibernate/NHibernate.csproj @@ -1,5 +1,6 @@  + Debug AnyCPU @@ -944,10 +945,6 @@ - - - - @@ -1799,9 +1796,9 @@ NHibernate.snk - - - + + + @@ -1824,4 +1821,12 @@ + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/src/NHibernate/packages.config b/src/NHibernate/packages.config index ceb11f9b7d1..8412c0a386f 100644 --- a/src/NHibernate/packages.config +++ b/src/NHibernate/packages.config @@ -1,5 +1,6 @@  + From 1918d1cd12524797b36830723e5cd58e83d53e12 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Sun, 12 Feb 2017 17:49:36 +1300 Subject: [PATCH 3/3] NH-3945 - Remove Antlr from Tools directory --- Tools/Antlr/Antlr3.Runtime.Debug.dll | Bin 46080 -> 0 bytes Tools/Antlr/Antlr3.Runtime.dll | Bin 103424 -> 0 bytes Tools/Antlr/Antlr3.exe | Bin 722432 -> 0 bytes Tools/Antlr/Antlr3.exe.config | 7 - Tools/Antlr/Antlr3.targets | 169 -- .../Antlr4.StringTemplate.Visualizer.dll | Bin 38400 -> 0 bytes Tools/Antlr/Antlr4.StringTemplate.dll | Bin 195584 -> 0 bytes Tools/Antlr/AntlrBuildTask.dll | Bin 17408 -> 0 bytes Tools/Antlr/Codegen/Templates/CSharp2/AST.stg | 430 ---- .../Codegen/Templates/CSharp2/ASTDbg.stg | 94 - .../Codegen/Templates/CSharp2/ASTParser.stg | 192 -- .../Templates/CSharp2/ASTTreeParser.stg | 380 ---- .../Codegen/Templates/CSharp2/CSharp2.stg | 1772 ----------------- Tools/Antlr/Codegen/Templates/CSharp2/Dbg.stg | 313 --- Tools/Antlr/Codegen/Templates/CSharp2/ST.stg | 171 -- Tools/Antlr/Codegen/Templates/CSharp3/AST.stg | 428 ---- .../Codegen/Templates/CSharp3/ASTDbg.stg | 98 - .../Codegen/Templates/CSharp3/ASTParser.stg | 203 -- .../Templates/CSharp3/ASTTreeParser.stg | 377 ---- .../Codegen/Templates/CSharp3/CSharp3.stg | 1749 ---------------- Tools/Antlr/Codegen/Templates/CSharp3/Dbg.stg | 312 --- Tools/Antlr/Codegen/Templates/CSharp3/ST.stg | 153 -- .../Codegen/Templates/LeftRecursiveRules.stg | 82 - Tools/Antlr/LICENSE.txt | 27 - .../Antlr/Targets/Antlr3.Targets.CSharp2.dll | Bin 9216 -> 0 bytes .../Antlr/Targets/Antlr3.Targets.CSharp3.dll | Bin 9216 -> 0 bytes Tools/Antlr/Tool/Templates/depend.stg | 12 - Tools/Antlr/Tool/Templates/dot/dot.stg | 73 - .../Tool/Templates/messages/formats/antlr.stg | 42 - .../Templates/messages/formats/vs2005.stg | 42 - .../Tool/Templates/messages/languages/en.stg | 300 --- 31 files changed, 7426 deletions(-) delete mode 100644 Tools/Antlr/Antlr3.Runtime.Debug.dll delete mode 100644 Tools/Antlr/Antlr3.Runtime.dll delete mode 100644 Tools/Antlr/Antlr3.exe delete mode 100644 Tools/Antlr/Antlr3.exe.config delete mode 100644 Tools/Antlr/Antlr3.targets delete mode 100644 Tools/Antlr/Antlr4.StringTemplate.Visualizer.dll delete mode 100644 Tools/Antlr/Antlr4.StringTemplate.dll delete mode 100644 Tools/Antlr/AntlrBuildTask.dll delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp2/AST.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp2/ASTDbg.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp2/ASTParser.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp2/ASTTreeParser.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp2/CSharp2.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp2/Dbg.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp2/ST.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp3/AST.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp3/ASTDbg.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp3/ASTParser.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp3/ASTTreeParser.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp3/CSharp3.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp3/Dbg.stg delete mode 100644 Tools/Antlr/Codegen/Templates/CSharp3/ST.stg delete mode 100644 Tools/Antlr/Codegen/Templates/LeftRecursiveRules.stg delete mode 100644 Tools/Antlr/LICENSE.txt delete mode 100644 Tools/Antlr/Targets/Antlr3.Targets.CSharp2.dll delete mode 100644 Tools/Antlr/Targets/Antlr3.Targets.CSharp3.dll delete mode 100644 Tools/Antlr/Tool/Templates/depend.stg delete mode 100644 Tools/Antlr/Tool/Templates/dot/dot.stg delete mode 100644 Tools/Antlr/Tool/Templates/messages/formats/antlr.stg delete mode 100644 Tools/Antlr/Tool/Templates/messages/formats/vs2005.stg delete mode 100644 Tools/Antlr/Tool/Templates/messages/languages/en.stg diff --git a/Tools/Antlr/Antlr3.Runtime.Debug.dll b/Tools/Antlr/Antlr3.Runtime.Debug.dll deleted file mode 100644 index ed0b10597524de16c84987b1a3b52f252141d489..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46080 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 ZexjHo6%SxHMSDLUUH#vm|Nm*=e*uL_d^-RD diff --git a/Tools/Antlr/Antlr3.Runtime.dll b/Tools/Antlr/Antlr3.Runtime.dll deleted file mode 100644 index b963933d5f72162ebc0ba1030f019e285dccc7dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103424 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 - - - - - - diff --git a/Tools/Antlr/Antlr3.targets b/Tools/Antlr/Antlr3.targets deleted file mode 100644 index c5f5c70da10..00000000000 --- a/Tools/Antlr/Antlr3.targets +++ /dev/null @@ -1,169 +0,0 @@ - - - - MSBuild - 3.5.0.2 - eb42632606e9261f - AntlrBuildTask, Version=$(TaskVersion), Culture=neutral, PublicKeyToken=$(TaskKeyToken) - - - - - $(LoadTimeSensitiveTargets); - AntlrCompile; - - - $(LoadTimeSensitiveProperties); - AntlrCompileDependsOn; - - - - - $(MSBuildBinPath) - $(AntlrBuildTaskPath) - $(MSBuildBinPath)\Antlr3\Antlr3.exe - $(AntlrToolPath) - - - - $(MSBuildProjectFile).AntlrGeneratedCodeFileListAbsolute.txt - - - - - - - - AntlrCompile; - AntlrCompileAddFilesGenerated; - $(PrepareResourcesDependsOn) - - - - - - AntlrCompileReadGeneratedFileList - - - - - - - - - - - - MSBuild:Compile - - false - false - - - - - - - - - - - - - DesignTimeGrammarCompilation; - $(CoreCompileDependsOn) - - - - - - - - - - - - - - - - <_IntellisenseOnlyCompile>false - <_IntellisenseOnlyCompile Condition="'$(BuildingProject)' != 'true'">true - - - - - - - - - - - - - - - - - - - - - - - <_GeneratedCodeFiles Include="@(AntlrGeneratedCodeFiles)" /> - - - - diff --git a/Tools/Antlr/Antlr4.StringTemplate.Visualizer.dll b/Tools/Antlr/Antlr4.StringTemplate.Visualizer.dll deleted file mode 100644 index 42d4df5a440183a09df908bc4b3ce106cb9b29b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38400 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 diff --git a/Tools/Antlr/Antlr4.StringTemplate.dll b/Tools/Antlr/Antlr4.StringTemplate.dll deleted file mode 100644 index 88b210ceecc950dc8d316412214b2fc6a3ed6797..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195584 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%0DlEg8fdIzwERuH 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

lvc%$L3oc@}DH6Juv< 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 Ca!>yd6<3(lQh(6Y-Nh!l!0?f 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 diff --git a/Tools/Antlr/AntlrBuildTask.dll b/Tools/Antlr/AntlrBuildTask.dll deleted file mode 100644 index 4341c7465e205c9ceb715be04f5e82dede6d4438..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17408 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 bsqMJGKk2d6{y#Ul3;(26|G%;SBoX-EhlT21 diff --git a/Tools/Antlr/Codegen/Templates/CSharp2/AST.stg b/Tools/Antlr/Codegen/Templates/CSharp2/AST.stg deleted file mode 100644 index a94ed7c4b22..00000000000 --- a/Tools/Antlr/Codegen/Templates/CSharp2/AST.stg +++ /dev/null @@ -1,430 +0,0 @@ -/* - * [The "BSD license"] - * Copyright (c) 2007-2008 Johannes Luber - * Copyright (c) 2005-2007 Kunle Odutola - * Copyright (c) 2011 Sam Harwell - * Copyright (c) 2011 Terence Parr - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -@outputFile.imports() ::= << -<@super.imports()> - - - -using Antlr.Runtime.Tree; -using RewriteRuleITokenStream = Antlr.Runtime.Tree.RewriteRuleTokenStream; - ->> - -@genericParser.members() ::= << -<@super.members()> - ->> - -parserCtorBody() ::= <% -<\n> -TreeAdaptor = - - - - new () - -; -%> - -/** Add an adaptor property that knows how to build trees */ -parserMembers() ::= << -private adaptor; - -public TreeAdaptor -{ - get - { - return adaptor; - } - - set - { - this.adaptor = value; - .TreeAdaptor = this.adaptor;}> - } -} ->> - -treeAdaptorType() ::= << - ->> - -ruleReturnBaseType() ::= <% -AstTreeParserRuleReturnScope\<, > -%> - -/** Add a variable to track rule's return AST */ -ruleDeclarations() ::= << - - root_0 = default();<\n> ->> - -ruleLabelDefs() ::= << - -<[ruleDescriptor.tokenLabels,ruleDescriptor.wildcardTreeLabels,ruleDescriptor.wildcardTreeListLabels] - :{it| _tree = default();}; separator="\n"> - _tree = default();}; separator="\n"> -Stream stream_=new RewriteRuleStream(adaptor,"token ");}; separator="\n"> -=new RewriteRuleSubtreeStream(adaptor,"rule ");}; separator="\n"> ->> - -/** When doing auto AST construction, we must define some variables; - * These should be turned off if doing rewrites. This must be a "mode" - * as a rule could have both rewrite and AST within the same alternative - * block. - */ -@alt.declarations() ::= << - - - -root_0 = ()adaptor.Nil(); - - - ->> - -// T r a c k i n g R u l e E l e m e n t s - -/** ID and track it for use in a rewrite rule */ -tokenRefTrack(token,label,elementIndex,terminalOptions={}) ::= << - -if () stream_.Add(,); ->> - -/** For now, sets are interval tests and must be tested inline */ -matchSet(s,label,elementIndex,postmatchCode="",terminalOptions={}) ::= << - - - -if () -{ - input.Consume(); - - state.errorRecovery=false;state.failed=false; -} -else -{ - - MismatchedSetException mse = new MismatchedSetException(null,input); - DebugRecognitionException(mse); - <@mismatchedSetException()> - - Recover(mse); - throw mse; - - throw mse; - ); - !> - -}<\n> ->> - -matchSetUnchecked(s,label,elementIndex,postmatchCode=false) ::= <% - -<\n> - -input.Consume();<\n> - -<\n> - -state.errorRecovery=false;state.failed=false; -%> - -matchSetLabel() ::= <% - -

Allows convenient multi-value initialization: -/// "new STAttrMap().Add(...).Add(...)" -/// \ -protected class STAttrMap : Hashtable -{ - public STAttrMap Add(string attrName, object value) - { - base.Add(attrName, value); - return this; - } - public STAttrMap Add(string attrName, int value) - { - base.Add(attrName, value); - return this; - } -} ->> - -/** x+=rule when output=template */ -ruleRefAndListLabel(rule,label,elementIndex,args,scope) ::= << - - ->> - -rewriteTemplate(alts) ::= << - -// TEMPLATE REWRITE - -if ( ) -{ - - -} - - - - ->> - -replaceTextInLine() ::= << - -((TokenRewriteStream)input.TokenStream).Replace( - input.TreeAdaptor.GetTokenStartIndex(retval.Start), - input.TreeAdaptor.GetTokenStopIndex(retval.Start), - retval.Template); - -((TokenRewriteStream)input).Replace( - ((IToken)retval.Start).TokenIndex, - input.LT(-1).TokenIndex, - retval.Template); - ->> - -rewriteTemplateAlt() ::= << -// - -if () { - retval.Template = ; -}<\n> - -{ - retval.Template = ; -}<\n> - ->> - -rewriteEmptyTemplate(alts) ::= << -null; ->> - -/** Invoke a template with a set of attribute name/value pairs. - * Set the value of the rule's template *after* having set - * the attributes because the rule's template might be used as - * an attribute to build a bigger template; you get a self-embedded - * template. - */ -rewriteExternalTemplate(name,args) ::= << -templateLib.GetInstanceOf("", - new STAttrMap()", )}> - ) ->> - -/** expr is a string expression that says what template to load */ -rewriteIndirectTemplate(expr,args) ::= << -templateLib.GetInstanceOf(, - new STAttrMap()", )}> - ) ->> - -/** Invoke an inline template with a set of attribute name/value pairs */ -rewriteInlineTemplate(args, template) ::= << -new StringTemplate(templateLib, "

k&T@dZle;MAddM0##a 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 z�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