xref: /plugin/combo/ComboStrap/PageSqlParser/PageSqlParser.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
137748cd8SNickeau<?php
237748cd8SNickeau
337748cd8SNickeau/*
4*04fd306cSNickeau * Generated from D:/dokuwiki/lib/plugins/combo/grammar\PageSql.g4 by ANTLR 4.9.3
537748cd8SNickeau */
637748cd8SNickeau
737748cd8SNickeaunamespace ComboStrap\PageSqlParser {
837748cd8SNickeau	use Antlr\Antlr4\Runtime\Atn\ATN;
937748cd8SNickeau	use Antlr\Antlr4\Runtime\Atn\ATNDeserializer;
1037748cd8SNickeau	use Antlr\Antlr4\Runtime\Atn\ParserATNSimulator;
1137748cd8SNickeau	use Antlr\Antlr4\Runtime\Dfa\DFA;
1237748cd8SNickeau	use Antlr\Antlr4\Runtime\Error\Exceptions\FailedPredicateException;
1337748cd8SNickeau	use Antlr\Antlr4\Runtime\Error\Exceptions\NoViableAltException;
1437748cd8SNickeau	use Antlr\Antlr4\Runtime\PredictionContexts\PredictionContextCache;
1537748cd8SNickeau	use Antlr\Antlr4\Runtime\Error\Exceptions\RecognitionException;
1637748cd8SNickeau	use Antlr\Antlr4\Runtime\RuleContext;
1737748cd8SNickeau	use Antlr\Antlr4\Runtime\Token;
1837748cd8SNickeau	use Antlr\Antlr4\Runtime\TokenStream;
1937748cd8SNickeau	use Antlr\Antlr4\Runtime\Vocabulary;
2037748cd8SNickeau	use Antlr\Antlr4\Runtime\VocabularyImpl;
2137748cd8SNickeau	use Antlr\Antlr4\Runtime\RuntimeMetaData;
2237748cd8SNickeau	use Antlr\Antlr4\Runtime\Parser;
2337748cd8SNickeau
2437748cd8SNickeau	final class PageSqlParser extends Parser
2537748cd8SNickeau	{
2637748cd8SNickeau		public const SCOL = 1, DOT = 2, LPAREN = 3, RPAREN = 4, LSQUARE = 5, RSQUARE = 6,
2737748cd8SNickeau               LCURLY = 7, RCURLY = 8, COMMA = 9, BITWISEXOR = 10, DOLLAR = 11,
2837748cd8SNickeau               EQUAL = 12, STAR = 13, PLUS = 14, MINUS = 15, TILDE = 16,
2937748cd8SNickeau               PIPE2 = 17, DIV = 18, MOD = 19, LT2 = 20, GT2 = 21, AMP = 22,
3037748cd8SNickeau               PIPE = 23, QUESTION = 24, LESS_THAN = 25, LESS_THAN_OR_EQUAL = 26,
3137748cd8SNickeau               GREATER_THAN = 27, GREATER_THAN_OR_EQUAL = 28, EQ = 29, NOT_EQUAL = 30,
3237748cd8SNickeau               NOT_EQ2 = 31, AND = 32, AS = 33, ASC = 34, BETWEEN = 35,
3337748cd8SNickeau               BY = 36, DESC = 37, ESCAPE = 38, FALSE = 39, FROM = 40, GLOB = 41,
3437748cd8SNickeau               IN = 42, IS = 43, ISNULL = 44, LIKE = 45, LIMIT = 46, NOT = 47,
3537748cd8SNickeau               NOTNULL = 48, NOW = 49, NULL = 50, OR = 51, ORDER = 52, SELECT = 53,
3637748cd8SNickeau               TRUE = 54, WHERE = 55, RANDOM = 56, DATE = 57, DATETIME = 58,
37*04fd306cSNickeau               PAGES = 59, BACKLINKS = 60, DESCENDANTS = 61, StringLiteral = 62,
38*04fd306cSNickeau               CharSetLiteral = 63, IntegralLiteral = 64, Number = 65, NumberLiteral = 66,
39*04fd306cSNickeau               ByteLengthLiteral = 67, SqlName = 68, SPACES = 69;
4037748cd8SNickeau
4137748cd8SNickeau		public const RULE_functionNames = 0, RULE_tableNames = 1, RULE_sqlNames = 2,
4237748cd8SNickeau               RULE_column = 3, RULE_pattern = 4, RULE_expression = 5, RULE_predicate = 6,
43*04fd306cSNickeau               RULE_columns = 7, RULE_predicateGroup = 8, RULE_predicates = 9,
44*04fd306cSNickeau               RULE_tables = 10, RULE_limit = 11, RULE_orderBys = 12, RULE_orderByDef = 13,
45*04fd306cSNickeau               RULE_pageSql = 14;
4637748cd8SNickeau
4737748cd8SNickeau		/**
4837748cd8SNickeau		 * @var array<string>
4937748cd8SNickeau		 */
5037748cd8SNickeau		public const RULE_NAMES = [
5137748cd8SNickeau			'functionNames', 'tableNames', 'sqlNames', 'column', 'pattern', 'expression',
52*04fd306cSNickeau			'predicate', 'columns', 'predicateGroup', 'predicates', 'tables', 'limit',
53*04fd306cSNickeau			'orderBys', 'orderByDef', 'pageSql'
5437748cd8SNickeau		];
5537748cd8SNickeau
5637748cd8SNickeau		/**
5737748cd8SNickeau		 * @var array<string|null>
5837748cd8SNickeau		 */
5937748cd8SNickeau		private const LITERAL_NAMES = [
6037748cd8SNickeau		    null, "';'", "'.'", "'('", "')'", "'['", "']'", "'{'", "'}'", "','",
6137748cd8SNickeau		    "'^'", "'\$'", "'='", "'*'", "'+'", "'-'", "'~'", "'||'", "'/'", "'%'",
6237748cd8SNickeau		    "'<<'", "'>>'", "'&'", "'|'", "'?'", "'<'", "'<='", "'>'", "'>='",
6337748cd8SNickeau		    "'=='", "'!='", "'<>'"
6437748cd8SNickeau		];
6537748cd8SNickeau
6637748cd8SNickeau		/**
6737748cd8SNickeau		 * @var array<string>
6837748cd8SNickeau		 */
6937748cd8SNickeau		private const SYMBOLIC_NAMES = [
7037748cd8SNickeau		    null, "SCOL", "DOT", "LPAREN", "RPAREN", "LSQUARE", "RSQUARE", "LCURLY",
7137748cd8SNickeau		    "RCURLY", "COMMA", "BITWISEXOR", "DOLLAR", "EQUAL", "STAR", "PLUS",
7237748cd8SNickeau		    "MINUS", "TILDE", "PIPE2", "DIV", "MOD", "LT2", "GT2", "AMP", "PIPE",
7337748cd8SNickeau		    "QUESTION", "LESS_THAN", "LESS_THAN_OR_EQUAL", "GREATER_THAN", "GREATER_THAN_OR_EQUAL",
7437748cd8SNickeau		    "EQ", "NOT_EQUAL", "NOT_EQ2", "AND", "AS", "ASC", "BETWEEN", "BY",
7537748cd8SNickeau		    "DESC", "ESCAPE", "FALSE", "FROM", "GLOB", "IN", "IS", "ISNULL", "LIKE",
7637748cd8SNickeau		    "LIMIT", "NOT", "NOTNULL", "NOW", "NULL", "OR", "ORDER", "SELECT",
7737748cd8SNickeau		    "TRUE", "WHERE", "RANDOM", "DATE", "DATETIME", "PAGES", "BACKLINKS",
78*04fd306cSNickeau		    "DESCENDANTS", "StringLiteral", "CharSetLiteral", "IntegralLiteral",
79*04fd306cSNickeau		    "Number", "NumberLiteral", "ByteLengthLiteral", "SqlName", "SPACES"
8037748cd8SNickeau		];
8137748cd8SNickeau
8237748cd8SNickeau		/**
8337748cd8SNickeau		 * @var string
8437748cd8SNickeau		 */
8537748cd8SNickeau		private const SERIALIZED_ATN =
8637748cd8SNickeau			"\u{3}\u{608B}\u{A72A}\u{8133}\u{B9ED}\u{417C}\u{3BE7}\u{7786}\u{5964}" .
87*04fd306cSNickeau		    "\u{3}\u{47}\u{BD}\u{4}\u{2}\u{9}\u{2}\u{4}\u{3}\u{9}\u{3}\u{4}\u{4}" .
8837748cd8SNickeau		    "\u{9}\u{4}\u{4}\u{5}\u{9}\u{5}\u{4}\u{6}\u{9}\u{6}\u{4}\u{7}\u{9}" .
8937748cd8SNickeau		    "\u{7}\u{4}\u{8}\u{9}\u{8}\u{4}\u{9}\u{9}\u{9}\u{4}\u{A}\u{9}\u{A}" .
9037748cd8SNickeau		    "\u{4}\u{B}\u{9}\u{B}\u{4}\u{C}\u{9}\u{C}\u{4}\u{D}\u{9}\u{D}\u{4}" .
91*04fd306cSNickeau		    "\u{E}\u{9}\u{E}\u{4}\u{F}\u{9}\u{F}\u{4}\u{10}\u{9}\u{10}\u{3}\u{2}" .
92*04fd306cSNickeau		    "\u{3}\u{2}\u{3}\u{3}\u{3}\u{3}\u{3}\u{4}\u{3}\u{4}\u{3}\u{5}\u{3}" .
93*04fd306cSNickeau		    "\u{5}\u{3}\u{5}\u{5}\u{5}\u{2A}\u{A}\u{5}\u{3}\u{5}\u{3}\u{5}\u{3}" .
94*04fd306cSNickeau		    "\u{5}\u{5}\u{5}\u{2F}\u{A}\u{5}\u{5}\u{5}\u{31}\u{A}\u{5}\u{3}\u{6}" .
95*04fd306cSNickeau		    "\u{3}\u{6}\u{3}\u{7}\u{3}\u{7}\u{3}\u{7}\u{3}\u{7}\u{5}\u{7}\u{39}" .
96*04fd306cSNickeau		    "\u{A}\u{7}\u{3}\u{7}\u{3}\u{7}\u{7}\u{7}\u{3D}\u{A}\u{7}\u{C}\u{7}" .
97*04fd306cSNickeau		    "\u{E}\u{7}\u{40}\u{B}\u{7}\u{3}\u{7}\u{3}\u{7}\u{5}\u{7}\u{44}\u{A}" .
98*04fd306cSNickeau		    "\u{7}\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{5}\u{8}\u{4A}\u{A}" .
99*04fd306cSNickeau		    "\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{5}\u{8}\u{50}\u{A}" .
100*04fd306cSNickeau		    "\u{8}\u{3}\u{8}\u{3}\u{8}\u{5}\u{8}\u{54}\u{A}\u{8}\u{3}\u{8}\u{5}" .
101*04fd306cSNickeau		    "\u{8}\u{57}\u{A}\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}" .
102*04fd306cSNickeau		    "\u{8}\u{3}\u{8}\u{5}\u{8}\u{5F}\u{A}\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}" .
103*04fd306cSNickeau		    "\u{8}\u{3}\u{8}\u{3}\u{8}\u{7}\u{8}\u{66}\u{A}\u{8}\u{C}\u{8}\u{E}" .
104*04fd306cSNickeau		    "\u{8}\u{69}\u{B}\u{8}\u{5}\u{8}\u{6B}\u{A}\u{8}\u{3}\u{8}\u{5}\u{8}" .
105*04fd306cSNickeau		    "\u{6E}\u{A}\u{8}\u{3}\u{9}\u{3}\u{9}\u{3}\u{9}\u{7}\u{9}\u{73}\u{A}" .
106*04fd306cSNickeau		    "\u{9}\u{C}\u{9}\u{E}\u{9}\u{76}\u{B}\u{9}\u{3}\u{A}\u{3}\u{A}\u{3}" .
107*04fd306cSNickeau		    "\u{A}\u{3}\u{A}\u{7}\u{A}\u{7C}\u{A}\u{A}\u{C}\u{A}\u{E}\u{A}\u{7F}" .
108*04fd306cSNickeau		    "\u{B}\u{A}\u{3}\u{A}\u{3}\u{A}\u{3}\u{B}\u{3}\u{B}\u{3}\u{B}\u{5}" .
109*04fd306cSNickeau		    "\u{B}\u{86}\u{A}\u{B}\u{3}\u{B}\u{3}\u{B}\u{3}\u{B}\u{5}\u{B}\u{8B}" .
110*04fd306cSNickeau		    "\u{A}\u{B}\u{7}\u{B}\u{8D}\u{A}\u{B}\u{C}\u{B}\u{E}\u{B}\u{90}\u{B}" .
111*04fd306cSNickeau		    "\u{B}\u{3}\u{C}\u{3}\u{C}\u{3}\u{C}\u{3}\u{D}\u{3}\u{D}\u{3}\u{D}" .
112*04fd306cSNickeau		    "\u{3}\u{E}\u{3}\u{E}\u{3}\u{E}\u{3}\u{E}\u{3}\u{E}\u{3}\u{E}\u{7}" .
113*04fd306cSNickeau		    "\u{E}\u{9E}\u{A}\u{E}\u{C}\u{E}\u{E}\u{E}\u{A1}\u{B}\u{E}\u{5}\u{E}" .
114*04fd306cSNickeau		    "\u{A3}\u{A}\u{E}\u{3}\u{F}\u{3}\u{F}\u{5}\u{F}\u{A7}\u{A}\u{F}\u{3}" .
115*04fd306cSNickeau		    "\u{10}\u{3}\u{10}\u{5}\u{10}\u{AB}\u{A}\u{10}\u{3}\u{10}\u{3}\u{10}" .
116*04fd306cSNickeau		    "\u{5}\u{10}\u{AF}\u{A}\u{10}\u{3}\u{10}\u{5}\u{10}\u{B2}\u{A}\u{10}" .
117*04fd306cSNickeau		    "\u{3}\u{10}\u{5}\u{10}\u{B5}\u{A}\u{10}\u{3}\u{10}\u{5}\u{10}\u{B8}" .
118*04fd306cSNickeau		    "\u{A}\u{10}\u{3}\u{10}\u{5}\u{10}\u{BB}\u{A}\u{10}\u{3}\u{10}\u{2}" .
119*04fd306cSNickeau		    "\u{2}\u{11}\u{2}\u{4}\u{6}\u{8}\u{A}\u{C}\u{E}\u{10}\u{12}\u{14}\u{16}" .
120*04fd306cSNickeau		    "\u{18}\u{1A}\u{1C}\u{1E}\u{2}\u{A}\u{3}\u{2}\u{3B}\u{3C}\u{3}\u{2}" .
121*04fd306cSNickeau		    "\u{3D}\u{3F}\u{4}\u{2}\u{43}\u{43}\u{46}\u{46}\u{4}\u{2}\u{40}\u{40}" .
122*04fd306cSNickeau		    "\u{44}\u{44}\u{5}\u{2}\u{40}\u{40}\u{43}\u{44}\u{46}\u{46}\u{5}\u{2}" .
123*04fd306cSNickeau		    "\u{E}\u{E}\u{1B}\u{1E}\u{20}\u{20}\u{4}\u{2}\u{22}\u{22}\u{35}\u{35}" .
124*04fd306cSNickeau		    "\u{4}\u{2}\u{24}\u{24}\u{27}\u{27}\u{2}\u{CC}\u{2}\u{20}\u{3}\u{2}" .
125*04fd306cSNickeau		    "\u{2}\u{2}\u{4}\u{22}\u{3}\u{2}\u{2}\u{2}\u{6}\u{24}\u{3}\u{2}\u{2}" .
126*04fd306cSNickeau		    "\u{2}\u{8}\u{26}\u{3}\u{2}\u{2}\u{2}\u{A}\u{32}\u{3}\u{2}\u{2}\u{2}" .
127*04fd306cSNickeau		    "\u{C}\u{43}\u{3}\u{2}\u{2}\u{2}\u{E}\u{45}\u{3}\u{2}\u{2}\u{2}\u{10}" .
128*04fd306cSNickeau		    "\u{6F}\u{3}\u{2}\u{2}\u{2}\u{12}\u{77}\u{3}\u{2}\u{2}\u{2}\u{14}\u{82}" .
129*04fd306cSNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{16}\u{91}\u{3}\u{2}\u{2}\u{2}\u{18}\u{94}\u{3}" .
130*04fd306cSNickeau		    "\u{2}\u{2}\u{2}\u{1A}\u{97}\u{3}\u{2}\u{2}\u{2}\u{1C}\u{A4}\u{3}\u{2}" .
131*04fd306cSNickeau		    "\u{2}\u{2}\u{1E}\u{A8}\u{3}\u{2}\u{2}\u{2}\u{20}\u{21}\u{9}\u{2}\u{2}" .
132*04fd306cSNickeau		    "\u{2}\u{21}\u{3}\u{3}\u{2}\u{2}\u{2}\u{22}\u{23}\u{9}\u{3}\u{2}\u{2}" .
133*04fd306cSNickeau		    "\u{23}\u{5}\u{3}\u{2}\u{2}\u{2}\u{24}\u{25}\u{9}\u{4}\u{2}\u{2}\u{25}" .
134*04fd306cSNickeau		    "\u{7}\u{3}\u{2}\u{2}\u{2}\u{26}\u{29}\u{5}\u{6}\u{4}\u{2}\u{27}\u{28}" .
135*04fd306cSNickeau		    "\u{7}\u{4}\u{2}\u{2}\u{28}\u{2A}\u{5}\u{6}\u{4}\u{2}\u{29}\u{27}\u{3}" .
136*04fd306cSNickeau		    "\u{2}\u{2}\u{2}\u{29}\u{2A}\u{3}\u{2}\u{2}\u{2}\u{2A}\u{30}\u{3}\u{2}" .
137*04fd306cSNickeau		    "\u{2}\u{2}\u{2B}\u{2E}\u{7}\u{23}\u{2}\u{2}\u{2C}\u{2F}\u{5}\u{6}" .
138*04fd306cSNickeau		    "\u{4}\u{2}\u{2D}\u{2F}\u{7}\u{40}\u{2}\u{2}\u{2E}\u{2C}\u{3}\u{2}" .
139*04fd306cSNickeau		    "\u{2}\u{2}\u{2E}\u{2D}\u{3}\u{2}\u{2}\u{2}\u{2F}\u{31}\u{3}\u{2}\u{2}" .
140*04fd306cSNickeau		    "\u{2}\u{30}\u{2B}\u{3}\u{2}\u{2}\u{2}\u{30}\u{31}\u{3}\u{2}\u{2}\u{2}" .
141*04fd306cSNickeau		    "\u{31}\u{9}\u{3}\u{2}\u{2}\u{2}\u{32}\u{33}\u{9}\u{5}\u{2}\u{2}\u{33}" .
142*04fd306cSNickeau		    "\u{B}\u{3}\u{2}\u{2}\u{2}\u{34}\u{44}\u{9}\u{6}\u{2}\u{2}\u{35}\u{36}" .
143*04fd306cSNickeau		    "\u{5}\u{2}\u{2}\u{2}\u{36}\u{38}\u{7}\u{5}\u{2}\u{2}\u{37}\u{39}\u{5}" .
144*04fd306cSNickeau		    "\u{C}\u{7}\u{2}\u{38}\u{37}\u{3}\u{2}\u{2}\u{2}\u{38}\u{39}\u{3}\u{2}" .
145*04fd306cSNickeau		    "\u{2}\u{2}\u{39}\u{3E}\u{3}\u{2}\u{2}\u{2}\u{3A}\u{3B}\u{7}\u{B}\u{2}" .
146*04fd306cSNickeau		    "\u{2}\u{3B}\u{3D}\u{5}\u{C}\u{7}\u{2}\u{3C}\u{3A}\u{3}\u{2}\u{2}\u{2}" .
147*04fd306cSNickeau		    "\u{3D}\u{40}\u{3}\u{2}\u{2}\u{2}\u{3E}\u{3C}\u{3}\u{2}\u{2}\u{2}\u{3E}" .
148*04fd306cSNickeau		    "\u{3F}\u{3}\u{2}\u{2}\u{2}\u{3F}\u{41}\u{3}\u{2}\u{2}\u{2}\u{40}\u{3E}" .
149*04fd306cSNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{41}\u{42}\u{7}\u{6}\u{2}\u{2}\u{42}\u{44}\u{3}" .
150*04fd306cSNickeau		    "\u{2}\u{2}\u{2}\u{43}\u{34}\u{3}\u{2}\u{2}\u{2}\u{43}\u{35}\u{3}\u{2}" .
151*04fd306cSNickeau		    "\u{2}\u{2}\u{44}\u{D}\u{3}\u{2}\u{2}\u{2}\u{45}\u{6D}\u{5}\u{6}\u{4}" .
152*04fd306cSNickeau		    "\u{2}\u{46}\u{47}\u{9}\u{7}\u{2}\u{2}\u{47}\u{6E}\u{5}\u{C}\u{7}\u{2}" .
153*04fd306cSNickeau		    "\u{48}\u{4A}\u{7}\u{31}\u{2}\u{2}\u{49}\u{48}\u{3}\u{2}\u{2}\u{2}" .
154*04fd306cSNickeau		    "\u{49}\u{4A}\u{3}\u{2}\u{2}\u{2}\u{4A}\u{4B}\u{3}\u{2}\u{2}\u{2}\u{4B}" .
155*04fd306cSNickeau		    "\u{4C}\u{7}\u{2F}\u{2}\u{2}\u{4C}\u{4F}\u{5}\u{A}\u{6}\u{2}\u{4D}" .
156*04fd306cSNickeau		    "\u{4E}\u{7}\u{28}\u{2}\u{2}\u{4E}\u{50}\u{7}\u{40}\u{2}\u{2}\u{4F}" .
157*04fd306cSNickeau		    "\u{4D}\u{3}\u{2}\u{2}\u{2}\u{4F}\u{50}\u{3}\u{2}\u{2}\u{2}\u{50}\u{54}" .
158*04fd306cSNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{51}\u{52}\u{7}\u{2B}\u{2}\u{2}\u{52}\u{54}" .
159*04fd306cSNickeau		    "\u{5}\u{A}\u{6}\u{2}\u{53}\u{49}\u{3}\u{2}\u{2}\u{2}\u{53}\u{51}\u{3}" .
160*04fd306cSNickeau		    "\u{2}\u{2}\u{2}\u{54}\u{6E}\u{3}\u{2}\u{2}\u{2}\u{55}\u{57}\u{7}\u{31}" .
161*04fd306cSNickeau		    "\u{2}\u{2}\u{56}\u{55}\u{3}\u{2}\u{2}\u{2}\u{56}\u{57}\u{3}\u{2}\u{2}" .
162*04fd306cSNickeau		    "\u{2}\u{57}\u{58}\u{3}\u{2}\u{2}\u{2}\u{58}\u{59}\u{7}\u{25}\u{2}" .
163*04fd306cSNickeau		    "\u{2}\u{59}\u{5A}\u{5}\u{C}\u{7}\u{2}\u{5A}\u{5B}\u{7}\u{22}\u{2}" .
164*04fd306cSNickeau		    "\u{2}\u{5B}\u{5C}\u{5}\u{C}\u{7}\u{2}\u{5C}\u{6E}\u{3}\u{2}\u{2}\u{2}" .
165*04fd306cSNickeau		    "\u{5D}\u{5F}\u{7}\u{31}\u{2}\u{2}\u{5E}\u{5D}\u{3}\u{2}\u{2}\u{2}" .
166*04fd306cSNickeau		    "\u{5E}\u{5F}\u{3}\u{2}\u{2}\u{2}\u{5F}\u{60}\u{3}\u{2}\u{2}\u{2}\u{60}" .
167*04fd306cSNickeau		    "\u{61}\u{7}\u{2C}\u{2}\u{2}\u{61}\u{6A}\u{7}\u{5}\u{2}\u{2}\u{62}" .
168*04fd306cSNickeau		    "\u{67}\u{5}\u{C}\u{7}\u{2}\u{63}\u{64}\u{7}\u{B}\u{2}\u{2}\u{64}\u{66}" .
169*04fd306cSNickeau		    "\u{5}\u{C}\u{7}\u{2}\u{65}\u{63}\u{3}\u{2}\u{2}\u{2}\u{66}\u{69}\u{3}" .
170*04fd306cSNickeau		    "\u{2}\u{2}\u{2}\u{67}\u{65}\u{3}\u{2}\u{2}\u{2}\u{67}\u{68}\u{3}\u{2}" .
171*04fd306cSNickeau		    "\u{2}\u{2}\u{68}\u{6B}\u{3}\u{2}\u{2}\u{2}\u{69}\u{67}\u{3}\u{2}\u{2}" .
172*04fd306cSNickeau		    "\u{2}\u{6A}\u{62}\u{3}\u{2}\u{2}\u{2}\u{6A}\u{6B}\u{3}\u{2}\u{2}\u{2}" .
173*04fd306cSNickeau		    "\u{6B}\u{6C}\u{3}\u{2}\u{2}\u{2}\u{6C}\u{6E}\u{7}\u{6}\u{2}\u{2}\u{6D}" .
174*04fd306cSNickeau		    "\u{46}\u{3}\u{2}\u{2}\u{2}\u{6D}\u{53}\u{3}\u{2}\u{2}\u{2}\u{6D}\u{56}" .
175*04fd306cSNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{6D}\u{5E}\u{3}\u{2}\u{2}\u{2}\u{6E}\u{F}\u{3}" .
176*04fd306cSNickeau		    "\u{2}\u{2}\u{2}\u{6F}\u{74}\u{5}\u{8}\u{5}\u{2}\u{70}\u{71}\u{7}\u{B}" .
177*04fd306cSNickeau		    "\u{2}\u{2}\u{71}\u{73}\u{5}\u{8}\u{5}\u{2}\u{72}\u{70}\u{3}\u{2}\u{2}" .
178*04fd306cSNickeau		    "\u{2}\u{73}\u{76}\u{3}\u{2}\u{2}\u{2}\u{74}\u{72}\u{3}\u{2}\u{2}\u{2}" .
179*04fd306cSNickeau		    "\u{74}\u{75}\u{3}\u{2}\u{2}\u{2}\u{75}\u{11}\u{3}\u{2}\u{2}\u{2}\u{76}" .
180*04fd306cSNickeau		    "\u{74}\u{3}\u{2}\u{2}\u{2}\u{77}\u{78}\u{7}\u{5}\u{2}\u{2}\u{78}\u{7D}" .
181*04fd306cSNickeau		    "\u{5}\u{E}\u{8}\u{2}\u{79}\u{7A}\u{9}\u{8}\u{2}\u{2}\u{7A}\u{7C}\u{5}" .
182*04fd306cSNickeau		    "\u{E}\u{8}\u{2}\u{7B}\u{79}\u{3}\u{2}\u{2}\u{2}\u{7C}\u{7F}\u{3}\u{2}" .
183*04fd306cSNickeau		    "\u{2}\u{2}\u{7D}\u{7B}\u{3}\u{2}\u{2}\u{2}\u{7D}\u{7E}\u{3}\u{2}\u{2}" .
184*04fd306cSNickeau		    "\u{2}\u{7E}\u{80}\u{3}\u{2}\u{2}\u{2}\u{7F}\u{7D}\u{3}\u{2}\u{2}\u{2}" .
185*04fd306cSNickeau		    "\u{80}\u{81}\u{7}\u{6}\u{2}\u{2}\u{81}\u{13}\u{3}\u{2}\u{2}\u{2}\u{82}" .
186*04fd306cSNickeau		    "\u{85}\u{7}\u{39}\u{2}\u{2}\u{83}\u{86}\u{5}\u{E}\u{8}\u{2}\u{84}" .
187*04fd306cSNickeau		    "\u{86}\u{5}\u{12}\u{A}\u{2}\u{85}\u{83}\u{3}\u{2}\u{2}\u{2}\u{85}" .
188*04fd306cSNickeau		    "\u{84}\u{3}\u{2}\u{2}\u{2}\u{86}\u{8E}\u{3}\u{2}\u{2}\u{2}\u{87}\u{8A}" .
189*04fd306cSNickeau		    "\u{9}\u{8}\u{2}\u{2}\u{88}\u{8B}\u{5}\u{E}\u{8}\u{2}\u{89}\u{8B}\u{5}" .
190*04fd306cSNickeau		    "\u{12}\u{A}\u{2}\u{8A}\u{88}\u{3}\u{2}\u{2}\u{2}\u{8A}\u{89}\u{3}" .
191*04fd306cSNickeau		    "\u{2}\u{2}\u{2}\u{8B}\u{8D}\u{3}\u{2}\u{2}\u{2}\u{8C}\u{87}\u{3}\u{2}" .
192*04fd306cSNickeau		    "\u{2}\u{2}\u{8D}\u{90}\u{3}\u{2}\u{2}\u{2}\u{8E}\u{8C}\u{3}\u{2}\u{2}" .
193*04fd306cSNickeau		    "\u{2}\u{8E}\u{8F}\u{3}\u{2}\u{2}\u{2}\u{8F}\u{15}\u{3}\u{2}\u{2}\u{2}" .
194*04fd306cSNickeau		    "\u{90}\u{8E}\u{3}\u{2}\u{2}\u{2}\u{91}\u{92}\u{7}\u{2A}\u{2}\u{2}" .
195*04fd306cSNickeau		    "\u{92}\u{93}\u{5}\u{4}\u{3}\u{2}\u{93}\u{17}\u{3}\u{2}\u{2}\u{2}\u{94}" .
196*04fd306cSNickeau		    "\u{95}\u{7}\u{30}\u{2}\u{2}\u{95}\u{96}\u{7}\u{43}\u{2}\u{2}\u{96}" .
197*04fd306cSNickeau		    "\u{19}\u{3}\u{2}\u{2}\u{2}\u{97}\u{A2}\u{7}\u{36}\u{2}\u{2}\u{98}" .
198*04fd306cSNickeau		    "\u{A3}\u{7}\u{3A}\u{2}\u{2}\u{99}\u{9A}\u{7}\u{26}\u{2}\u{2}\u{9A}" .
199*04fd306cSNickeau		    "\u{9F}\u{5}\u{1C}\u{F}\u{2}\u{9B}\u{9C}\u{7}\u{B}\u{2}\u{2}\u{9C}" .
200*04fd306cSNickeau		    "\u{9E}\u{5}\u{1C}\u{F}\u{2}\u{9D}\u{9B}\u{3}\u{2}\u{2}\u{2}\u{9E}" .
201*04fd306cSNickeau		    "\u{A1}\u{3}\u{2}\u{2}\u{2}\u{9F}\u{9D}\u{3}\u{2}\u{2}\u{2}\u{9F}\u{A0}" .
202*04fd306cSNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{A0}\u{A3}\u{3}\u{2}\u{2}\u{2}\u{A1}\u{9F}\u{3}" .
203*04fd306cSNickeau		    "\u{2}\u{2}\u{2}\u{A2}\u{98}\u{3}\u{2}\u{2}\u{2}\u{A2}\u{99}\u{3}\u{2}" .
204*04fd306cSNickeau		    "\u{2}\u{2}\u{A3}\u{1B}\u{3}\u{2}\u{2}\u{2}\u{A4}\u{A6}\u{7}\u{46}" .
205*04fd306cSNickeau		    "\u{2}\u{2}\u{A5}\u{A7}\u{9}\u{9}\u{2}\u{2}\u{A6}\u{A5}\u{3}\u{2}\u{2}" .
206*04fd306cSNickeau		    "\u{2}\u{A6}\u{A7}\u{3}\u{2}\u{2}\u{2}\u{A7}\u{1D}\u{3}\u{2}\u{2}\u{2}" .
207*04fd306cSNickeau		    "\u{A8}\u{AA}\u{7}\u{37}\u{2}\u{2}\u{A9}\u{AB}\u{7}\u{3A}\u{2}\u{2}" .
208*04fd306cSNickeau		    "\u{AA}\u{A9}\u{3}\u{2}\u{2}\u{2}\u{AA}\u{AB}\u{3}\u{2}\u{2}\u{2}\u{AB}" .
209*04fd306cSNickeau		    "\u{AE}\u{3}\u{2}\u{2}\u{2}\u{AC}\u{AF}\u{7}\u{F}\u{2}\u{2}\u{AD}\u{AF}" .
210*04fd306cSNickeau		    "\u{5}\u{10}\u{9}\u{2}\u{AE}\u{AC}\u{3}\u{2}\u{2}\u{2}\u{AE}\u{AD}" .
211*04fd306cSNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{AE}\u{AF}\u{3}\u{2}\u{2}\u{2}\u{AF}\u{B1}\u{3}" .
212*04fd306cSNickeau		    "\u{2}\u{2}\u{2}\u{B0}\u{B2}\u{5}\u{16}\u{C}\u{2}\u{B1}\u{B0}\u{3}" .
213*04fd306cSNickeau		    "\u{2}\u{2}\u{2}\u{B1}\u{B2}\u{3}\u{2}\u{2}\u{2}\u{B2}\u{B4}\u{3}\u{2}" .
214*04fd306cSNickeau		    "\u{2}\u{2}\u{B3}\u{B5}\u{5}\u{14}\u{B}\u{2}\u{B4}\u{B3}\u{3}\u{2}" .
215*04fd306cSNickeau		    "\u{2}\u{2}\u{B4}\u{B5}\u{3}\u{2}\u{2}\u{2}\u{B5}\u{B7}\u{3}\u{2}\u{2}" .
216*04fd306cSNickeau		    "\u{2}\u{B6}\u{B8}\u{5}\u{1A}\u{E}\u{2}\u{B7}\u{B6}\u{3}\u{2}\u{2}" .
217*04fd306cSNickeau		    "\u{2}\u{B7}\u{B8}\u{3}\u{2}\u{2}\u{2}\u{B8}\u{BA}\u{3}\u{2}\u{2}\u{2}" .
218*04fd306cSNickeau		    "\u{B9}\u{BB}\u{5}\u{18}\u{D}\u{2}\u{BA}\u{B9}\u{3}\u{2}\u{2}\u{2}" .
219*04fd306cSNickeau		    "\u{BA}\u{BB}\u{3}\u{2}\u{2}\u{2}\u{BB}\u{1F}\u{3}\u{2}\u{2}\u{2}\u{1E}" .
220*04fd306cSNickeau		    "\u{29}\u{2E}\u{30}\u{38}\u{3E}\u{43}\u{49}\u{4F}\u{53}\u{56}\u{5E}" .
221*04fd306cSNickeau		    "\u{67}\u{6A}\u{6D}\u{74}\u{7D}\u{85}\u{8A}\u{8E}\u{9F}\u{A2}\u{A6}" .
222*04fd306cSNickeau		    "\u{AA}\u{AE}\u{B1}\u{B4}\u{B7}\u{BA}";
22337748cd8SNickeau
22437748cd8SNickeau		protected static $atn;
22537748cd8SNickeau		protected static $decisionToDFA;
22637748cd8SNickeau		protected static $sharedContextCache;
22737748cd8SNickeau
22837748cd8SNickeau		public function __construct(TokenStream $input)
22937748cd8SNickeau		{
23037748cd8SNickeau			parent::__construct($input);
23137748cd8SNickeau
23237748cd8SNickeau			self::initialize();
23337748cd8SNickeau
23437748cd8SNickeau			$this->interp = new ParserATNSimulator($this, self::$atn, self::$decisionToDFA, self::$sharedContextCache);
23537748cd8SNickeau		}
23637748cd8SNickeau
23737748cd8SNickeau		private static function initialize() : void
23837748cd8SNickeau		{
23937748cd8SNickeau			if (self::$atn !== null) {
24037748cd8SNickeau				return;
24137748cd8SNickeau			}
24237748cd8SNickeau
243*04fd306cSNickeau			RuntimeMetaData::checkVersion('4.9.3', RuntimeMetaData::VERSION);
24437748cd8SNickeau
24537748cd8SNickeau			$atn = (new ATNDeserializer())->deserialize(self::SERIALIZED_ATN);
24637748cd8SNickeau
24737748cd8SNickeau			$decisionToDFA = [];
24837748cd8SNickeau			for ($i = 0, $count = $atn->getNumberOfDecisions(); $i < $count; $i++) {
24937748cd8SNickeau				$decisionToDFA[] = new DFA($atn->getDecisionState($i), $i);
25037748cd8SNickeau			}
25137748cd8SNickeau
25237748cd8SNickeau			self::$atn = $atn;
25337748cd8SNickeau			self::$decisionToDFA = $decisionToDFA;
25437748cd8SNickeau			self::$sharedContextCache = new PredictionContextCache();
25537748cd8SNickeau		}
25637748cd8SNickeau
25737748cd8SNickeau		public function getGrammarFileName() : string
25837748cd8SNickeau		{
25937748cd8SNickeau			return "PageSql.g4";
26037748cd8SNickeau		}
26137748cd8SNickeau
26237748cd8SNickeau		public function getRuleNames() : array
26337748cd8SNickeau		{
26437748cd8SNickeau			return self::RULE_NAMES;
26537748cd8SNickeau		}
26637748cd8SNickeau
26737748cd8SNickeau		public function getSerializedATN() : string
26837748cd8SNickeau		{
26937748cd8SNickeau			return self::SERIALIZED_ATN;
27037748cd8SNickeau		}
27137748cd8SNickeau
27237748cd8SNickeau		public function getATN() : ATN
27337748cd8SNickeau		{
27437748cd8SNickeau			return self::$atn;
27537748cd8SNickeau		}
27637748cd8SNickeau
27737748cd8SNickeau		public function getVocabulary() : Vocabulary
27837748cd8SNickeau        {
27937748cd8SNickeau            static $vocabulary;
28037748cd8SNickeau
28137748cd8SNickeau			return $vocabulary = $vocabulary ?? new VocabularyImpl(self::LITERAL_NAMES, self::SYMBOLIC_NAMES);
28237748cd8SNickeau        }
28337748cd8SNickeau
28437748cd8SNickeau		/**
28537748cd8SNickeau		 * @throws RecognitionException
28637748cd8SNickeau		 */
28737748cd8SNickeau		public function functionNames() : Context\FunctionNamesContext
28837748cd8SNickeau		{
28937748cd8SNickeau		    $localContext = new Context\FunctionNamesContext($this->ctx, $this->getState());
29037748cd8SNickeau
29137748cd8SNickeau		    $this->enterRule($localContext, 0, self::RULE_functionNames);
29237748cd8SNickeau
29337748cd8SNickeau		    try {
29437748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
295*04fd306cSNickeau		        $this->setState(30);
29637748cd8SNickeau
29737748cd8SNickeau		        $_la = $this->input->LA(1);
29837748cd8SNickeau
29937748cd8SNickeau		        if (!($_la === self::DATE || $_la === self::DATETIME)) {
30037748cd8SNickeau		        $this->errorHandler->recoverInline($this);
30137748cd8SNickeau		        } else {
30237748cd8SNickeau		        	if ($this->input->LA(1) === Token::EOF) {
30337748cd8SNickeau		        	    $this->matchedEOF = true;
30437748cd8SNickeau		            }
30537748cd8SNickeau
30637748cd8SNickeau		        	$this->errorHandler->reportMatch($this);
30737748cd8SNickeau		        	$this->consume();
30837748cd8SNickeau		        }
30937748cd8SNickeau		    } catch (RecognitionException $exception) {
31037748cd8SNickeau		        $localContext->exception = $exception;
31137748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
31237748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
31337748cd8SNickeau		    } finally {
31437748cd8SNickeau		        $this->exitRule();
31537748cd8SNickeau		    }
31637748cd8SNickeau
31737748cd8SNickeau		    return $localContext;
31837748cd8SNickeau		}
31937748cd8SNickeau
32037748cd8SNickeau		/**
32137748cd8SNickeau		 * @throws RecognitionException
32237748cd8SNickeau		 */
32337748cd8SNickeau		public function tableNames() : Context\TableNamesContext
32437748cd8SNickeau		{
32537748cd8SNickeau		    $localContext = new Context\TableNamesContext($this->ctx, $this->getState());
32637748cd8SNickeau
32737748cd8SNickeau		    $this->enterRule($localContext, 2, self::RULE_tableNames);
32837748cd8SNickeau
32937748cd8SNickeau		    try {
33037748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
331*04fd306cSNickeau		        $this->setState(32);
33237748cd8SNickeau
33337748cd8SNickeau		        $_la = $this->input->LA(1);
33437748cd8SNickeau
335*04fd306cSNickeau		        if (!(((($_la) & ~0x3f) === 0 && ((1 << $_la) & ((1 << self::PAGES) | (1 << self::BACKLINKS) | (1 << self::DESCENDANTS))) !== 0))) {
33637748cd8SNickeau		        $this->errorHandler->recoverInline($this);
33737748cd8SNickeau		        } else {
33837748cd8SNickeau		        	if ($this->input->LA(1) === Token::EOF) {
33937748cd8SNickeau		        	    $this->matchedEOF = true;
34037748cd8SNickeau		            }
34137748cd8SNickeau
34237748cd8SNickeau		        	$this->errorHandler->reportMatch($this);
34337748cd8SNickeau		        	$this->consume();
34437748cd8SNickeau		        }
34537748cd8SNickeau		    } catch (RecognitionException $exception) {
34637748cd8SNickeau		        $localContext->exception = $exception;
34737748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
34837748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
34937748cd8SNickeau		    } finally {
35037748cd8SNickeau		        $this->exitRule();
35137748cd8SNickeau		    }
35237748cd8SNickeau
35337748cd8SNickeau		    return $localContext;
35437748cd8SNickeau		}
35537748cd8SNickeau
35637748cd8SNickeau		/**
35737748cd8SNickeau		 * @throws RecognitionException
35837748cd8SNickeau		 */
35937748cd8SNickeau		public function sqlNames() : Context\SqlNamesContext
36037748cd8SNickeau		{
36137748cd8SNickeau		    $localContext = new Context\SqlNamesContext($this->ctx, $this->getState());
36237748cd8SNickeau
36337748cd8SNickeau		    $this->enterRule($localContext, 4, self::RULE_sqlNames);
36437748cd8SNickeau
36537748cd8SNickeau		    try {
36637748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
367*04fd306cSNickeau		        $this->setState(34);
36837748cd8SNickeau
36937748cd8SNickeau		        $_la = $this->input->LA(1);
37037748cd8SNickeau
37137748cd8SNickeau		        if (!($_la === self::Number || $_la === self::SqlName)) {
37237748cd8SNickeau		        $this->errorHandler->recoverInline($this);
37337748cd8SNickeau		        } else {
37437748cd8SNickeau		        	if ($this->input->LA(1) === Token::EOF) {
37537748cd8SNickeau		        	    $this->matchedEOF = true;
37637748cd8SNickeau		            }
37737748cd8SNickeau
37837748cd8SNickeau		        	$this->errorHandler->reportMatch($this);
37937748cd8SNickeau		        	$this->consume();
38037748cd8SNickeau		        }
38137748cd8SNickeau		    } catch (RecognitionException $exception) {
38237748cd8SNickeau		        $localContext->exception = $exception;
38337748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
38437748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
38537748cd8SNickeau		    } finally {
38637748cd8SNickeau		        $this->exitRule();
38737748cd8SNickeau		    }
38837748cd8SNickeau
38937748cd8SNickeau		    return $localContext;
39037748cd8SNickeau		}
39137748cd8SNickeau
39237748cd8SNickeau		/**
39337748cd8SNickeau		 * @throws RecognitionException
39437748cd8SNickeau		 */
39537748cd8SNickeau		public function column() : Context\ColumnContext
39637748cd8SNickeau		{
39737748cd8SNickeau		    $localContext = new Context\ColumnContext($this->ctx, $this->getState());
39837748cd8SNickeau
39937748cd8SNickeau		    $this->enterRule($localContext, 6, self::RULE_column);
40037748cd8SNickeau
40137748cd8SNickeau		    try {
40237748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
403*04fd306cSNickeau		        $this->setState(36);
40437748cd8SNickeau		        $this->sqlNames();
405*04fd306cSNickeau		        $this->setState(39);
40637748cd8SNickeau		        $this->errorHandler->sync($this);
40737748cd8SNickeau		        $_la = $this->input->LA(1);
40837748cd8SNickeau
40937748cd8SNickeau		        if ($_la === self::DOT) {
410*04fd306cSNickeau		        	$this->setState(37);
41137748cd8SNickeau		        	$this->match(self::DOT);
412*04fd306cSNickeau		        	$this->setState(38);
41337748cd8SNickeau		        	$this->sqlNames();
41437748cd8SNickeau		        }
415*04fd306cSNickeau		        $this->setState(46);
41637748cd8SNickeau		        $this->errorHandler->sync($this);
41737748cd8SNickeau		        $_la = $this->input->LA(1);
41837748cd8SNickeau
41937748cd8SNickeau		        if ($_la === self::AS) {
420*04fd306cSNickeau		        	$this->setState(41);
42137748cd8SNickeau		        	$this->match(self::AS);
422*04fd306cSNickeau		        	$this->setState(44);
42337748cd8SNickeau		        	$this->errorHandler->sync($this);
42437748cd8SNickeau
42537748cd8SNickeau		        	switch ($this->input->LA(1)) {
42637748cd8SNickeau		        	    case self::Number:
42737748cd8SNickeau		        	    case self::SqlName:
428*04fd306cSNickeau		        	    	$this->setState(42);
42937748cd8SNickeau		        	    	$this->sqlNames();
43037748cd8SNickeau		        	    	break;
43137748cd8SNickeau
43237748cd8SNickeau		        	    case self::StringLiteral:
433*04fd306cSNickeau		        	    	$this->setState(43);
43437748cd8SNickeau		        	    	$this->match(self::StringLiteral);
43537748cd8SNickeau		        	    	break;
43637748cd8SNickeau
43737748cd8SNickeau		        	default:
43837748cd8SNickeau		        		throw new NoViableAltException($this);
43937748cd8SNickeau		        	}
44037748cd8SNickeau		        }
44137748cd8SNickeau		    } catch (RecognitionException $exception) {
44237748cd8SNickeau		        $localContext->exception = $exception;
44337748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
44437748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
44537748cd8SNickeau		    } finally {
44637748cd8SNickeau		        $this->exitRule();
44737748cd8SNickeau		    }
44837748cd8SNickeau
44937748cd8SNickeau		    return $localContext;
45037748cd8SNickeau		}
45137748cd8SNickeau
45237748cd8SNickeau		/**
45337748cd8SNickeau		 * @throws RecognitionException
45437748cd8SNickeau		 */
45537748cd8SNickeau		public function pattern() : Context\PatternContext
45637748cd8SNickeau		{
45737748cd8SNickeau		    $localContext = new Context\PatternContext($this->ctx, $this->getState());
45837748cd8SNickeau
45937748cd8SNickeau		    $this->enterRule($localContext, 8, self::RULE_pattern);
46037748cd8SNickeau
46137748cd8SNickeau		    try {
46237748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
463*04fd306cSNickeau		        $this->setState(48);
46437748cd8SNickeau
46537748cd8SNickeau		        $_la = $this->input->LA(1);
46637748cd8SNickeau
46737748cd8SNickeau		        if (!($_la === self::StringLiteral || $_la === self::NumberLiteral)) {
46837748cd8SNickeau		        $this->errorHandler->recoverInline($this);
46937748cd8SNickeau		        } else {
47037748cd8SNickeau		        	if ($this->input->LA(1) === Token::EOF) {
47137748cd8SNickeau		        	    $this->matchedEOF = true;
47237748cd8SNickeau		            }
47337748cd8SNickeau
47437748cd8SNickeau		        	$this->errorHandler->reportMatch($this);
47537748cd8SNickeau		        	$this->consume();
47637748cd8SNickeau		        }
47737748cd8SNickeau		    } catch (RecognitionException $exception) {
47837748cd8SNickeau		        $localContext->exception = $exception;
47937748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
48037748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
48137748cd8SNickeau		    } finally {
48237748cd8SNickeau		        $this->exitRule();
48337748cd8SNickeau		    }
48437748cd8SNickeau
48537748cd8SNickeau		    return $localContext;
48637748cd8SNickeau		}
48737748cd8SNickeau
48837748cd8SNickeau		/**
48937748cd8SNickeau		 * @throws RecognitionException
49037748cd8SNickeau		 */
49137748cd8SNickeau		public function expression() : Context\ExpressionContext
49237748cd8SNickeau		{
49337748cd8SNickeau		    $localContext = new Context\ExpressionContext($this->ctx, $this->getState());
49437748cd8SNickeau
49537748cd8SNickeau		    $this->enterRule($localContext, 10, self::RULE_expression);
49637748cd8SNickeau
49737748cd8SNickeau		    try {
498*04fd306cSNickeau		        $this->setState(65);
49937748cd8SNickeau		        $this->errorHandler->sync($this);
50037748cd8SNickeau
50137748cd8SNickeau		        switch ($this->input->LA(1)) {
50237748cd8SNickeau		            case self::StringLiteral:
50337748cd8SNickeau		            case self::Number:
50437748cd8SNickeau		            case self::NumberLiteral:
50537748cd8SNickeau		            case self::SqlName:
50637748cd8SNickeau		            	$this->enterOuterAlt($localContext, 1);
507*04fd306cSNickeau		            	$this->setState(50);
50837748cd8SNickeau
50937748cd8SNickeau		            	$_la = $this->input->LA(1);
51037748cd8SNickeau
511*04fd306cSNickeau		            	if (!((((($_la - 62)) & ~0x3f) === 0 && ((1 << ($_la - 62)) & ((1 << (self::StringLiteral - 62)) | (1 << (self::Number - 62)) | (1 << (self::NumberLiteral - 62)) | (1 << (self::SqlName - 62)))) !== 0))) {
51237748cd8SNickeau		            	$this->errorHandler->recoverInline($this);
51337748cd8SNickeau		            	} else {
51437748cd8SNickeau		            		if ($this->input->LA(1) === Token::EOF) {
51537748cd8SNickeau		            		    $this->matchedEOF = true;
51637748cd8SNickeau		            	    }
51737748cd8SNickeau
51837748cd8SNickeau		            		$this->errorHandler->reportMatch($this);
51937748cd8SNickeau		            		$this->consume();
52037748cd8SNickeau		            	}
52137748cd8SNickeau		            	break;
52237748cd8SNickeau
52337748cd8SNickeau		            case self::DATE:
52437748cd8SNickeau		            case self::DATETIME:
52537748cd8SNickeau		            	$this->enterOuterAlt($localContext, 2);
526*04fd306cSNickeau		            	$this->setState(51);
52737748cd8SNickeau		            	$this->functionNames();
52837748cd8SNickeau		            	$this->setState(52);
529*04fd306cSNickeau		            	$this->match(self::LPAREN);
530*04fd306cSNickeau		            	$this->setState(54);
53137748cd8SNickeau		            	$this->errorHandler->sync($this);
53237748cd8SNickeau		            	$_la = $this->input->LA(1);
53337748cd8SNickeau
53437748cd8SNickeau		            	if ((((($_la - 57)) & ~0x3f) === 0 && ((1 << ($_la - 57)) & ((1 << (self::DATE - 57)) | (1 << (self::DATETIME - 57)) | (1 << (self::StringLiteral - 57)) | (1 << (self::Number - 57)) | (1 << (self::NumberLiteral - 57)) | (1 << (self::SqlName - 57)))) !== 0)) {
535*04fd306cSNickeau		            		$this->setState(53);
53637748cd8SNickeau		            		$this->expression();
53737748cd8SNickeau		            	}
538*04fd306cSNickeau		            	$this->setState(60);
53937748cd8SNickeau		            	$this->errorHandler->sync($this);
54037748cd8SNickeau
54137748cd8SNickeau		            	$_la = $this->input->LA(1);
54237748cd8SNickeau		            	while ($_la === self::COMMA) {
543*04fd306cSNickeau		            		$this->setState(56);
54437748cd8SNickeau		            		$this->match(self::COMMA);
545*04fd306cSNickeau		            		$this->setState(57);
54637748cd8SNickeau		            		$this->expression();
547*04fd306cSNickeau		            		$this->setState(62);
54837748cd8SNickeau		            		$this->errorHandler->sync($this);
54937748cd8SNickeau		            		$_la = $this->input->LA(1);
55037748cd8SNickeau		            	}
551*04fd306cSNickeau		            	$this->setState(63);
55237748cd8SNickeau		            	$this->match(self::RPAREN);
55337748cd8SNickeau		            	break;
55437748cd8SNickeau
55537748cd8SNickeau		        default:
55637748cd8SNickeau		        	throw new NoViableAltException($this);
55737748cd8SNickeau		        }
55837748cd8SNickeau		    } catch (RecognitionException $exception) {
55937748cd8SNickeau		        $localContext->exception = $exception;
56037748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
56137748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
56237748cd8SNickeau		    } finally {
56337748cd8SNickeau		        $this->exitRule();
56437748cd8SNickeau		    }
56537748cd8SNickeau
56637748cd8SNickeau		    return $localContext;
56737748cd8SNickeau		}
56837748cd8SNickeau
56937748cd8SNickeau		/**
57037748cd8SNickeau		 * @throws RecognitionException
57137748cd8SNickeau		 */
57237748cd8SNickeau		public function predicate() : Context\PredicateContext
57337748cd8SNickeau		{
57437748cd8SNickeau		    $localContext = new Context\PredicateContext($this->ctx, $this->getState());
57537748cd8SNickeau
57637748cd8SNickeau		    $this->enterRule($localContext, 12, self::RULE_predicate);
57737748cd8SNickeau
57837748cd8SNickeau		    try {
57937748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
580*04fd306cSNickeau		        $this->setState(67);
58137748cd8SNickeau		        $this->sqlNames();
582*04fd306cSNickeau		        $this->setState(107);
58337748cd8SNickeau		        $this->errorHandler->sync($this);
58437748cd8SNickeau
58537748cd8SNickeau		        switch ($this->getInterpreter()->adaptivePredict($this->input, 13, $this->ctx)) {
58637748cd8SNickeau		        	case 1:
587*04fd306cSNickeau		        	    $this->setState(68);
58837748cd8SNickeau
58937748cd8SNickeau		        	    $_la = $this->input->LA(1);
59037748cd8SNickeau
59137748cd8SNickeau		        	    if (!(((($_la) & ~0x3f) === 0 && ((1 << $_la) & ((1 << self::EQUAL) | (1 << self::LESS_THAN) | (1 << self::LESS_THAN_OR_EQUAL) | (1 << self::GREATER_THAN) | (1 << self::GREATER_THAN_OR_EQUAL) | (1 << self::NOT_EQUAL))) !== 0))) {
59237748cd8SNickeau		        	    $this->errorHandler->recoverInline($this);
59337748cd8SNickeau		        	    } else {
59437748cd8SNickeau		        	    	if ($this->input->LA(1) === Token::EOF) {
59537748cd8SNickeau		        	    	    $this->matchedEOF = true;
59637748cd8SNickeau		        	        }
59737748cd8SNickeau
59837748cd8SNickeau		        	    	$this->errorHandler->reportMatch($this);
59937748cd8SNickeau		        	    	$this->consume();
60037748cd8SNickeau		        	    }
601*04fd306cSNickeau		        	    $this->setState(69);
60237748cd8SNickeau		        	    $this->expression();
60337748cd8SNickeau		        	break;
60437748cd8SNickeau
60537748cd8SNickeau		        	case 2:
606*04fd306cSNickeau		        	    $this->setState(81);
60737748cd8SNickeau		        	    $this->errorHandler->sync($this);
60837748cd8SNickeau
60937748cd8SNickeau		        	    switch ($this->input->LA(1)) {
61037748cd8SNickeau		        	        case self::LIKE:
61137748cd8SNickeau		        	        case self::NOT:
612*04fd306cSNickeau		        	        	$this->setState(71);
61337748cd8SNickeau		        	        	$this->errorHandler->sync($this);
61437748cd8SNickeau		        	        	$_la = $this->input->LA(1);
61537748cd8SNickeau
61637748cd8SNickeau		        	        	if ($_la === self::NOT) {
617*04fd306cSNickeau		        	        		$this->setState(70);
61837748cd8SNickeau		        	        		$this->match(self::NOT);
61937748cd8SNickeau		        	        	}
62037748cd8SNickeau
621*04fd306cSNickeau		        	        	$this->setState(73);
62237748cd8SNickeau		        	        	$this->match(self::LIKE);
623*04fd306cSNickeau		        	        	$this->setState(74);
62437748cd8SNickeau		        	        	$this->pattern();
625*04fd306cSNickeau		        	        	$this->setState(77);
62637748cd8SNickeau		        	        	$this->errorHandler->sync($this);
62737748cd8SNickeau		        	        	$_la = $this->input->LA(1);
62837748cd8SNickeau
62937748cd8SNickeau		        	        	if ($_la === self::ESCAPE) {
630*04fd306cSNickeau		        	        		$this->setState(75);
63137748cd8SNickeau		        	        		$this->match(self::ESCAPE);
632*04fd306cSNickeau		        	        		$this->setState(76);
63337748cd8SNickeau		        	        		$this->match(self::StringLiteral);
63437748cd8SNickeau		        	        	}
63537748cd8SNickeau		        	        	break;
63637748cd8SNickeau
63737748cd8SNickeau		        	        case self::GLOB:
638*04fd306cSNickeau		        	        	$this->setState(79);
63937748cd8SNickeau		        	        	$this->match(self::GLOB);
640*04fd306cSNickeau		        	        	$this->setState(80);
64137748cd8SNickeau		        	        	$this->pattern();
64237748cd8SNickeau		        	        	break;
64337748cd8SNickeau
64437748cd8SNickeau		        	    default:
64537748cd8SNickeau		        	    	throw new NoViableAltException($this);
64637748cd8SNickeau		        	    }
64737748cd8SNickeau		        	break;
64837748cd8SNickeau
64937748cd8SNickeau		        	case 3:
650*04fd306cSNickeau		        	    $this->setState(84);
65137748cd8SNickeau		        	    $this->errorHandler->sync($this);
65237748cd8SNickeau		        	    $_la = $this->input->LA(1);
65337748cd8SNickeau
65437748cd8SNickeau		        	    if ($_la === self::NOT) {
655*04fd306cSNickeau		        	    	$this->setState(83);
65637748cd8SNickeau		        	    	$this->match(self::NOT);
65737748cd8SNickeau		        	    }
65837748cd8SNickeau		        	    $this->setState(86);
659*04fd306cSNickeau		        	    $this->match(self::BETWEEN);
66037748cd8SNickeau		        	    $this->setState(87);
66137748cd8SNickeau		        	    $this->expression();
662*04fd306cSNickeau		        	    $this->setState(88);
663*04fd306cSNickeau		        	    $this->match(self::AND);
664*04fd306cSNickeau		        	    $this->setState(89);
665*04fd306cSNickeau		        	    $this->expression();
66637748cd8SNickeau		        	break;
66737748cd8SNickeau
66837748cd8SNickeau		        	case 4:
669*04fd306cSNickeau		        	    $this->setState(92);
67037748cd8SNickeau		        	    $this->errorHandler->sync($this);
67137748cd8SNickeau		        	    $_la = $this->input->LA(1);
67237748cd8SNickeau
67337748cd8SNickeau		        	    if ($_la === self::NOT) {
674*04fd306cSNickeau		        	    	$this->setState(91);
67537748cd8SNickeau		        	    	$this->match(self::NOT);
67637748cd8SNickeau		        	    }
677*04fd306cSNickeau		        	    $this->setState(94);
67837748cd8SNickeau		        	    $this->match(self::IN);
679*04fd306cSNickeau		        	    $this->setState(95);
68037748cd8SNickeau		        	    $this->match(self::LPAREN);
681*04fd306cSNickeau		        	    $this->setState(104);
68237748cd8SNickeau		        	    $this->errorHandler->sync($this);
68337748cd8SNickeau		        	    $_la = $this->input->LA(1);
68437748cd8SNickeau
68537748cd8SNickeau		        	    if ((((($_la - 57)) & ~0x3f) === 0 && ((1 << ($_la - 57)) & ((1 << (self::DATE - 57)) | (1 << (self::DATETIME - 57)) | (1 << (self::StringLiteral - 57)) | (1 << (self::Number - 57)) | (1 << (self::NumberLiteral - 57)) | (1 << (self::SqlName - 57)))) !== 0)) {
68637748cd8SNickeau		        	    	$this->setState(96);
68737748cd8SNickeau		        	    	$this->expression();
68837748cd8SNickeau		        	    	$this->setState(101);
68937748cd8SNickeau		        	    	$this->errorHandler->sync($this);
690*04fd306cSNickeau
691*04fd306cSNickeau		        	    	$_la = $this->input->LA(1);
692*04fd306cSNickeau		        	    	while ($_la === self::COMMA) {
693*04fd306cSNickeau		        	    		$this->setState(97);
694*04fd306cSNickeau		        	    		$this->match(self::COMMA);
695*04fd306cSNickeau		        	    		$this->setState(98);
696*04fd306cSNickeau		        	    		$this->expression();
697*04fd306cSNickeau		        	    		$this->setState(103);
698*04fd306cSNickeau		        	    		$this->errorHandler->sync($this);
69937748cd8SNickeau		        	    		$_la = $this->input->LA(1);
70037748cd8SNickeau		        	    	}
70137748cd8SNickeau		        	    }
702*04fd306cSNickeau		        	    $this->setState(106);
70337748cd8SNickeau		        	    $this->match(self::RPAREN);
70437748cd8SNickeau		        	break;
70537748cd8SNickeau		        }
70637748cd8SNickeau		    } catch (RecognitionException $exception) {
70737748cd8SNickeau		        $localContext->exception = $exception;
70837748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
70937748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
71037748cd8SNickeau		    } finally {
71137748cd8SNickeau		        $this->exitRule();
71237748cd8SNickeau		    }
71337748cd8SNickeau
71437748cd8SNickeau		    return $localContext;
71537748cd8SNickeau		}
71637748cd8SNickeau
71737748cd8SNickeau		/**
71837748cd8SNickeau		 * @throws RecognitionException
71937748cd8SNickeau		 */
72037748cd8SNickeau		public function columns() : Context\ColumnsContext
72137748cd8SNickeau		{
72237748cd8SNickeau		    $localContext = new Context\ColumnsContext($this->ctx, $this->getState());
72337748cd8SNickeau
72437748cd8SNickeau		    $this->enterRule($localContext, 14, self::RULE_columns);
72537748cd8SNickeau
72637748cd8SNickeau		    try {
72737748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
72837748cd8SNickeau		        $this->setState(109);
72937748cd8SNickeau		        $this->column();
73037748cd8SNickeau		        $this->setState(114);
73137748cd8SNickeau		        $this->errorHandler->sync($this);
732*04fd306cSNickeau
733*04fd306cSNickeau		        $_la = $this->input->LA(1);
734*04fd306cSNickeau		        while ($_la === self::COMMA) {
735*04fd306cSNickeau		        	$this->setState(110);
736*04fd306cSNickeau		        	$this->match(self::COMMA);
737*04fd306cSNickeau		        	$this->setState(111);
738*04fd306cSNickeau		        	$this->column();
739*04fd306cSNickeau		        	$this->setState(116);
740*04fd306cSNickeau		        	$this->errorHandler->sync($this);
74137748cd8SNickeau		        	$_la = $this->input->LA(1);
74237748cd8SNickeau		        }
74337748cd8SNickeau		    } catch (RecognitionException $exception) {
74437748cd8SNickeau		        $localContext->exception = $exception;
74537748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
74637748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
74737748cd8SNickeau		    } finally {
74837748cd8SNickeau		        $this->exitRule();
74937748cd8SNickeau		    }
75037748cd8SNickeau
75137748cd8SNickeau		    return $localContext;
75237748cd8SNickeau		}
75337748cd8SNickeau
75437748cd8SNickeau		/**
75537748cd8SNickeau		 * @throws RecognitionException
75637748cd8SNickeau		 */
757*04fd306cSNickeau		public function predicateGroup() : Context\PredicateGroupContext
758*04fd306cSNickeau		{
759*04fd306cSNickeau		    $localContext = new Context\PredicateGroupContext($this->ctx, $this->getState());
760*04fd306cSNickeau
761*04fd306cSNickeau		    $this->enterRule($localContext, 16, self::RULE_predicateGroup);
762*04fd306cSNickeau
763*04fd306cSNickeau		    try {
764*04fd306cSNickeau		        $this->enterOuterAlt($localContext, 1);
765*04fd306cSNickeau		        $this->setState(117);
766*04fd306cSNickeau		        $this->match(self::LPAREN);
767*04fd306cSNickeau		        $this->setState(118);
768*04fd306cSNickeau		        $this->predicate();
769*04fd306cSNickeau		        $this->setState(123);
770*04fd306cSNickeau		        $this->errorHandler->sync($this);
771*04fd306cSNickeau
772*04fd306cSNickeau		        $_la = $this->input->LA(1);
773*04fd306cSNickeau		        while ($_la === self::AND || $_la === self::OR) {
774*04fd306cSNickeau		        	$this->setState(119);
775*04fd306cSNickeau
776*04fd306cSNickeau		        	$_la = $this->input->LA(1);
777*04fd306cSNickeau
778*04fd306cSNickeau		        	if (!($_la === self::AND || $_la === self::OR)) {
779*04fd306cSNickeau		        	$this->errorHandler->recoverInline($this);
780*04fd306cSNickeau		        	} else {
781*04fd306cSNickeau		        		if ($this->input->LA(1) === Token::EOF) {
782*04fd306cSNickeau		        		    $this->matchedEOF = true;
783*04fd306cSNickeau		        	    }
784*04fd306cSNickeau
785*04fd306cSNickeau		        		$this->errorHandler->reportMatch($this);
786*04fd306cSNickeau		        		$this->consume();
787*04fd306cSNickeau		        	}
788*04fd306cSNickeau		        	$this->setState(120);
789*04fd306cSNickeau		        	$this->predicate();
790*04fd306cSNickeau		        	$this->setState(125);
791*04fd306cSNickeau		        	$this->errorHandler->sync($this);
792*04fd306cSNickeau		        	$_la = $this->input->LA(1);
793*04fd306cSNickeau		        }
794*04fd306cSNickeau		        $this->setState(126);
795*04fd306cSNickeau		        $this->match(self::RPAREN);
796*04fd306cSNickeau		    } catch (RecognitionException $exception) {
797*04fd306cSNickeau		        $localContext->exception = $exception;
798*04fd306cSNickeau		        $this->errorHandler->reportError($this, $exception);
799*04fd306cSNickeau		        $this->errorHandler->recover($this, $exception);
800*04fd306cSNickeau		    } finally {
801*04fd306cSNickeau		        $this->exitRule();
802*04fd306cSNickeau		    }
803*04fd306cSNickeau
804*04fd306cSNickeau		    return $localContext;
805*04fd306cSNickeau		}
806*04fd306cSNickeau
807*04fd306cSNickeau		/**
808*04fd306cSNickeau		 * @throws RecognitionException
809*04fd306cSNickeau		 */
81037748cd8SNickeau		public function predicates() : Context\PredicatesContext
81137748cd8SNickeau		{
81237748cd8SNickeau		    $localContext = new Context\PredicatesContext($this->ctx, $this->getState());
81337748cd8SNickeau
814*04fd306cSNickeau		    $this->enterRule($localContext, 18, self::RULE_predicates);
81537748cd8SNickeau
81637748cd8SNickeau		    try {
81737748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
818*04fd306cSNickeau		        $this->setState(128);
81937748cd8SNickeau		        $this->match(self::WHERE);
820*04fd306cSNickeau		        $this->setState(131);
821*04fd306cSNickeau		        $this->errorHandler->sync($this);
822*04fd306cSNickeau
823*04fd306cSNickeau		        switch ($this->input->LA(1)) {
824*04fd306cSNickeau		            case self::Number:
825*04fd306cSNickeau		            case self::SqlName:
826*04fd306cSNickeau		            	$this->setState(129);
82737748cd8SNickeau		            	$this->predicate();
828*04fd306cSNickeau		            	break;
829*04fd306cSNickeau
830*04fd306cSNickeau		            case self::LPAREN:
831*04fd306cSNickeau		            	$this->setState(130);
832*04fd306cSNickeau		            	$this->predicateGroup();
833*04fd306cSNickeau		            	break;
834*04fd306cSNickeau
835*04fd306cSNickeau		        default:
836*04fd306cSNickeau		        	throw new NoViableAltException($this);
837*04fd306cSNickeau		        }
838*04fd306cSNickeau		        $this->setState(140);
83937748cd8SNickeau		        $this->errorHandler->sync($this);
84037748cd8SNickeau
84137748cd8SNickeau		        $_la = $this->input->LA(1);
84237748cd8SNickeau		        while ($_la === self::AND || $_la === self::OR) {
843*04fd306cSNickeau		        	$this->setState(133);
84437748cd8SNickeau
84537748cd8SNickeau		        	$_la = $this->input->LA(1);
84637748cd8SNickeau
84737748cd8SNickeau		        	if (!($_la === self::AND || $_la === self::OR)) {
84837748cd8SNickeau		        	$this->errorHandler->recoverInline($this);
84937748cd8SNickeau		        	} else {
85037748cd8SNickeau		        		if ($this->input->LA(1) === Token::EOF) {
85137748cd8SNickeau		        		    $this->matchedEOF = true;
85237748cd8SNickeau		        	    }
85337748cd8SNickeau
85437748cd8SNickeau		        		$this->errorHandler->reportMatch($this);
85537748cd8SNickeau		        		$this->consume();
85637748cd8SNickeau		        	}
857*04fd306cSNickeau		        	$this->setState(136);
858*04fd306cSNickeau		        	$this->errorHandler->sync($this);
859*04fd306cSNickeau
860*04fd306cSNickeau		        	switch ($this->input->LA(1)) {
861*04fd306cSNickeau		        	    case self::Number:
862*04fd306cSNickeau		        	    case self::SqlName:
863*04fd306cSNickeau		        	    	$this->setState(134);
86437748cd8SNickeau		        	    	$this->predicate();
865*04fd306cSNickeau		        	    	break;
866*04fd306cSNickeau
867*04fd306cSNickeau		        	    case self::LPAREN:
868*04fd306cSNickeau		        	    	$this->setState(135);
869*04fd306cSNickeau		        	    	$this->predicateGroup();
870*04fd306cSNickeau		        	    	break;
871*04fd306cSNickeau
872*04fd306cSNickeau		        	default:
873*04fd306cSNickeau		        		throw new NoViableAltException($this);
874*04fd306cSNickeau		        	}
875*04fd306cSNickeau		        	$this->setState(142);
87637748cd8SNickeau		        	$this->errorHandler->sync($this);
87737748cd8SNickeau		        	$_la = $this->input->LA(1);
87837748cd8SNickeau		        }
87937748cd8SNickeau		    } catch (RecognitionException $exception) {
88037748cd8SNickeau		        $localContext->exception = $exception;
88137748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
88237748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
88337748cd8SNickeau		    } finally {
88437748cd8SNickeau		        $this->exitRule();
88537748cd8SNickeau		    }
88637748cd8SNickeau
88737748cd8SNickeau		    return $localContext;
88837748cd8SNickeau		}
88937748cd8SNickeau
89037748cd8SNickeau		/**
89137748cd8SNickeau		 * @throws RecognitionException
89237748cd8SNickeau		 */
89337748cd8SNickeau		public function tables() : Context\TablesContext
89437748cd8SNickeau		{
89537748cd8SNickeau		    $localContext = new Context\TablesContext($this->ctx, $this->getState());
89637748cd8SNickeau
897*04fd306cSNickeau		    $this->enterRule($localContext, 20, self::RULE_tables);
89837748cd8SNickeau
89937748cd8SNickeau		    try {
90037748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
901*04fd306cSNickeau		        $this->setState(143);
90237748cd8SNickeau		        $this->match(self::FROM);
903*04fd306cSNickeau		        $this->setState(144);
90437748cd8SNickeau		        $this->tableNames();
90537748cd8SNickeau		    } catch (RecognitionException $exception) {
90637748cd8SNickeau		        $localContext->exception = $exception;
90737748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
90837748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
90937748cd8SNickeau		    } finally {
91037748cd8SNickeau		        $this->exitRule();
91137748cd8SNickeau		    }
91237748cd8SNickeau
91337748cd8SNickeau		    return $localContext;
91437748cd8SNickeau		}
91537748cd8SNickeau
91637748cd8SNickeau		/**
91737748cd8SNickeau		 * @throws RecognitionException
91837748cd8SNickeau		 */
91937748cd8SNickeau		public function limit() : Context\LimitContext
92037748cd8SNickeau		{
92137748cd8SNickeau		    $localContext = new Context\LimitContext($this->ctx, $this->getState());
92237748cd8SNickeau
923*04fd306cSNickeau		    $this->enterRule($localContext, 22, self::RULE_limit);
92437748cd8SNickeau
92537748cd8SNickeau		    try {
92637748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
927*04fd306cSNickeau		        $this->setState(146);
92837748cd8SNickeau		        $this->match(self::LIMIT);
929*04fd306cSNickeau		        $this->setState(147);
93037748cd8SNickeau		        $this->match(self::Number);
93137748cd8SNickeau		    } catch (RecognitionException $exception) {
93237748cd8SNickeau		        $localContext->exception = $exception;
93337748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
93437748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
93537748cd8SNickeau		    } finally {
93637748cd8SNickeau		        $this->exitRule();
93737748cd8SNickeau		    }
93837748cd8SNickeau
93937748cd8SNickeau		    return $localContext;
94037748cd8SNickeau		}
94137748cd8SNickeau
94237748cd8SNickeau		/**
94337748cd8SNickeau		 * @throws RecognitionException
94437748cd8SNickeau		 */
94537748cd8SNickeau		public function orderBys() : Context\OrderBysContext
94637748cd8SNickeau		{
94737748cd8SNickeau		    $localContext = new Context\OrderBysContext($this->ctx, $this->getState());
94837748cd8SNickeau
949*04fd306cSNickeau		    $this->enterRule($localContext, 24, self::RULE_orderBys);
95037748cd8SNickeau
95137748cd8SNickeau		    try {
95237748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
953*04fd306cSNickeau		        $this->setState(149);
95437748cd8SNickeau		        $this->match(self::ORDER);
955*04fd306cSNickeau		        $this->setState(160);
956*04fd306cSNickeau		        $this->errorHandler->sync($this);
957*04fd306cSNickeau
958*04fd306cSNickeau		        switch ($this->input->LA(1)) {
959*04fd306cSNickeau		            case self::RANDOM:
960*04fd306cSNickeau		            	$this->setState(150);
961*04fd306cSNickeau		            	$this->match(self::RANDOM);
962*04fd306cSNickeau		            	break;
963*04fd306cSNickeau
964*04fd306cSNickeau		            case self::BY:
965*04fd306cSNickeau		            	$this->setState(151);
96637748cd8SNickeau		            	$this->match(self::BY);
967*04fd306cSNickeau		            	$this->setState(152);
96837748cd8SNickeau		            	$this->orderByDef();
969*04fd306cSNickeau		            	$this->setState(157);
97037748cd8SNickeau		            	$this->errorHandler->sync($this);
97137748cd8SNickeau
97237748cd8SNickeau		            	$_la = $this->input->LA(1);
97337748cd8SNickeau		            	while ($_la === self::COMMA) {
974*04fd306cSNickeau		            		$this->setState(153);
97537748cd8SNickeau		            		$this->match(self::COMMA);
976*04fd306cSNickeau		            		$this->setState(154);
97737748cd8SNickeau		            		$this->orderByDef();
978*04fd306cSNickeau		            		$this->setState(159);
97937748cd8SNickeau		            		$this->errorHandler->sync($this);
98037748cd8SNickeau		            		$_la = $this->input->LA(1);
98137748cd8SNickeau		            	}
982*04fd306cSNickeau		            	break;
983*04fd306cSNickeau
984*04fd306cSNickeau		        default:
985*04fd306cSNickeau		        	throw new NoViableAltException($this);
986*04fd306cSNickeau		        }
98737748cd8SNickeau		    } catch (RecognitionException $exception) {
98837748cd8SNickeau		        $localContext->exception = $exception;
98937748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
99037748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
99137748cd8SNickeau		    } finally {
99237748cd8SNickeau		        $this->exitRule();
99337748cd8SNickeau		    }
99437748cd8SNickeau
99537748cd8SNickeau		    return $localContext;
99637748cd8SNickeau		}
99737748cd8SNickeau
99837748cd8SNickeau		/**
99937748cd8SNickeau		 * @throws RecognitionException
100037748cd8SNickeau		 */
100137748cd8SNickeau		public function orderByDef() : Context\OrderByDefContext
100237748cd8SNickeau		{
100337748cd8SNickeau		    $localContext = new Context\OrderByDefContext($this->ctx, $this->getState());
100437748cd8SNickeau
1005*04fd306cSNickeau		    $this->enterRule($localContext, 26, self::RULE_orderByDef);
100637748cd8SNickeau
100737748cd8SNickeau		    try {
100837748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
1009*04fd306cSNickeau		        $this->setState(162);
101037748cd8SNickeau		        $this->match(self::SqlName);
1011*04fd306cSNickeau		        $this->setState(164);
101237748cd8SNickeau		        $this->errorHandler->sync($this);
101337748cd8SNickeau		        $_la = $this->input->LA(1);
101437748cd8SNickeau
101537748cd8SNickeau		        if ($_la === self::ASC || $_la === self::DESC) {
1016*04fd306cSNickeau		        	$this->setState(163);
101737748cd8SNickeau
101837748cd8SNickeau		        	$_la = $this->input->LA(1);
101937748cd8SNickeau
102037748cd8SNickeau		        	if (!($_la === self::ASC || $_la === self::DESC)) {
102137748cd8SNickeau		        	$this->errorHandler->recoverInline($this);
102237748cd8SNickeau		        	} else {
102337748cd8SNickeau		        		if ($this->input->LA(1) === Token::EOF) {
102437748cd8SNickeau		        		    $this->matchedEOF = true;
102537748cd8SNickeau		        	    }
102637748cd8SNickeau
102737748cd8SNickeau		        		$this->errorHandler->reportMatch($this);
102837748cd8SNickeau		        		$this->consume();
102937748cd8SNickeau		        	}
103037748cd8SNickeau		        }
103137748cd8SNickeau		    } catch (RecognitionException $exception) {
103237748cd8SNickeau		        $localContext->exception = $exception;
103337748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
103437748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
103537748cd8SNickeau		    } finally {
103637748cd8SNickeau		        $this->exitRule();
103737748cd8SNickeau		    }
103837748cd8SNickeau
103937748cd8SNickeau		    return $localContext;
104037748cd8SNickeau		}
104137748cd8SNickeau
104237748cd8SNickeau		/**
104337748cd8SNickeau		 * @throws RecognitionException
104437748cd8SNickeau		 */
104537748cd8SNickeau		public function pageSql() : Context\PageSqlContext
104637748cd8SNickeau		{
104737748cd8SNickeau		    $localContext = new Context\PageSqlContext($this->ctx, $this->getState());
104837748cd8SNickeau
1049*04fd306cSNickeau		    $this->enterRule($localContext, 28, self::RULE_pageSql);
105037748cd8SNickeau
105137748cd8SNickeau		    try {
105237748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
1053*04fd306cSNickeau		        $this->setState(166);
105437748cd8SNickeau		        $this->match(self::SELECT);
1055*04fd306cSNickeau		        $this->setState(168);
105637748cd8SNickeau		        $this->errorHandler->sync($this);
105737748cd8SNickeau		        $_la = $this->input->LA(1);
105837748cd8SNickeau
105937748cd8SNickeau		        if ($_la === self::RANDOM) {
1060*04fd306cSNickeau		        	$this->setState(167);
106137748cd8SNickeau		        	$this->match(self::RANDOM);
106237748cd8SNickeau		        }
1063*04fd306cSNickeau		        $this->setState(172);
106437748cd8SNickeau		        $this->errorHandler->sync($this);
106537748cd8SNickeau
10661fa8c418SNickeau		        switch ($this->input->LA(1)) {
10671fa8c418SNickeau		            case self::STAR:
1068*04fd306cSNickeau		            	$this->setState(170);
10691fa8c418SNickeau		            	$this->match(self::STAR);
10701fa8c418SNickeau		            	break;
10711fa8c418SNickeau
10721fa8c418SNickeau		            case self::Number:
10731fa8c418SNickeau		            case self::SqlName:
1074*04fd306cSNickeau		            	$this->setState(171);
10751fa8c418SNickeau		            	$this->columns();
10761fa8c418SNickeau		            	break;
10771fa8c418SNickeau
10781fa8c418SNickeau		            case self::EOF:
10791fa8c418SNickeau		            case self::FROM:
10801fa8c418SNickeau		            case self::LIMIT:
10811fa8c418SNickeau		            case self::ORDER:
10821fa8c418SNickeau		            case self::WHERE:
10831fa8c418SNickeau		            	break;
10841fa8c418SNickeau
10851fa8c418SNickeau		        default:
10861fa8c418SNickeau		        	break;
108737748cd8SNickeau		        }
1088*04fd306cSNickeau		        $this->setState(175);
108937748cd8SNickeau		        $this->errorHandler->sync($this);
109037748cd8SNickeau		        $_la = $this->input->LA(1);
109137748cd8SNickeau
10921fa8c418SNickeau		        if ($_la === self::FROM) {
1093*04fd306cSNickeau		        	$this->setState(174);
10941fa8c418SNickeau		        	$this->tables();
109537748cd8SNickeau		        }
1096*04fd306cSNickeau		        $this->setState(178);
109737748cd8SNickeau		        $this->errorHandler->sync($this);
109837748cd8SNickeau		        $_la = $this->input->LA(1);
109937748cd8SNickeau
11001fa8c418SNickeau		        if ($_la === self::WHERE) {
1101*04fd306cSNickeau		        	$this->setState(177);
11021fa8c418SNickeau		        	$this->predicates();
110337748cd8SNickeau		        }
1104*04fd306cSNickeau		        $this->setState(181);
110537748cd8SNickeau		        $this->errorHandler->sync($this);
110637748cd8SNickeau		        $_la = $this->input->LA(1);
110737748cd8SNickeau
11081fa8c418SNickeau		        if ($_la === self::ORDER) {
1109*04fd306cSNickeau		        	$this->setState(180);
11101fa8c418SNickeau		        	$this->orderBys();
11111fa8c418SNickeau		        }
1112*04fd306cSNickeau		        $this->setState(184);
11131fa8c418SNickeau		        $this->errorHandler->sync($this);
11141fa8c418SNickeau		        $_la = $this->input->LA(1);
11151fa8c418SNickeau
11161fa8c418SNickeau		        if ($_la === self::LIMIT) {
1117*04fd306cSNickeau		        	$this->setState(183);
111837748cd8SNickeau		        	$this->limit();
111937748cd8SNickeau		        }
112037748cd8SNickeau		    } catch (RecognitionException $exception) {
112137748cd8SNickeau		        $localContext->exception = $exception;
112237748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
112337748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
112437748cd8SNickeau		    } finally {
112537748cd8SNickeau		        $this->exitRule();
112637748cd8SNickeau		    }
112737748cd8SNickeau
112837748cd8SNickeau		    return $localContext;
112937748cd8SNickeau		}
113037748cd8SNickeau	}
113137748cd8SNickeau}
113237748cd8SNickeau
113337748cd8SNickeaunamespace ComboStrap\PageSqlParser\Context {
113437748cd8SNickeau	use Antlr\Antlr4\Runtime\ParserRuleContext;
113537748cd8SNickeau	use Antlr\Antlr4\Runtime\Token;
113637748cd8SNickeau	use Antlr\Antlr4\Runtime\Tree\ParseTreeVisitor;
113737748cd8SNickeau	use Antlr\Antlr4\Runtime\Tree\TerminalNode;
113837748cd8SNickeau	use Antlr\Antlr4\Runtime\Tree\ParseTreeListener;
113937748cd8SNickeau	use ComboStrap\PageSqlParser\PageSqlParser;
114037748cd8SNickeau	use ComboStrap\PageSqlParser\PageSqlListener;
114137748cd8SNickeau
114237748cd8SNickeau	class FunctionNamesContext extends ParserRuleContext
114337748cd8SNickeau	{
114437748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
114537748cd8SNickeau		{
114637748cd8SNickeau			parent::__construct($parent, $invokingState);
114737748cd8SNickeau		}
114837748cd8SNickeau
114937748cd8SNickeau		public function getRuleIndex() : int
115037748cd8SNickeau		{
115137748cd8SNickeau		    return PageSqlParser::RULE_functionNames;
115237748cd8SNickeau	    }
115337748cd8SNickeau
115437748cd8SNickeau	    public function DATE() : ?TerminalNode
115537748cd8SNickeau	    {
115637748cd8SNickeau	        return $this->getToken(PageSqlParser::DATE, 0);
115737748cd8SNickeau	    }
115837748cd8SNickeau
115937748cd8SNickeau	    public function DATETIME() : ?TerminalNode
116037748cd8SNickeau	    {
116137748cd8SNickeau	        return $this->getToken(PageSqlParser::DATETIME, 0);
116237748cd8SNickeau	    }
116337748cd8SNickeau
116437748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
116537748cd8SNickeau		{
116637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
116737748cd8SNickeau			    $listener->enterFunctionNames($this);
116837748cd8SNickeau		    }
116937748cd8SNickeau		}
117037748cd8SNickeau
117137748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
117237748cd8SNickeau		{
117337748cd8SNickeau			if ($listener instanceof PageSqlListener) {
117437748cd8SNickeau			    $listener->exitFunctionNames($this);
117537748cd8SNickeau		    }
117637748cd8SNickeau		}
117737748cd8SNickeau	}
117837748cd8SNickeau
117937748cd8SNickeau	class TableNamesContext extends ParserRuleContext
118037748cd8SNickeau	{
118137748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
118237748cd8SNickeau		{
118337748cd8SNickeau			parent::__construct($parent, $invokingState);
118437748cd8SNickeau		}
118537748cd8SNickeau
118637748cd8SNickeau		public function getRuleIndex() : int
118737748cd8SNickeau		{
118837748cd8SNickeau		    return PageSqlParser::RULE_tableNames;
118937748cd8SNickeau	    }
119037748cd8SNickeau
11911fa8c418SNickeau	    public function PAGES() : ?TerminalNode
119237748cd8SNickeau	    {
11931fa8c418SNickeau	        return $this->getToken(PageSqlParser::PAGES, 0);
119437748cd8SNickeau	    }
119537748cd8SNickeau
11961fa8c418SNickeau	    public function BACKLINKS() : ?TerminalNode
119737748cd8SNickeau	    {
11981fa8c418SNickeau	        return $this->getToken(PageSqlParser::BACKLINKS, 0);
119937748cd8SNickeau	    }
120037748cd8SNickeau
1201*04fd306cSNickeau	    public function DESCENDANTS() : ?TerminalNode
1202*04fd306cSNickeau	    {
1203*04fd306cSNickeau	        return $this->getToken(PageSqlParser::DESCENDANTS, 0);
1204*04fd306cSNickeau	    }
1205*04fd306cSNickeau
120637748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
120737748cd8SNickeau		{
120837748cd8SNickeau			if ($listener instanceof PageSqlListener) {
120937748cd8SNickeau			    $listener->enterTableNames($this);
121037748cd8SNickeau		    }
121137748cd8SNickeau		}
121237748cd8SNickeau
121337748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
121437748cd8SNickeau		{
121537748cd8SNickeau			if ($listener instanceof PageSqlListener) {
121637748cd8SNickeau			    $listener->exitTableNames($this);
121737748cd8SNickeau		    }
121837748cd8SNickeau		}
121937748cd8SNickeau	}
122037748cd8SNickeau
122137748cd8SNickeau	class SqlNamesContext extends ParserRuleContext
122237748cd8SNickeau	{
122337748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
122437748cd8SNickeau		{
122537748cd8SNickeau			parent::__construct($parent, $invokingState);
122637748cd8SNickeau		}
122737748cd8SNickeau
122837748cd8SNickeau		public function getRuleIndex() : int
122937748cd8SNickeau		{
123037748cd8SNickeau		    return PageSqlParser::RULE_sqlNames;
123137748cd8SNickeau	    }
123237748cd8SNickeau
123337748cd8SNickeau	    public function SqlName() : ?TerminalNode
123437748cd8SNickeau	    {
123537748cd8SNickeau	        return $this->getToken(PageSqlParser::SqlName, 0);
123637748cd8SNickeau	    }
123737748cd8SNickeau
123837748cd8SNickeau	    public function Number() : ?TerminalNode
123937748cd8SNickeau	    {
124037748cd8SNickeau	        return $this->getToken(PageSqlParser::Number, 0);
124137748cd8SNickeau	    }
124237748cd8SNickeau
124337748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
124437748cd8SNickeau		{
124537748cd8SNickeau			if ($listener instanceof PageSqlListener) {
124637748cd8SNickeau			    $listener->enterSqlNames($this);
124737748cd8SNickeau		    }
124837748cd8SNickeau		}
124937748cd8SNickeau
125037748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
125137748cd8SNickeau		{
125237748cd8SNickeau			if ($listener instanceof PageSqlListener) {
125337748cd8SNickeau			    $listener->exitSqlNames($this);
125437748cd8SNickeau		    }
125537748cd8SNickeau		}
125637748cd8SNickeau	}
125737748cd8SNickeau
125837748cd8SNickeau	class ColumnContext extends ParserRuleContext
125937748cd8SNickeau	{
126037748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
126137748cd8SNickeau		{
126237748cd8SNickeau			parent::__construct($parent, $invokingState);
126337748cd8SNickeau		}
126437748cd8SNickeau
126537748cd8SNickeau		public function getRuleIndex() : int
126637748cd8SNickeau		{
126737748cd8SNickeau		    return PageSqlParser::RULE_column;
126837748cd8SNickeau	    }
126937748cd8SNickeau
127037748cd8SNickeau	    /**
127137748cd8SNickeau	     * @return array<SqlNamesContext>|SqlNamesContext|null
127237748cd8SNickeau	     */
127337748cd8SNickeau	    public function sqlNames(?int $index = null)
127437748cd8SNickeau	    {
127537748cd8SNickeau	    	if ($index === null) {
127637748cd8SNickeau	    		return $this->getTypedRuleContexts(SqlNamesContext::class);
127737748cd8SNickeau	    	}
127837748cd8SNickeau
127937748cd8SNickeau	        return $this->getTypedRuleContext(SqlNamesContext::class, $index);
128037748cd8SNickeau	    }
128137748cd8SNickeau
128237748cd8SNickeau	    public function DOT() : ?TerminalNode
128337748cd8SNickeau	    {
128437748cd8SNickeau	        return $this->getToken(PageSqlParser::DOT, 0);
128537748cd8SNickeau	    }
128637748cd8SNickeau
128737748cd8SNickeau	    public function AS() : ?TerminalNode
128837748cd8SNickeau	    {
128937748cd8SNickeau	        return $this->getToken(PageSqlParser::AS, 0);
129037748cd8SNickeau	    }
129137748cd8SNickeau
129237748cd8SNickeau	    public function StringLiteral() : ?TerminalNode
129337748cd8SNickeau	    {
129437748cd8SNickeau	        return $this->getToken(PageSqlParser::StringLiteral, 0);
129537748cd8SNickeau	    }
129637748cd8SNickeau
129737748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
129837748cd8SNickeau		{
129937748cd8SNickeau			if ($listener instanceof PageSqlListener) {
130037748cd8SNickeau			    $listener->enterColumn($this);
130137748cd8SNickeau		    }
130237748cd8SNickeau		}
130337748cd8SNickeau
130437748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
130537748cd8SNickeau		{
130637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
130737748cd8SNickeau			    $listener->exitColumn($this);
130837748cd8SNickeau		    }
130937748cd8SNickeau		}
131037748cd8SNickeau	}
131137748cd8SNickeau
131237748cd8SNickeau	class PatternContext extends ParserRuleContext
131337748cd8SNickeau	{
131437748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
131537748cd8SNickeau		{
131637748cd8SNickeau			parent::__construct($parent, $invokingState);
131737748cd8SNickeau		}
131837748cd8SNickeau
131937748cd8SNickeau		public function getRuleIndex() : int
132037748cd8SNickeau		{
132137748cd8SNickeau		    return PageSqlParser::RULE_pattern;
132237748cd8SNickeau	    }
132337748cd8SNickeau
132437748cd8SNickeau	    public function StringLiteral() : ?TerminalNode
132537748cd8SNickeau	    {
132637748cd8SNickeau	        return $this->getToken(PageSqlParser::StringLiteral, 0);
132737748cd8SNickeau	    }
132837748cd8SNickeau
132937748cd8SNickeau	    public function NumberLiteral() : ?TerminalNode
133037748cd8SNickeau	    {
133137748cd8SNickeau	        return $this->getToken(PageSqlParser::NumberLiteral, 0);
133237748cd8SNickeau	    }
133337748cd8SNickeau
133437748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
133537748cd8SNickeau		{
133637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
133737748cd8SNickeau			    $listener->enterPattern($this);
133837748cd8SNickeau		    }
133937748cd8SNickeau		}
134037748cd8SNickeau
134137748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
134237748cd8SNickeau		{
134337748cd8SNickeau			if ($listener instanceof PageSqlListener) {
134437748cd8SNickeau			    $listener->exitPattern($this);
134537748cd8SNickeau		    }
134637748cd8SNickeau		}
134737748cd8SNickeau	}
134837748cd8SNickeau
134937748cd8SNickeau	class ExpressionContext extends ParserRuleContext
135037748cd8SNickeau	{
135137748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
135237748cd8SNickeau		{
135337748cd8SNickeau			parent::__construct($parent, $invokingState);
135437748cd8SNickeau		}
135537748cd8SNickeau
135637748cd8SNickeau		public function getRuleIndex() : int
135737748cd8SNickeau		{
135837748cd8SNickeau		    return PageSqlParser::RULE_expression;
135937748cd8SNickeau	    }
136037748cd8SNickeau
136137748cd8SNickeau	    public function SqlName() : ?TerminalNode
136237748cd8SNickeau	    {
136337748cd8SNickeau	        return $this->getToken(PageSqlParser::SqlName, 0);
136437748cd8SNickeau	    }
136537748cd8SNickeau
136637748cd8SNickeau	    public function StringLiteral() : ?TerminalNode
136737748cd8SNickeau	    {
136837748cd8SNickeau	        return $this->getToken(PageSqlParser::StringLiteral, 0);
136937748cd8SNickeau	    }
137037748cd8SNickeau
137137748cd8SNickeau	    public function NumberLiteral() : ?TerminalNode
137237748cd8SNickeau	    {
137337748cd8SNickeau	        return $this->getToken(PageSqlParser::NumberLiteral, 0);
137437748cd8SNickeau	    }
137537748cd8SNickeau
137637748cd8SNickeau	    public function Number() : ?TerminalNode
137737748cd8SNickeau	    {
137837748cd8SNickeau	        return $this->getToken(PageSqlParser::Number, 0);
137937748cd8SNickeau	    }
138037748cd8SNickeau
138137748cd8SNickeau	    public function functionNames() : ?FunctionNamesContext
138237748cd8SNickeau	    {
138337748cd8SNickeau	    	return $this->getTypedRuleContext(FunctionNamesContext::class, 0);
138437748cd8SNickeau	    }
138537748cd8SNickeau
138637748cd8SNickeau	    public function LPAREN() : ?TerminalNode
138737748cd8SNickeau	    {
138837748cd8SNickeau	        return $this->getToken(PageSqlParser::LPAREN, 0);
138937748cd8SNickeau	    }
139037748cd8SNickeau
139137748cd8SNickeau	    public function RPAREN() : ?TerminalNode
139237748cd8SNickeau	    {
139337748cd8SNickeau	        return $this->getToken(PageSqlParser::RPAREN, 0);
139437748cd8SNickeau	    }
139537748cd8SNickeau
139637748cd8SNickeau	    /**
139737748cd8SNickeau	     * @return array<ExpressionContext>|ExpressionContext|null
139837748cd8SNickeau	     */
139937748cd8SNickeau	    public function expression(?int $index = null)
140037748cd8SNickeau	    {
140137748cd8SNickeau	    	if ($index === null) {
140237748cd8SNickeau	    		return $this->getTypedRuleContexts(ExpressionContext::class);
140337748cd8SNickeau	    	}
140437748cd8SNickeau
140537748cd8SNickeau	        return $this->getTypedRuleContext(ExpressionContext::class, $index);
140637748cd8SNickeau	    }
140737748cd8SNickeau
140837748cd8SNickeau	    /**
140937748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
141037748cd8SNickeau	     */
141137748cd8SNickeau	    public function COMMA(?int $index = null)
141237748cd8SNickeau	    {
141337748cd8SNickeau	    	if ($index === null) {
141437748cd8SNickeau	    		return $this->getTokens(PageSqlParser::COMMA);
141537748cd8SNickeau	    	}
141637748cd8SNickeau
141737748cd8SNickeau	        return $this->getToken(PageSqlParser::COMMA, $index);
141837748cd8SNickeau	    }
141937748cd8SNickeau
142037748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
142137748cd8SNickeau		{
142237748cd8SNickeau			if ($listener instanceof PageSqlListener) {
142337748cd8SNickeau			    $listener->enterExpression($this);
142437748cd8SNickeau		    }
142537748cd8SNickeau		}
142637748cd8SNickeau
142737748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
142837748cd8SNickeau		{
142937748cd8SNickeau			if ($listener instanceof PageSqlListener) {
143037748cd8SNickeau			    $listener->exitExpression($this);
143137748cd8SNickeau		    }
143237748cd8SNickeau		}
143337748cd8SNickeau	}
143437748cd8SNickeau
143537748cd8SNickeau	class PredicateContext extends ParserRuleContext
143637748cd8SNickeau	{
143737748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
143837748cd8SNickeau		{
143937748cd8SNickeau			parent::__construct($parent, $invokingState);
144037748cd8SNickeau		}
144137748cd8SNickeau
144237748cd8SNickeau		public function getRuleIndex() : int
144337748cd8SNickeau		{
144437748cd8SNickeau		    return PageSqlParser::RULE_predicate;
144537748cd8SNickeau	    }
144637748cd8SNickeau
144737748cd8SNickeau	    public function sqlNames() : ?SqlNamesContext
144837748cd8SNickeau	    {
144937748cd8SNickeau	    	return $this->getTypedRuleContext(SqlNamesContext::class, 0);
145037748cd8SNickeau	    }
145137748cd8SNickeau
145237748cd8SNickeau	    /**
145337748cd8SNickeau	     * @return array<ExpressionContext>|ExpressionContext|null
145437748cd8SNickeau	     */
145537748cd8SNickeau	    public function expression(?int $index = null)
145637748cd8SNickeau	    {
145737748cd8SNickeau	    	if ($index === null) {
145837748cd8SNickeau	    		return $this->getTypedRuleContexts(ExpressionContext::class);
145937748cd8SNickeau	    	}
146037748cd8SNickeau
146137748cd8SNickeau	        return $this->getTypedRuleContext(ExpressionContext::class, $index);
146237748cd8SNickeau	    }
146337748cd8SNickeau
146437748cd8SNickeau	    public function BETWEEN() : ?TerminalNode
146537748cd8SNickeau	    {
146637748cd8SNickeau	        return $this->getToken(PageSqlParser::BETWEEN, 0);
146737748cd8SNickeau	    }
146837748cd8SNickeau
146937748cd8SNickeau	    public function AND() : ?TerminalNode
147037748cd8SNickeau	    {
147137748cd8SNickeau	        return $this->getToken(PageSqlParser::AND, 0);
147237748cd8SNickeau	    }
147337748cd8SNickeau
147437748cd8SNickeau	    public function IN() : ?TerminalNode
147537748cd8SNickeau	    {
147637748cd8SNickeau	        return $this->getToken(PageSqlParser::IN, 0);
147737748cd8SNickeau	    }
147837748cd8SNickeau
147937748cd8SNickeau	    public function LPAREN() : ?TerminalNode
148037748cd8SNickeau	    {
148137748cd8SNickeau	        return $this->getToken(PageSqlParser::LPAREN, 0);
148237748cd8SNickeau	    }
148337748cd8SNickeau
148437748cd8SNickeau	    public function RPAREN() : ?TerminalNode
148537748cd8SNickeau	    {
148637748cd8SNickeau	        return $this->getToken(PageSqlParser::RPAREN, 0);
148737748cd8SNickeau	    }
148837748cd8SNickeau
148937748cd8SNickeau	    public function LESS_THAN() : ?TerminalNode
149037748cd8SNickeau	    {
149137748cd8SNickeau	        return $this->getToken(PageSqlParser::LESS_THAN, 0);
149237748cd8SNickeau	    }
149337748cd8SNickeau
149437748cd8SNickeau	    public function LESS_THAN_OR_EQUAL() : ?TerminalNode
149537748cd8SNickeau	    {
149637748cd8SNickeau	        return $this->getToken(PageSqlParser::LESS_THAN_OR_EQUAL, 0);
149737748cd8SNickeau	    }
149837748cd8SNickeau
149937748cd8SNickeau	    public function GREATER_THAN() : ?TerminalNode
150037748cd8SNickeau	    {
150137748cd8SNickeau	        return $this->getToken(PageSqlParser::GREATER_THAN, 0);
150237748cd8SNickeau	    }
150337748cd8SNickeau
150437748cd8SNickeau	    public function GREATER_THAN_OR_EQUAL() : ?TerminalNode
150537748cd8SNickeau	    {
150637748cd8SNickeau	        return $this->getToken(PageSqlParser::GREATER_THAN_OR_EQUAL, 0);
150737748cd8SNickeau	    }
150837748cd8SNickeau
150937748cd8SNickeau	    public function NOT_EQUAL() : ?TerminalNode
151037748cd8SNickeau	    {
151137748cd8SNickeau	        return $this->getToken(PageSqlParser::NOT_EQUAL, 0);
151237748cd8SNickeau	    }
151337748cd8SNickeau
151437748cd8SNickeau	    public function EQUAL() : ?TerminalNode
151537748cd8SNickeau	    {
151637748cd8SNickeau	        return $this->getToken(PageSqlParser::EQUAL, 0);
151737748cd8SNickeau	    }
151837748cd8SNickeau
151937748cd8SNickeau	    public function LIKE() : ?TerminalNode
152037748cd8SNickeau	    {
152137748cd8SNickeau	        return $this->getToken(PageSqlParser::LIKE, 0);
152237748cd8SNickeau	    }
152337748cd8SNickeau
152437748cd8SNickeau	    public function pattern() : ?PatternContext
152537748cd8SNickeau	    {
152637748cd8SNickeau	    	return $this->getTypedRuleContext(PatternContext::class, 0);
152737748cd8SNickeau	    }
152837748cd8SNickeau
152937748cd8SNickeau	    public function GLOB() : ?TerminalNode
153037748cd8SNickeau	    {
153137748cd8SNickeau	        return $this->getToken(PageSqlParser::GLOB, 0);
153237748cd8SNickeau	    }
153337748cd8SNickeau
153437748cd8SNickeau	    public function NOT() : ?TerminalNode
153537748cd8SNickeau	    {
153637748cd8SNickeau	        return $this->getToken(PageSqlParser::NOT, 0);
153737748cd8SNickeau	    }
153837748cd8SNickeau
153937748cd8SNickeau	    public function ESCAPE() : ?TerminalNode
154037748cd8SNickeau	    {
154137748cd8SNickeau	        return $this->getToken(PageSqlParser::ESCAPE, 0);
154237748cd8SNickeau	    }
154337748cd8SNickeau
154437748cd8SNickeau	    public function StringLiteral() : ?TerminalNode
154537748cd8SNickeau	    {
154637748cd8SNickeau	        return $this->getToken(PageSqlParser::StringLiteral, 0);
154737748cd8SNickeau	    }
154837748cd8SNickeau
154937748cd8SNickeau	    /**
155037748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
155137748cd8SNickeau	     */
155237748cd8SNickeau	    public function COMMA(?int $index = null)
155337748cd8SNickeau	    {
155437748cd8SNickeau	    	if ($index === null) {
155537748cd8SNickeau	    		return $this->getTokens(PageSqlParser::COMMA);
155637748cd8SNickeau	    	}
155737748cd8SNickeau
155837748cd8SNickeau	        return $this->getToken(PageSqlParser::COMMA, $index);
155937748cd8SNickeau	    }
156037748cd8SNickeau
156137748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
156237748cd8SNickeau		{
156337748cd8SNickeau			if ($listener instanceof PageSqlListener) {
156437748cd8SNickeau			    $listener->enterPredicate($this);
156537748cd8SNickeau		    }
156637748cd8SNickeau		}
156737748cd8SNickeau
156837748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
156937748cd8SNickeau		{
157037748cd8SNickeau			if ($listener instanceof PageSqlListener) {
157137748cd8SNickeau			    $listener->exitPredicate($this);
157237748cd8SNickeau		    }
157337748cd8SNickeau		}
157437748cd8SNickeau	}
157537748cd8SNickeau
157637748cd8SNickeau	class ColumnsContext extends ParserRuleContext
157737748cd8SNickeau	{
157837748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
157937748cd8SNickeau		{
158037748cd8SNickeau			parent::__construct($parent, $invokingState);
158137748cd8SNickeau		}
158237748cd8SNickeau
158337748cd8SNickeau		public function getRuleIndex() : int
158437748cd8SNickeau		{
158537748cd8SNickeau		    return PageSqlParser::RULE_columns;
158637748cd8SNickeau	    }
158737748cd8SNickeau
158837748cd8SNickeau	    /**
158937748cd8SNickeau	     * @return array<ColumnContext>|ColumnContext|null
159037748cd8SNickeau	     */
159137748cd8SNickeau	    public function column(?int $index = null)
159237748cd8SNickeau	    {
159337748cd8SNickeau	    	if ($index === null) {
159437748cd8SNickeau	    		return $this->getTypedRuleContexts(ColumnContext::class);
159537748cd8SNickeau	    	}
159637748cd8SNickeau
159737748cd8SNickeau	        return $this->getTypedRuleContext(ColumnContext::class, $index);
159837748cd8SNickeau	    }
159937748cd8SNickeau
160037748cd8SNickeau	    /**
160137748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
160237748cd8SNickeau	     */
160337748cd8SNickeau	    public function COMMA(?int $index = null)
160437748cd8SNickeau	    {
160537748cd8SNickeau	    	if ($index === null) {
160637748cd8SNickeau	    		return $this->getTokens(PageSqlParser::COMMA);
160737748cd8SNickeau	    	}
160837748cd8SNickeau
160937748cd8SNickeau	        return $this->getToken(PageSqlParser::COMMA, $index);
161037748cd8SNickeau	    }
161137748cd8SNickeau
161237748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
161337748cd8SNickeau		{
161437748cd8SNickeau			if ($listener instanceof PageSqlListener) {
161537748cd8SNickeau			    $listener->enterColumns($this);
161637748cd8SNickeau		    }
161737748cd8SNickeau		}
161837748cd8SNickeau
161937748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
162037748cd8SNickeau		{
162137748cd8SNickeau			if ($listener instanceof PageSqlListener) {
162237748cd8SNickeau			    $listener->exitColumns($this);
162337748cd8SNickeau		    }
162437748cd8SNickeau		}
162537748cd8SNickeau	}
162637748cd8SNickeau
1627*04fd306cSNickeau	class PredicateGroupContext extends ParserRuleContext
1628*04fd306cSNickeau	{
1629*04fd306cSNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
1630*04fd306cSNickeau		{
1631*04fd306cSNickeau			parent::__construct($parent, $invokingState);
1632*04fd306cSNickeau		}
1633*04fd306cSNickeau
1634*04fd306cSNickeau		public function getRuleIndex() : int
1635*04fd306cSNickeau		{
1636*04fd306cSNickeau		    return PageSqlParser::RULE_predicateGroup;
1637*04fd306cSNickeau	    }
1638*04fd306cSNickeau
1639*04fd306cSNickeau	    public function LPAREN() : ?TerminalNode
1640*04fd306cSNickeau	    {
1641*04fd306cSNickeau	        return $this->getToken(PageSqlParser::LPAREN, 0);
1642*04fd306cSNickeau	    }
1643*04fd306cSNickeau
1644*04fd306cSNickeau	    /**
1645*04fd306cSNickeau	     * @return array<PredicateContext>|PredicateContext|null
1646*04fd306cSNickeau	     */
1647*04fd306cSNickeau	    public function predicate(?int $index = null)
1648*04fd306cSNickeau	    {
1649*04fd306cSNickeau	    	if ($index === null) {
1650*04fd306cSNickeau	    		return $this->getTypedRuleContexts(PredicateContext::class);
1651*04fd306cSNickeau	    	}
1652*04fd306cSNickeau
1653*04fd306cSNickeau	        return $this->getTypedRuleContext(PredicateContext::class, $index);
1654*04fd306cSNickeau	    }
1655*04fd306cSNickeau
1656*04fd306cSNickeau	    public function RPAREN() : ?TerminalNode
1657*04fd306cSNickeau	    {
1658*04fd306cSNickeau	        return $this->getToken(PageSqlParser::RPAREN, 0);
1659*04fd306cSNickeau	    }
1660*04fd306cSNickeau
1661*04fd306cSNickeau	    /**
1662*04fd306cSNickeau	     * @return array<TerminalNode>|TerminalNode|null
1663*04fd306cSNickeau	     */
1664*04fd306cSNickeau	    public function AND(?int $index = null)
1665*04fd306cSNickeau	    {
1666*04fd306cSNickeau	    	if ($index === null) {
1667*04fd306cSNickeau	    		return $this->getTokens(PageSqlParser::AND);
1668*04fd306cSNickeau	    	}
1669*04fd306cSNickeau
1670*04fd306cSNickeau	        return $this->getToken(PageSqlParser::AND, $index);
1671*04fd306cSNickeau	    }
1672*04fd306cSNickeau
1673*04fd306cSNickeau	    /**
1674*04fd306cSNickeau	     * @return array<TerminalNode>|TerminalNode|null
1675*04fd306cSNickeau	     */
1676*04fd306cSNickeau	    public function OR(?int $index = null)
1677*04fd306cSNickeau	    {
1678*04fd306cSNickeau	    	if ($index === null) {
1679*04fd306cSNickeau	    		return $this->getTokens(PageSqlParser::OR);
1680*04fd306cSNickeau	    	}
1681*04fd306cSNickeau
1682*04fd306cSNickeau	        return $this->getToken(PageSqlParser::OR, $index);
1683*04fd306cSNickeau	    }
1684*04fd306cSNickeau
1685*04fd306cSNickeau		public function enterRule(ParseTreeListener $listener) : void
1686*04fd306cSNickeau		{
1687*04fd306cSNickeau			if ($listener instanceof PageSqlListener) {
1688*04fd306cSNickeau			    $listener->enterPredicateGroup($this);
1689*04fd306cSNickeau		    }
1690*04fd306cSNickeau		}
1691*04fd306cSNickeau
1692*04fd306cSNickeau		public function exitRule(ParseTreeListener $listener) : void
1693*04fd306cSNickeau		{
1694*04fd306cSNickeau			if ($listener instanceof PageSqlListener) {
1695*04fd306cSNickeau			    $listener->exitPredicateGroup($this);
1696*04fd306cSNickeau		    }
169737748cd8SNickeau		}
169837748cd8SNickeau	}
169937748cd8SNickeau
170037748cd8SNickeau	class PredicatesContext extends ParserRuleContext
170137748cd8SNickeau	{
170237748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
170337748cd8SNickeau		{
170437748cd8SNickeau			parent::__construct($parent, $invokingState);
170537748cd8SNickeau		}
170637748cd8SNickeau
170737748cd8SNickeau		public function getRuleIndex() : int
170837748cd8SNickeau		{
170937748cd8SNickeau		    return PageSqlParser::RULE_predicates;
171037748cd8SNickeau	    }
171137748cd8SNickeau
171237748cd8SNickeau	    public function WHERE() : ?TerminalNode
171337748cd8SNickeau	    {
171437748cd8SNickeau	        return $this->getToken(PageSqlParser::WHERE, 0);
171537748cd8SNickeau	    }
171637748cd8SNickeau
171737748cd8SNickeau	    /**
171837748cd8SNickeau	     * @return array<PredicateContext>|PredicateContext|null
171937748cd8SNickeau	     */
172037748cd8SNickeau	    public function predicate(?int $index = null)
172137748cd8SNickeau	    {
172237748cd8SNickeau	    	if ($index === null) {
172337748cd8SNickeau	    		return $this->getTypedRuleContexts(PredicateContext::class);
172437748cd8SNickeau	    	}
172537748cd8SNickeau
172637748cd8SNickeau	        return $this->getTypedRuleContext(PredicateContext::class, $index);
172737748cd8SNickeau	    }
172837748cd8SNickeau
172937748cd8SNickeau	    /**
1730*04fd306cSNickeau	     * @return array<PredicateGroupContext>|PredicateGroupContext|null
1731*04fd306cSNickeau	     */
1732*04fd306cSNickeau	    public function predicateGroup(?int $index = null)
1733*04fd306cSNickeau	    {
1734*04fd306cSNickeau	    	if ($index === null) {
1735*04fd306cSNickeau	    		return $this->getTypedRuleContexts(PredicateGroupContext::class);
1736*04fd306cSNickeau	    	}
1737*04fd306cSNickeau
1738*04fd306cSNickeau	        return $this->getTypedRuleContext(PredicateGroupContext::class, $index);
1739*04fd306cSNickeau	    }
1740*04fd306cSNickeau
1741*04fd306cSNickeau	    /**
174237748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
174337748cd8SNickeau	     */
174437748cd8SNickeau	    public function AND(?int $index = null)
174537748cd8SNickeau	    {
174637748cd8SNickeau	    	if ($index === null) {
174737748cd8SNickeau	    		return $this->getTokens(PageSqlParser::AND);
174837748cd8SNickeau	    	}
174937748cd8SNickeau
175037748cd8SNickeau	        return $this->getToken(PageSqlParser::AND, $index);
175137748cd8SNickeau	    }
175237748cd8SNickeau
175337748cd8SNickeau	    /**
175437748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
175537748cd8SNickeau	     */
175637748cd8SNickeau	    public function OR(?int $index = null)
175737748cd8SNickeau	    {
175837748cd8SNickeau	    	if ($index === null) {
175937748cd8SNickeau	    		return $this->getTokens(PageSqlParser::OR);
176037748cd8SNickeau	    	}
176137748cd8SNickeau
176237748cd8SNickeau	        return $this->getToken(PageSqlParser::OR, $index);
176337748cd8SNickeau	    }
176437748cd8SNickeau
176537748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
176637748cd8SNickeau		{
176737748cd8SNickeau			if ($listener instanceof PageSqlListener) {
176837748cd8SNickeau			    $listener->enterPredicates($this);
176937748cd8SNickeau		    }
177037748cd8SNickeau		}
177137748cd8SNickeau
177237748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
177337748cd8SNickeau		{
177437748cd8SNickeau			if ($listener instanceof PageSqlListener) {
177537748cd8SNickeau			    $listener->exitPredicates($this);
177637748cd8SNickeau		    }
177737748cd8SNickeau		}
177837748cd8SNickeau	}
177937748cd8SNickeau
178037748cd8SNickeau	class TablesContext extends ParserRuleContext
178137748cd8SNickeau	{
178237748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
178337748cd8SNickeau		{
178437748cd8SNickeau			parent::__construct($parent, $invokingState);
178537748cd8SNickeau		}
178637748cd8SNickeau
178737748cd8SNickeau		public function getRuleIndex() : int
178837748cd8SNickeau		{
178937748cd8SNickeau		    return PageSqlParser::RULE_tables;
179037748cd8SNickeau	    }
179137748cd8SNickeau
179237748cd8SNickeau	    public function FROM() : ?TerminalNode
179337748cd8SNickeau	    {
179437748cd8SNickeau	        return $this->getToken(PageSqlParser::FROM, 0);
179537748cd8SNickeau	    }
179637748cd8SNickeau
179737748cd8SNickeau	    public function tableNames() : ?TableNamesContext
179837748cd8SNickeau	    {
179937748cd8SNickeau	    	return $this->getTypedRuleContext(TableNamesContext::class, 0);
180037748cd8SNickeau	    }
180137748cd8SNickeau
180237748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
180337748cd8SNickeau		{
180437748cd8SNickeau			if ($listener instanceof PageSqlListener) {
180537748cd8SNickeau			    $listener->enterTables($this);
180637748cd8SNickeau		    }
180737748cd8SNickeau		}
180837748cd8SNickeau
180937748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
181037748cd8SNickeau		{
181137748cd8SNickeau			if ($listener instanceof PageSqlListener) {
181237748cd8SNickeau			    $listener->exitTables($this);
181337748cd8SNickeau		    }
181437748cd8SNickeau		}
181537748cd8SNickeau	}
181637748cd8SNickeau
181737748cd8SNickeau	class LimitContext extends ParserRuleContext
181837748cd8SNickeau	{
181937748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
182037748cd8SNickeau		{
182137748cd8SNickeau			parent::__construct($parent, $invokingState);
182237748cd8SNickeau		}
182337748cd8SNickeau
182437748cd8SNickeau		public function getRuleIndex() : int
182537748cd8SNickeau		{
182637748cd8SNickeau		    return PageSqlParser::RULE_limit;
182737748cd8SNickeau	    }
182837748cd8SNickeau
182937748cd8SNickeau	    public function LIMIT() : ?TerminalNode
183037748cd8SNickeau	    {
183137748cd8SNickeau	        return $this->getToken(PageSqlParser::LIMIT, 0);
183237748cd8SNickeau	    }
183337748cd8SNickeau
183437748cd8SNickeau	    public function Number() : ?TerminalNode
183537748cd8SNickeau	    {
183637748cd8SNickeau	        return $this->getToken(PageSqlParser::Number, 0);
183737748cd8SNickeau	    }
183837748cd8SNickeau
183937748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
184037748cd8SNickeau		{
184137748cd8SNickeau			if ($listener instanceof PageSqlListener) {
184237748cd8SNickeau			    $listener->enterLimit($this);
184337748cd8SNickeau		    }
184437748cd8SNickeau		}
184537748cd8SNickeau
184637748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
184737748cd8SNickeau		{
184837748cd8SNickeau			if ($listener instanceof PageSqlListener) {
184937748cd8SNickeau			    $listener->exitLimit($this);
185037748cd8SNickeau		    }
185137748cd8SNickeau		}
185237748cd8SNickeau	}
185337748cd8SNickeau
185437748cd8SNickeau	class OrderBysContext extends ParserRuleContext
185537748cd8SNickeau	{
185637748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
185737748cd8SNickeau		{
185837748cd8SNickeau			parent::__construct($parent, $invokingState);
185937748cd8SNickeau		}
186037748cd8SNickeau
186137748cd8SNickeau		public function getRuleIndex() : int
186237748cd8SNickeau		{
186337748cd8SNickeau		    return PageSqlParser::RULE_orderBys;
186437748cd8SNickeau	    }
186537748cd8SNickeau
186637748cd8SNickeau	    public function ORDER() : ?TerminalNode
186737748cd8SNickeau	    {
186837748cd8SNickeau	        return $this->getToken(PageSqlParser::ORDER, 0);
186937748cd8SNickeau	    }
187037748cd8SNickeau
1871*04fd306cSNickeau	    public function RANDOM() : ?TerminalNode
1872*04fd306cSNickeau	    {
1873*04fd306cSNickeau	        return $this->getToken(PageSqlParser::RANDOM, 0);
1874*04fd306cSNickeau	    }
1875*04fd306cSNickeau
187637748cd8SNickeau	    public function BY() : ?TerminalNode
187737748cd8SNickeau	    {
187837748cd8SNickeau	        return $this->getToken(PageSqlParser::BY, 0);
187937748cd8SNickeau	    }
188037748cd8SNickeau
188137748cd8SNickeau	    /**
188237748cd8SNickeau	     * @return array<OrderByDefContext>|OrderByDefContext|null
188337748cd8SNickeau	     */
188437748cd8SNickeau	    public function orderByDef(?int $index = null)
188537748cd8SNickeau	    {
188637748cd8SNickeau	    	if ($index === null) {
188737748cd8SNickeau	    		return $this->getTypedRuleContexts(OrderByDefContext::class);
188837748cd8SNickeau	    	}
188937748cd8SNickeau
189037748cd8SNickeau	        return $this->getTypedRuleContext(OrderByDefContext::class, $index);
189137748cd8SNickeau	    }
189237748cd8SNickeau
189337748cd8SNickeau	    /**
189437748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
189537748cd8SNickeau	     */
189637748cd8SNickeau	    public function COMMA(?int $index = null)
189737748cd8SNickeau	    {
189837748cd8SNickeau	    	if ($index === null) {
189937748cd8SNickeau	    		return $this->getTokens(PageSqlParser::COMMA);
190037748cd8SNickeau	    	}
190137748cd8SNickeau
190237748cd8SNickeau	        return $this->getToken(PageSqlParser::COMMA, $index);
190337748cd8SNickeau	    }
190437748cd8SNickeau
190537748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
190637748cd8SNickeau		{
190737748cd8SNickeau			if ($listener instanceof PageSqlListener) {
190837748cd8SNickeau			    $listener->enterOrderBys($this);
190937748cd8SNickeau		    }
191037748cd8SNickeau		}
191137748cd8SNickeau
191237748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
191337748cd8SNickeau		{
191437748cd8SNickeau			if ($listener instanceof PageSqlListener) {
191537748cd8SNickeau			    $listener->exitOrderBys($this);
191637748cd8SNickeau		    }
191737748cd8SNickeau		}
191837748cd8SNickeau	}
191937748cd8SNickeau
192037748cd8SNickeau	class OrderByDefContext extends ParserRuleContext
192137748cd8SNickeau	{
192237748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
192337748cd8SNickeau		{
192437748cd8SNickeau			parent::__construct($parent, $invokingState);
192537748cd8SNickeau		}
192637748cd8SNickeau
192737748cd8SNickeau		public function getRuleIndex() : int
192837748cd8SNickeau		{
192937748cd8SNickeau		    return PageSqlParser::RULE_orderByDef;
193037748cd8SNickeau	    }
193137748cd8SNickeau
193237748cd8SNickeau	    public function SqlName() : ?TerminalNode
193337748cd8SNickeau	    {
193437748cd8SNickeau	        return $this->getToken(PageSqlParser::SqlName, 0);
193537748cd8SNickeau	    }
193637748cd8SNickeau
193737748cd8SNickeau	    public function ASC() : ?TerminalNode
193837748cd8SNickeau	    {
193937748cd8SNickeau	        return $this->getToken(PageSqlParser::ASC, 0);
194037748cd8SNickeau	    }
194137748cd8SNickeau
194237748cd8SNickeau	    public function DESC() : ?TerminalNode
194337748cd8SNickeau	    {
194437748cd8SNickeau	        return $this->getToken(PageSqlParser::DESC, 0);
194537748cd8SNickeau	    }
194637748cd8SNickeau
194737748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
194837748cd8SNickeau		{
194937748cd8SNickeau			if ($listener instanceof PageSqlListener) {
195037748cd8SNickeau			    $listener->enterOrderByDef($this);
195137748cd8SNickeau		    }
195237748cd8SNickeau		}
195337748cd8SNickeau
195437748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
195537748cd8SNickeau		{
195637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
195737748cd8SNickeau			    $listener->exitOrderByDef($this);
195837748cd8SNickeau		    }
195937748cd8SNickeau		}
196037748cd8SNickeau	}
196137748cd8SNickeau
196237748cd8SNickeau	class PageSqlContext extends ParserRuleContext
196337748cd8SNickeau	{
196437748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
196537748cd8SNickeau		{
196637748cd8SNickeau			parent::__construct($parent, $invokingState);
196737748cd8SNickeau		}
196837748cd8SNickeau
196937748cd8SNickeau		public function getRuleIndex() : int
197037748cd8SNickeau		{
197137748cd8SNickeau		    return PageSqlParser::RULE_pageSql;
197237748cd8SNickeau	    }
197337748cd8SNickeau
197437748cd8SNickeau	    public function SELECT() : ?TerminalNode
197537748cd8SNickeau	    {
197637748cd8SNickeau	        return $this->getToken(PageSqlParser::SELECT, 0);
197737748cd8SNickeau	    }
197837748cd8SNickeau
197937748cd8SNickeau	    public function RANDOM() : ?TerminalNode
198037748cd8SNickeau	    {
198137748cd8SNickeau	        return $this->getToken(PageSqlParser::RANDOM, 0);
198237748cd8SNickeau	    }
198337748cd8SNickeau
19841fa8c418SNickeau	    public function STAR() : ?TerminalNode
19851fa8c418SNickeau	    {
19861fa8c418SNickeau	        return $this->getToken(PageSqlParser::STAR, 0);
19871fa8c418SNickeau	    }
19881fa8c418SNickeau
19891fa8c418SNickeau	    public function columns() : ?ColumnsContext
19901fa8c418SNickeau	    {
19911fa8c418SNickeau	    	return $this->getTypedRuleContext(ColumnsContext::class, 0);
19921fa8c418SNickeau	    }
19931fa8c418SNickeau
199437748cd8SNickeau	    public function tables() : ?TablesContext
199537748cd8SNickeau	    {
199637748cd8SNickeau	    	return $this->getTypedRuleContext(TablesContext::class, 0);
199737748cd8SNickeau	    }
199837748cd8SNickeau
199937748cd8SNickeau	    public function predicates() : ?PredicatesContext
200037748cd8SNickeau	    {
200137748cd8SNickeau	    	return $this->getTypedRuleContext(PredicatesContext::class, 0);
200237748cd8SNickeau	    }
200337748cd8SNickeau
200437748cd8SNickeau	    public function orderBys() : ?OrderBysContext
200537748cd8SNickeau	    {
200637748cd8SNickeau	    	return $this->getTypedRuleContext(OrderBysContext::class, 0);
200737748cd8SNickeau	    }
200837748cd8SNickeau
200937748cd8SNickeau	    public function limit() : ?LimitContext
201037748cd8SNickeau	    {
201137748cd8SNickeau	    	return $this->getTypedRuleContext(LimitContext::class, 0);
201237748cd8SNickeau	    }
201337748cd8SNickeau
201437748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
201537748cd8SNickeau		{
201637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
201737748cd8SNickeau			    $listener->enterPageSql($this);
201837748cd8SNickeau		    }
201937748cd8SNickeau		}
202037748cd8SNickeau
202137748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
202237748cd8SNickeau		{
202337748cd8SNickeau			if ($listener instanceof PageSqlListener) {
202437748cd8SNickeau			    $listener->exitPageSql($this);
202537748cd8SNickeau		    }
202637748cd8SNickeau		}
202737748cd8SNickeau	}
202837748cd8SNickeau}