xref: /plugin/combo/ComboStrap/PageSqlParser/PageSqlParser.php (revision 5b7a56ccb7c57144ce99d82ebd684c7eb5d4f441)
137748cd8SNickeau<?php
237748cd8SNickeau
337748cd8SNickeau/*
404fd306cSNickeau * 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,
3704fd306cSNickeau               PAGES = 59, BACKLINKS = 60, DESCENDANTS = 61, StringLiteral = 62,
3804fd306cSNickeau               CharSetLiteral = 63, IntegralLiteral = 64, Number = 65, NumberLiteral = 66,
3904fd306cSNickeau               ByteLengthLiteral = 67, SqlName = 68, SPACES = 69;
4037748cd8SNickeau
41*5b7a56ccSgerardnico		public const RULE_functionNames = 0, RULE_constantNames = 1, RULE_tableNames = 2,
42*5b7a56ccSgerardnico               RULE_sqlNames = 3, RULE_column = 4, RULE_pattern = 5, RULE_expression = 6,
43*5b7a56ccSgerardnico               RULE_predicate = 7, RULE_columns = 8, RULE_predicateGroup = 9,
44*5b7a56ccSgerardnico               RULE_predicates = 10, RULE_tables = 11, RULE_limit = 12,
45*5b7a56ccSgerardnico               RULE_orderBys = 13, RULE_orderByDef = 14, RULE_pageSql = 15;
4637748cd8SNickeau
4737748cd8SNickeau		/**
4837748cd8SNickeau		 * @var array<string>
4937748cd8SNickeau		 */
5037748cd8SNickeau		public const RULE_NAMES = [
51*5b7a56ccSgerardnico			'functionNames', 'constantNames', 'tableNames', 'sqlNames', 'column',
52*5b7a56ccSgerardnico			'pattern', 'expression', 'predicate', 'columns', 'predicateGroup', 'predicates',
53*5b7a56ccSgerardnico			'tables', 'limit', '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",
7804fd306cSNickeau		    "DESCENDANTS", "StringLiteral", "CharSetLiteral", "IntegralLiteral",
7904fd306cSNickeau		    "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*5b7a56ccSgerardnico		    "\u{3}\u{47}\u{C7}\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*5b7a56ccSgerardnico		    "\u{E}\u{9}\u{E}\u{4}\u{F}\u{9}\u{F}\u{4}\u{10}\u{9}\u{10}\u{4}\u{11}" .
92*5b7a56ccSgerardnico		    "\u{9}\u{11}\u{3}\u{2}\u{3}\u{2}\u{3}\u{3}\u{3}\u{3}\u{3}\u{4}\u{3}" .
93*5b7a56ccSgerardnico		    "\u{4}\u{3}\u{5}\u{3}\u{5}\u{3}\u{6}\u{3}\u{6}\u{3}\u{6}\u{5}\u{6}" .
94*5b7a56ccSgerardnico		    "\u{2E}\u{A}\u{6}\u{3}\u{6}\u{3}\u{6}\u{3}\u{6}\u{5}\u{6}\u{33}\u{A}" .
95*5b7a56ccSgerardnico		    "\u{6}\u{5}\u{6}\u{35}\u{A}\u{6}\u{3}\u{7}\u{3}\u{7}\u{3}\u{8}\u{3}" .
96*5b7a56ccSgerardnico		    "\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{5}\u{8}\u{3E}\u{A}\u{8}\u{3}" .
97*5b7a56ccSgerardnico		    "\u{8}\u{3}\u{8}\u{3}\u{8}\u{5}\u{8}\u{43}\u{A}\u{8}\u{3}\u{8}\u{3}" .
98*5b7a56ccSgerardnico		    "\u{8}\u{7}\u{8}\u{47}\u{A}\u{8}\u{C}\u{8}\u{E}\u{8}\u{4A}\u{B}\u{8}" .
99*5b7a56ccSgerardnico		    "\u{3}\u{8}\u{3}\u{8}\u{5}\u{8}\u{4E}\u{A}\u{8}\u{3}\u{9}\u{3}\u{9}" .
100*5b7a56ccSgerardnico		    "\u{3}\u{9}\u{3}\u{9}\u{5}\u{9}\u{54}\u{A}\u{9}\u{3}\u{9}\u{3}\u{9}" .
101*5b7a56ccSgerardnico		    "\u{3}\u{9}\u{3}\u{9}\u{5}\u{9}\u{5A}\u{A}\u{9}\u{3}\u{9}\u{3}\u{9}" .
102*5b7a56ccSgerardnico		    "\u{5}\u{9}\u{5E}\u{A}\u{9}\u{3}\u{9}\u{5}\u{9}\u{61}\u{A}\u{9}\u{3}" .
103*5b7a56ccSgerardnico		    "\u{9}\u{3}\u{9}\u{3}\u{9}\u{3}\u{9}\u{3}\u{9}\u{3}\u{9}\u{5}\u{9}" .
104*5b7a56ccSgerardnico		    "\u{69}\u{A}\u{9}\u{3}\u{9}\u{3}\u{9}\u{3}\u{9}\u{3}\u{9}\u{3}\u{9}" .
105*5b7a56ccSgerardnico		    "\u{7}\u{9}\u{70}\u{A}\u{9}\u{C}\u{9}\u{E}\u{9}\u{73}\u{B}\u{9}\u{5}" .
106*5b7a56ccSgerardnico		    "\u{9}\u{75}\u{A}\u{9}\u{3}\u{9}\u{5}\u{9}\u{78}\u{A}\u{9}\u{3}\u{A}" .
107*5b7a56ccSgerardnico		    "\u{3}\u{A}\u{3}\u{A}\u{7}\u{A}\u{7D}\u{A}\u{A}\u{C}\u{A}\u{E}\u{A}" .
108*5b7a56ccSgerardnico		    "\u{80}\u{B}\u{A}\u{3}\u{B}\u{3}\u{B}\u{3}\u{B}\u{3}\u{B}\u{7}\u{B}" .
109*5b7a56ccSgerardnico		    "\u{86}\u{A}\u{B}\u{C}\u{B}\u{E}\u{B}\u{89}\u{B}\u{B}\u{3}\u{B}\u{3}" .
110*5b7a56ccSgerardnico		    "\u{B}\u{3}\u{C}\u{3}\u{C}\u{3}\u{C}\u{5}\u{C}\u{90}\u{A}\u{C}\u{3}" .
111*5b7a56ccSgerardnico		    "\u{C}\u{3}\u{C}\u{3}\u{C}\u{5}\u{C}\u{95}\u{A}\u{C}\u{7}\u{C}\u{97}" .
112*5b7a56ccSgerardnico		    "\u{A}\u{C}\u{C}\u{C}\u{E}\u{C}\u{9A}\u{B}\u{C}\u{3}\u{D}\u{3}\u{D}" .
113*5b7a56ccSgerardnico		    "\u{3}\u{D}\u{3}\u{E}\u{3}\u{E}\u{3}\u{E}\u{3}\u{F}\u{3}\u{F}\u{3}" .
114*5b7a56ccSgerardnico		    "\u{F}\u{3}\u{F}\u{3}\u{F}\u{3}\u{F}\u{7}\u{F}\u{A8}\u{A}\u{F}\u{C}" .
115*5b7a56ccSgerardnico		    "\u{F}\u{E}\u{F}\u{AB}\u{B}\u{F}\u{5}\u{F}\u{AD}\u{A}\u{F}\u{3}\u{10}" .
116*5b7a56ccSgerardnico		    "\u{3}\u{10}\u{5}\u{10}\u{B1}\u{A}\u{10}\u{3}\u{11}\u{3}\u{11}\u{5}" .
117*5b7a56ccSgerardnico		    "\u{11}\u{B5}\u{A}\u{11}\u{3}\u{11}\u{3}\u{11}\u{5}\u{11}\u{B9}\u{A}" .
118*5b7a56ccSgerardnico		    "\u{11}\u{3}\u{11}\u{5}\u{11}\u{BC}\u{A}\u{11}\u{3}\u{11}\u{5}\u{11}" .
119*5b7a56ccSgerardnico		    "\u{BF}\u{A}\u{11}\u{3}\u{11}\u{5}\u{11}\u{C2}\u{A}\u{11}\u{3}\u{11}" .
120*5b7a56ccSgerardnico		    "\u{5}\u{11}\u{C5}\u{A}\u{11}\u{3}\u{11}\u{2}\u{2}\u{12}\u{2}\u{4}" .
121*5b7a56ccSgerardnico		    "\u{6}\u{8}\u{A}\u{C}\u{E}\u{10}\u{12}\u{14}\u{16}\u{18}\u{1A}\u{1C}" .
122*5b7a56ccSgerardnico		    "\u{1E}\u{20}\u{2}\u{9}\u{3}\u{2}\u{3B}\u{3C}\u{3}\u{2}\u{3D}\u{3F}" .
123*5b7a56ccSgerardnico		    "\u{4}\u{2}\u{43}\u{43}\u{46}\u{46}\u{4}\u{2}\u{40}\u{40}\u{44}\u{44}" .
124*5b7a56ccSgerardnico		    "\u{5}\u{2}\u{E}\u{E}\u{1B}\u{1E}\u{20}\u{20}\u{4}\u{2}\u{22}\u{22}" .
125*5b7a56ccSgerardnico		    "\u{35}\u{35}\u{4}\u{2}\u{24}\u{24}\u{27}\u{27}\u{2}\u{D9}\u{2}\u{22}" .
126*5b7a56ccSgerardnico		    "\u{3}\u{2}\u{2}\u{2}\u{4}\u{24}\u{3}\u{2}\u{2}\u{2}\u{6}\u{26}\u{3}" .
127*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{2}\u{8}\u{28}\u{3}\u{2}\u{2}\u{2}\u{A}\u{2A}\u{3}\u{2}" .
128*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{C}\u{36}\u{3}\u{2}\u{2}\u{2}\u{E}\u{4D}\u{3}\u{2}\u{2}" .
129*5b7a56ccSgerardnico		    "\u{2}\u{10}\u{4F}\u{3}\u{2}\u{2}\u{2}\u{12}\u{79}\u{3}\u{2}\u{2}\u{2}" .
130*5b7a56ccSgerardnico		    "\u{14}\u{81}\u{3}\u{2}\u{2}\u{2}\u{16}\u{8C}\u{3}\u{2}\u{2}\u{2}\u{18}" .
131*5b7a56ccSgerardnico		    "\u{9B}\u{3}\u{2}\u{2}\u{2}\u{1A}\u{9E}\u{3}\u{2}\u{2}\u{2}\u{1C}\u{A1}" .
132*5b7a56ccSgerardnico		    "\u{3}\u{2}\u{2}\u{2}\u{1E}\u{AE}\u{3}\u{2}\u{2}\u{2}\u{20}\u{B2}\u{3}" .
133*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{2}\u{22}\u{23}\u{9}\u{2}\u{2}\u{2}\u{23}\u{3}\u{3}\u{2}" .
134*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{24}\u{25}\u{7}\u{33}\u{2}\u{2}\u{25}\u{5}\u{3}\u{2}\u{2}" .
135*5b7a56ccSgerardnico		    "\u{2}\u{26}\u{27}\u{9}\u{3}\u{2}\u{2}\u{27}\u{7}\u{3}\u{2}\u{2}\u{2}" .
136*5b7a56ccSgerardnico		    "\u{28}\u{29}\u{9}\u{4}\u{2}\u{2}\u{29}\u{9}\u{3}\u{2}\u{2}\u{2}\u{2A}" .
137*5b7a56ccSgerardnico		    "\u{2D}\u{5}\u{8}\u{5}\u{2}\u{2B}\u{2C}\u{7}\u{4}\u{2}\u{2}\u{2C}\u{2E}" .
138*5b7a56ccSgerardnico		    "\u{5}\u{8}\u{5}\u{2}\u{2D}\u{2B}\u{3}\u{2}\u{2}\u{2}\u{2D}\u{2E}\u{3}" .
139*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{2}\u{2E}\u{34}\u{3}\u{2}\u{2}\u{2}\u{2F}\u{32}\u{7}\u{23}" .
140*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{30}\u{33}\u{5}\u{8}\u{5}\u{2}\u{31}\u{33}\u{7}\u{40}" .
141*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{32}\u{30}\u{3}\u{2}\u{2}\u{2}\u{32}\u{31}\u{3}\u{2}\u{2}" .
142*5b7a56ccSgerardnico		    "\u{2}\u{33}\u{35}\u{3}\u{2}\u{2}\u{2}\u{34}\u{2F}\u{3}\u{2}\u{2}\u{2}" .
143*5b7a56ccSgerardnico		    "\u{34}\u{35}\u{3}\u{2}\u{2}\u{2}\u{35}\u{B}\u{3}\u{2}\u{2}\u{2}\u{36}" .
144*5b7a56ccSgerardnico		    "\u{37}\u{9}\u{5}\u{2}\u{2}\u{37}\u{D}\u{3}\u{2}\u{2}\u{2}\u{38}\u{3E}" .
145*5b7a56ccSgerardnico		    "\u{7}\u{46}\u{2}\u{2}\u{39}\u{3E}\u{7}\u{40}\u{2}\u{2}\u{3A}\u{3E}" .
146*5b7a56ccSgerardnico		    "\u{7}\u{44}\u{2}\u{2}\u{3B}\u{3E}\u{7}\u{43}\u{2}\u{2}\u{3C}\u{3E}" .
147*5b7a56ccSgerardnico		    "\u{5}\u{4}\u{3}\u{2}\u{3D}\u{38}\u{3}\u{2}\u{2}\u{2}\u{3D}\u{39}\u{3}" .
148*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{2}\u{3D}\u{3A}\u{3}\u{2}\u{2}\u{2}\u{3D}\u{3B}\u{3}\u{2}" .
149*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{3D}\u{3C}\u{3}\u{2}\u{2}\u{2}\u{3E}\u{4E}\u{3}\u{2}\u{2}" .
150*5b7a56ccSgerardnico		    "\u{2}\u{3F}\u{40}\u{5}\u{2}\u{2}\u{2}\u{40}\u{42}\u{7}\u{5}\u{2}\u{2}" .
151*5b7a56ccSgerardnico		    "\u{41}\u{43}\u{5}\u{E}\u{8}\u{2}\u{42}\u{41}\u{3}\u{2}\u{2}\u{2}\u{42}" .
152*5b7a56ccSgerardnico		    "\u{43}\u{3}\u{2}\u{2}\u{2}\u{43}\u{48}\u{3}\u{2}\u{2}\u{2}\u{44}\u{45}" .
153*5b7a56ccSgerardnico		    "\u{7}\u{B}\u{2}\u{2}\u{45}\u{47}\u{5}\u{E}\u{8}\u{2}\u{46}\u{44}\u{3}" .
154*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{2}\u{47}\u{4A}\u{3}\u{2}\u{2}\u{2}\u{48}\u{46}\u{3}\u{2}" .
155*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{48}\u{49}\u{3}\u{2}\u{2}\u{2}\u{49}\u{4B}\u{3}\u{2}\u{2}" .
156*5b7a56ccSgerardnico		    "\u{2}\u{4A}\u{48}\u{3}\u{2}\u{2}\u{2}\u{4B}\u{4C}\u{7}\u{6}\u{2}\u{2}" .
157*5b7a56ccSgerardnico		    "\u{4C}\u{4E}\u{3}\u{2}\u{2}\u{2}\u{4D}\u{3D}\u{3}\u{2}\u{2}\u{2}\u{4D}" .
158*5b7a56ccSgerardnico		    "\u{3F}\u{3}\u{2}\u{2}\u{2}\u{4E}\u{F}\u{3}\u{2}\u{2}\u{2}\u{4F}\u{77}" .
159*5b7a56ccSgerardnico		    "\u{5}\u{8}\u{5}\u{2}\u{50}\u{51}\u{9}\u{6}\u{2}\u{2}\u{51}\u{78}\u{5}" .
160*5b7a56ccSgerardnico		    "\u{E}\u{8}\u{2}\u{52}\u{54}\u{7}\u{31}\u{2}\u{2}\u{53}\u{52}\u{3}" .
161*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{2}\u{53}\u{54}\u{3}\u{2}\u{2}\u{2}\u{54}\u{55}\u{3}\u{2}" .
162*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{55}\u{56}\u{7}\u{2F}\u{2}\u{2}\u{56}\u{59}\u{5}\u{C}" .
163*5b7a56ccSgerardnico		    "\u{7}\u{2}\u{57}\u{58}\u{7}\u{28}\u{2}\u{2}\u{58}\u{5A}\u{7}\u{40}" .
164*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{59}\u{57}\u{3}\u{2}\u{2}\u{2}\u{59}\u{5A}\u{3}\u{2}\u{2}" .
165*5b7a56ccSgerardnico		    "\u{2}\u{5A}\u{5E}\u{3}\u{2}\u{2}\u{2}\u{5B}\u{5C}\u{7}\u{2B}\u{2}" .
166*5b7a56ccSgerardnico		    "\u{2}\u{5C}\u{5E}\u{5}\u{C}\u{7}\u{2}\u{5D}\u{53}\u{3}\u{2}\u{2}\u{2}" .
167*5b7a56ccSgerardnico		    "\u{5D}\u{5B}\u{3}\u{2}\u{2}\u{2}\u{5E}\u{78}\u{3}\u{2}\u{2}\u{2}\u{5F}" .
168*5b7a56ccSgerardnico		    "\u{61}\u{7}\u{31}\u{2}\u{2}\u{60}\u{5F}\u{3}\u{2}\u{2}\u{2}\u{60}" .
169*5b7a56ccSgerardnico		    "\u{61}\u{3}\u{2}\u{2}\u{2}\u{61}\u{62}\u{3}\u{2}\u{2}\u{2}\u{62}\u{63}" .
170*5b7a56ccSgerardnico		    "\u{7}\u{25}\u{2}\u{2}\u{63}\u{64}\u{5}\u{E}\u{8}\u{2}\u{64}\u{65}" .
171*5b7a56ccSgerardnico		    "\u{7}\u{22}\u{2}\u{2}\u{65}\u{66}\u{5}\u{E}\u{8}\u{2}\u{66}\u{78}" .
172*5b7a56ccSgerardnico		    "\u{3}\u{2}\u{2}\u{2}\u{67}\u{69}\u{7}\u{31}\u{2}\u{2}\u{68}\u{67}" .
173*5b7a56ccSgerardnico		    "\u{3}\u{2}\u{2}\u{2}\u{68}\u{69}\u{3}\u{2}\u{2}\u{2}\u{69}\u{6A}\u{3}" .
174*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{2}\u{6A}\u{6B}\u{7}\u{2C}\u{2}\u{2}\u{6B}\u{74}\u{7}" .
175*5b7a56ccSgerardnico		    "\u{5}\u{2}\u{2}\u{6C}\u{71}\u{5}\u{E}\u{8}\u{2}\u{6D}\u{6E}\u{7}\u{B}" .
176*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{6E}\u{70}\u{5}\u{E}\u{8}\u{2}\u{6F}\u{6D}\u{3}\u{2}\u{2}" .
177*5b7a56ccSgerardnico		    "\u{2}\u{70}\u{73}\u{3}\u{2}\u{2}\u{2}\u{71}\u{6F}\u{3}\u{2}\u{2}\u{2}" .
178*5b7a56ccSgerardnico		    "\u{71}\u{72}\u{3}\u{2}\u{2}\u{2}\u{72}\u{75}\u{3}\u{2}\u{2}\u{2}\u{73}" .
179*5b7a56ccSgerardnico		    "\u{71}\u{3}\u{2}\u{2}\u{2}\u{74}\u{6C}\u{3}\u{2}\u{2}\u{2}\u{74}\u{75}" .
180*5b7a56ccSgerardnico		    "\u{3}\u{2}\u{2}\u{2}\u{75}\u{76}\u{3}\u{2}\u{2}\u{2}\u{76}\u{78}\u{7}" .
181*5b7a56ccSgerardnico		    "\u{6}\u{2}\u{2}\u{77}\u{50}\u{3}\u{2}\u{2}\u{2}\u{77}\u{5D}\u{3}\u{2}" .
182*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{77}\u{60}\u{3}\u{2}\u{2}\u{2}\u{77}\u{68}\u{3}\u{2}\u{2}" .
183*5b7a56ccSgerardnico		    "\u{2}\u{78}\u{11}\u{3}\u{2}\u{2}\u{2}\u{79}\u{7E}\u{5}\u{A}\u{6}\u{2}" .
184*5b7a56ccSgerardnico		    "\u{7A}\u{7B}\u{7}\u{B}\u{2}\u{2}\u{7B}\u{7D}\u{5}\u{A}\u{6}\u{2}\u{7C}" .
185*5b7a56ccSgerardnico		    "\u{7A}\u{3}\u{2}\u{2}\u{2}\u{7D}\u{80}\u{3}\u{2}\u{2}\u{2}\u{7E}\u{7C}" .
186*5b7a56ccSgerardnico		    "\u{3}\u{2}\u{2}\u{2}\u{7E}\u{7F}\u{3}\u{2}\u{2}\u{2}\u{7F}\u{13}\u{3}" .
187*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{2}\u{80}\u{7E}\u{3}\u{2}\u{2}\u{2}\u{81}\u{82}\u{7}\u{5}" .
188*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{82}\u{87}\u{5}\u{10}\u{9}\u{2}\u{83}\u{84}\u{9}\u{7}" .
189*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{84}\u{86}\u{5}\u{10}\u{9}\u{2}\u{85}\u{83}\u{3}\u{2}" .
190*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{86}\u{89}\u{3}\u{2}\u{2}\u{2}\u{87}\u{85}\u{3}\u{2}\u{2}" .
191*5b7a56ccSgerardnico		    "\u{2}\u{87}\u{88}\u{3}\u{2}\u{2}\u{2}\u{88}\u{8A}\u{3}\u{2}\u{2}\u{2}" .
192*5b7a56ccSgerardnico		    "\u{89}\u{87}\u{3}\u{2}\u{2}\u{2}\u{8A}\u{8B}\u{7}\u{6}\u{2}\u{2}\u{8B}" .
193*5b7a56ccSgerardnico		    "\u{15}\u{3}\u{2}\u{2}\u{2}\u{8C}\u{8F}\u{7}\u{39}\u{2}\u{2}\u{8D}" .
194*5b7a56ccSgerardnico		    "\u{90}\u{5}\u{10}\u{9}\u{2}\u{8E}\u{90}\u{5}\u{14}\u{B}\u{2}\u{8F}" .
195*5b7a56ccSgerardnico		    "\u{8D}\u{3}\u{2}\u{2}\u{2}\u{8F}\u{8E}\u{3}\u{2}\u{2}\u{2}\u{90}\u{98}" .
196*5b7a56ccSgerardnico		    "\u{3}\u{2}\u{2}\u{2}\u{91}\u{94}\u{9}\u{7}\u{2}\u{2}\u{92}\u{95}\u{5}" .
197*5b7a56ccSgerardnico		    "\u{10}\u{9}\u{2}\u{93}\u{95}\u{5}\u{14}\u{B}\u{2}\u{94}\u{92}\u{3}" .
198*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{2}\u{94}\u{93}\u{3}\u{2}\u{2}\u{2}\u{95}\u{97}\u{3}\u{2}" .
199*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{96}\u{91}\u{3}\u{2}\u{2}\u{2}\u{97}\u{9A}\u{3}\u{2}\u{2}" .
200*5b7a56ccSgerardnico		    "\u{2}\u{98}\u{96}\u{3}\u{2}\u{2}\u{2}\u{98}\u{99}\u{3}\u{2}\u{2}\u{2}" .
201*5b7a56ccSgerardnico		    "\u{99}\u{17}\u{3}\u{2}\u{2}\u{2}\u{9A}\u{98}\u{3}\u{2}\u{2}\u{2}\u{9B}" .
202*5b7a56ccSgerardnico		    "\u{9C}\u{7}\u{2A}\u{2}\u{2}\u{9C}\u{9D}\u{5}\u{6}\u{4}\u{2}\u{9D}" .
203*5b7a56ccSgerardnico		    "\u{19}\u{3}\u{2}\u{2}\u{2}\u{9E}\u{9F}\u{7}\u{30}\u{2}\u{2}\u{9F}" .
204*5b7a56ccSgerardnico		    "\u{A0}\u{7}\u{43}\u{2}\u{2}\u{A0}\u{1B}\u{3}\u{2}\u{2}\u{2}\u{A1}" .
205*5b7a56ccSgerardnico		    "\u{AC}\u{7}\u{36}\u{2}\u{2}\u{A2}\u{AD}\u{7}\u{3A}\u{2}\u{2}\u{A3}" .
206*5b7a56ccSgerardnico		    "\u{A4}\u{7}\u{26}\u{2}\u{2}\u{A4}\u{A9}\u{5}\u{1E}\u{10}\u{2}\u{A5}" .
207*5b7a56ccSgerardnico		    "\u{A6}\u{7}\u{B}\u{2}\u{2}\u{A6}\u{A8}\u{5}\u{1E}\u{10}\u{2}\u{A7}" .
208*5b7a56ccSgerardnico		    "\u{A5}\u{3}\u{2}\u{2}\u{2}\u{A8}\u{AB}\u{3}\u{2}\u{2}\u{2}\u{A9}\u{A7}" .
209*5b7a56ccSgerardnico		    "\u{3}\u{2}\u{2}\u{2}\u{A9}\u{AA}\u{3}\u{2}\u{2}\u{2}\u{AA}\u{AD}\u{3}" .
210*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{2}\u{AB}\u{A9}\u{3}\u{2}\u{2}\u{2}\u{AC}\u{A2}\u{3}\u{2}" .
211*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{AC}\u{A3}\u{3}\u{2}\u{2}\u{2}\u{AD}\u{1D}\u{3}\u{2}\u{2}" .
212*5b7a56ccSgerardnico		    "\u{2}\u{AE}\u{B0}\u{7}\u{46}\u{2}\u{2}\u{AF}\u{B1}\u{9}\u{8}\u{2}" .
213*5b7a56ccSgerardnico		    "\u{2}\u{B0}\u{AF}\u{3}\u{2}\u{2}\u{2}\u{B0}\u{B1}\u{3}\u{2}\u{2}\u{2}" .
214*5b7a56ccSgerardnico		    "\u{B1}\u{1F}\u{3}\u{2}\u{2}\u{2}\u{B2}\u{B4}\u{7}\u{37}\u{2}\u{2}" .
215*5b7a56ccSgerardnico		    "\u{B3}\u{B5}\u{7}\u{3A}\u{2}\u{2}\u{B4}\u{B3}\u{3}\u{2}\u{2}\u{2}" .
216*5b7a56ccSgerardnico		    "\u{B4}\u{B5}\u{3}\u{2}\u{2}\u{2}\u{B5}\u{B8}\u{3}\u{2}\u{2}\u{2}\u{B6}" .
217*5b7a56ccSgerardnico		    "\u{B9}\u{7}\u{F}\u{2}\u{2}\u{B7}\u{B9}\u{5}\u{12}\u{A}\u{2}\u{B8}" .
218*5b7a56ccSgerardnico		    "\u{B6}\u{3}\u{2}\u{2}\u{2}\u{B8}\u{B7}\u{3}\u{2}\u{2}\u{2}\u{B8}\u{B9}" .
219*5b7a56ccSgerardnico		    "\u{3}\u{2}\u{2}\u{2}\u{B9}\u{BB}\u{3}\u{2}\u{2}\u{2}\u{BA}\u{BC}\u{5}" .
220*5b7a56ccSgerardnico		    "\u{18}\u{D}\u{2}\u{BB}\u{BA}\u{3}\u{2}\u{2}\u{2}\u{BB}\u{BC}\u{3}" .
221*5b7a56ccSgerardnico		    "\u{2}\u{2}\u{2}\u{BC}\u{BE}\u{3}\u{2}\u{2}\u{2}\u{BD}\u{BF}\u{5}\u{16}" .
222*5b7a56ccSgerardnico		    "\u{C}\u{2}\u{BE}\u{BD}\u{3}\u{2}\u{2}\u{2}\u{BE}\u{BF}\u{3}\u{2}\u{2}" .
223*5b7a56ccSgerardnico		    "\u{2}\u{BF}\u{C1}\u{3}\u{2}\u{2}\u{2}\u{C0}\u{C2}\u{5}\u{1C}\u{F}" .
224*5b7a56ccSgerardnico		    "\u{2}\u{C1}\u{C0}\u{3}\u{2}\u{2}\u{2}\u{C1}\u{C2}\u{3}\u{2}\u{2}\u{2}" .
225*5b7a56ccSgerardnico		    "\u{C2}\u{C4}\u{3}\u{2}\u{2}\u{2}\u{C3}\u{C5}\u{5}\u{1A}\u{E}\u{2}" .
226*5b7a56ccSgerardnico		    "\u{C4}\u{C3}\u{3}\u{2}\u{2}\u{2}\u{C4}\u{C5}\u{3}\u{2}\u{2}\u{2}\u{C5}" .
227*5b7a56ccSgerardnico		    "\u{21}\u{3}\u{2}\u{2}\u{2}\u{1F}\u{2D}\u{32}\u{34}\u{3D}\u{42}\u{48}" .
228*5b7a56ccSgerardnico		    "\u{4D}\u{53}\u{59}\u{5D}\u{60}\u{68}\u{71}\u{74}\u{77}\u{7E}\u{87}" .
229*5b7a56ccSgerardnico		    "\u{8F}\u{94}\u{98}\u{A9}\u{AC}\u{B0}\u{B4}\u{B8}\u{BB}\u{BE}\u{C1}" .
230*5b7a56ccSgerardnico		    "\u{C4}";
23137748cd8SNickeau
23237748cd8SNickeau		protected static $atn;
23337748cd8SNickeau		protected static $decisionToDFA;
23437748cd8SNickeau		protected static $sharedContextCache;
23537748cd8SNickeau
23637748cd8SNickeau		public function __construct(TokenStream $input)
23737748cd8SNickeau		{
23837748cd8SNickeau			parent::__construct($input);
23937748cd8SNickeau
24037748cd8SNickeau			self::initialize();
24137748cd8SNickeau
24237748cd8SNickeau			$this->interp = new ParserATNSimulator($this, self::$atn, self::$decisionToDFA, self::$sharedContextCache);
24337748cd8SNickeau		}
24437748cd8SNickeau
24537748cd8SNickeau		private static function initialize() : void
24637748cd8SNickeau		{
24737748cd8SNickeau			if (self::$atn !== null) {
24837748cd8SNickeau				return;
24937748cd8SNickeau			}
25037748cd8SNickeau
25104fd306cSNickeau			RuntimeMetaData::checkVersion('4.9.3', RuntimeMetaData::VERSION);
25237748cd8SNickeau
25337748cd8SNickeau			$atn = (new ATNDeserializer())->deserialize(self::SERIALIZED_ATN);
25437748cd8SNickeau
25537748cd8SNickeau			$decisionToDFA = [];
25637748cd8SNickeau			for ($i = 0, $count = $atn->getNumberOfDecisions(); $i < $count; $i++) {
25737748cd8SNickeau				$decisionToDFA[] = new DFA($atn->getDecisionState($i), $i);
25837748cd8SNickeau			}
25937748cd8SNickeau
26037748cd8SNickeau			self::$atn = $atn;
26137748cd8SNickeau			self::$decisionToDFA = $decisionToDFA;
26237748cd8SNickeau			self::$sharedContextCache = new PredictionContextCache();
26337748cd8SNickeau		}
26437748cd8SNickeau
26537748cd8SNickeau		public function getGrammarFileName() : string
26637748cd8SNickeau		{
26737748cd8SNickeau			return "PageSql.g4";
26837748cd8SNickeau		}
26937748cd8SNickeau
27037748cd8SNickeau		public function getRuleNames() : array
27137748cd8SNickeau		{
27237748cd8SNickeau			return self::RULE_NAMES;
27337748cd8SNickeau		}
27437748cd8SNickeau
27537748cd8SNickeau		public function getSerializedATN() : string
27637748cd8SNickeau		{
27737748cd8SNickeau			return self::SERIALIZED_ATN;
27837748cd8SNickeau		}
27937748cd8SNickeau
28037748cd8SNickeau		public function getATN() : ATN
28137748cd8SNickeau		{
28237748cd8SNickeau			return self::$atn;
28337748cd8SNickeau		}
28437748cd8SNickeau
28537748cd8SNickeau		public function getVocabulary() : Vocabulary
28637748cd8SNickeau        {
28737748cd8SNickeau            static $vocabulary;
28837748cd8SNickeau
28937748cd8SNickeau			return $vocabulary = $vocabulary ?? new VocabularyImpl(self::LITERAL_NAMES, self::SYMBOLIC_NAMES);
29037748cd8SNickeau        }
29137748cd8SNickeau
29237748cd8SNickeau		/**
29337748cd8SNickeau		 * @throws RecognitionException
29437748cd8SNickeau		 */
29537748cd8SNickeau		public function functionNames() : Context\FunctionNamesContext
29637748cd8SNickeau		{
29737748cd8SNickeau		    $localContext = new Context\FunctionNamesContext($this->ctx, $this->getState());
29837748cd8SNickeau
29937748cd8SNickeau		    $this->enterRule($localContext, 0, self::RULE_functionNames);
30037748cd8SNickeau
30137748cd8SNickeau		    try {
30237748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
303*5b7a56ccSgerardnico		        $this->setState(32);
30437748cd8SNickeau
30537748cd8SNickeau		        $_la = $this->input->LA(1);
30637748cd8SNickeau
30737748cd8SNickeau		        if (!($_la === self::DATE || $_la === self::DATETIME)) {
30837748cd8SNickeau		        $this->errorHandler->recoverInline($this);
30937748cd8SNickeau		        } else {
31037748cd8SNickeau		        	if ($this->input->LA(1) === Token::EOF) {
31137748cd8SNickeau		        	    $this->matchedEOF = true;
31237748cd8SNickeau		            }
31337748cd8SNickeau
31437748cd8SNickeau		        	$this->errorHandler->reportMatch($this);
31537748cd8SNickeau		        	$this->consume();
31637748cd8SNickeau		        }
31737748cd8SNickeau		    } catch (RecognitionException $exception) {
31837748cd8SNickeau		        $localContext->exception = $exception;
31937748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
32037748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
32137748cd8SNickeau		    } finally {
32237748cd8SNickeau		        $this->exitRule();
32337748cd8SNickeau		    }
32437748cd8SNickeau
32537748cd8SNickeau		    return $localContext;
32637748cd8SNickeau		}
32737748cd8SNickeau
32837748cd8SNickeau		/**
32937748cd8SNickeau		 * @throws RecognitionException
33037748cd8SNickeau		 */
331*5b7a56ccSgerardnico		public function constantNames() : Context\ConstantNamesContext
332*5b7a56ccSgerardnico		{
333*5b7a56ccSgerardnico		    $localContext = new Context\ConstantNamesContext($this->ctx, $this->getState());
334*5b7a56ccSgerardnico
335*5b7a56ccSgerardnico		    $this->enterRule($localContext, 2, self::RULE_constantNames);
336*5b7a56ccSgerardnico
337*5b7a56ccSgerardnico		    try {
338*5b7a56ccSgerardnico		        $this->enterOuterAlt($localContext, 1);
339*5b7a56ccSgerardnico		        $this->setState(34);
340*5b7a56ccSgerardnico		        $this->match(self::NOW);
341*5b7a56ccSgerardnico		    } catch (RecognitionException $exception) {
342*5b7a56ccSgerardnico		        $localContext->exception = $exception;
343*5b7a56ccSgerardnico		        $this->errorHandler->reportError($this, $exception);
344*5b7a56ccSgerardnico		        $this->errorHandler->recover($this, $exception);
345*5b7a56ccSgerardnico		    } finally {
346*5b7a56ccSgerardnico		        $this->exitRule();
347*5b7a56ccSgerardnico		    }
348*5b7a56ccSgerardnico
349*5b7a56ccSgerardnico		    return $localContext;
350*5b7a56ccSgerardnico		}
351*5b7a56ccSgerardnico
352*5b7a56ccSgerardnico		/**
353*5b7a56ccSgerardnico		 * @throws RecognitionException
354*5b7a56ccSgerardnico		 */
35537748cd8SNickeau		public function tableNames() : Context\TableNamesContext
35637748cd8SNickeau		{
35737748cd8SNickeau		    $localContext = new Context\TableNamesContext($this->ctx, $this->getState());
35837748cd8SNickeau
359*5b7a56ccSgerardnico		    $this->enterRule($localContext, 4, self::RULE_tableNames);
36037748cd8SNickeau
36137748cd8SNickeau		    try {
36237748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
363*5b7a56ccSgerardnico		        $this->setState(36);
36437748cd8SNickeau
36537748cd8SNickeau		        $_la = $this->input->LA(1);
36637748cd8SNickeau
36704fd306cSNickeau		        if (!(((($_la) & ~0x3f) === 0 && ((1 << $_la) & ((1 << self::PAGES) | (1 << self::BACKLINKS) | (1 << self::DESCENDANTS))) !== 0))) {
36837748cd8SNickeau		        $this->errorHandler->recoverInline($this);
36937748cd8SNickeau		        } else {
37037748cd8SNickeau		        	if ($this->input->LA(1) === Token::EOF) {
37137748cd8SNickeau		        	    $this->matchedEOF = true;
37237748cd8SNickeau		            }
37337748cd8SNickeau
37437748cd8SNickeau		        	$this->errorHandler->reportMatch($this);
37537748cd8SNickeau		        	$this->consume();
37637748cd8SNickeau		        }
37737748cd8SNickeau		    } catch (RecognitionException $exception) {
37837748cd8SNickeau		        $localContext->exception = $exception;
37937748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
38037748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
38137748cd8SNickeau		    } finally {
38237748cd8SNickeau		        $this->exitRule();
38337748cd8SNickeau		    }
38437748cd8SNickeau
38537748cd8SNickeau		    return $localContext;
38637748cd8SNickeau		}
38737748cd8SNickeau
38837748cd8SNickeau		/**
38937748cd8SNickeau		 * @throws RecognitionException
39037748cd8SNickeau		 */
39137748cd8SNickeau		public function sqlNames() : Context\SqlNamesContext
39237748cd8SNickeau		{
39337748cd8SNickeau		    $localContext = new Context\SqlNamesContext($this->ctx, $this->getState());
39437748cd8SNickeau
395*5b7a56ccSgerardnico		    $this->enterRule($localContext, 6, self::RULE_sqlNames);
39637748cd8SNickeau
39737748cd8SNickeau		    try {
39837748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
399*5b7a56ccSgerardnico		        $this->setState(38);
40037748cd8SNickeau
40137748cd8SNickeau		        $_la = $this->input->LA(1);
40237748cd8SNickeau
40337748cd8SNickeau		        if (!($_la === self::Number || $_la === self::SqlName)) {
40437748cd8SNickeau		        $this->errorHandler->recoverInline($this);
40537748cd8SNickeau		        } else {
40637748cd8SNickeau		        	if ($this->input->LA(1) === Token::EOF) {
40737748cd8SNickeau		        	    $this->matchedEOF = true;
40837748cd8SNickeau		            }
40937748cd8SNickeau
41037748cd8SNickeau		        	$this->errorHandler->reportMatch($this);
41137748cd8SNickeau		        	$this->consume();
41237748cd8SNickeau		        }
41337748cd8SNickeau		    } catch (RecognitionException $exception) {
41437748cd8SNickeau		        $localContext->exception = $exception;
41537748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
41637748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
41737748cd8SNickeau		    } finally {
41837748cd8SNickeau		        $this->exitRule();
41937748cd8SNickeau		    }
42037748cd8SNickeau
42137748cd8SNickeau		    return $localContext;
42237748cd8SNickeau		}
42337748cd8SNickeau
42437748cd8SNickeau		/**
42537748cd8SNickeau		 * @throws RecognitionException
42637748cd8SNickeau		 */
42737748cd8SNickeau		public function column() : Context\ColumnContext
42837748cd8SNickeau		{
42937748cd8SNickeau		    $localContext = new Context\ColumnContext($this->ctx, $this->getState());
43037748cd8SNickeau
431*5b7a56ccSgerardnico		    $this->enterRule($localContext, 8, self::RULE_column);
43237748cd8SNickeau
43337748cd8SNickeau		    try {
43437748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
435*5b7a56ccSgerardnico		        $this->setState(40);
43637748cd8SNickeau		        $this->sqlNames();
437*5b7a56ccSgerardnico		        $this->setState(43);
43837748cd8SNickeau		        $this->errorHandler->sync($this);
43937748cd8SNickeau		        $_la = $this->input->LA(1);
44037748cd8SNickeau
44137748cd8SNickeau		        if ($_la === self::DOT) {
442*5b7a56ccSgerardnico		        	$this->setState(41);
44337748cd8SNickeau		        	$this->match(self::DOT);
444*5b7a56ccSgerardnico		        	$this->setState(42);
44537748cd8SNickeau		        	$this->sqlNames();
44637748cd8SNickeau		        }
447*5b7a56ccSgerardnico		        $this->setState(50);
44837748cd8SNickeau		        $this->errorHandler->sync($this);
44937748cd8SNickeau		        $_la = $this->input->LA(1);
45037748cd8SNickeau
45137748cd8SNickeau		        if ($_la === self::AS) {
452*5b7a56ccSgerardnico		        	$this->setState(45);
45337748cd8SNickeau		        	$this->match(self::AS);
454*5b7a56ccSgerardnico		        	$this->setState(48);
45537748cd8SNickeau		        	$this->errorHandler->sync($this);
45637748cd8SNickeau
45737748cd8SNickeau		        	switch ($this->input->LA(1)) {
45837748cd8SNickeau		        	    case self::Number:
45937748cd8SNickeau		        	    case self::SqlName:
460*5b7a56ccSgerardnico		        	    	$this->setState(46);
46137748cd8SNickeau		        	    	$this->sqlNames();
46237748cd8SNickeau		        	    	break;
46337748cd8SNickeau
46437748cd8SNickeau		        	    case self::StringLiteral:
465*5b7a56ccSgerardnico		        	    	$this->setState(47);
46637748cd8SNickeau		        	    	$this->match(self::StringLiteral);
46737748cd8SNickeau		        	    	break;
46837748cd8SNickeau
46937748cd8SNickeau		        	default:
47037748cd8SNickeau		        		throw new NoViableAltException($this);
47137748cd8SNickeau		        	}
47237748cd8SNickeau		        }
47337748cd8SNickeau		    } catch (RecognitionException $exception) {
47437748cd8SNickeau		        $localContext->exception = $exception;
47537748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
47637748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
47737748cd8SNickeau		    } finally {
47837748cd8SNickeau		        $this->exitRule();
47937748cd8SNickeau		    }
48037748cd8SNickeau
48137748cd8SNickeau		    return $localContext;
48237748cd8SNickeau		}
48337748cd8SNickeau
48437748cd8SNickeau		/**
48537748cd8SNickeau		 * @throws RecognitionException
48637748cd8SNickeau		 */
48737748cd8SNickeau		public function pattern() : Context\PatternContext
48837748cd8SNickeau		{
48937748cd8SNickeau		    $localContext = new Context\PatternContext($this->ctx, $this->getState());
49037748cd8SNickeau
491*5b7a56ccSgerardnico		    $this->enterRule($localContext, 10, self::RULE_pattern);
49237748cd8SNickeau
49337748cd8SNickeau		    try {
49437748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
495*5b7a56ccSgerardnico		        $this->setState(52);
49637748cd8SNickeau
49737748cd8SNickeau		        $_la = $this->input->LA(1);
49837748cd8SNickeau
49937748cd8SNickeau		        if (!($_la === self::StringLiteral || $_la === self::NumberLiteral)) {
50037748cd8SNickeau		        $this->errorHandler->recoverInline($this);
50137748cd8SNickeau		        } else {
50237748cd8SNickeau		        	if ($this->input->LA(1) === Token::EOF) {
50337748cd8SNickeau		        	    $this->matchedEOF = true;
50437748cd8SNickeau		            }
50537748cd8SNickeau
50637748cd8SNickeau		        	$this->errorHandler->reportMatch($this);
50737748cd8SNickeau		        	$this->consume();
50837748cd8SNickeau		        }
50937748cd8SNickeau		    } catch (RecognitionException $exception) {
51037748cd8SNickeau		        $localContext->exception = $exception;
51137748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
51237748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
51337748cd8SNickeau		    } finally {
51437748cd8SNickeau		        $this->exitRule();
51537748cd8SNickeau		    }
51637748cd8SNickeau
51737748cd8SNickeau		    return $localContext;
51837748cd8SNickeau		}
51937748cd8SNickeau
52037748cd8SNickeau		/**
52137748cd8SNickeau		 * @throws RecognitionException
52237748cd8SNickeau		 */
52337748cd8SNickeau		public function expression() : Context\ExpressionContext
52437748cd8SNickeau		{
52537748cd8SNickeau		    $localContext = new Context\ExpressionContext($this->ctx, $this->getState());
52637748cd8SNickeau
527*5b7a56ccSgerardnico		    $this->enterRule($localContext, 12, self::RULE_expression);
52837748cd8SNickeau
52937748cd8SNickeau		    try {
530*5b7a56ccSgerardnico		        $this->setState(75);
53137748cd8SNickeau		        $this->errorHandler->sync($this);
53237748cd8SNickeau
53337748cd8SNickeau		        switch ($this->input->LA(1)) {
534*5b7a56ccSgerardnico		            case self::NOW:
53537748cd8SNickeau		            case self::StringLiteral:
53637748cd8SNickeau		            case self::Number:
53737748cd8SNickeau		            case self::NumberLiteral:
53837748cd8SNickeau		            case self::SqlName:
53937748cd8SNickeau		            	$this->enterOuterAlt($localContext, 1);
540*5b7a56ccSgerardnico		            	$this->setState(59);
541*5b7a56ccSgerardnico		            	$this->errorHandler->sync($this);
54237748cd8SNickeau
543*5b7a56ccSgerardnico		            	switch ($this->input->LA(1)) {
544*5b7a56ccSgerardnico		            	    case self::SqlName:
545*5b7a56ccSgerardnico		            	    	$this->setState(54);
546*5b7a56ccSgerardnico		            	    	$this->match(self::SqlName);
547*5b7a56ccSgerardnico		            	    	break;
54837748cd8SNickeau
549*5b7a56ccSgerardnico		            	    case self::StringLiteral:
550*5b7a56ccSgerardnico		            	    	$this->setState(55);
551*5b7a56ccSgerardnico		            	    	$this->match(self::StringLiteral);
552*5b7a56ccSgerardnico		            	    	break;
55337748cd8SNickeau
554*5b7a56ccSgerardnico		            	    case self::NumberLiteral:
555*5b7a56ccSgerardnico		            	    	$this->setState(56);
556*5b7a56ccSgerardnico		            	    	$this->match(self::NumberLiteral);
557*5b7a56ccSgerardnico		            	    	break;
558*5b7a56ccSgerardnico
559*5b7a56ccSgerardnico		            	    case self::Number:
560*5b7a56ccSgerardnico		            	    	$this->setState(57);
561*5b7a56ccSgerardnico		            	    	$this->match(self::Number);
562*5b7a56ccSgerardnico		            	    	break;
563*5b7a56ccSgerardnico
564*5b7a56ccSgerardnico		            	    case self::NOW:
565*5b7a56ccSgerardnico		            	    	$this->setState(58);
566*5b7a56ccSgerardnico		            	    	$this->constantNames();
567*5b7a56ccSgerardnico		            	    	break;
568*5b7a56ccSgerardnico
569*5b7a56ccSgerardnico		            	default:
570*5b7a56ccSgerardnico		            		throw new NoViableAltException($this);
57137748cd8SNickeau		            	}
57237748cd8SNickeau		            	break;
57337748cd8SNickeau
57437748cd8SNickeau		            case self::DATE:
57537748cd8SNickeau		            case self::DATETIME:
57637748cd8SNickeau		            	$this->enterOuterAlt($localContext, 2);
577*5b7a56ccSgerardnico		            	$this->setState(61);
57837748cd8SNickeau		            	$this->functionNames();
579*5b7a56ccSgerardnico		            	$this->setState(62);
58004fd306cSNickeau		            	$this->match(self::LPAREN);
581*5b7a56ccSgerardnico		            	$this->setState(64);
58237748cd8SNickeau		            	$this->errorHandler->sync($this);
58337748cd8SNickeau		            	$_la = $this->input->LA(1);
58437748cd8SNickeau
585*5b7a56ccSgerardnico		            	if ((((($_la - 49)) & ~0x3f) === 0 && ((1 << ($_la - 49)) & ((1 << (self::NOW - 49)) | (1 << (self::DATE - 49)) | (1 << (self::DATETIME - 49)) | (1 << (self::StringLiteral - 49)) | (1 << (self::Number - 49)) | (1 << (self::NumberLiteral - 49)) | (1 << (self::SqlName - 49)))) !== 0)) {
586*5b7a56ccSgerardnico		            		$this->setState(63);
58737748cd8SNickeau		            		$this->expression();
58837748cd8SNickeau		            	}
589*5b7a56ccSgerardnico		            	$this->setState(70);
59037748cd8SNickeau		            	$this->errorHandler->sync($this);
59137748cd8SNickeau
59237748cd8SNickeau		            	$_la = $this->input->LA(1);
59337748cd8SNickeau		            	while ($_la === self::COMMA) {
594*5b7a56ccSgerardnico		            		$this->setState(66);
59537748cd8SNickeau		            		$this->match(self::COMMA);
596*5b7a56ccSgerardnico		            		$this->setState(67);
59737748cd8SNickeau		            		$this->expression();
598*5b7a56ccSgerardnico		            		$this->setState(72);
59937748cd8SNickeau		            		$this->errorHandler->sync($this);
60037748cd8SNickeau		            		$_la = $this->input->LA(1);
60137748cd8SNickeau		            	}
602*5b7a56ccSgerardnico		            	$this->setState(73);
60337748cd8SNickeau		            	$this->match(self::RPAREN);
60437748cd8SNickeau		            	break;
60537748cd8SNickeau
60637748cd8SNickeau		        default:
60737748cd8SNickeau		        	throw new NoViableAltException($this);
60837748cd8SNickeau		        }
60937748cd8SNickeau		    } catch (RecognitionException $exception) {
61037748cd8SNickeau		        $localContext->exception = $exception;
61137748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
61237748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
61337748cd8SNickeau		    } finally {
61437748cd8SNickeau		        $this->exitRule();
61537748cd8SNickeau		    }
61637748cd8SNickeau
61737748cd8SNickeau		    return $localContext;
61837748cd8SNickeau		}
61937748cd8SNickeau
62037748cd8SNickeau		/**
62137748cd8SNickeau		 * @throws RecognitionException
62237748cd8SNickeau		 */
62337748cd8SNickeau		public function predicate() : Context\PredicateContext
62437748cd8SNickeau		{
62537748cd8SNickeau		    $localContext = new Context\PredicateContext($this->ctx, $this->getState());
62637748cd8SNickeau
627*5b7a56ccSgerardnico		    $this->enterRule($localContext, 14, self::RULE_predicate);
62837748cd8SNickeau
62937748cd8SNickeau		    try {
63037748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
631*5b7a56ccSgerardnico		        $this->setState(77);
63237748cd8SNickeau		        $this->sqlNames();
633*5b7a56ccSgerardnico		        $this->setState(117);
63437748cd8SNickeau		        $this->errorHandler->sync($this);
63537748cd8SNickeau
636*5b7a56ccSgerardnico		        switch ($this->getInterpreter()->adaptivePredict($this->input, 14, $this->ctx)) {
63737748cd8SNickeau		        	case 1:
638*5b7a56ccSgerardnico		        	    $this->setState(78);
63937748cd8SNickeau
64037748cd8SNickeau		        	    $_la = $this->input->LA(1);
64137748cd8SNickeau
64237748cd8SNickeau		        	    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))) {
64337748cd8SNickeau		        	    $this->errorHandler->recoverInline($this);
64437748cd8SNickeau		        	    } else {
64537748cd8SNickeau		        	    	if ($this->input->LA(1) === Token::EOF) {
64637748cd8SNickeau		        	    	    $this->matchedEOF = true;
64737748cd8SNickeau		        	        }
64837748cd8SNickeau
64937748cd8SNickeau		        	    	$this->errorHandler->reportMatch($this);
65037748cd8SNickeau		        	    	$this->consume();
65137748cd8SNickeau		        	    }
652*5b7a56ccSgerardnico		        	    $this->setState(79);
65337748cd8SNickeau		        	    $this->expression();
65437748cd8SNickeau		        	break;
65537748cd8SNickeau
65637748cd8SNickeau		        	case 2:
657*5b7a56ccSgerardnico		        	    $this->setState(91);
65837748cd8SNickeau		        	    $this->errorHandler->sync($this);
65937748cd8SNickeau
66037748cd8SNickeau		        	    switch ($this->input->LA(1)) {
66137748cd8SNickeau		        	        case self::LIKE:
66237748cd8SNickeau		        	        case self::NOT:
663*5b7a56ccSgerardnico		        	        	$this->setState(81);
66437748cd8SNickeau		        	        	$this->errorHandler->sync($this);
66537748cd8SNickeau		        	        	$_la = $this->input->LA(1);
66637748cd8SNickeau
66737748cd8SNickeau		        	        	if ($_la === self::NOT) {
668*5b7a56ccSgerardnico		        	        		$this->setState(80);
66937748cd8SNickeau		        	        		$this->match(self::NOT);
67037748cd8SNickeau		        	        	}
67137748cd8SNickeau
672*5b7a56ccSgerardnico		        	        	$this->setState(83);
67337748cd8SNickeau		        	        	$this->match(self::LIKE);
674*5b7a56ccSgerardnico		        	        	$this->setState(84);
67537748cd8SNickeau		        	        	$this->pattern();
676*5b7a56ccSgerardnico		        	        	$this->setState(87);
67737748cd8SNickeau		        	        	$this->errorHandler->sync($this);
67837748cd8SNickeau		        	        	$_la = $this->input->LA(1);
67937748cd8SNickeau
68037748cd8SNickeau		        	        	if ($_la === self::ESCAPE) {
681*5b7a56ccSgerardnico		        	        		$this->setState(85);
68237748cd8SNickeau		        	        		$this->match(self::ESCAPE);
683*5b7a56ccSgerardnico		        	        		$this->setState(86);
68437748cd8SNickeau		        	        		$this->match(self::StringLiteral);
68537748cd8SNickeau		        	        	}
68637748cd8SNickeau		        	        	break;
68737748cd8SNickeau
68837748cd8SNickeau		        	        case self::GLOB:
689*5b7a56ccSgerardnico		        	        	$this->setState(89);
69037748cd8SNickeau		        	        	$this->match(self::GLOB);
691*5b7a56ccSgerardnico		        	        	$this->setState(90);
69237748cd8SNickeau		        	        	$this->pattern();
69337748cd8SNickeau		        	        	break;
69437748cd8SNickeau
69537748cd8SNickeau		        	    default:
69637748cd8SNickeau		        	    	throw new NoViableAltException($this);
69737748cd8SNickeau		        	    }
69837748cd8SNickeau		        	break;
69937748cd8SNickeau
70037748cd8SNickeau		        	case 3:
701*5b7a56ccSgerardnico		        	    $this->setState(94);
70237748cd8SNickeau		        	    $this->errorHandler->sync($this);
70337748cd8SNickeau		        	    $_la = $this->input->LA(1);
70437748cd8SNickeau
70537748cd8SNickeau		        	    if ($_la === self::NOT) {
706*5b7a56ccSgerardnico		        	    	$this->setState(93);
70737748cd8SNickeau		        	    	$this->match(self::NOT);
70837748cd8SNickeau		        	    }
709*5b7a56ccSgerardnico		        	    $this->setState(96);
71004fd306cSNickeau		        	    $this->match(self::BETWEEN);
711*5b7a56ccSgerardnico		        	    $this->setState(97);
71237748cd8SNickeau		        	    $this->expression();
713*5b7a56ccSgerardnico		        	    $this->setState(98);
71404fd306cSNickeau		        	    $this->match(self::AND);
715*5b7a56ccSgerardnico		        	    $this->setState(99);
71604fd306cSNickeau		        	    $this->expression();
71737748cd8SNickeau		        	break;
71837748cd8SNickeau
71937748cd8SNickeau		        	case 4:
720*5b7a56ccSgerardnico		        	    $this->setState(102);
72137748cd8SNickeau		        	    $this->errorHandler->sync($this);
72237748cd8SNickeau		        	    $_la = $this->input->LA(1);
72337748cd8SNickeau
72437748cd8SNickeau		        	    if ($_la === self::NOT) {
725*5b7a56ccSgerardnico		        	    	$this->setState(101);
72637748cd8SNickeau		        	    	$this->match(self::NOT);
72737748cd8SNickeau		        	    }
72804fd306cSNickeau		        	    $this->setState(104);
729*5b7a56ccSgerardnico		        	    $this->match(self::IN);
730*5b7a56ccSgerardnico		        	    $this->setState(105);
731*5b7a56ccSgerardnico		        	    $this->match(self::LPAREN);
732*5b7a56ccSgerardnico		        	    $this->setState(114);
73337748cd8SNickeau		        	    $this->errorHandler->sync($this);
73437748cd8SNickeau		        	    $_la = $this->input->LA(1);
73537748cd8SNickeau
736*5b7a56ccSgerardnico		        	    if ((((($_la - 49)) & ~0x3f) === 0 && ((1 << ($_la - 49)) & ((1 << (self::NOW - 49)) | (1 << (self::DATE - 49)) | (1 << (self::DATETIME - 49)) | (1 << (self::StringLiteral - 49)) | (1 << (self::Number - 49)) | (1 << (self::NumberLiteral - 49)) | (1 << (self::SqlName - 49)))) !== 0)) {
737*5b7a56ccSgerardnico		        	    	$this->setState(106);
73837748cd8SNickeau		        	    	$this->expression();
739*5b7a56ccSgerardnico		        	    	$this->setState(111);
74037748cd8SNickeau		        	    	$this->errorHandler->sync($this);
74104fd306cSNickeau
74204fd306cSNickeau		        	    	$_la = $this->input->LA(1);
74304fd306cSNickeau		        	    	while ($_la === self::COMMA) {
744*5b7a56ccSgerardnico		        	    		$this->setState(107);
74504fd306cSNickeau		        	    		$this->match(self::COMMA);
746*5b7a56ccSgerardnico		        	    		$this->setState(108);
74704fd306cSNickeau		        	    		$this->expression();
748*5b7a56ccSgerardnico		        	    		$this->setState(113);
74904fd306cSNickeau		        	    		$this->errorHandler->sync($this);
75037748cd8SNickeau		        	    		$_la = $this->input->LA(1);
75137748cd8SNickeau		        	    	}
75237748cd8SNickeau		        	    }
753*5b7a56ccSgerardnico		        	    $this->setState(116);
75437748cd8SNickeau		        	    $this->match(self::RPAREN);
75537748cd8SNickeau		        	break;
75637748cd8SNickeau		        }
75737748cd8SNickeau		    } catch (RecognitionException $exception) {
75837748cd8SNickeau		        $localContext->exception = $exception;
75937748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
76037748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
76137748cd8SNickeau		    } finally {
76237748cd8SNickeau		        $this->exitRule();
76337748cd8SNickeau		    }
76437748cd8SNickeau
76537748cd8SNickeau		    return $localContext;
76637748cd8SNickeau		}
76737748cd8SNickeau
76837748cd8SNickeau		/**
76937748cd8SNickeau		 * @throws RecognitionException
77037748cd8SNickeau		 */
77137748cd8SNickeau		public function columns() : Context\ColumnsContext
77237748cd8SNickeau		{
77337748cd8SNickeau		    $localContext = new Context\ColumnsContext($this->ctx, $this->getState());
77437748cd8SNickeau
775*5b7a56ccSgerardnico		    $this->enterRule($localContext, 16, self::RULE_columns);
77637748cd8SNickeau
77737748cd8SNickeau		    try {
77837748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
779*5b7a56ccSgerardnico		        $this->setState(119);
78037748cd8SNickeau		        $this->column();
781*5b7a56ccSgerardnico		        $this->setState(124);
78237748cd8SNickeau		        $this->errorHandler->sync($this);
78304fd306cSNickeau
78404fd306cSNickeau		        $_la = $this->input->LA(1);
78504fd306cSNickeau		        while ($_la === self::COMMA) {
786*5b7a56ccSgerardnico		        	$this->setState(120);
78704fd306cSNickeau		        	$this->match(self::COMMA);
788*5b7a56ccSgerardnico		        	$this->setState(121);
78904fd306cSNickeau		        	$this->column();
790*5b7a56ccSgerardnico		        	$this->setState(126);
79104fd306cSNickeau		        	$this->errorHandler->sync($this);
79237748cd8SNickeau		        	$_la = $this->input->LA(1);
79337748cd8SNickeau		        }
79437748cd8SNickeau		    } catch (RecognitionException $exception) {
79537748cd8SNickeau		        $localContext->exception = $exception;
79637748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
79737748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
79837748cd8SNickeau		    } finally {
79937748cd8SNickeau		        $this->exitRule();
80037748cd8SNickeau		    }
80137748cd8SNickeau
80237748cd8SNickeau		    return $localContext;
80337748cd8SNickeau		}
80437748cd8SNickeau
80537748cd8SNickeau		/**
80637748cd8SNickeau		 * @throws RecognitionException
80737748cd8SNickeau		 */
80804fd306cSNickeau		public function predicateGroup() : Context\PredicateGroupContext
80904fd306cSNickeau		{
81004fd306cSNickeau		    $localContext = new Context\PredicateGroupContext($this->ctx, $this->getState());
81104fd306cSNickeau
812*5b7a56ccSgerardnico		    $this->enterRule($localContext, 18, self::RULE_predicateGroup);
81304fd306cSNickeau
81404fd306cSNickeau		    try {
81504fd306cSNickeau		        $this->enterOuterAlt($localContext, 1);
816*5b7a56ccSgerardnico		        $this->setState(127);
81704fd306cSNickeau		        $this->match(self::LPAREN);
818*5b7a56ccSgerardnico		        $this->setState(128);
81904fd306cSNickeau		        $this->predicate();
820*5b7a56ccSgerardnico		        $this->setState(133);
82104fd306cSNickeau		        $this->errorHandler->sync($this);
82204fd306cSNickeau
82304fd306cSNickeau		        $_la = $this->input->LA(1);
82404fd306cSNickeau		        while ($_la === self::AND || $_la === self::OR) {
825*5b7a56ccSgerardnico		        	$this->setState(129);
82604fd306cSNickeau
82704fd306cSNickeau		        	$_la = $this->input->LA(1);
82804fd306cSNickeau
82904fd306cSNickeau		        	if (!($_la === self::AND || $_la === self::OR)) {
83004fd306cSNickeau		        	$this->errorHandler->recoverInline($this);
83104fd306cSNickeau		        	} else {
83204fd306cSNickeau		        		if ($this->input->LA(1) === Token::EOF) {
83304fd306cSNickeau		        		    $this->matchedEOF = true;
83404fd306cSNickeau		        	    }
83504fd306cSNickeau
83604fd306cSNickeau		        		$this->errorHandler->reportMatch($this);
83704fd306cSNickeau		        		$this->consume();
83804fd306cSNickeau		        	}
839*5b7a56ccSgerardnico		        	$this->setState(130);
84004fd306cSNickeau		        	$this->predicate();
841*5b7a56ccSgerardnico		        	$this->setState(135);
84204fd306cSNickeau		        	$this->errorHandler->sync($this);
84304fd306cSNickeau		        	$_la = $this->input->LA(1);
84404fd306cSNickeau		        }
845*5b7a56ccSgerardnico		        $this->setState(136);
84604fd306cSNickeau		        $this->match(self::RPAREN);
84704fd306cSNickeau		    } catch (RecognitionException $exception) {
84804fd306cSNickeau		        $localContext->exception = $exception;
84904fd306cSNickeau		        $this->errorHandler->reportError($this, $exception);
85004fd306cSNickeau		        $this->errorHandler->recover($this, $exception);
85104fd306cSNickeau		    } finally {
85204fd306cSNickeau		        $this->exitRule();
85304fd306cSNickeau		    }
85404fd306cSNickeau
85504fd306cSNickeau		    return $localContext;
85604fd306cSNickeau		}
85704fd306cSNickeau
85804fd306cSNickeau		/**
85904fd306cSNickeau		 * @throws RecognitionException
86004fd306cSNickeau		 */
86137748cd8SNickeau		public function predicates() : Context\PredicatesContext
86237748cd8SNickeau		{
86337748cd8SNickeau		    $localContext = new Context\PredicatesContext($this->ctx, $this->getState());
86437748cd8SNickeau
865*5b7a56ccSgerardnico		    $this->enterRule($localContext, 20, self::RULE_predicates);
86637748cd8SNickeau
86737748cd8SNickeau		    try {
86837748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
869*5b7a56ccSgerardnico		        $this->setState(138);
87037748cd8SNickeau		        $this->match(self::WHERE);
871*5b7a56ccSgerardnico		        $this->setState(141);
87204fd306cSNickeau		        $this->errorHandler->sync($this);
87304fd306cSNickeau
87404fd306cSNickeau		        switch ($this->input->LA(1)) {
87504fd306cSNickeau		            case self::Number:
87604fd306cSNickeau		            case self::SqlName:
877*5b7a56ccSgerardnico		            	$this->setState(139);
87837748cd8SNickeau		            	$this->predicate();
87904fd306cSNickeau		            	break;
88004fd306cSNickeau
88104fd306cSNickeau		            case self::LPAREN:
882*5b7a56ccSgerardnico		            	$this->setState(140);
88304fd306cSNickeau		            	$this->predicateGroup();
88404fd306cSNickeau		            	break;
88504fd306cSNickeau
88604fd306cSNickeau		        default:
88704fd306cSNickeau		        	throw new NoViableAltException($this);
88804fd306cSNickeau		        }
889*5b7a56ccSgerardnico		        $this->setState(150);
89037748cd8SNickeau		        $this->errorHandler->sync($this);
89137748cd8SNickeau
89237748cd8SNickeau		        $_la = $this->input->LA(1);
89337748cd8SNickeau		        while ($_la === self::AND || $_la === self::OR) {
894*5b7a56ccSgerardnico		        	$this->setState(143);
89537748cd8SNickeau
89637748cd8SNickeau		        	$_la = $this->input->LA(1);
89737748cd8SNickeau
89837748cd8SNickeau		        	if (!($_la === self::AND || $_la === self::OR)) {
89937748cd8SNickeau		        	$this->errorHandler->recoverInline($this);
90037748cd8SNickeau		        	} else {
90137748cd8SNickeau		        		if ($this->input->LA(1) === Token::EOF) {
90237748cd8SNickeau		        		    $this->matchedEOF = true;
90337748cd8SNickeau		        	    }
90437748cd8SNickeau
90537748cd8SNickeau		        		$this->errorHandler->reportMatch($this);
90637748cd8SNickeau		        		$this->consume();
90737748cd8SNickeau		        	}
908*5b7a56ccSgerardnico		        	$this->setState(146);
90904fd306cSNickeau		        	$this->errorHandler->sync($this);
91004fd306cSNickeau
91104fd306cSNickeau		        	switch ($this->input->LA(1)) {
91204fd306cSNickeau		        	    case self::Number:
91304fd306cSNickeau		        	    case self::SqlName:
914*5b7a56ccSgerardnico		        	    	$this->setState(144);
91537748cd8SNickeau		        	    	$this->predicate();
91604fd306cSNickeau		        	    	break;
91704fd306cSNickeau
91804fd306cSNickeau		        	    case self::LPAREN:
919*5b7a56ccSgerardnico		        	    	$this->setState(145);
92004fd306cSNickeau		        	    	$this->predicateGroup();
92104fd306cSNickeau		        	    	break;
92204fd306cSNickeau
92304fd306cSNickeau		        	default:
92404fd306cSNickeau		        		throw new NoViableAltException($this);
92504fd306cSNickeau		        	}
926*5b7a56ccSgerardnico		        	$this->setState(152);
92737748cd8SNickeau		        	$this->errorHandler->sync($this);
92837748cd8SNickeau		        	$_la = $this->input->LA(1);
92937748cd8SNickeau		        }
93037748cd8SNickeau		    } catch (RecognitionException $exception) {
93137748cd8SNickeau		        $localContext->exception = $exception;
93237748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
93337748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
93437748cd8SNickeau		    } finally {
93537748cd8SNickeau		        $this->exitRule();
93637748cd8SNickeau		    }
93737748cd8SNickeau
93837748cd8SNickeau		    return $localContext;
93937748cd8SNickeau		}
94037748cd8SNickeau
94137748cd8SNickeau		/**
94237748cd8SNickeau		 * @throws RecognitionException
94337748cd8SNickeau		 */
94437748cd8SNickeau		public function tables() : Context\TablesContext
94537748cd8SNickeau		{
94637748cd8SNickeau		    $localContext = new Context\TablesContext($this->ctx, $this->getState());
94737748cd8SNickeau
948*5b7a56ccSgerardnico		    $this->enterRule($localContext, 22, self::RULE_tables);
94937748cd8SNickeau
95037748cd8SNickeau		    try {
95137748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
952*5b7a56ccSgerardnico		        $this->setState(153);
95337748cd8SNickeau		        $this->match(self::FROM);
954*5b7a56ccSgerardnico		        $this->setState(154);
95537748cd8SNickeau		        $this->tableNames();
95637748cd8SNickeau		    } catch (RecognitionException $exception) {
95737748cd8SNickeau		        $localContext->exception = $exception;
95837748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
95937748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
96037748cd8SNickeau		    } finally {
96137748cd8SNickeau		        $this->exitRule();
96237748cd8SNickeau		    }
96337748cd8SNickeau
96437748cd8SNickeau		    return $localContext;
96537748cd8SNickeau		}
96637748cd8SNickeau
96737748cd8SNickeau		/**
96837748cd8SNickeau		 * @throws RecognitionException
96937748cd8SNickeau		 */
97037748cd8SNickeau		public function limit() : Context\LimitContext
97137748cd8SNickeau		{
97237748cd8SNickeau		    $localContext = new Context\LimitContext($this->ctx, $this->getState());
97337748cd8SNickeau
974*5b7a56ccSgerardnico		    $this->enterRule($localContext, 24, self::RULE_limit);
97537748cd8SNickeau
97637748cd8SNickeau		    try {
97737748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
978*5b7a56ccSgerardnico		        $this->setState(156);
97937748cd8SNickeau		        $this->match(self::LIMIT);
980*5b7a56ccSgerardnico		        $this->setState(157);
98137748cd8SNickeau		        $this->match(self::Number);
98237748cd8SNickeau		    } catch (RecognitionException $exception) {
98337748cd8SNickeau		        $localContext->exception = $exception;
98437748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
98537748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
98637748cd8SNickeau		    } finally {
98737748cd8SNickeau		        $this->exitRule();
98837748cd8SNickeau		    }
98937748cd8SNickeau
99037748cd8SNickeau		    return $localContext;
99137748cd8SNickeau		}
99237748cd8SNickeau
99337748cd8SNickeau		/**
99437748cd8SNickeau		 * @throws RecognitionException
99537748cd8SNickeau		 */
99637748cd8SNickeau		public function orderBys() : Context\OrderBysContext
99737748cd8SNickeau		{
99837748cd8SNickeau		    $localContext = new Context\OrderBysContext($this->ctx, $this->getState());
99937748cd8SNickeau
1000*5b7a56ccSgerardnico		    $this->enterRule($localContext, 26, self::RULE_orderBys);
100137748cd8SNickeau
100237748cd8SNickeau		    try {
100337748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
1004*5b7a56ccSgerardnico		        $this->setState(159);
100537748cd8SNickeau		        $this->match(self::ORDER);
1006*5b7a56ccSgerardnico		        $this->setState(170);
100704fd306cSNickeau		        $this->errorHandler->sync($this);
100804fd306cSNickeau
100904fd306cSNickeau		        switch ($this->input->LA(1)) {
101004fd306cSNickeau		            case self::RANDOM:
1011*5b7a56ccSgerardnico		            	$this->setState(160);
101204fd306cSNickeau		            	$this->match(self::RANDOM);
101304fd306cSNickeau		            	break;
101404fd306cSNickeau
101504fd306cSNickeau		            case self::BY:
1016*5b7a56ccSgerardnico		            	$this->setState(161);
101737748cd8SNickeau		            	$this->match(self::BY);
1018*5b7a56ccSgerardnico		            	$this->setState(162);
101937748cd8SNickeau		            	$this->orderByDef();
1020*5b7a56ccSgerardnico		            	$this->setState(167);
102137748cd8SNickeau		            	$this->errorHandler->sync($this);
102237748cd8SNickeau
102337748cd8SNickeau		            	$_la = $this->input->LA(1);
102437748cd8SNickeau		            	while ($_la === self::COMMA) {
1025*5b7a56ccSgerardnico		            		$this->setState(163);
102637748cd8SNickeau		            		$this->match(self::COMMA);
1027*5b7a56ccSgerardnico		            		$this->setState(164);
102837748cd8SNickeau		            		$this->orderByDef();
1029*5b7a56ccSgerardnico		            		$this->setState(169);
103037748cd8SNickeau		            		$this->errorHandler->sync($this);
103137748cd8SNickeau		            		$_la = $this->input->LA(1);
103237748cd8SNickeau		            	}
103304fd306cSNickeau		            	break;
103404fd306cSNickeau
103504fd306cSNickeau		        default:
103604fd306cSNickeau		        	throw new NoViableAltException($this);
103704fd306cSNickeau		        }
103837748cd8SNickeau		    } catch (RecognitionException $exception) {
103937748cd8SNickeau		        $localContext->exception = $exception;
104037748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
104137748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
104237748cd8SNickeau		    } finally {
104337748cd8SNickeau		        $this->exitRule();
104437748cd8SNickeau		    }
104537748cd8SNickeau
104637748cd8SNickeau		    return $localContext;
104737748cd8SNickeau		}
104837748cd8SNickeau
104937748cd8SNickeau		/**
105037748cd8SNickeau		 * @throws RecognitionException
105137748cd8SNickeau		 */
105237748cd8SNickeau		public function orderByDef() : Context\OrderByDefContext
105337748cd8SNickeau		{
105437748cd8SNickeau		    $localContext = new Context\OrderByDefContext($this->ctx, $this->getState());
105537748cd8SNickeau
1056*5b7a56ccSgerardnico		    $this->enterRule($localContext, 28, self::RULE_orderByDef);
105737748cd8SNickeau
105837748cd8SNickeau		    try {
105937748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
1060*5b7a56ccSgerardnico		        $this->setState(172);
106137748cd8SNickeau		        $this->match(self::SqlName);
1062*5b7a56ccSgerardnico		        $this->setState(174);
106337748cd8SNickeau		        $this->errorHandler->sync($this);
106437748cd8SNickeau		        $_la = $this->input->LA(1);
106537748cd8SNickeau
106637748cd8SNickeau		        if ($_la === self::ASC || $_la === self::DESC) {
1067*5b7a56ccSgerardnico		        	$this->setState(173);
106837748cd8SNickeau
106937748cd8SNickeau		        	$_la = $this->input->LA(1);
107037748cd8SNickeau
107137748cd8SNickeau		        	if (!($_la === self::ASC || $_la === self::DESC)) {
107237748cd8SNickeau		        	$this->errorHandler->recoverInline($this);
107337748cd8SNickeau		        	} else {
107437748cd8SNickeau		        		if ($this->input->LA(1) === Token::EOF) {
107537748cd8SNickeau		        		    $this->matchedEOF = true;
107637748cd8SNickeau		        	    }
107737748cd8SNickeau
107837748cd8SNickeau		        		$this->errorHandler->reportMatch($this);
107937748cd8SNickeau		        		$this->consume();
108037748cd8SNickeau		        	}
108137748cd8SNickeau		        }
108237748cd8SNickeau		    } catch (RecognitionException $exception) {
108337748cd8SNickeau		        $localContext->exception = $exception;
108437748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
108537748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
108637748cd8SNickeau		    } finally {
108737748cd8SNickeau		        $this->exitRule();
108837748cd8SNickeau		    }
108937748cd8SNickeau
109037748cd8SNickeau		    return $localContext;
109137748cd8SNickeau		}
109237748cd8SNickeau
109337748cd8SNickeau		/**
109437748cd8SNickeau		 * @throws RecognitionException
109537748cd8SNickeau		 */
109637748cd8SNickeau		public function pageSql() : Context\PageSqlContext
109737748cd8SNickeau		{
109837748cd8SNickeau		    $localContext = new Context\PageSqlContext($this->ctx, $this->getState());
109937748cd8SNickeau
1100*5b7a56ccSgerardnico		    $this->enterRule($localContext, 30, self::RULE_pageSql);
110137748cd8SNickeau
110237748cd8SNickeau		    try {
110337748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
1104*5b7a56ccSgerardnico		        $this->setState(176);
110537748cd8SNickeau		        $this->match(self::SELECT);
1106*5b7a56ccSgerardnico		        $this->setState(178);
110737748cd8SNickeau		        $this->errorHandler->sync($this);
110837748cd8SNickeau		        $_la = $this->input->LA(1);
110937748cd8SNickeau
111037748cd8SNickeau		        if ($_la === self::RANDOM) {
1111*5b7a56ccSgerardnico		        	$this->setState(177);
111237748cd8SNickeau		        	$this->match(self::RANDOM);
111337748cd8SNickeau		        }
1114*5b7a56ccSgerardnico		        $this->setState(182);
111537748cd8SNickeau		        $this->errorHandler->sync($this);
111637748cd8SNickeau
11171fa8c418SNickeau		        switch ($this->input->LA(1)) {
11181fa8c418SNickeau		            case self::STAR:
1119*5b7a56ccSgerardnico		            	$this->setState(180);
11201fa8c418SNickeau		            	$this->match(self::STAR);
11211fa8c418SNickeau		            	break;
11221fa8c418SNickeau
11231fa8c418SNickeau		            case self::Number:
11241fa8c418SNickeau		            case self::SqlName:
1125*5b7a56ccSgerardnico		            	$this->setState(181);
11261fa8c418SNickeau		            	$this->columns();
11271fa8c418SNickeau		            	break;
11281fa8c418SNickeau
11291fa8c418SNickeau		            case self::EOF:
11301fa8c418SNickeau		            case self::FROM:
11311fa8c418SNickeau		            case self::LIMIT:
11321fa8c418SNickeau		            case self::ORDER:
11331fa8c418SNickeau		            case self::WHERE:
11341fa8c418SNickeau		            	break;
11351fa8c418SNickeau
11361fa8c418SNickeau		        default:
11371fa8c418SNickeau		        	break;
113837748cd8SNickeau		        }
1139*5b7a56ccSgerardnico		        $this->setState(185);
114037748cd8SNickeau		        $this->errorHandler->sync($this);
114137748cd8SNickeau		        $_la = $this->input->LA(1);
114237748cd8SNickeau
11431fa8c418SNickeau		        if ($_la === self::FROM) {
1144*5b7a56ccSgerardnico		        	$this->setState(184);
11451fa8c418SNickeau		        	$this->tables();
114637748cd8SNickeau		        }
1147*5b7a56ccSgerardnico		        $this->setState(188);
114837748cd8SNickeau		        $this->errorHandler->sync($this);
114937748cd8SNickeau		        $_la = $this->input->LA(1);
115037748cd8SNickeau
11511fa8c418SNickeau		        if ($_la === self::WHERE) {
1152*5b7a56ccSgerardnico		        	$this->setState(187);
11531fa8c418SNickeau		        	$this->predicates();
115437748cd8SNickeau		        }
1155*5b7a56ccSgerardnico		        $this->setState(191);
115637748cd8SNickeau		        $this->errorHandler->sync($this);
115737748cd8SNickeau		        $_la = $this->input->LA(1);
115837748cd8SNickeau
11591fa8c418SNickeau		        if ($_la === self::ORDER) {
1160*5b7a56ccSgerardnico		        	$this->setState(190);
11611fa8c418SNickeau		        	$this->orderBys();
11621fa8c418SNickeau		        }
1163*5b7a56ccSgerardnico		        $this->setState(194);
11641fa8c418SNickeau		        $this->errorHandler->sync($this);
11651fa8c418SNickeau		        $_la = $this->input->LA(1);
11661fa8c418SNickeau
11671fa8c418SNickeau		        if ($_la === self::LIMIT) {
1168*5b7a56ccSgerardnico		        	$this->setState(193);
116937748cd8SNickeau		        	$this->limit();
117037748cd8SNickeau		        }
117137748cd8SNickeau		    } catch (RecognitionException $exception) {
117237748cd8SNickeau		        $localContext->exception = $exception;
117337748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
117437748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
117537748cd8SNickeau		    } finally {
117637748cd8SNickeau		        $this->exitRule();
117737748cd8SNickeau		    }
117837748cd8SNickeau
117937748cd8SNickeau		    return $localContext;
118037748cd8SNickeau		}
118137748cd8SNickeau	}
118237748cd8SNickeau}
118337748cd8SNickeau
118437748cd8SNickeaunamespace ComboStrap\PageSqlParser\Context {
118537748cd8SNickeau	use Antlr\Antlr4\Runtime\ParserRuleContext;
118637748cd8SNickeau	use Antlr\Antlr4\Runtime\Token;
118737748cd8SNickeau	use Antlr\Antlr4\Runtime\Tree\ParseTreeVisitor;
118837748cd8SNickeau	use Antlr\Antlr4\Runtime\Tree\TerminalNode;
118937748cd8SNickeau	use Antlr\Antlr4\Runtime\Tree\ParseTreeListener;
119037748cd8SNickeau	use ComboStrap\PageSqlParser\PageSqlParser;
119137748cd8SNickeau	use ComboStrap\PageSqlParser\PageSqlListener;
119237748cd8SNickeau
119337748cd8SNickeau	class FunctionNamesContext extends ParserRuleContext
119437748cd8SNickeau	{
119537748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
119637748cd8SNickeau		{
119737748cd8SNickeau			parent::__construct($parent, $invokingState);
119837748cd8SNickeau		}
119937748cd8SNickeau
120037748cd8SNickeau		public function getRuleIndex() : int
120137748cd8SNickeau		{
120237748cd8SNickeau		    return PageSqlParser::RULE_functionNames;
120337748cd8SNickeau	    }
120437748cd8SNickeau
120537748cd8SNickeau	    public function DATE() : ?TerminalNode
120637748cd8SNickeau	    {
120737748cd8SNickeau	        return $this->getToken(PageSqlParser::DATE, 0);
120837748cd8SNickeau	    }
120937748cd8SNickeau
121037748cd8SNickeau	    public function DATETIME() : ?TerminalNode
121137748cd8SNickeau	    {
121237748cd8SNickeau	        return $this->getToken(PageSqlParser::DATETIME, 0);
121337748cd8SNickeau	    }
121437748cd8SNickeau
121537748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
121637748cd8SNickeau		{
121737748cd8SNickeau			if ($listener instanceof PageSqlListener) {
121837748cd8SNickeau			    $listener->enterFunctionNames($this);
121937748cd8SNickeau		    }
122037748cd8SNickeau		}
122137748cd8SNickeau
122237748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
122337748cd8SNickeau		{
122437748cd8SNickeau			if ($listener instanceof PageSqlListener) {
122537748cd8SNickeau			    $listener->exitFunctionNames($this);
122637748cd8SNickeau		    }
122737748cd8SNickeau		}
122837748cd8SNickeau	}
122937748cd8SNickeau
1230*5b7a56ccSgerardnico	class ConstantNamesContext extends ParserRuleContext
1231*5b7a56ccSgerardnico	{
1232*5b7a56ccSgerardnico		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
1233*5b7a56ccSgerardnico		{
1234*5b7a56ccSgerardnico			parent::__construct($parent, $invokingState);
1235*5b7a56ccSgerardnico		}
1236*5b7a56ccSgerardnico
1237*5b7a56ccSgerardnico		public function getRuleIndex() : int
1238*5b7a56ccSgerardnico		{
1239*5b7a56ccSgerardnico		    return PageSqlParser::RULE_constantNames;
1240*5b7a56ccSgerardnico	    }
1241*5b7a56ccSgerardnico
1242*5b7a56ccSgerardnico	    public function NOW() : ?TerminalNode
1243*5b7a56ccSgerardnico	    {
1244*5b7a56ccSgerardnico	        return $this->getToken(PageSqlParser::NOW, 0);
1245*5b7a56ccSgerardnico	    }
1246*5b7a56ccSgerardnico
1247*5b7a56ccSgerardnico		public function enterRule(ParseTreeListener $listener) : void
1248*5b7a56ccSgerardnico		{
1249*5b7a56ccSgerardnico			if ($listener instanceof PageSqlListener) {
1250*5b7a56ccSgerardnico			    $listener->enterConstantNames($this);
1251*5b7a56ccSgerardnico		    }
1252*5b7a56ccSgerardnico		}
1253*5b7a56ccSgerardnico
1254*5b7a56ccSgerardnico		public function exitRule(ParseTreeListener $listener) : void
1255*5b7a56ccSgerardnico		{
1256*5b7a56ccSgerardnico			if ($listener instanceof PageSqlListener) {
1257*5b7a56ccSgerardnico			    $listener->exitConstantNames($this);
1258*5b7a56ccSgerardnico		    }
1259*5b7a56ccSgerardnico		}
1260*5b7a56ccSgerardnico	}
1261*5b7a56ccSgerardnico
126237748cd8SNickeau	class TableNamesContext extends ParserRuleContext
126337748cd8SNickeau	{
126437748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
126537748cd8SNickeau		{
126637748cd8SNickeau			parent::__construct($parent, $invokingState);
126737748cd8SNickeau		}
126837748cd8SNickeau
126937748cd8SNickeau		public function getRuleIndex() : int
127037748cd8SNickeau		{
127137748cd8SNickeau		    return PageSqlParser::RULE_tableNames;
127237748cd8SNickeau	    }
127337748cd8SNickeau
12741fa8c418SNickeau	    public function PAGES() : ?TerminalNode
127537748cd8SNickeau	    {
12761fa8c418SNickeau	        return $this->getToken(PageSqlParser::PAGES, 0);
127737748cd8SNickeau	    }
127837748cd8SNickeau
12791fa8c418SNickeau	    public function BACKLINKS() : ?TerminalNode
128037748cd8SNickeau	    {
12811fa8c418SNickeau	        return $this->getToken(PageSqlParser::BACKLINKS, 0);
128237748cd8SNickeau	    }
128337748cd8SNickeau
128404fd306cSNickeau	    public function DESCENDANTS() : ?TerminalNode
128504fd306cSNickeau	    {
128604fd306cSNickeau	        return $this->getToken(PageSqlParser::DESCENDANTS, 0);
128704fd306cSNickeau	    }
128804fd306cSNickeau
128937748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
129037748cd8SNickeau		{
129137748cd8SNickeau			if ($listener instanceof PageSqlListener) {
129237748cd8SNickeau			    $listener->enterTableNames($this);
129337748cd8SNickeau		    }
129437748cd8SNickeau		}
129537748cd8SNickeau
129637748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
129737748cd8SNickeau		{
129837748cd8SNickeau			if ($listener instanceof PageSqlListener) {
129937748cd8SNickeau			    $listener->exitTableNames($this);
130037748cd8SNickeau		    }
130137748cd8SNickeau		}
130237748cd8SNickeau	}
130337748cd8SNickeau
130437748cd8SNickeau	class SqlNamesContext extends ParserRuleContext
130537748cd8SNickeau	{
130637748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
130737748cd8SNickeau		{
130837748cd8SNickeau			parent::__construct($parent, $invokingState);
130937748cd8SNickeau		}
131037748cd8SNickeau
131137748cd8SNickeau		public function getRuleIndex() : int
131237748cd8SNickeau		{
131337748cd8SNickeau		    return PageSqlParser::RULE_sqlNames;
131437748cd8SNickeau	    }
131537748cd8SNickeau
131637748cd8SNickeau	    public function SqlName() : ?TerminalNode
131737748cd8SNickeau	    {
131837748cd8SNickeau	        return $this->getToken(PageSqlParser::SqlName, 0);
131937748cd8SNickeau	    }
132037748cd8SNickeau
132137748cd8SNickeau	    public function Number() : ?TerminalNode
132237748cd8SNickeau	    {
132337748cd8SNickeau	        return $this->getToken(PageSqlParser::Number, 0);
132437748cd8SNickeau	    }
132537748cd8SNickeau
132637748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
132737748cd8SNickeau		{
132837748cd8SNickeau			if ($listener instanceof PageSqlListener) {
132937748cd8SNickeau			    $listener->enterSqlNames($this);
133037748cd8SNickeau		    }
133137748cd8SNickeau		}
133237748cd8SNickeau
133337748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
133437748cd8SNickeau		{
133537748cd8SNickeau			if ($listener instanceof PageSqlListener) {
133637748cd8SNickeau			    $listener->exitSqlNames($this);
133737748cd8SNickeau		    }
133837748cd8SNickeau		}
133937748cd8SNickeau	}
134037748cd8SNickeau
134137748cd8SNickeau	class ColumnContext extends ParserRuleContext
134237748cd8SNickeau	{
134337748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
134437748cd8SNickeau		{
134537748cd8SNickeau			parent::__construct($parent, $invokingState);
134637748cd8SNickeau		}
134737748cd8SNickeau
134837748cd8SNickeau		public function getRuleIndex() : int
134937748cd8SNickeau		{
135037748cd8SNickeau		    return PageSqlParser::RULE_column;
135137748cd8SNickeau	    }
135237748cd8SNickeau
135337748cd8SNickeau	    /**
135437748cd8SNickeau	     * @return array<SqlNamesContext>|SqlNamesContext|null
135537748cd8SNickeau	     */
135637748cd8SNickeau	    public function sqlNames(?int $index = null)
135737748cd8SNickeau	    {
135837748cd8SNickeau	    	if ($index === null) {
135937748cd8SNickeau	    		return $this->getTypedRuleContexts(SqlNamesContext::class);
136037748cd8SNickeau	    	}
136137748cd8SNickeau
136237748cd8SNickeau	        return $this->getTypedRuleContext(SqlNamesContext::class, $index);
136337748cd8SNickeau	    }
136437748cd8SNickeau
136537748cd8SNickeau	    public function DOT() : ?TerminalNode
136637748cd8SNickeau	    {
136737748cd8SNickeau	        return $this->getToken(PageSqlParser::DOT, 0);
136837748cd8SNickeau	    }
136937748cd8SNickeau
137037748cd8SNickeau	    public function AS() : ?TerminalNode
137137748cd8SNickeau	    {
137237748cd8SNickeau	        return $this->getToken(PageSqlParser::AS, 0);
137337748cd8SNickeau	    }
137437748cd8SNickeau
137537748cd8SNickeau	    public function StringLiteral() : ?TerminalNode
137637748cd8SNickeau	    {
137737748cd8SNickeau	        return $this->getToken(PageSqlParser::StringLiteral, 0);
137837748cd8SNickeau	    }
137937748cd8SNickeau
138037748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
138137748cd8SNickeau		{
138237748cd8SNickeau			if ($listener instanceof PageSqlListener) {
138337748cd8SNickeau			    $listener->enterColumn($this);
138437748cd8SNickeau		    }
138537748cd8SNickeau		}
138637748cd8SNickeau
138737748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
138837748cd8SNickeau		{
138937748cd8SNickeau			if ($listener instanceof PageSqlListener) {
139037748cd8SNickeau			    $listener->exitColumn($this);
139137748cd8SNickeau		    }
139237748cd8SNickeau		}
139337748cd8SNickeau	}
139437748cd8SNickeau
139537748cd8SNickeau	class PatternContext extends ParserRuleContext
139637748cd8SNickeau	{
139737748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
139837748cd8SNickeau		{
139937748cd8SNickeau			parent::__construct($parent, $invokingState);
140037748cd8SNickeau		}
140137748cd8SNickeau
140237748cd8SNickeau		public function getRuleIndex() : int
140337748cd8SNickeau		{
140437748cd8SNickeau		    return PageSqlParser::RULE_pattern;
140537748cd8SNickeau	    }
140637748cd8SNickeau
140737748cd8SNickeau	    public function StringLiteral() : ?TerminalNode
140837748cd8SNickeau	    {
140937748cd8SNickeau	        return $this->getToken(PageSqlParser::StringLiteral, 0);
141037748cd8SNickeau	    }
141137748cd8SNickeau
141237748cd8SNickeau	    public function NumberLiteral() : ?TerminalNode
141337748cd8SNickeau	    {
141437748cd8SNickeau	        return $this->getToken(PageSqlParser::NumberLiteral, 0);
141537748cd8SNickeau	    }
141637748cd8SNickeau
141737748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
141837748cd8SNickeau		{
141937748cd8SNickeau			if ($listener instanceof PageSqlListener) {
142037748cd8SNickeau			    $listener->enterPattern($this);
142137748cd8SNickeau		    }
142237748cd8SNickeau		}
142337748cd8SNickeau
142437748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
142537748cd8SNickeau		{
142637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
142737748cd8SNickeau			    $listener->exitPattern($this);
142837748cd8SNickeau		    }
142937748cd8SNickeau		}
143037748cd8SNickeau	}
143137748cd8SNickeau
143237748cd8SNickeau	class ExpressionContext extends ParserRuleContext
143337748cd8SNickeau	{
143437748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
143537748cd8SNickeau		{
143637748cd8SNickeau			parent::__construct($parent, $invokingState);
143737748cd8SNickeau		}
143837748cd8SNickeau
143937748cd8SNickeau		public function getRuleIndex() : int
144037748cd8SNickeau		{
144137748cd8SNickeau		    return PageSqlParser::RULE_expression;
144237748cd8SNickeau	    }
144337748cd8SNickeau
144437748cd8SNickeau	    public function SqlName() : ?TerminalNode
144537748cd8SNickeau	    {
144637748cd8SNickeau	        return $this->getToken(PageSqlParser::SqlName, 0);
144737748cd8SNickeau	    }
144837748cd8SNickeau
144937748cd8SNickeau	    public function StringLiteral() : ?TerminalNode
145037748cd8SNickeau	    {
145137748cd8SNickeau	        return $this->getToken(PageSqlParser::StringLiteral, 0);
145237748cd8SNickeau	    }
145337748cd8SNickeau
145437748cd8SNickeau	    public function NumberLiteral() : ?TerminalNode
145537748cd8SNickeau	    {
145637748cd8SNickeau	        return $this->getToken(PageSqlParser::NumberLiteral, 0);
145737748cd8SNickeau	    }
145837748cd8SNickeau
145937748cd8SNickeau	    public function Number() : ?TerminalNode
146037748cd8SNickeau	    {
146137748cd8SNickeau	        return $this->getToken(PageSqlParser::Number, 0);
146237748cd8SNickeau	    }
146337748cd8SNickeau
1464*5b7a56ccSgerardnico	    public function constantNames() : ?ConstantNamesContext
1465*5b7a56ccSgerardnico	    {
1466*5b7a56ccSgerardnico	    	return $this->getTypedRuleContext(ConstantNamesContext::class, 0);
1467*5b7a56ccSgerardnico	    }
1468*5b7a56ccSgerardnico
146937748cd8SNickeau	    public function functionNames() : ?FunctionNamesContext
147037748cd8SNickeau	    {
147137748cd8SNickeau	    	return $this->getTypedRuleContext(FunctionNamesContext::class, 0);
147237748cd8SNickeau	    }
147337748cd8SNickeau
147437748cd8SNickeau	    public function LPAREN() : ?TerminalNode
147537748cd8SNickeau	    {
147637748cd8SNickeau	        return $this->getToken(PageSqlParser::LPAREN, 0);
147737748cd8SNickeau	    }
147837748cd8SNickeau
147937748cd8SNickeau	    public function RPAREN() : ?TerminalNode
148037748cd8SNickeau	    {
148137748cd8SNickeau	        return $this->getToken(PageSqlParser::RPAREN, 0);
148237748cd8SNickeau	    }
148337748cd8SNickeau
148437748cd8SNickeau	    /**
148537748cd8SNickeau	     * @return array<ExpressionContext>|ExpressionContext|null
148637748cd8SNickeau	     */
148737748cd8SNickeau	    public function expression(?int $index = null)
148837748cd8SNickeau	    {
148937748cd8SNickeau	    	if ($index === null) {
149037748cd8SNickeau	    		return $this->getTypedRuleContexts(ExpressionContext::class);
149137748cd8SNickeau	    	}
149237748cd8SNickeau
149337748cd8SNickeau	        return $this->getTypedRuleContext(ExpressionContext::class, $index);
149437748cd8SNickeau	    }
149537748cd8SNickeau
149637748cd8SNickeau	    /**
149737748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
149837748cd8SNickeau	     */
149937748cd8SNickeau	    public function COMMA(?int $index = null)
150037748cd8SNickeau	    {
150137748cd8SNickeau	    	if ($index === null) {
150237748cd8SNickeau	    		return $this->getTokens(PageSqlParser::COMMA);
150337748cd8SNickeau	    	}
150437748cd8SNickeau
150537748cd8SNickeau	        return $this->getToken(PageSqlParser::COMMA, $index);
150637748cd8SNickeau	    }
150737748cd8SNickeau
150837748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
150937748cd8SNickeau		{
151037748cd8SNickeau			if ($listener instanceof PageSqlListener) {
151137748cd8SNickeau			    $listener->enterExpression($this);
151237748cd8SNickeau		    }
151337748cd8SNickeau		}
151437748cd8SNickeau
151537748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
151637748cd8SNickeau		{
151737748cd8SNickeau			if ($listener instanceof PageSqlListener) {
151837748cd8SNickeau			    $listener->exitExpression($this);
151937748cd8SNickeau		    }
152037748cd8SNickeau		}
152137748cd8SNickeau	}
152237748cd8SNickeau
152337748cd8SNickeau	class PredicateContext extends ParserRuleContext
152437748cd8SNickeau	{
152537748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
152637748cd8SNickeau		{
152737748cd8SNickeau			parent::__construct($parent, $invokingState);
152837748cd8SNickeau		}
152937748cd8SNickeau
153037748cd8SNickeau		public function getRuleIndex() : int
153137748cd8SNickeau		{
153237748cd8SNickeau		    return PageSqlParser::RULE_predicate;
153337748cd8SNickeau	    }
153437748cd8SNickeau
153537748cd8SNickeau	    public function sqlNames() : ?SqlNamesContext
153637748cd8SNickeau	    {
153737748cd8SNickeau	    	return $this->getTypedRuleContext(SqlNamesContext::class, 0);
153837748cd8SNickeau	    }
153937748cd8SNickeau
154037748cd8SNickeau	    /**
154137748cd8SNickeau	     * @return array<ExpressionContext>|ExpressionContext|null
154237748cd8SNickeau	     */
154337748cd8SNickeau	    public function expression(?int $index = null)
154437748cd8SNickeau	    {
154537748cd8SNickeau	    	if ($index === null) {
154637748cd8SNickeau	    		return $this->getTypedRuleContexts(ExpressionContext::class);
154737748cd8SNickeau	    	}
154837748cd8SNickeau
154937748cd8SNickeau	        return $this->getTypedRuleContext(ExpressionContext::class, $index);
155037748cd8SNickeau	    }
155137748cd8SNickeau
155237748cd8SNickeau	    public function BETWEEN() : ?TerminalNode
155337748cd8SNickeau	    {
155437748cd8SNickeau	        return $this->getToken(PageSqlParser::BETWEEN, 0);
155537748cd8SNickeau	    }
155637748cd8SNickeau
155737748cd8SNickeau	    public function AND() : ?TerminalNode
155837748cd8SNickeau	    {
155937748cd8SNickeau	        return $this->getToken(PageSqlParser::AND, 0);
156037748cd8SNickeau	    }
156137748cd8SNickeau
156237748cd8SNickeau	    public function IN() : ?TerminalNode
156337748cd8SNickeau	    {
156437748cd8SNickeau	        return $this->getToken(PageSqlParser::IN, 0);
156537748cd8SNickeau	    }
156637748cd8SNickeau
156737748cd8SNickeau	    public function LPAREN() : ?TerminalNode
156837748cd8SNickeau	    {
156937748cd8SNickeau	        return $this->getToken(PageSqlParser::LPAREN, 0);
157037748cd8SNickeau	    }
157137748cd8SNickeau
157237748cd8SNickeau	    public function RPAREN() : ?TerminalNode
157337748cd8SNickeau	    {
157437748cd8SNickeau	        return $this->getToken(PageSqlParser::RPAREN, 0);
157537748cd8SNickeau	    }
157637748cd8SNickeau
157737748cd8SNickeau	    public function LESS_THAN() : ?TerminalNode
157837748cd8SNickeau	    {
157937748cd8SNickeau	        return $this->getToken(PageSqlParser::LESS_THAN, 0);
158037748cd8SNickeau	    }
158137748cd8SNickeau
158237748cd8SNickeau	    public function LESS_THAN_OR_EQUAL() : ?TerminalNode
158337748cd8SNickeau	    {
158437748cd8SNickeau	        return $this->getToken(PageSqlParser::LESS_THAN_OR_EQUAL, 0);
158537748cd8SNickeau	    }
158637748cd8SNickeau
158737748cd8SNickeau	    public function GREATER_THAN() : ?TerminalNode
158837748cd8SNickeau	    {
158937748cd8SNickeau	        return $this->getToken(PageSqlParser::GREATER_THAN, 0);
159037748cd8SNickeau	    }
159137748cd8SNickeau
159237748cd8SNickeau	    public function GREATER_THAN_OR_EQUAL() : ?TerminalNode
159337748cd8SNickeau	    {
159437748cd8SNickeau	        return $this->getToken(PageSqlParser::GREATER_THAN_OR_EQUAL, 0);
159537748cd8SNickeau	    }
159637748cd8SNickeau
159737748cd8SNickeau	    public function NOT_EQUAL() : ?TerminalNode
159837748cd8SNickeau	    {
159937748cd8SNickeau	        return $this->getToken(PageSqlParser::NOT_EQUAL, 0);
160037748cd8SNickeau	    }
160137748cd8SNickeau
160237748cd8SNickeau	    public function EQUAL() : ?TerminalNode
160337748cd8SNickeau	    {
160437748cd8SNickeau	        return $this->getToken(PageSqlParser::EQUAL, 0);
160537748cd8SNickeau	    }
160637748cd8SNickeau
160737748cd8SNickeau	    public function LIKE() : ?TerminalNode
160837748cd8SNickeau	    {
160937748cd8SNickeau	        return $this->getToken(PageSqlParser::LIKE, 0);
161037748cd8SNickeau	    }
161137748cd8SNickeau
161237748cd8SNickeau	    public function pattern() : ?PatternContext
161337748cd8SNickeau	    {
161437748cd8SNickeau	    	return $this->getTypedRuleContext(PatternContext::class, 0);
161537748cd8SNickeau	    }
161637748cd8SNickeau
161737748cd8SNickeau	    public function GLOB() : ?TerminalNode
161837748cd8SNickeau	    {
161937748cd8SNickeau	        return $this->getToken(PageSqlParser::GLOB, 0);
162037748cd8SNickeau	    }
162137748cd8SNickeau
162237748cd8SNickeau	    public function NOT() : ?TerminalNode
162337748cd8SNickeau	    {
162437748cd8SNickeau	        return $this->getToken(PageSqlParser::NOT, 0);
162537748cd8SNickeau	    }
162637748cd8SNickeau
162737748cd8SNickeau	    public function ESCAPE() : ?TerminalNode
162837748cd8SNickeau	    {
162937748cd8SNickeau	        return $this->getToken(PageSqlParser::ESCAPE, 0);
163037748cd8SNickeau	    }
163137748cd8SNickeau
163237748cd8SNickeau	    public function StringLiteral() : ?TerminalNode
163337748cd8SNickeau	    {
163437748cd8SNickeau	        return $this->getToken(PageSqlParser::StringLiteral, 0);
163537748cd8SNickeau	    }
163637748cd8SNickeau
163737748cd8SNickeau	    /**
163837748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
163937748cd8SNickeau	     */
164037748cd8SNickeau	    public function COMMA(?int $index = null)
164137748cd8SNickeau	    {
164237748cd8SNickeau	    	if ($index === null) {
164337748cd8SNickeau	    		return $this->getTokens(PageSqlParser::COMMA);
164437748cd8SNickeau	    	}
164537748cd8SNickeau
164637748cd8SNickeau	        return $this->getToken(PageSqlParser::COMMA, $index);
164737748cd8SNickeau	    }
164837748cd8SNickeau
164937748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
165037748cd8SNickeau		{
165137748cd8SNickeau			if ($listener instanceof PageSqlListener) {
165237748cd8SNickeau			    $listener->enterPredicate($this);
165337748cd8SNickeau		    }
165437748cd8SNickeau		}
165537748cd8SNickeau
165637748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
165737748cd8SNickeau		{
165837748cd8SNickeau			if ($listener instanceof PageSqlListener) {
165937748cd8SNickeau			    $listener->exitPredicate($this);
166037748cd8SNickeau		    }
166137748cd8SNickeau		}
166237748cd8SNickeau	}
166337748cd8SNickeau
166437748cd8SNickeau	class ColumnsContext extends ParserRuleContext
166537748cd8SNickeau	{
166637748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
166737748cd8SNickeau		{
166837748cd8SNickeau			parent::__construct($parent, $invokingState);
166937748cd8SNickeau		}
167037748cd8SNickeau
167137748cd8SNickeau		public function getRuleIndex() : int
167237748cd8SNickeau		{
167337748cd8SNickeau		    return PageSqlParser::RULE_columns;
167437748cd8SNickeau	    }
167537748cd8SNickeau
167637748cd8SNickeau	    /**
167737748cd8SNickeau	     * @return array<ColumnContext>|ColumnContext|null
167837748cd8SNickeau	     */
167937748cd8SNickeau	    public function column(?int $index = null)
168037748cd8SNickeau	    {
168137748cd8SNickeau	    	if ($index === null) {
168237748cd8SNickeau	    		return $this->getTypedRuleContexts(ColumnContext::class);
168337748cd8SNickeau	    	}
168437748cd8SNickeau
168537748cd8SNickeau	        return $this->getTypedRuleContext(ColumnContext::class, $index);
168637748cd8SNickeau	    }
168737748cd8SNickeau
168837748cd8SNickeau	    /**
168937748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
169037748cd8SNickeau	     */
169137748cd8SNickeau	    public function COMMA(?int $index = null)
169237748cd8SNickeau	    {
169337748cd8SNickeau	    	if ($index === null) {
169437748cd8SNickeau	    		return $this->getTokens(PageSqlParser::COMMA);
169537748cd8SNickeau	    	}
169637748cd8SNickeau
169737748cd8SNickeau	        return $this->getToken(PageSqlParser::COMMA, $index);
169837748cd8SNickeau	    }
169937748cd8SNickeau
170037748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
170137748cd8SNickeau		{
170237748cd8SNickeau			if ($listener instanceof PageSqlListener) {
170337748cd8SNickeau			    $listener->enterColumns($this);
170437748cd8SNickeau		    }
170537748cd8SNickeau		}
170637748cd8SNickeau
170737748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
170837748cd8SNickeau		{
170937748cd8SNickeau			if ($listener instanceof PageSqlListener) {
171037748cd8SNickeau			    $listener->exitColumns($this);
171137748cd8SNickeau		    }
171237748cd8SNickeau		}
171337748cd8SNickeau	}
171437748cd8SNickeau
171504fd306cSNickeau	class PredicateGroupContext extends ParserRuleContext
171604fd306cSNickeau	{
171704fd306cSNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
171804fd306cSNickeau		{
171904fd306cSNickeau			parent::__construct($parent, $invokingState);
172004fd306cSNickeau		}
172104fd306cSNickeau
172204fd306cSNickeau		public function getRuleIndex() : int
172304fd306cSNickeau		{
172404fd306cSNickeau		    return PageSqlParser::RULE_predicateGroup;
172504fd306cSNickeau	    }
172604fd306cSNickeau
172704fd306cSNickeau	    public function LPAREN() : ?TerminalNode
172804fd306cSNickeau	    {
172904fd306cSNickeau	        return $this->getToken(PageSqlParser::LPAREN, 0);
173004fd306cSNickeau	    }
173104fd306cSNickeau
173204fd306cSNickeau	    /**
173304fd306cSNickeau	     * @return array<PredicateContext>|PredicateContext|null
173404fd306cSNickeau	     */
173504fd306cSNickeau	    public function predicate(?int $index = null)
173604fd306cSNickeau	    {
173704fd306cSNickeau	    	if ($index === null) {
173804fd306cSNickeau	    		return $this->getTypedRuleContexts(PredicateContext::class);
173904fd306cSNickeau	    	}
174004fd306cSNickeau
174104fd306cSNickeau	        return $this->getTypedRuleContext(PredicateContext::class, $index);
174204fd306cSNickeau	    }
174304fd306cSNickeau
174404fd306cSNickeau	    public function RPAREN() : ?TerminalNode
174504fd306cSNickeau	    {
174604fd306cSNickeau	        return $this->getToken(PageSqlParser::RPAREN, 0);
174704fd306cSNickeau	    }
174804fd306cSNickeau
174904fd306cSNickeau	    /**
175004fd306cSNickeau	     * @return array<TerminalNode>|TerminalNode|null
175104fd306cSNickeau	     */
175204fd306cSNickeau	    public function AND(?int $index = null)
175304fd306cSNickeau	    {
175404fd306cSNickeau	    	if ($index === null) {
175504fd306cSNickeau	    		return $this->getTokens(PageSqlParser::AND);
175604fd306cSNickeau	    	}
175704fd306cSNickeau
175804fd306cSNickeau	        return $this->getToken(PageSqlParser::AND, $index);
175904fd306cSNickeau	    }
176004fd306cSNickeau
176104fd306cSNickeau	    /**
176204fd306cSNickeau	     * @return array<TerminalNode>|TerminalNode|null
176304fd306cSNickeau	     */
176404fd306cSNickeau	    public function OR(?int $index = null)
176504fd306cSNickeau	    {
176604fd306cSNickeau	    	if ($index === null) {
176704fd306cSNickeau	    		return $this->getTokens(PageSqlParser::OR);
176804fd306cSNickeau	    	}
176904fd306cSNickeau
177004fd306cSNickeau	        return $this->getToken(PageSqlParser::OR, $index);
177104fd306cSNickeau	    }
177204fd306cSNickeau
177304fd306cSNickeau		public function enterRule(ParseTreeListener $listener) : void
177404fd306cSNickeau		{
177504fd306cSNickeau			if ($listener instanceof PageSqlListener) {
177604fd306cSNickeau			    $listener->enterPredicateGroup($this);
177704fd306cSNickeau		    }
177804fd306cSNickeau		}
177904fd306cSNickeau
178004fd306cSNickeau		public function exitRule(ParseTreeListener $listener) : void
178104fd306cSNickeau		{
178204fd306cSNickeau			if ($listener instanceof PageSqlListener) {
178304fd306cSNickeau			    $listener->exitPredicateGroup($this);
178404fd306cSNickeau		    }
178537748cd8SNickeau		}
178637748cd8SNickeau	}
178737748cd8SNickeau
178837748cd8SNickeau	class PredicatesContext extends ParserRuleContext
178937748cd8SNickeau	{
179037748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
179137748cd8SNickeau		{
179237748cd8SNickeau			parent::__construct($parent, $invokingState);
179337748cd8SNickeau		}
179437748cd8SNickeau
179537748cd8SNickeau		public function getRuleIndex() : int
179637748cd8SNickeau		{
179737748cd8SNickeau		    return PageSqlParser::RULE_predicates;
179837748cd8SNickeau	    }
179937748cd8SNickeau
180037748cd8SNickeau	    public function WHERE() : ?TerminalNode
180137748cd8SNickeau	    {
180237748cd8SNickeau	        return $this->getToken(PageSqlParser::WHERE, 0);
180337748cd8SNickeau	    }
180437748cd8SNickeau
180537748cd8SNickeau	    /**
180637748cd8SNickeau	     * @return array<PredicateContext>|PredicateContext|null
180737748cd8SNickeau	     */
180837748cd8SNickeau	    public function predicate(?int $index = null)
180937748cd8SNickeau	    {
181037748cd8SNickeau	    	if ($index === null) {
181137748cd8SNickeau	    		return $this->getTypedRuleContexts(PredicateContext::class);
181237748cd8SNickeau	    	}
181337748cd8SNickeau
181437748cd8SNickeau	        return $this->getTypedRuleContext(PredicateContext::class, $index);
181537748cd8SNickeau	    }
181637748cd8SNickeau
181737748cd8SNickeau	    /**
181804fd306cSNickeau	     * @return array<PredicateGroupContext>|PredicateGroupContext|null
181904fd306cSNickeau	     */
182004fd306cSNickeau	    public function predicateGroup(?int $index = null)
182104fd306cSNickeau	    {
182204fd306cSNickeau	    	if ($index === null) {
182304fd306cSNickeau	    		return $this->getTypedRuleContexts(PredicateGroupContext::class);
182404fd306cSNickeau	    	}
182504fd306cSNickeau
182604fd306cSNickeau	        return $this->getTypedRuleContext(PredicateGroupContext::class, $index);
182704fd306cSNickeau	    }
182804fd306cSNickeau
182904fd306cSNickeau	    /**
183037748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
183137748cd8SNickeau	     */
183237748cd8SNickeau	    public function AND(?int $index = null)
183337748cd8SNickeau	    {
183437748cd8SNickeau	    	if ($index === null) {
183537748cd8SNickeau	    		return $this->getTokens(PageSqlParser::AND);
183637748cd8SNickeau	    	}
183737748cd8SNickeau
183837748cd8SNickeau	        return $this->getToken(PageSqlParser::AND, $index);
183937748cd8SNickeau	    }
184037748cd8SNickeau
184137748cd8SNickeau	    /**
184237748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
184337748cd8SNickeau	     */
184437748cd8SNickeau	    public function OR(?int $index = null)
184537748cd8SNickeau	    {
184637748cd8SNickeau	    	if ($index === null) {
184737748cd8SNickeau	    		return $this->getTokens(PageSqlParser::OR);
184837748cd8SNickeau	    	}
184937748cd8SNickeau
185037748cd8SNickeau	        return $this->getToken(PageSqlParser::OR, $index);
185137748cd8SNickeau	    }
185237748cd8SNickeau
185337748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
185437748cd8SNickeau		{
185537748cd8SNickeau			if ($listener instanceof PageSqlListener) {
185637748cd8SNickeau			    $listener->enterPredicates($this);
185737748cd8SNickeau		    }
185837748cd8SNickeau		}
185937748cd8SNickeau
186037748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
186137748cd8SNickeau		{
186237748cd8SNickeau			if ($listener instanceof PageSqlListener) {
186337748cd8SNickeau			    $listener->exitPredicates($this);
186437748cd8SNickeau		    }
186537748cd8SNickeau		}
186637748cd8SNickeau	}
186737748cd8SNickeau
186837748cd8SNickeau	class TablesContext extends ParserRuleContext
186937748cd8SNickeau	{
187037748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
187137748cd8SNickeau		{
187237748cd8SNickeau			parent::__construct($parent, $invokingState);
187337748cd8SNickeau		}
187437748cd8SNickeau
187537748cd8SNickeau		public function getRuleIndex() : int
187637748cd8SNickeau		{
187737748cd8SNickeau		    return PageSqlParser::RULE_tables;
187837748cd8SNickeau	    }
187937748cd8SNickeau
188037748cd8SNickeau	    public function FROM() : ?TerminalNode
188137748cd8SNickeau	    {
188237748cd8SNickeau	        return $this->getToken(PageSqlParser::FROM, 0);
188337748cd8SNickeau	    }
188437748cd8SNickeau
188537748cd8SNickeau	    public function tableNames() : ?TableNamesContext
188637748cd8SNickeau	    {
188737748cd8SNickeau	    	return $this->getTypedRuleContext(TableNamesContext::class, 0);
188837748cd8SNickeau	    }
188937748cd8SNickeau
189037748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
189137748cd8SNickeau		{
189237748cd8SNickeau			if ($listener instanceof PageSqlListener) {
189337748cd8SNickeau			    $listener->enterTables($this);
189437748cd8SNickeau		    }
189537748cd8SNickeau		}
189637748cd8SNickeau
189737748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
189837748cd8SNickeau		{
189937748cd8SNickeau			if ($listener instanceof PageSqlListener) {
190037748cd8SNickeau			    $listener->exitTables($this);
190137748cd8SNickeau		    }
190237748cd8SNickeau		}
190337748cd8SNickeau	}
190437748cd8SNickeau
190537748cd8SNickeau	class LimitContext extends ParserRuleContext
190637748cd8SNickeau	{
190737748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
190837748cd8SNickeau		{
190937748cd8SNickeau			parent::__construct($parent, $invokingState);
191037748cd8SNickeau		}
191137748cd8SNickeau
191237748cd8SNickeau		public function getRuleIndex() : int
191337748cd8SNickeau		{
191437748cd8SNickeau		    return PageSqlParser::RULE_limit;
191537748cd8SNickeau	    }
191637748cd8SNickeau
191737748cd8SNickeau	    public function LIMIT() : ?TerminalNode
191837748cd8SNickeau	    {
191937748cd8SNickeau	        return $this->getToken(PageSqlParser::LIMIT, 0);
192037748cd8SNickeau	    }
192137748cd8SNickeau
192237748cd8SNickeau	    public function Number() : ?TerminalNode
192337748cd8SNickeau	    {
192437748cd8SNickeau	        return $this->getToken(PageSqlParser::Number, 0);
192537748cd8SNickeau	    }
192637748cd8SNickeau
192737748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
192837748cd8SNickeau		{
192937748cd8SNickeau			if ($listener instanceof PageSqlListener) {
193037748cd8SNickeau			    $listener->enterLimit($this);
193137748cd8SNickeau		    }
193237748cd8SNickeau		}
193337748cd8SNickeau
193437748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
193537748cd8SNickeau		{
193637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
193737748cd8SNickeau			    $listener->exitLimit($this);
193837748cd8SNickeau		    }
193937748cd8SNickeau		}
194037748cd8SNickeau	}
194137748cd8SNickeau
194237748cd8SNickeau	class OrderBysContext extends ParserRuleContext
194337748cd8SNickeau	{
194437748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
194537748cd8SNickeau		{
194637748cd8SNickeau			parent::__construct($parent, $invokingState);
194737748cd8SNickeau		}
194837748cd8SNickeau
194937748cd8SNickeau		public function getRuleIndex() : int
195037748cd8SNickeau		{
195137748cd8SNickeau		    return PageSqlParser::RULE_orderBys;
195237748cd8SNickeau	    }
195337748cd8SNickeau
195437748cd8SNickeau	    public function ORDER() : ?TerminalNode
195537748cd8SNickeau	    {
195637748cd8SNickeau	        return $this->getToken(PageSqlParser::ORDER, 0);
195737748cd8SNickeau	    }
195837748cd8SNickeau
195904fd306cSNickeau	    public function RANDOM() : ?TerminalNode
196004fd306cSNickeau	    {
196104fd306cSNickeau	        return $this->getToken(PageSqlParser::RANDOM, 0);
196204fd306cSNickeau	    }
196304fd306cSNickeau
196437748cd8SNickeau	    public function BY() : ?TerminalNode
196537748cd8SNickeau	    {
196637748cd8SNickeau	        return $this->getToken(PageSqlParser::BY, 0);
196737748cd8SNickeau	    }
196837748cd8SNickeau
196937748cd8SNickeau	    /**
197037748cd8SNickeau	     * @return array<OrderByDefContext>|OrderByDefContext|null
197137748cd8SNickeau	     */
197237748cd8SNickeau	    public function orderByDef(?int $index = null)
197337748cd8SNickeau	    {
197437748cd8SNickeau	    	if ($index === null) {
197537748cd8SNickeau	    		return $this->getTypedRuleContexts(OrderByDefContext::class);
197637748cd8SNickeau	    	}
197737748cd8SNickeau
197837748cd8SNickeau	        return $this->getTypedRuleContext(OrderByDefContext::class, $index);
197937748cd8SNickeau	    }
198037748cd8SNickeau
198137748cd8SNickeau	    /**
198237748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
198337748cd8SNickeau	     */
198437748cd8SNickeau	    public function COMMA(?int $index = null)
198537748cd8SNickeau	    {
198637748cd8SNickeau	    	if ($index === null) {
198737748cd8SNickeau	    		return $this->getTokens(PageSqlParser::COMMA);
198837748cd8SNickeau	    	}
198937748cd8SNickeau
199037748cd8SNickeau	        return $this->getToken(PageSqlParser::COMMA, $index);
199137748cd8SNickeau	    }
199237748cd8SNickeau
199337748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
199437748cd8SNickeau		{
199537748cd8SNickeau			if ($listener instanceof PageSqlListener) {
199637748cd8SNickeau			    $listener->enterOrderBys($this);
199737748cd8SNickeau		    }
199837748cd8SNickeau		}
199937748cd8SNickeau
200037748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
200137748cd8SNickeau		{
200237748cd8SNickeau			if ($listener instanceof PageSqlListener) {
200337748cd8SNickeau			    $listener->exitOrderBys($this);
200437748cd8SNickeau		    }
200537748cd8SNickeau		}
200637748cd8SNickeau	}
200737748cd8SNickeau
200837748cd8SNickeau	class OrderByDefContext extends ParserRuleContext
200937748cd8SNickeau	{
201037748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
201137748cd8SNickeau		{
201237748cd8SNickeau			parent::__construct($parent, $invokingState);
201337748cd8SNickeau		}
201437748cd8SNickeau
201537748cd8SNickeau		public function getRuleIndex() : int
201637748cd8SNickeau		{
201737748cd8SNickeau		    return PageSqlParser::RULE_orderByDef;
201837748cd8SNickeau	    }
201937748cd8SNickeau
202037748cd8SNickeau	    public function SqlName() : ?TerminalNode
202137748cd8SNickeau	    {
202237748cd8SNickeau	        return $this->getToken(PageSqlParser::SqlName, 0);
202337748cd8SNickeau	    }
202437748cd8SNickeau
202537748cd8SNickeau	    public function ASC() : ?TerminalNode
202637748cd8SNickeau	    {
202737748cd8SNickeau	        return $this->getToken(PageSqlParser::ASC, 0);
202837748cd8SNickeau	    }
202937748cd8SNickeau
203037748cd8SNickeau	    public function DESC() : ?TerminalNode
203137748cd8SNickeau	    {
203237748cd8SNickeau	        return $this->getToken(PageSqlParser::DESC, 0);
203337748cd8SNickeau	    }
203437748cd8SNickeau
203537748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
203637748cd8SNickeau		{
203737748cd8SNickeau			if ($listener instanceof PageSqlListener) {
203837748cd8SNickeau			    $listener->enterOrderByDef($this);
203937748cd8SNickeau		    }
204037748cd8SNickeau		}
204137748cd8SNickeau
204237748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
204337748cd8SNickeau		{
204437748cd8SNickeau			if ($listener instanceof PageSqlListener) {
204537748cd8SNickeau			    $listener->exitOrderByDef($this);
204637748cd8SNickeau		    }
204737748cd8SNickeau		}
204837748cd8SNickeau	}
204937748cd8SNickeau
205037748cd8SNickeau	class PageSqlContext extends ParserRuleContext
205137748cd8SNickeau	{
205237748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
205337748cd8SNickeau		{
205437748cd8SNickeau			parent::__construct($parent, $invokingState);
205537748cd8SNickeau		}
205637748cd8SNickeau
205737748cd8SNickeau		public function getRuleIndex() : int
205837748cd8SNickeau		{
205937748cd8SNickeau		    return PageSqlParser::RULE_pageSql;
206037748cd8SNickeau	    }
206137748cd8SNickeau
206237748cd8SNickeau	    public function SELECT() : ?TerminalNode
206337748cd8SNickeau	    {
206437748cd8SNickeau	        return $this->getToken(PageSqlParser::SELECT, 0);
206537748cd8SNickeau	    }
206637748cd8SNickeau
206737748cd8SNickeau	    public function RANDOM() : ?TerminalNode
206837748cd8SNickeau	    {
206937748cd8SNickeau	        return $this->getToken(PageSqlParser::RANDOM, 0);
207037748cd8SNickeau	    }
207137748cd8SNickeau
20721fa8c418SNickeau	    public function STAR() : ?TerminalNode
20731fa8c418SNickeau	    {
20741fa8c418SNickeau	        return $this->getToken(PageSqlParser::STAR, 0);
20751fa8c418SNickeau	    }
20761fa8c418SNickeau
20771fa8c418SNickeau	    public function columns() : ?ColumnsContext
20781fa8c418SNickeau	    {
20791fa8c418SNickeau	    	return $this->getTypedRuleContext(ColumnsContext::class, 0);
20801fa8c418SNickeau	    }
20811fa8c418SNickeau
208237748cd8SNickeau	    public function tables() : ?TablesContext
208337748cd8SNickeau	    {
208437748cd8SNickeau	    	return $this->getTypedRuleContext(TablesContext::class, 0);
208537748cd8SNickeau	    }
208637748cd8SNickeau
208737748cd8SNickeau	    public function predicates() : ?PredicatesContext
208837748cd8SNickeau	    {
208937748cd8SNickeau	    	return $this->getTypedRuleContext(PredicatesContext::class, 0);
209037748cd8SNickeau	    }
209137748cd8SNickeau
209237748cd8SNickeau	    public function orderBys() : ?OrderBysContext
209337748cd8SNickeau	    {
209437748cd8SNickeau	    	return $this->getTypedRuleContext(OrderBysContext::class, 0);
209537748cd8SNickeau	    }
209637748cd8SNickeau
209737748cd8SNickeau	    public function limit() : ?LimitContext
209837748cd8SNickeau	    {
209937748cd8SNickeau	    	return $this->getTypedRuleContext(LimitContext::class, 0);
210037748cd8SNickeau	    }
210137748cd8SNickeau
210237748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
210337748cd8SNickeau		{
210437748cd8SNickeau			if ($listener instanceof PageSqlListener) {
210537748cd8SNickeau			    $listener->enterPageSql($this);
210637748cd8SNickeau		    }
210737748cd8SNickeau		}
210837748cd8SNickeau
210937748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
211037748cd8SNickeau		{
211137748cd8SNickeau			if ($listener instanceof PageSqlListener) {
211237748cd8SNickeau			    $listener->exitPageSql($this);
211337748cd8SNickeau		    }
211437748cd8SNickeau		}
211537748cd8SNickeau	}
211637748cd8SNickeau}