xref: /plugin/combo/ComboStrap/PageSqlParser/PageSqlParser.php (revision 1fa8c418ed5809db58049141be41b7738471dd32)
137748cd8SNickeau<?php
237748cd8SNickeau
337748cd8SNickeau/*
437748cd8SNickeau * Generated from D:/dokuwiki/lib/plugins/combo/grammar\PageSql.g4 by ANTLR 4.9.1
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,
3737748cd8SNickeau               PAGES = 59, BACKLINKS = 60, StringLiteral = 61, CharSetLiteral = 62,
3837748cd8SNickeau               IntegralLiteral = 63, Number = 64, NumberLiteral = 65, ByteLengthLiteral = 66,
3937748cd8SNickeau               SqlName = 67, SPACES = 68;
4037748cd8SNickeau
4137748cd8SNickeau		public const RULE_functionNames = 0, RULE_tableNames = 1, RULE_sqlNames = 2,
4237748cd8SNickeau               RULE_column = 3, RULE_pattern = 4, RULE_expression = 5, RULE_predicate = 6,
4337748cd8SNickeau               RULE_columns = 7, RULE_predicates = 8, RULE_tables = 9, RULE_limit = 10,
4437748cd8SNickeau               RULE_orderBys = 11, RULE_orderByDef = 12, RULE_pageSql = 13;
4537748cd8SNickeau
4637748cd8SNickeau		/**
4737748cd8SNickeau		 * @var array<string>
4837748cd8SNickeau		 */
4937748cd8SNickeau		public const RULE_NAMES = [
5037748cd8SNickeau			'functionNames', 'tableNames', 'sqlNames', 'column', 'pattern', 'expression',
5137748cd8SNickeau			'predicate', 'columns', 'predicates', 'tables', 'limit', 'orderBys',
5237748cd8SNickeau			'orderByDef', 'pageSql'
5337748cd8SNickeau		];
5437748cd8SNickeau
5537748cd8SNickeau		/**
5637748cd8SNickeau		 * @var array<string|null>
5737748cd8SNickeau		 */
5837748cd8SNickeau		private const LITERAL_NAMES = [
5937748cd8SNickeau		    null, "';'", "'.'", "'('", "')'", "'['", "']'", "'{'", "'}'", "','",
6037748cd8SNickeau		    "'^'", "'\$'", "'='", "'*'", "'+'", "'-'", "'~'", "'||'", "'/'", "'%'",
6137748cd8SNickeau		    "'<<'", "'>>'", "'&'", "'|'", "'?'", "'<'", "'<='", "'>'", "'>='",
6237748cd8SNickeau		    "'=='", "'!='", "'<>'"
6337748cd8SNickeau		];
6437748cd8SNickeau
6537748cd8SNickeau		/**
6637748cd8SNickeau		 * @var array<string>
6737748cd8SNickeau		 */
6837748cd8SNickeau		private const SYMBOLIC_NAMES = [
6937748cd8SNickeau		    null, "SCOL", "DOT", "LPAREN", "RPAREN", "LSQUARE", "RSQUARE", "LCURLY",
7037748cd8SNickeau		    "RCURLY", "COMMA", "BITWISEXOR", "DOLLAR", "EQUAL", "STAR", "PLUS",
7137748cd8SNickeau		    "MINUS", "TILDE", "PIPE2", "DIV", "MOD", "LT2", "GT2", "AMP", "PIPE",
7237748cd8SNickeau		    "QUESTION", "LESS_THAN", "LESS_THAN_OR_EQUAL", "GREATER_THAN", "GREATER_THAN_OR_EQUAL",
7337748cd8SNickeau		    "EQ", "NOT_EQUAL", "NOT_EQ2", "AND", "AS", "ASC", "BETWEEN", "BY",
7437748cd8SNickeau		    "DESC", "ESCAPE", "FALSE", "FROM", "GLOB", "IN", "IS", "ISNULL", "LIKE",
7537748cd8SNickeau		    "LIMIT", "NOT", "NOTNULL", "NOW", "NULL", "OR", "ORDER", "SELECT",
7637748cd8SNickeau		    "TRUE", "WHERE", "RANDOM", "DATE", "DATETIME", "PAGES", "BACKLINKS",
7737748cd8SNickeau		    "StringLiteral", "CharSetLiteral", "IntegralLiteral", "Number", "NumberLiteral",
7837748cd8SNickeau		    "ByteLengthLiteral", "SqlName", "SPACES"
7937748cd8SNickeau		];
8037748cd8SNickeau
8137748cd8SNickeau		/**
8237748cd8SNickeau		 * @var string
8337748cd8SNickeau		 */
8437748cd8SNickeau		private const SERIALIZED_ATN =
8537748cd8SNickeau			"\u{3}\u{608B}\u{A72A}\u{8133}\u{B9ED}\u{417C}\u{3BE7}\u{7786}\u{5964}" .
86*1fa8c418SNickeau		    "\u{3}\u{46}\u{A7}\u{4}\u{2}\u{9}\u{2}\u{4}\u{3}\u{9}\u{3}\u{4}\u{4}" .
8737748cd8SNickeau		    "\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}" .
8837748cd8SNickeau		    "\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}" .
8937748cd8SNickeau		    "\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}" .
9037748cd8SNickeau		    "\u{E}\u{9}\u{E}\u{4}\u{F}\u{9}\u{F}\u{3}\u{2}\u{3}\u{2}\u{3}\u{3}" .
9137748cd8SNickeau		    "\u{3}\u{3}\u{3}\u{4}\u{3}\u{4}\u{3}\u{5}\u{3}\u{5}\u{3}\u{5}\u{5}" .
9237748cd8SNickeau		    "\u{5}\u{28}\u{A}\u{5}\u{3}\u{5}\u{3}\u{5}\u{3}\u{5}\u{5}\u{5}\u{2D}" .
9337748cd8SNickeau		    "\u{A}\u{5}\u{5}\u{5}\u{2F}\u{A}\u{5}\u{3}\u{6}\u{3}\u{6}\u{3}\u{7}" .
9437748cd8SNickeau		    "\u{3}\u{7}\u{3}\u{7}\u{3}\u{7}\u{5}\u{7}\u{37}\u{A}\u{7}\u{3}\u{7}" .
9537748cd8SNickeau		    "\u{3}\u{7}\u{7}\u{7}\u{3B}\u{A}\u{7}\u{C}\u{7}\u{E}\u{7}\u{3E}\u{B}" .
9637748cd8SNickeau		    "\u{7}\u{3}\u{7}\u{3}\u{7}\u{5}\u{7}\u{42}\u{A}\u{7}\u{3}\u{8}\u{3}" .
9737748cd8SNickeau		    "\u{8}\u{3}\u{8}\u{3}\u{8}\u{5}\u{8}\u{48}\u{A}\u{8}\u{3}\u{8}\u{3}" .
9837748cd8SNickeau		    "\u{8}\u{3}\u{8}\u{3}\u{8}\u{5}\u{8}\u{4E}\u{A}\u{8}\u{3}\u{8}\u{3}" .
9937748cd8SNickeau		    "\u{8}\u{5}\u{8}\u{52}\u{A}\u{8}\u{3}\u{8}\u{5}\u{8}\u{55}\u{A}\u{8}" .
10037748cd8SNickeau		    "\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{5}" .
10137748cd8SNickeau		    "\u{8}\u{5D}\u{A}\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}\u{8}\u{3}" .
10237748cd8SNickeau		    "\u{8}\u{7}\u{8}\u{64}\u{A}\u{8}\u{C}\u{8}\u{E}\u{8}\u{67}\u{B}\u{8}" .
10337748cd8SNickeau		    "\u{5}\u{8}\u{69}\u{A}\u{8}\u{3}\u{8}\u{5}\u{8}\u{6C}\u{A}\u{8}\u{3}" .
10437748cd8SNickeau		    "\u{9}\u{3}\u{9}\u{3}\u{9}\u{7}\u{9}\u{71}\u{A}\u{9}\u{C}\u{9}\u{E}" .
10537748cd8SNickeau		    "\u{9}\u{74}\u{B}\u{9}\u{3}\u{A}\u{3}\u{A}\u{3}\u{A}\u{3}\u{A}\u{7}" .
10637748cd8SNickeau		    "\u{A}\u{7A}\u{A}\u{A}\u{C}\u{A}\u{E}\u{A}\u{7D}\u{B}\u{A}\u{3}\u{B}" .
10737748cd8SNickeau		    "\u{3}\u{B}\u{3}\u{B}\u{3}\u{C}\u{3}\u{C}\u{3}\u{C}\u{3}\u{D}\u{3}" .
10837748cd8SNickeau		    "\u{D}\u{3}\u{D}\u{3}\u{D}\u{3}\u{D}\u{7}\u{D}\u{8A}\u{A}\u{D}\u{C}" .
10937748cd8SNickeau		    "\u{D}\u{E}\u{D}\u{8D}\u{B}\u{D}\u{3}\u{E}\u{3}\u{E}\u{5}\u{E}\u{91}" .
11037748cd8SNickeau		    "\u{A}\u{E}\u{3}\u{F}\u{3}\u{F}\u{5}\u{F}\u{95}\u{A}\u{F}\u{3}\u{F}" .
11137748cd8SNickeau		    "\u{3}\u{F}\u{5}\u{F}\u{99}\u{A}\u{F}\u{3}\u{F}\u{5}\u{F}\u{9C}\u{A}" .
11237748cd8SNickeau		    "\u{F}\u{3}\u{F}\u{5}\u{F}\u{9F}\u{A}\u{F}\u{3}\u{F}\u{5}\u{F}\u{A2}" .
113*1fa8c418SNickeau		    "\u{A}\u{F}\u{3}\u{F}\u{5}\u{F}\u{A5}\u{A}\u{F}\u{3}\u{F}\u{2}\u{2}" .
114*1fa8c418SNickeau		    "\u{10}\u{2}\u{4}\u{6}\u{8}\u{A}\u{C}\u{E}\u{10}\u{12}\u{14}\u{16}" .
115*1fa8c418SNickeau		    "\u{18}\u{1A}\u{1C}\u{2}\u{A}\u{3}\u{2}\u{3B}\u{3C}\u{3}\u{2}\u{3D}" .
116*1fa8c418SNickeau		    "\u{3E}\u{4}\u{2}\u{42}\u{42}\u{45}\u{45}\u{4}\u{2}\u{3F}\u{3F}\u{43}" .
117*1fa8c418SNickeau		    "\u{43}\u{5}\u{2}\u{3F}\u{3F}\u{42}\u{43}\u{45}\u{45}\u{5}\u{2}\u{E}" .
118*1fa8c418SNickeau		    "\u{E}\u{1B}\u{1E}\u{20}\u{20}\u{4}\u{2}\u{22}\u{22}\u{35}\u{35}\u{4}" .
119*1fa8c418SNickeau		    "\u{2}\u{24}\u{24}\u{27}\u{27}\u{2}\u{B3}\u{2}\u{1E}\u{3}\u{2}\u{2}" .
120*1fa8c418SNickeau		    "\u{2}\u{4}\u{20}\u{3}\u{2}\u{2}\u{2}\u{6}\u{22}\u{3}\u{2}\u{2}\u{2}" .
121*1fa8c418SNickeau		    "\u{8}\u{24}\u{3}\u{2}\u{2}\u{2}\u{A}\u{30}\u{3}\u{2}\u{2}\u{2}\u{C}" .
122*1fa8c418SNickeau		    "\u{41}\u{3}\u{2}\u{2}\u{2}\u{E}\u{43}\u{3}\u{2}\u{2}\u{2}\u{10}\u{6D}" .
123*1fa8c418SNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{12}\u{75}\u{3}\u{2}\u{2}\u{2}\u{14}\u{7E}\u{3}" .
124*1fa8c418SNickeau		    "\u{2}\u{2}\u{2}\u{16}\u{81}\u{3}\u{2}\u{2}\u{2}\u{18}\u{84}\u{3}\u{2}" .
125*1fa8c418SNickeau		    "\u{2}\u{2}\u{1A}\u{8E}\u{3}\u{2}\u{2}\u{2}\u{1C}\u{92}\u{3}\u{2}\u{2}" .
126*1fa8c418SNickeau		    "\u{2}\u{1E}\u{1F}\u{9}\u{2}\u{2}\u{2}\u{1F}\u{3}\u{3}\u{2}\u{2}\u{2}" .
127*1fa8c418SNickeau		    "\u{20}\u{21}\u{9}\u{3}\u{2}\u{2}\u{21}\u{5}\u{3}\u{2}\u{2}\u{2}\u{22}" .
128*1fa8c418SNickeau		    "\u{23}\u{9}\u{4}\u{2}\u{2}\u{23}\u{7}\u{3}\u{2}\u{2}\u{2}\u{24}\u{27}" .
129*1fa8c418SNickeau		    "\u{5}\u{6}\u{4}\u{2}\u{25}\u{26}\u{7}\u{4}\u{2}\u{2}\u{26}\u{28}\u{5}" .
130*1fa8c418SNickeau		    "\u{6}\u{4}\u{2}\u{27}\u{25}\u{3}\u{2}\u{2}\u{2}\u{27}\u{28}\u{3}\u{2}" .
131*1fa8c418SNickeau		    "\u{2}\u{2}\u{28}\u{2E}\u{3}\u{2}\u{2}\u{2}\u{29}\u{2C}\u{7}\u{23}" .
13237748cd8SNickeau		    "\u{2}\u{2}\u{2A}\u{2D}\u{5}\u{6}\u{4}\u{2}\u{2B}\u{2D}\u{7}\u{3F}" .
13337748cd8SNickeau		    "\u{2}\u{2}\u{2C}\u{2A}\u{3}\u{2}\u{2}\u{2}\u{2C}\u{2B}\u{3}\u{2}\u{2}" .
13437748cd8SNickeau		    "\u{2}\u{2D}\u{2F}\u{3}\u{2}\u{2}\u{2}\u{2E}\u{29}\u{3}\u{2}\u{2}\u{2}" .
13537748cd8SNickeau		    "\u{2E}\u{2F}\u{3}\u{2}\u{2}\u{2}\u{2F}\u{9}\u{3}\u{2}\u{2}\u{2}\u{30}" .
136*1fa8c418SNickeau		    "\u{31}\u{9}\u{5}\u{2}\u{2}\u{31}\u{B}\u{3}\u{2}\u{2}\u{2}\u{32}\u{42}" .
137*1fa8c418SNickeau		    "\u{9}\u{6}\u{2}\u{2}\u{33}\u{34}\u{5}\u{2}\u{2}\u{2}\u{34}\u{36}\u{7}" .
13837748cd8SNickeau		    "\u{5}\u{2}\u{2}\u{35}\u{37}\u{5}\u{C}\u{7}\u{2}\u{36}\u{35}\u{3}\u{2}" .
13937748cd8SNickeau		    "\u{2}\u{2}\u{36}\u{37}\u{3}\u{2}\u{2}\u{2}\u{37}\u{3C}\u{3}\u{2}\u{2}" .
14037748cd8SNickeau		    "\u{2}\u{38}\u{39}\u{7}\u{B}\u{2}\u{2}\u{39}\u{3B}\u{5}\u{C}\u{7}\u{2}" .
14137748cd8SNickeau		    "\u{3A}\u{38}\u{3}\u{2}\u{2}\u{2}\u{3B}\u{3E}\u{3}\u{2}\u{2}\u{2}\u{3C}" .
14237748cd8SNickeau		    "\u{3A}\u{3}\u{2}\u{2}\u{2}\u{3C}\u{3D}\u{3}\u{2}\u{2}\u{2}\u{3D}\u{3F}" .
14337748cd8SNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{3E}\u{3C}\u{3}\u{2}\u{2}\u{2}\u{3F}\u{40}\u{7}" .
14437748cd8SNickeau		    "\u{6}\u{2}\u{2}\u{40}\u{42}\u{3}\u{2}\u{2}\u{2}\u{41}\u{32}\u{3}\u{2}" .
14537748cd8SNickeau		    "\u{2}\u{2}\u{41}\u{33}\u{3}\u{2}\u{2}\u{2}\u{42}\u{D}\u{3}\u{2}\u{2}" .
146*1fa8c418SNickeau		    "\u{2}\u{43}\u{6B}\u{5}\u{6}\u{4}\u{2}\u{44}\u{45}\u{9}\u{7}\u{2}\u{2}" .
14737748cd8SNickeau		    "\u{45}\u{6C}\u{5}\u{C}\u{7}\u{2}\u{46}\u{48}\u{7}\u{31}\u{2}\u{2}" .
14837748cd8SNickeau		    "\u{47}\u{46}\u{3}\u{2}\u{2}\u{2}\u{47}\u{48}\u{3}\u{2}\u{2}\u{2}\u{48}" .
14937748cd8SNickeau		    "\u{49}\u{3}\u{2}\u{2}\u{2}\u{49}\u{4A}\u{7}\u{2F}\u{2}\u{2}\u{4A}" .
15037748cd8SNickeau		    "\u{4D}\u{5}\u{A}\u{6}\u{2}\u{4B}\u{4C}\u{7}\u{28}\u{2}\u{2}\u{4C}" .
15137748cd8SNickeau		    "\u{4E}\u{7}\u{3F}\u{2}\u{2}\u{4D}\u{4B}\u{3}\u{2}\u{2}\u{2}\u{4D}" .
15237748cd8SNickeau		    "\u{4E}\u{3}\u{2}\u{2}\u{2}\u{4E}\u{52}\u{3}\u{2}\u{2}\u{2}\u{4F}\u{50}" .
15337748cd8SNickeau		    "\u{7}\u{2B}\u{2}\u{2}\u{50}\u{52}\u{5}\u{A}\u{6}\u{2}\u{51}\u{47}" .
15437748cd8SNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{51}\u{4F}\u{3}\u{2}\u{2}\u{2}\u{52}\u{6C}\u{3}" .
15537748cd8SNickeau		    "\u{2}\u{2}\u{2}\u{53}\u{55}\u{7}\u{31}\u{2}\u{2}\u{54}\u{53}\u{3}" .
15637748cd8SNickeau		    "\u{2}\u{2}\u{2}\u{54}\u{55}\u{3}\u{2}\u{2}\u{2}\u{55}\u{56}\u{3}\u{2}" .
15737748cd8SNickeau		    "\u{2}\u{2}\u{56}\u{57}\u{7}\u{25}\u{2}\u{2}\u{57}\u{58}\u{5}\u{C}" .
15837748cd8SNickeau		    "\u{7}\u{2}\u{58}\u{59}\u{7}\u{22}\u{2}\u{2}\u{59}\u{5A}\u{5}\u{C}" .
15937748cd8SNickeau		    "\u{7}\u{2}\u{5A}\u{6C}\u{3}\u{2}\u{2}\u{2}\u{5B}\u{5D}\u{7}\u{31}" .
16037748cd8SNickeau		    "\u{2}\u{2}\u{5C}\u{5B}\u{3}\u{2}\u{2}\u{2}\u{5C}\u{5D}\u{3}\u{2}\u{2}" .
16137748cd8SNickeau		    "\u{2}\u{5D}\u{5E}\u{3}\u{2}\u{2}\u{2}\u{5E}\u{5F}\u{7}\u{2C}\u{2}" .
16237748cd8SNickeau		    "\u{2}\u{5F}\u{68}\u{7}\u{5}\u{2}\u{2}\u{60}\u{65}\u{5}\u{C}\u{7}\u{2}" .
16337748cd8SNickeau		    "\u{61}\u{62}\u{7}\u{B}\u{2}\u{2}\u{62}\u{64}\u{5}\u{C}\u{7}\u{2}\u{63}" .
16437748cd8SNickeau		    "\u{61}\u{3}\u{2}\u{2}\u{2}\u{64}\u{67}\u{3}\u{2}\u{2}\u{2}\u{65}\u{63}" .
16537748cd8SNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{65}\u{66}\u{3}\u{2}\u{2}\u{2}\u{66}\u{69}\u{3}" .
16637748cd8SNickeau		    "\u{2}\u{2}\u{2}\u{67}\u{65}\u{3}\u{2}\u{2}\u{2}\u{68}\u{60}\u{3}\u{2}" .
16737748cd8SNickeau		    "\u{2}\u{2}\u{68}\u{69}\u{3}\u{2}\u{2}\u{2}\u{69}\u{6A}\u{3}\u{2}\u{2}" .
16837748cd8SNickeau		    "\u{2}\u{6A}\u{6C}\u{7}\u{6}\u{2}\u{2}\u{6B}\u{44}\u{3}\u{2}\u{2}\u{2}" .
16937748cd8SNickeau		    "\u{6B}\u{51}\u{3}\u{2}\u{2}\u{2}\u{6B}\u{54}\u{3}\u{2}\u{2}\u{2}\u{6B}" .
17037748cd8SNickeau		    "\u{5C}\u{3}\u{2}\u{2}\u{2}\u{6C}\u{F}\u{3}\u{2}\u{2}\u{2}\u{6D}\u{72}" .
17137748cd8SNickeau		    "\u{5}\u{8}\u{5}\u{2}\u{6E}\u{6F}\u{7}\u{B}\u{2}\u{2}\u{6F}\u{71}\u{5}" .
17237748cd8SNickeau		    "\u{8}\u{5}\u{2}\u{70}\u{6E}\u{3}\u{2}\u{2}\u{2}\u{71}\u{74}\u{3}\u{2}" .
17337748cd8SNickeau		    "\u{2}\u{2}\u{72}\u{70}\u{3}\u{2}\u{2}\u{2}\u{72}\u{73}\u{3}\u{2}\u{2}" .
17437748cd8SNickeau		    "\u{2}\u{73}\u{11}\u{3}\u{2}\u{2}\u{2}\u{74}\u{72}\u{3}\u{2}\u{2}\u{2}" .
17537748cd8SNickeau		    "\u{75}\u{76}\u{7}\u{39}\u{2}\u{2}\u{76}\u{7B}\u{5}\u{E}\u{8}\u{2}" .
176*1fa8c418SNickeau		    "\u{77}\u{78}\u{9}\u{8}\u{2}\u{2}\u{78}\u{7A}\u{5}\u{E}\u{8}\u{2}\u{79}" .
17737748cd8SNickeau		    "\u{77}\u{3}\u{2}\u{2}\u{2}\u{7A}\u{7D}\u{3}\u{2}\u{2}\u{2}\u{7B}\u{79}" .
17837748cd8SNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{7B}\u{7C}\u{3}\u{2}\u{2}\u{2}\u{7C}\u{13}\u{3}" .
17937748cd8SNickeau		    "\u{2}\u{2}\u{2}\u{7D}\u{7B}\u{3}\u{2}\u{2}\u{2}\u{7E}\u{7F}\u{7}\u{2A}" .
18037748cd8SNickeau		    "\u{2}\u{2}\u{7F}\u{80}\u{5}\u{4}\u{3}\u{2}\u{80}\u{15}\u{3}\u{2}\u{2}" .
18137748cd8SNickeau		    "\u{2}\u{81}\u{82}\u{7}\u{30}\u{2}\u{2}\u{82}\u{83}\u{7}\u{42}\u{2}" .
18237748cd8SNickeau		    "\u{2}\u{83}\u{17}\u{3}\u{2}\u{2}\u{2}\u{84}\u{85}\u{7}\u{36}\u{2}" .
18337748cd8SNickeau		    "\u{2}\u{85}\u{86}\u{7}\u{26}\u{2}\u{2}\u{86}\u{8B}\u{5}\u{1A}\u{E}" .
18437748cd8SNickeau		    "\u{2}\u{87}\u{88}\u{7}\u{B}\u{2}\u{2}\u{88}\u{8A}\u{5}\u{1A}\u{E}" .
18537748cd8SNickeau		    "\u{2}\u{89}\u{87}\u{3}\u{2}\u{2}\u{2}\u{8A}\u{8D}\u{3}\u{2}\u{2}\u{2}" .
18637748cd8SNickeau		    "\u{8B}\u{89}\u{3}\u{2}\u{2}\u{2}\u{8B}\u{8C}\u{3}\u{2}\u{2}\u{2}\u{8C}" .
18737748cd8SNickeau		    "\u{19}\u{3}\u{2}\u{2}\u{2}\u{8D}\u{8B}\u{3}\u{2}\u{2}\u{2}\u{8E}\u{90}" .
188*1fa8c418SNickeau		    "\u{7}\u{45}\u{2}\u{2}\u{8F}\u{91}\u{9}\u{9}\u{2}\u{2}\u{90}\u{8F}" .
18937748cd8SNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{90}\u{91}\u{3}\u{2}\u{2}\u{2}\u{91}\u{1B}\u{3}" .
19037748cd8SNickeau		    "\u{2}\u{2}\u{2}\u{92}\u{94}\u{7}\u{37}\u{2}\u{2}\u{93}\u{95}\u{7}" .
19137748cd8SNickeau		    "\u{3A}\u{2}\u{2}\u{94}\u{93}\u{3}\u{2}\u{2}\u{2}\u{94}\u{95}\u{3}" .
192*1fa8c418SNickeau		    "\u{2}\u{2}\u{2}\u{95}\u{98}\u{3}\u{2}\u{2}\u{2}\u{96}\u{99}\u{7}\u{F}" .
193*1fa8c418SNickeau		    "\u{2}\u{2}\u{97}\u{99}\u{5}\u{10}\u{9}\u{2}\u{98}\u{96}\u{3}\u{2}" .
194*1fa8c418SNickeau		    "\u{2}\u{2}\u{98}\u{97}\u{3}\u{2}\u{2}\u{2}\u{98}\u{99}\u{3}\u{2}\u{2}" .
195*1fa8c418SNickeau		    "\u{2}\u{99}\u{9B}\u{3}\u{2}\u{2}\u{2}\u{9A}\u{9C}\u{5}\u{14}\u{B}" .
196*1fa8c418SNickeau		    "\u{2}\u{9B}\u{9A}\u{3}\u{2}\u{2}\u{2}\u{9B}\u{9C}\u{3}\u{2}\u{2}\u{2}" .
197*1fa8c418SNickeau		    "\u{9C}\u{9E}\u{3}\u{2}\u{2}\u{2}\u{9D}\u{9F}\u{5}\u{12}\u{A}\u{2}" .
198*1fa8c418SNickeau		    "\u{9E}\u{9D}\u{3}\u{2}\u{2}\u{2}\u{9E}\u{9F}\u{3}\u{2}\u{2}\u{2}\u{9F}" .
199*1fa8c418SNickeau		    "\u{A1}\u{3}\u{2}\u{2}\u{2}\u{A0}\u{A2}\u{5}\u{18}\u{D}\u{2}\u{A1}" .
200*1fa8c418SNickeau		    "\u{A0}\u{3}\u{2}\u{2}\u{2}\u{A1}\u{A2}\u{3}\u{2}\u{2}\u{2}\u{A2}\u{A4}" .
201*1fa8c418SNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{A3}\u{A5}\u{5}\u{16}\u{C}\u{2}\u{A4}\u{A3}" .
202*1fa8c418SNickeau		    "\u{3}\u{2}\u{2}\u{2}\u{A4}\u{A5}\u{3}\u{2}\u{2}\u{2}\u{A5}\u{1D}\u{3}" .
203*1fa8c418SNickeau		    "\u{2}\u{2}\u{2}\u{1A}\u{27}\u{2C}\u{2E}\u{36}\u{3C}\u{41}\u{47}\u{4D}" .
204*1fa8c418SNickeau		    "\u{51}\u{54}\u{5C}\u{65}\u{68}\u{6B}\u{72}\u{7B}\u{8B}\u{90}\u{94}" .
205*1fa8c418SNickeau		    "\u{98}\u{9B}\u{9E}\u{A1}\u{A4}";
20637748cd8SNickeau
20737748cd8SNickeau		protected static $atn;
20837748cd8SNickeau		protected static $decisionToDFA;
20937748cd8SNickeau		protected static $sharedContextCache;
21037748cd8SNickeau
21137748cd8SNickeau		public function __construct(TokenStream $input)
21237748cd8SNickeau		{
21337748cd8SNickeau			parent::__construct($input);
21437748cd8SNickeau
21537748cd8SNickeau			self::initialize();
21637748cd8SNickeau
21737748cd8SNickeau			$this->interp = new ParserATNSimulator($this, self::$atn, self::$decisionToDFA, self::$sharedContextCache);
21837748cd8SNickeau		}
21937748cd8SNickeau
22037748cd8SNickeau		private static function initialize() : void
22137748cd8SNickeau		{
22237748cd8SNickeau			if (self::$atn !== null) {
22337748cd8SNickeau				return;
22437748cd8SNickeau			}
22537748cd8SNickeau
22637748cd8SNickeau			RuntimeMetaData::checkVersion('4.9.1', RuntimeMetaData::VERSION);
22737748cd8SNickeau
22837748cd8SNickeau			$atn = (new ATNDeserializer())->deserialize(self::SERIALIZED_ATN);
22937748cd8SNickeau
23037748cd8SNickeau			$decisionToDFA = [];
23137748cd8SNickeau			for ($i = 0, $count = $atn->getNumberOfDecisions(); $i < $count; $i++) {
23237748cd8SNickeau				$decisionToDFA[] = new DFA($atn->getDecisionState($i), $i);
23337748cd8SNickeau			}
23437748cd8SNickeau
23537748cd8SNickeau			self::$atn = $atn;
23637748cd8SNickeau			self::$decisionToDFA = $decisionToDFA;
23737748cd8SNickeau			self::$sharedContextCache = new PredictionContextCache();
23837748cd8SNickeau		}
23937748cd8SNickeau
24037748cd8SNickeau		public function getGrammarFileName() : string
24137748cd8SNickeau		{
24237748cd8SNickeau			return "PageSql.g4";
24337748cd8SNickeau		}
24437748cd8SNickeau
24537748cd8SNickeau		public function getRuleNames() : array
24637748cd8SNickeau		{
24737748cd8SNickeau			return self::RULE_NAMES;
24837748cd8SNickeau		}
24937748cd8SNickeau
25037748cd8SNickeau		public function getSerializedATN() : string
25137748cd8SNickeau		{
25237748cd8SNickeau			return self::SERIALIZED_ATN;
25337748cd8SNickeau		}
25437748cd8SNickeau
25537748cd8SNickeau		public function getATN() : ATN
25637748cd8SNickeau		{
25737748cd8SNickeau			return self::$atn;
25837748cd8SNickeau		}
25937748cd8SNickeau
26037748cd8SNickeau		public function getVocabulary() : Vocabulary
26137748cd8SNickeau        {
26237748cd8SNickeau            static $vocabulary;
26337748cd8SNickeau
26437748cd8SNickeau			return $vocabulary = $vocabulary ?? new VocabularyImpl(self::LITERAL_NAMES, self::SYMBOLIC_NAMES);
26537748cd8SNickeau        }
26637748cd8SNickeau
26737748cd8SNickeau		/**
26837748cd8SNickeau		 * @throws RecognitionException
26937748cd8SNickeau		 */
27037748cd8SNickeau		public function functionNames() : Context\FunctionNamesContext
27137748cd8SNickeau		{
27237748cd8SNickeau		    $localContext = new Context\FunctionNamesContext($this->ctx, $this->getState());
27337748cd8SNickeau
27437748cd8SNickeau		    $this->enterRule($localContext, 0, self::RULE_functionNames);
27537748cd8SNickeau
27637748cd8SNickeau		    try {
27737748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
27837748cd8SNickeau		        $this->setState(28);
27937748cd8SNickeau
28037748cd8SNickeau		        $_la = $this->input->LA(1);
28137748cd8SNickeau
28237748cd8SNickeau		        if (!($_la === self::DATE || $_la === self::DATETIME)) {
28337748cd8SNickeau		        $this->errorHandler->recoverInline($this);
28437748cd8SNickeau		        } else {
28537748cd8SNickeau		        	if ($this->input->LA(1) === Token::EOF) {
28637748cd8SNickeau		        	    $this->matchedEOF = true;
28737748cd8SNickeau		            }
28837748cd8SNickeau
28937748cd8SNickeau		        	$this->errorHandler->reportMatch($this);
29037748cd8SNickeau		        	$this->consume();
29137748cd8SNickeau		        }
29237748cd8SNickeau		    } catch (RecognitionException $exception) {
29337748cd8SNickeau		        $localContext->exception = $exception;
29437748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
29537748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
29637748cd8SNickeau		    } finally {
29737748cd8SNickeau		        $this->exitRule();
29837748cd8SNickeau		    }
29937748cd8SNickeau
30037748cd8SNickeau		    return $localContext;
30137748cd8SNickeau		}
30237748cd8SNickeau
30337748cd8SNickeau		/**
30437748cd8SNickeau		 * @throws RecognitionException
30537748cd8SNickeau		 */
30637748cd8SNickeau		public function tableNames() : Context\TableNamesContext
30737748cd8SNickeau		{
30837748cd8SNickeau		    $localContext = new Context\TableNamesContext($this->ctx, $this->getState());
30937748cd8SNickeau
31037748cd8SNickeau		    $this->enterRule($localContext, 2, self::RULE_tableNames);
31137748cd8SNickeau
31237748cd8SNickeau		    try {
31337748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
31437748cd8SNickeau		        $this->setState(30);
31537748cd8SNickeau
31637748cd8SNickeau		        $_la = $this->input->LA(1);
31737748cd8SNickeau
318*1fa8c418SNickeau		        if (!($_la === self::PAGES || $_la === self::BACKLINKS)) {
31937748cd8SNickeau		        $this->errorHandler->recoverInline($this);
32037748cd8SNickeau		        } else {
32137748cd8SNickeau		        	if ($this->input->LA(1) === Token::EOF) {
32237748cd8SNickeau		        	    $this->matchedEOF = true;
32337748cd8SNickeau		            }
32437748cd8SNickeau
32537748cd8SNickeau		        	$this->errorHandler->reportMatch($this);
32637748cd8SNickeau		        	$this->consume();
32737748cd8SNickeau		        }
32837748cd8SNickeau		    } catch (RecognitionException $exception) {
32937748cd8SNickeau		        $localContext->exception = $exception;
33037748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
33137748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
33237748cd8SNickeau		    } finally {
33337748cd8SNickeau		        $this->exitRule();
33437748cd8SNickeau		    }
33537748cd8SNickeau
33637748cd8SNickeau		    return $localContext;
33737748cd8SNickeau		}
33837748cd8SNickeau
33937748cd8SNickeau		/**
34037748cd8SNickeau		 * @throws RecognitionException
34137748cd8SNickeau		 */
34237748cd8SNickeau		public function sqlNames() : Context\SqlNamesContext
34337748cd8SNickeau		{
34437748cd8SNickeau		    $localContext = new Context\SqlNamesContext($this->ctx, $this->getState());
34537748cd8SNickeau
34637748cd8SNickeau		    $this->enterRule($localContext, 4, self::RULE_sqlNames);
34737748cd8SNickeau
34837748cd8SNickeau		    try {
34937748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
35037748cd8SNickeau		        $this->setState(32);
35137748cd8SNickeau
35237748cd8SNickeau		        $_la = $this->input->LA(1);
35337748cd8SNickeau
35437748cd8SNickeau		        if (!($_la === self::Number || $_la === self::SqlName)) {
35537748cd8SNickeau		        $this->errorHandler->recoverInline($this);
35637748cd8SNickeau		        } else {
35737748cd8SNickeau		        	if ($this->input->LA(1) === Token::EOF) {
35837748cd8SNickeau		        	    $this->matchedEOF = true;
35937748cd8SNickeau		            }
36037748cd8SNickeau
36137748cd8SNickeau		        	$this->errorHandler->reportMatch($this);
36237748cd8SNickeau		        	$this->consume();
36337748cd8SNickeau		        }
36437748cd8SNickeau		    } catch (RecognitionException $exception) {
36537748cd8SNickeau		        $localContext->exception = $exception;
36637748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
36737748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
36837748cd8SNickeau		    } finally {
36937748cd8SNickeau		        $this->exitRule();
37037748cd8SNickeau		    }
37137748cd8SNickeau
37237748cd8SNickeau		    return $localContext;
37337748cd8SNickeau		}
37437748cd8SNickeau
37537748cd8SNickeau		/**
37637748cd8SNickeau		 * @throws RecognitionException
37737748cd8SNickeau		 */
37837748cd8SNickeau		public function column() : Context\ColumnContext
37937748cd8SNickeau		{
38037748cd8SNickeau		    $localContext = new Context\ColumnContext($this->ctx, $this->getState());
38137748cd8SNickeau
38237748cd8SNickeau		    $this->enterRule($localContext, 6, self::RULE_column);
38337748cd8SNickeau
38437748cd8SNickeau		    try {
38537748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
38637748cd8SNickeau		        $this->setState(34);
38737748cd8SNickeau		        $this->sqlNames();
38837748cd8SNickeau		        $this->setState(37);
38937748cd8SNickeau		        $this->errorHandler->sync($this);
39037748cd8SNickeau		        $_la = $this->input->LA(1);
39137748cd8SNickeau
39237748cd8SNickeau		        if ($_la === self::DOT) {
39337748cd8SNickeau		        	$this->setState(35);
39437748cd8SNickeau		        	$this->match(self::DOT);
39537748cd8SNickeau		        	$this->setState(36);
39637748cd8SNickeau		        	$this->sqlNames();
39737748cd8SNickeau		        }
39837748cd8SNickeau		        $this->setState(44);
39937748cd8SNickeau		        $this->errorHandler->sync($this);
40037748cd8SNickeau		        $_la = $this->input->LA(1);
40137748cd8SNickeau
40237748cd8SNickeau		        if ($_la === self::AS) {
40337748cd8SNickeau		        	$this->setState(39);
40437748cd8SNickeau		        	$this->match(self::AS);
40537748cd8SNickeau		        	$this->setState(42);
40637748cd8SNickeau		        	$this->errorHandler->sync($this);
40737748cd8SNickeau
40837748cd8SNickeau		        	switch ($this->input->LA(1)) {
40937748cd8SNickeau		        	    case self::Number:
41037748cd8SNickeau		        	    case self::SqlName:
41137748cd8SNickeau		        	    	$this->setState(40);
41237748cd8SNickeau		        	    	$this->sqlNames();
41337748cd8SNickeau		        	    	break;
41437748cd8SNickeau
41537748cd8SNickeau		        	    case self::StringLiteral:
41637748cd8SNickeau		        	    	$this->setState(41);
41737748cd8SNickeau		        	    	$this->match(self::StringLiteral);
41837748cd8SNickeau		        	    	break;
41937748cd8SNickeau
42037748cd8SNickeau		        	default:
42137748cd8SNickeau		        		throw new NoViableAltException($this);
42237748cd8SNickeau		        	}
42337748cd8SNickeau		        }
42437748cd8SNickeau		    } catch (RecognitionException $exception) {
42537748cd8SNickeau		        $localContext->exception = $exception;
42637748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
42737748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
42837748cd8SNickeau		    } finally {
42937748cd8SNickeau		        $this->exitRule();
43037748cd8SNickeau		    }
43137748cd8SNickeau
43237748cd8SNickeau		    return $localContext;
43337748cd8SNickeau		}
43437748cd8SNickeau
43537748cd8SNickeau		/**
43637748cd8SNickeau		 * @throws RecognitionException
43737748cd8SNickeau		 */
43837748cd8SNickeau		public function pattern() : Context\PatternContext
43937748cd8SNickeau		{
44037748cd8SNickeau		    $localContext = new Context\PatternContext($this->ctx, $this->getState());
44137748cd8SNickeau
44237748cd8SNickeau		    $this->enterRule($localContext, 8, self::RULE_pattern);
44337748cd8SNickeau
44437748cd8SNickeau		    try {
44537748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
44637748cd8SNickeau		        $this->setState(46);
44737748cd8SNickeau
44837748cd8SNickeau		        $_la = $this->input->LA(1);
44937748cd8SNickeau
45037748cd8SNickeau		        if (!($_la === self::StringLiteral || $_la === self::NumberLiteral)) {
45137748cd8SNickeau		        $this->errorHandler->recoverInline($this);
45237748cd8SNickeau		        } else {
45337748cd8SNickeau		        	if ($this->input->LA(1) === Token::EOF) {
45437748cd8SNickeau		        	    $this->matchedEOF = true;
45537748cd8SNickeau		            }
45637748cd8SNickeau
45737748cd8SNickeau		        	$this->errorHandler->reportMatch($this);
45837748cd8SNickeau		        	$this->consume();
45937748cd8SNickeau		        }
46037748cd8SNickeau		    } catch (RecognitionException $exception) {
46137748cd8SNickeau		        $localContext->exception = $exception;
46237748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
46337748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
46437748cd8SNickeau		    } finally {
46537748cd8SNickeau		        $this->exitRule();
46637748cd8SNickeau		    }
46737748cd8SNickeau
46837748cd8SNickeau		    return $localContext;
46937748cd8SNickeau		}
47037748cd8SNickeau
47137748cd8SNickeau		/**
47237748cd8SNickeau		 * @throws RecognitionException
47337748cd8SNickeau		 */
47437748cd8SNickeau		public function expression() : Context\ExpressionContext
47537748cd8SNickeau		{
47637748cd8SNickeau		    $localContext = new Context\ExpressionContext($this->ctx, $this->getState());
47737748cd8SNickeau
47837748cd8SNickeau		    $this->enterRule($localContext, 10, self::RULE_expression);
47937748cd8SNickeau
48037748cd8SNickeau		    try {
48137748cd8SNickeau		        $this->setState(63);
48237748cd8SNickeau		        $this->errorHandler->sync($this);
48337748cd8SNickeau
48437748cd8SNickeau		        switch ($this->input->LA(1)) {
48537748cd8SNickeau		            case self::StringLiteral:
48637748cd8SNickeau		            case self::Number:
48737748cd8SNickeau		            case self::NumberLiteral:
48837748cd8SNickeau		            case self::SqlName:
48937748cd8SNickeau		            	$this->enterOuterAlt($localContext, 1);
49037748cd8SNickeau		            	$this->setState(48);
49137748cd8SNickeau
49237748cd8SNickeau		            	$_la = $this->input->LA(1);
49337748cd8SNickeau
49437748cd8SNickeau		            	if (!((((($_la - 61)) & ~0x3f) === 0 && ((1 << ($_la - 61)) & ((1 << (self::StringLiteral - 61)) | (1 << (self::Number - 61)) | (1 << (self::NumberLiteral - 61)) | (1 << (self::SqlName - 61)))) !== 0))) {
49537748cd8SNickeau		            	$this->errorHandler->recoverInline($this);
49637748cd8SNickeau		            	} else {
49737748cd8SNickeau		            		if ($this->input->LA(1) === Token::EOF) {
49837748cd8SNickeau		            		    $this->matchedEOF = true;
49937748cd8SNickeau		            	    }
50037748cd8SNickeau
50137748cd8SNickeau		            		$this->errorHandler->reportMatch($this);
50237748cd8SNickeau		            		$this->consume();
50337748cd8SNickeau		            	}
50437748cd8SNickeau		            	break;
50537748cd8SNickeau
50637748cd8SNickeau		            case self::DATE:
50737748cd8SNickeau		            case self::DATETIME:
50837748cd8SNickeau		            	$this->enterOuterAlt($localContext, 2);
50937748cd8SNickeau		            	$this->setState(49);
51037748cd8SNickeau		            	$this->functionNames();
51137748cd8SNickeau		            	$this->setState(50);
51237748cd8SNickeau		            	$this->match(self::LPAREN);
51337748cd8SNickeau		            	$this->setState(52);
51437748cd8SNickeau		            	$this->errorHandler->sync($this);
51537748cd8SNickeau		            	$_la = $this->input->LA(1);
51637748cd8SNickeau
51737748cd8SNickeau		            	if ((((($_la - 57)) & ~0x3f) === 0 && ((1 << ($_la - 57)) & ((1 << (self::DATE - 57)) | (1 << (self::DATETIME - 57)) | (1 << (self::StringLiteral - 57)) | (1 << (self::Number - 57)) | (1 << (self::NumberLiteral - 57)) | (1 << (self::SqlName - 57)))) !== 0)) {
51837748cd8SNickeau		            		$this->setState(51);
51937748cd8SNickeau		            		$this->expression();
52037748cd8SNickeau		            	}
52137748cd8SNickeau		            	$this->setState(58);
52237748cd8SNickeau		            	$this->errorHandler->sync($this);
52337748cd8SNickeau
52437748cd8SNickeau		            	$_la = $this->input->LA(1);
52537748cd8SNickeau		            	while ($_la === self::COMMA) {
52637748cd8SNickeau		            		$this->setState(54);
52737748cd8SNickeau		            		$this->match(self::COMMA);
52837748cd8SNickeau		            		$this->setState(55);
52937748cd8SNickeau		            		$this->expression();
53037748cd8SNickeau		            		$this->setState(60);
53137748cd8SNickeau		            		$this->errorHandler->sync($this);
53237748cd8SNickeau		            		$_la = $this->input->LA(1);
53337748cd8SNickeau		            	}
53437748cd8SNickeau		            	$this->setState(61);
53537748cd8SNickeau		            	$this->match(self::RPAREN);
53637748cd8SNickeau		            	break;
53737748cd8SNickeau
53837748cd8SNickeau		        default:
53937748cd8SNickeau		        	throw new NoViableAltException($this);
54037748cd8SNickeau		        }
54137748cd8SNickeau		    } catch (RecognitionException $exception) {
54237748cd8SNickeau		        $localContext->exception = $exception;
54337748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
54437748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
54537748cd8SNickeau		    } finally {
54637748cd8SNickeau		        $this->exitRule();
54737748cd8SNickeau		    }
54837748cd8SNickeau
54937748cd8SNickeau		    return $localContext;
55037748cd8SNickeau		}
55137748cd8SNickeau
55237748cd8SNickeau		/**
55337748cd8SNickeau		 * @throws RecognitionException
55437748cd8SNickeau		 */
55537748cd8SNickeau		public function predicate() : Context\PredicateContext
55637748cd8SNickeau		{
55737748cd8SNickeau		    $localContext = new Context\PredicateContext($this->ctx, $this->getState());
55837748cd8SNickeau
55937748cd8SNickeau		    $this->enterRule($localContext, 12, self::RULE_predicate);
56037748cd8SNickeau
56137748cd8SNickeau		    try {
56237748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
56337748cd8SNickeau		        $this->setState(65);
56437748cd8SNickeau		        $this->sqlNames();
56537748cd8SNickeau		        $this->setState(105);
56637748cd8SNickeau		        $this->errorHandler->sync($this);
56737748cd8SNickeau
56837748cd8SNickeau		        switch ($this->getInterpreter()->adaptivePredict($this->input, 13, $this->ctx)) {
56937748cd8SNickeau		        	case 1:
57037748cd8SNickeau		        	    $this->setState(66);
57137748cd8SNickeau
57237748cd8SNickeau		        	    $_la = $this->input->LA(1);
57337748cd8SNickeau
57437748cd8SNickeau		        	    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))) {
57537748cd8SNickeau		        	    $this->errorHandler->recoverInline($this);
57637748cd8SNickeau		        	    } else {
57737748cd8SNickeau		        	    	if ($this->input->LA(1) === Token::EOF) {
57837748cd8SNickeau		        	    	    $this->matchedEOF = true;
57937748cd8SNickeau		        	        }
58037748cd8SNickeau
58137748cd8SNickeau		        	    	$this->errorHandler->reportMatch($this);
58237748cd8SNickeau		        	    	$this->consume();
58337748cd8SNickeau		        	    }
58437748cd8SNickeau		        	    $this->setState(67);
58537748cd8SNickeau		        	    $this->expression();
58637748cd8SNickeau		        	break;
58737748cd8SNickeau
58837748cd8SNickeau		        	case 2:
58937748cd8SNickeau		        	    $this->setState(79);
59037748cd8SNickeau		        	    $this->errorHandler->sync($this);
59137748cd8SNickeau
59237748cd8SNickeau		        	    switch ($this->input->LA(1)) {
59337748cd8SNickeau		        	        case self::LIKE:
59437748cd8SNickeau		        	        case self::NOT:
59537748cd8SNickeau		        	        	$this->setState(69);
59637748cd8SNickeau		        	        	$this->errorHandler->sync($this);
59737748cd8SNickeau		        	        	$_la = $this->input->LA(1);
59837748cd8SNickeau
59937748cd8SNickeau		        	        	if ($_la === self::NOT) {
60037748cd8SNickeau		        	        		$this->setState(68);
60137748cd8SNickeau		        	        		$this->match(self::NOT);
60237748cd8SNickeau		        	        	}
60337748cd8SNickeau
60437748cd8SNickeau		        	        	$this->setState(71);
60537748cd8SNickeau		        	        	$this->match(self::LIKE);
60637748cd8SNickeau		        	        	$this->setState(72);
60737748cd8SNickeau		        	        	$this->pattern();
60837748cd8SNickeau		        	        	$this->setState(75);
60937748cd8SNickeau		        	        	$this->errorHandler->sync($this);
61037748cd8SNickeau		        	        	$_la = $this->input->LA(1);
61137748cd8SNickeau
61237748cd8SNickeau		        	        	if ($_la === self::ESCAPE) {
61337748cd8SNickeau		        	        		$this->setState(73);
61437748cd8SNickeau		        	        		$this->match(self::ESCAPE);
61537748cd8SNickeau		        	        		$this->setState(74);
61637748cd8SNickeau		        	        		$this->match(self::StringLiteral);
61737748cd8SNickeau		        	        	}
61837748cd8SNickeau		        	        	break;
61937748cd8SNickeau
62037748cd8SNickeau		        	        case self::GLOB:
62137748cd8SNickeau		        	        	$this->setState(77);
62237748cd8SNickeau		        	        	$this->match(self::GLOB);
62337748cd8SNickeau		        	        	$this->setState(78);
62437748cd8SNickeau		        	        	$this->pattern();
62537748cd8SNickeau		        	        	break;
62637748cd8SNickeau
62737748cd8SNickeau		        	    default:
62837748cd8SNickeau		        	    	throw new NoViableAltException($this);
62937748cd8SNickeau		        	    }
63037748cd8SNickeau		        	break;
63137748cd8SNickeau
63237748cd8SNickeau		        	case 3:
63337748cd8SNickeau		        	    $this->setState(82);
63437748cd8SNickeau		        	    $this->errorHandler->sync($this);
63537748cd8SNickeau		        	    $_la = $this->input->LA(1);
63637748cd8SNickeau
63737748cd8SNickeau		        	    if ($_la === self::NOT) {
63837748cd8SNickeau		        	    	$this->setState(81);
63937748cd8SNickeau		        	    	$this->match(self::NOT);
64037748cd8SNickeau		        	    }
64137748cd8SNickeau		        	    $this->setState(84);
64237748cd8SNickeau		        	    $this->match(self::BETWEEN);
64337748cd8SNickeau		        	    $this->setState(85);
64437748cd8SNickeau		        	    $this->expression();
64537748cd8SNickeau		        	    $this->setState(86);
64637748cd8SNickeau		        	    $this->match(self::AND);
64737748cd8SNickeau		        	    $this->setState(87);
64837748cd8SNickeau		        	    $this->expression();
64937748cd8SNickeau		        	break;
65037748cd8SNickeau
65137748cd8SNickeau		        	case 4:
65237748cd8SNickeau		        	    $this->setState(90);
65337748cd8SNickeau		        	    $this->errorHandler->sync($this);
65437748cd8SNickeau		        	    $_la = $this->input->LA(1);
65537748cd8SNickeau
65637748cd8SNickeau		        	    if ($_la === self::NOT) {
65737748cd8SNickeau		        	    	$this->setState(89);
65837748cd8SNickeau		        	    	$this->match(self::NOT);
65937748cd8SNickeau		        	    }
66037748cd8SNickeau		        	    $this->setState(92);
66137748cd8SNickeau		        	    $this->match(self::IN);
66237748cd8SNickeau		        	    $this->setState(93);
66337748cd8SNickeau		        	    $this->match(self::LPAREN);
66437748cd8SNickeau		        	    $this->setState(102);
66537748cd8SNickeau		        	    $this->errorHandler->sync($this);
66637748cd8SNickeau		        	    $_la = $this->input->LA(1);
66737748cd8SNickeau
66837748cd8SNickeau		        	    if ((((($_la - 57)) & ~0x3f) === 0 && ((1 << ($_la - 57)) & ((1 << (self::DATE - 57)) | (1 << (self::DATETIME - 57)) | (1 << (self::StringLiteral - 57)) | (1 << (self::Number - 57)) | (1 << (self::NumberLiteral - 57)) | (1 << (self::SqlName - 57)))) !== 0)) {
66937748cd8SNickeau		        	    	$this->setState(94);
67037748cd8SNickeau		        	    	$this->expression();
67137748cd8SNickeau		        	    	$this->setState(99);
67237748cd8SNickeau		        	    	$this->errorHandler->sync($this);
67337748cd8SNickeau
67437748cd8SNickeau		        	    	$_la = $this->input->LA(1);
67537748cd8SNickeau		        	    	while ($_la === self::COMMA) {
67637748cd8SNickeau		        	    		$this->setState(95);
67737748cd8SNickeau		        	    		$this->match(self::COMMA);
67837748cd8SNickeau		        	    		$this->setState(96);
67937748cd8SNickeau		        	    		$this->expression();
68037748cd8SNickeau		        	    		$this->setState(101);
68137748cd8SNickeau		        	    		$this->errorHandler->sync($this);
68237748cd8SNickeau		        	    		$_la = $this->input->LA(1);
68337748cd8SNickeau		        	    	}
68437748cd8SNickeau		        	    }
68537748cd8SNickeau		        	    $this->setState(104);
68637748cd8SNickeau		        	    $this->match(self::RPAREN);
68737748cd8SNickeau		        	break;
68837748cd8SNickeau		        }
68937748cd8SNickeau		    } catch (RecognitionException $exception) {
69037748cd8SNickeau		        $localContext->exception = $exception;
69137748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
69237748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
69337748cd8SNickeau		    } finally {
69437748cd8SNickeau		        $this->exitRule();
69537748cd8SNickeau		    }
69637748cd8SNickeau
69737748cd8SNickeau		    return $localContext;
69837748cd8SNickeau		}
69937748cd8SNickeau
70037748cd8SNickeau		/**
70137748cd8SNickeau		 * @throws RecognitionException
70237748cd8SNickeau		 */
70337748cd8SNickeau		public function columns() : Context\ColumnsContext
70437748cd8SNickeau		{
70537748cd8SNickeau		    $localContext = new Context\ColumnsContext($this->ctx, $this->getState());
70637748cd8SNickeau
70737748cd8SNickeau		    $this->enterRule($localContext, 14, self::RULE_columns);
70837748cd8SNickeau
70937748cd8SNickeau		    try {
71037748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
71137748cd8SNickeau		        $this->setState(107);
71237748cd8SNickeau		        $this->column();
71337748cd8SNickeau		        $this->setState(112);
71437748cd8SNickeau		        $this->errorHandler->sync($this);
71537748cd8SNickeau
71637748cd8SNickeau		        $_la = $this->input->LA(1);
71737748cd8SNickeau		        while ($_la === self::COMMA) {
71837748cd8SNickeau		        	$this->setState(108);
71937748cd8SNickeau		        	$this->match(self::COMMA);
72037748cd8SNickeau		        	$this->setState(109);
72137748cd8SNickeau		        	$this->column();
72237748cd8SNickeau		        	$this->setState(114);
72337748cd8SNickeau		        	$this->errorHandler->sync($this);
72437748cd8SNickeau		        	$_la = $this->input->LA(1);
72537748cd8SNickeau		        }
72637748cd8SNickeau		    } catch (RecognitionException $exception) {
72737748cd8SNickeau		        $localContext->exception = $exception;
72837748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
72937748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
73037748cd8SNickeau		    } finally {
73137748cd8SNickeau		        $this->exitRule();
73237748cd8SNickeau		    }
73337748cd8SNickeau
73437748cd8SNickeau		    return $localContext;
73537748cd8SNickeau		}
73637748cd8SNickeau
73737748cd8SNickeau		/**
73837748cd8SNickeau		 * @throws RecognitionException
73937748cd8SNickeau		 */
74037748cd8SNickeau		public function predicates() : Context\PredicatesContext
74137748cd8SNickeau		{
74237748cd8SNickeau		    $localContext = new Context\PredicatesContext($this->ctx, $this->getState());
74337748cd8SNickeau
74437748cd8SNickeau		    $this->enterRule($localContext, 16, self::RULE_predicates);
74537748cd8SNickeau
74637748cd8SNickeau		    try {
74737748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
74837748cd8SNickeau		        $this->setState(115);
74937748cd8SNickeau		        $this->match(self::WHERE);
75037748cd8SNickeau		        $this->setState(116);
75137748cd8SNickeau		        $this->predicate();
75237748cd8SNickeau		        $this->setState(121);
75337748cd8SNickeau		        $this->errorHandler->sync($this);
75437748cd8SNickeau
75537748cd8SNickeau		        $_la = $this->input->LA(1);
75637748cd8SNickeau		        while ($_la === self::AND || $_la === self::OR) {
75737748cd8SNickeau		        	$this->setState(117);
75837748cd8SNickeau
75937748cd8SNickeau		        	$_la = $this->input->LA(1);
76037748cd8SNickeau
76137748cd8SNickeau		        	if (!($_la === self::AND || $_la === self::OR)) {
76237748cd8SNickeau		        	$this->errorHandler->recoverInline($this);
76337748cd8SNickeau		        	} else {
76437748cd8SNickeau		        		if ($this->input->LA(1) === Token::EOF) {
76537748cd8SNickeau		        		    $this->matchedEOF = true;
76637748cd8SNickeau		        	    }
76737748cd8SNickeau
76837748cd8SNickeau		        		$this->errorHandler->reportMatch($this);
76937748cd8SNickeau		        		$this->consume();
77037748cd8SNickeau		        	}
77137748cd8SNickeau		        	$this->setState(118);
77237748cd8SNickeau		        	$this->predicate();
77337748cd8SNickeau		        	$this->setState(123);
77437748cd8SNickeau		        	$this->errorHandler->sync($this);
77537748cd8SNickeau		        	$_la = $this->input->LA(1);
77637748cd8SNickeau		        }
77737748cd8SNickeau		    } catch (RecognitionException $exception) {
77837748cd8SNickeau		        $localContext->exception = $exception;
77937748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
78037748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
78137748cd8SNickeau		    } finally {
78237748cd8SNickeau		        $this->exitRule();
78337748cd8SNickeau		    }
78437748cd8SNickeau
78537748cd8SNickeau		    return $localContext;
78637748cd8SNickeau		}
78737748cd8SNickeau
78837748cd8SNickeau		/**
78937748cd8SNickeau		 * @throws RecognitionException
79037748cd8SNickeau		 */
79137748cd8SNickeau		public function tables() : Context\TablesContext
79237748cd8SNickeau		{
79337748cd8SNickeau		    $localContext = new Context\TablesContext($this->ctx, $this->getState());
79437748cd8SNickeau
79537748cd8SNickeau		    $this->enterRule($localContext, 18, self::RULE_tables);
79637748cd8SNickeau
79737748cd8SNickeau		    try {
79837748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
79937748cd8SNickeau		        $this->setState(124);
80037748cd8SNickeau		        $this->match(self::FROM);
80137748cd8SNickeau		        $this->setState(125);
80237748cd8SNickeau		        $this->tableNames();
80337748cd8SNickeau		    } catch (RecognitionException $exception) {
80437748cd8SNickeau		        $localContext->exception = $exception;
80537748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
80637748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
80737748cd8SNickeau		    } finally {
80837748cd8SNickeau		        $this->exitRule();
80937748cd8SNickeau		    }
81037748cd8SNickeau
81137748cd8SNickeau		    return $localContext;
81237748cd8SNickeau		}
81337748cd8SNickeau
81437748cd8SNickeau		/**
81537748cd8SNickeau		 * @throws RecognitionException
81637748cd8SNickeau		 */
81737748cd8SNickeau		public function limit() : Context\LimitContext
81837748cd8SNickeau		{
81937748cd8SNickeau		    $localContext = new Context\LimitContext($this->ctx, $this->getState());
82037748cd8SNickeau
82137748cd8SNickeau		    $this->enterRule($localContext, 20, self::RULE_limit);
82237748cd8SNickeau
82337748cd8SNickeau		    try {
82437748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
82537748cd8SNickeau		        $this->setState(127);
82637748cd8SNickeau		        $this->match(self::LIMIT);
82737748cd8SNickeau		        $this->setState(128);
82837748cd8SNickeau		        $this->match(self::Number);
82937748cd8SNickeau		    } catch (RecognitionException $exception) {
83037748cd8SNickeau		        $localContext->exception = $exception;
83137748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
83237748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
83337748cd8SNickeau		    } finally {
83437748cd8SNickeau		        $this->exitRule();
83537748cd8SNickeau		    }
83637748cd8SNickeau
83737748cd8SNickeau		    return $localContext;
83837748cd8SNickeau		}
83937748cd8SNickeau
84037748cd8SNickeau		/**
84137748cd8SNickeau		 * @throws RecognitionException
84237748cd8SNickeau		 */
84337748cd8SNickeau		public function orderBys() : Context\OrderBysContext
84437748cd8SNickeau		{
84537748cd8SNickeau		    $localContext = new Context\OrderBysContext($this->ctx, $this->getState());
84637748cd8SNickeau
84737748cd8SNickeau		    $this->enterRule($localContext, 22, self::RULE_orderBys);
84837748cd8SNickeau
84937748cd8SNickeau		    try {
85037748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
85137748cd8SNickeau		        $this->setState(130);
85237748cd8SNickeau		        $this->match(self::ORDER);
85337748cd8SNickeau		        $this->setState(131);
85437748cd8SNickeau		        $this->match(self::BY);
85537748cd8SNickeau		        $this->setState(132);
85637748cd8SNickeau		        $this->orderByDef();
85737748cd8SNickeau		        $this->setState(137);
85837748cd8SNickeau		        $this->errorHandler->sync($this);
85937748cd8SNickeau
86037748cd8SNickeau		        $_la = $this->input->LA(1);
86137748cd8SNickeau		        while ($_la === self::COMMA) {
86237748cd8SNickeau		        	$this->setState(133);
86337748cd8SNickeau		        	$this->match(self::COMMA);
86437748cd8SNickeau		        	$this->setState(134);
86537748cd8SNickeau		        	$this->orderByDef();
86637748cd8SNickeau		        	$this->setState(139);
86737748cd8SNickeau		        	$this->errorHandler->sync($this);
86837748cd8SNickeau		        	$_la = $this->input->LA(1);
86937748cd8SNickeau		        }
87037748cd8SNickeau		    } catch (RecognitionException $exception) {
87137748cd8SNickeau		        $localContext->exception = $exception;
87237748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
87337748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
87437748cd8SNickeau		    } finally {
87537748cd8SNickeau		        $this->exitRule();
87637748cd8SNickeau		    }
87737748cd8SNickeau
87837748cd8SNickeau		    return $localContext;
87937748cd8SNickeau		}
88037748cd8SNickeau
88137748cd8SNickeau		/**
88237748cd8SNickeau		 * @throws RecognitionException
88337748cd8SNickeau		 */
88437748cd8SNickeau		public function orderByDef() : Context\OrderByDefContext
88537748cd8SNickeau		{
88637748cd8SNickeau		    $localContext = new Context\OrderByDefContext($this->ctx, $this->getState());
88737748cd8SNickeau
88837748cd8SNickeau		    $this->enterRule($localContext, 24, self::RULE_orderByDef);
88937748cd8SNickeau
89037748cd8SNickeau		    try {
89137748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
89237748cd8SNickeau		        $this->setState(140);
89337748cd8SNickeau		        $this->match(self::SqlName);
89437748cd8SNickeau		        $this->setState(142);
89537748cd8SNickeau		        $this->errorHandler->sync($this);
89637748cd8SNickeau		        $_la = $this->input->LA(1);
89737748cd8SNickeau
89837748cd8SNickeau		        if ($_la === self::ASC || $_la === self::DESC) {
89937748cd8SNickeau		        	$this->setState(141);
90037748cd8SNickeau
90137748cd8SNickeau		        	$_la = $this->input->LA(1);
90237748cd8SNickeau
90337748cd8SNickeau		        	if (!($_la === self::ASC || $_la === self::DESC)) {
90437748cd8SNickeau		        	$this->errorHandler->recoverInline($this);
90537748cd8SNickeau		        	} else {
90637748cd8SNickeau		        		if ($this->input->LA(1) === Token::EOF) {
90737748cd8SNickeau		        		    $this->matchedEOF = true;
90837748cd8SNickeau		        	    }
90937748cd8SNickeau
91037748cd8SNickeau		        		$this->errorHandler->reportMatch($this);
91137748cd8SNickeau		        		$this->consume();
91237748cd8SNickeau		        	}
91337748cd8SNickeau		        }
91437748cd8SNickeau		    } catch (RecognitionException $exception) {
91537748cd8SNickeau		        $localContext->exception = $exception;
91637748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
91737748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
91837748cd8SNickeau		    } finally {
91937748cd8SNickeau		        $this->exitRule();
92037748cd8SNickeau		    }
92137748cd8SNickeau
92237748cd8SNickeau		    return $localContext;
92337748cd8SNickeau		}
92437748cd8SNickeau
92537748cd8SNickeau		/**
92637748cd8SNickeau		 * @throws RecognitionException
92737748cd8SNickeau		 */
92837748cd8SNickeau		public function pageSql() : Context\PageSqlContext
92937748cd8SNickeau		{
93037748cd8SNickeau		    $localContext = new Context\PageSqlContext($this->ctx, $this->getState());
93137748cd8SNickeau
93237748cd8SNickeau		    $this->enterRule($localContext, 26, self::RULE_pageSql);
93337748cd8SNickeau
93437748cd8SNickeau		    try {
93537748cd8SNickeau		        $this->enterOuterAlt($localContext, 1);
93637748cd8SNickeau		        $this->setState(144);
93737748cd8SNickeau		        $this->match(self::SELECT);
93837748cd8SNickeau		        $this->setState(146);
93937748cd8SNickeau		        $this->errorHandler->sync($this);
94037748cd8SNickeau		        $_la = $this->input->LA(1);
94137748cd8SNickeau
94237748cd8SNickeau		        if ($_la === self::RANDOM) {
94337748cd8SNickeau		        	$this->setState(145);
94437748cd8SNickeau		        	$this->match(self::RANDOM);
94537748cd8SNickeau		        }
94637748cd8SNickeau		        $this->setState(150);
94737748cd8SNickeau		        $this->errorHandler->sync($this);
94837748cd8SNickeau
949*1fa8c418SNickeau		        switch ($this->input->LA(1)) {
950*1fa8c418SNickeau		            case self::STAR:
951*1fa8c418SNickeau		            	$this->setState(148);
952*1fa8c418SNickeau		            	$this->match(self::STAR);
953*1fa8c418SNickeau		            	break;
954*1fa8c418SNickeau
955*1fa8c418SNickeau		            case self::Number:
956*1fa8c418SNickeau		            case self::SqlName:
95737748cd8SNickeau		            	$this->setState(149);
958*1fa8c418SNickeau		            	$this->columns();
959*1fa8c418SNickeau		            	break;
960*1fa8c418SNickeau
961*1fa8c418SNickeau		            case self::EOF:
962*1fa8c418SNickeau		            case self::FROM:
963*1fa8c418SNickeau		            case self::LIMIT:
964*1fa8c418SNickeau		            case self::ORDER:
965*1fa8c418SNickeau		            case self::WHERE:
966*1fa8c418SNickeau		            	break;
967*1fa8c418SNickeau
968*1fa8c418SNickeau		        default:
969*1fa8c418SNickeau		        	break;
97037748cd8SNickeau		        }
97137748cd8SNickeau		        $this->setState(153);
97237748cd8SNickeau		        $this->errorHandler->sync($this);
97337748cd8SNickeau		        $_la = $this->input->LA(1);
97437748cd8SNickeau
975*1fa8c418SNickeau		        if ($_la === self::FROM) {
97637748cd8SNickeau		        	$this->setState(152);
977*1fa8c418SNickeau		        	$this->tables();
97837748cd8SNickeau		        }
97937748cd8SNickeau		        $this->setState(156);
98037748cd8SNickeau		        $this->errorHandler->sync($this);
98137748cd8SNickeau		        $_la = $this->input->LA(1);
98237748cd8SNickeau
983*1fa8c418SNickeau		        if ($_la === self::WHERE) {
98437748cd8SNickeau		        	$this->setState(155);
985*1fa8c418SNickeau		        	$this->predicates();
98637748cd8SNickeau		        }
98737748cd8SNickeau		        $this->setState(159);
98837748cd8SNickeau		        $this->errorHandler->sync($this);
98937748cd8SNickeau		        $_la = $this->input->LA(1);
99037748cd8SNickeau
991*1fa8c418SNickeau		        if ($_la === self::ORDER) {
99237748cd8SNickeau		        	$this->setState(158);
993*1fa8c418SNickeau		        	$this->orderBys();
994*1fa8c418SNickeau		        }
995*1fa8c418SNickeau		        $this->setState(162);
996*1fa8c418SNickeau		        $this->errorHandler->sync($this);
997*1fa8c418SNickeau		        $_la = $this->input->LA(1);
998*1fa8c418SNickeau
999*1fa8c418SNickeau		        if ($_la === self::LIMIT) {
1000*1fa8c418SNickeau		        	$this->setState(161);
100137748cd8SNickeau		        	$this->limit();
100237748cd8SNickeau		        }
100337748cd8SNickeau		    } catch (RecognitionException $exception) {
100437748cd8SNickeau		        $localContext->exception = $exception;
100537748cd8SNickeau		        $this->errorHandler->reportError($this, $exception);
100637748cd8SNickeau		        $this->errorHandler->recover($this, $exception);
100737748cd8SNickeau		    } finally {
100837748cd8SNickeau		        $this->exitRule();
100937748cd8SNickeau		    }
101037748cd8SNickeau
101137748cd8SNickeau		    return $localContext;
101237748cd8SNickeau		}
101337748cd8SNickeau	}
101437748cd8SNickeau}
101537748cd8SNickeau
101637748cd8SNickeaunamespace ComboStrap\PageSqlParser\Context {
101737748cd8SNickeau	use Antlr\Antlr4\Runtime\ParserRuleContext;
101837748cd8SNickeau	use Antlr\Antlr4\Runtime\Token;
101937748cd8SNickeau	use Antlr\Antlr4\Runtime\Tree\ParseTreeVisitor;
102037748cd8SNickeau	use Antlr\Antlr4\Runtime\Tree\TerminalNode;
102137748cd8SNickeau	use Antlr\Antlr4\Runtime\Tree\ParseTreeListener;
102237748cd8SNickeau	use ComboStrap\PageSqlParser\PageSqlParser;
102337748cd8SNickeau	use ComboStrap\PageSqlParser\PageSqlVisitor;
102437748cd8SNickeau	use ComboStrap\PageSqlParser\PageSqlListener;
102537748cd8SNickeau
102637748cd8SNickeau	class FunctionNamesContext extends ParserRuleContext
102737748cd8SNickeau	{
102837748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
102937748cd8SNickeau		{
103037748cd8SNickeau			parent::__construct($parent, $invokingState);
103137748cd8SNickeau		}
103237748cd8SNickeau
103337748cd8SNickeau		public function getRuleIndex() : int
103437748cd8SNickeau		{
103537748cd8SNickeau		    return PageSqlParser::RULE_functionNames;
103637748cd8SNickeau	    }
103737748cd8SNickeau
103837748cd8SNickeau	    public function DATE() : ?TerminalNode
103937748cd8SNickeau	    {
104037748cd8SNickeau	        return $this->getToken(PageSqlParser::DATE, 0);
104137748cd8SNickeau	    }
104237748cd8SNickeau
104337748cd8SNickeau	    public function DATETIME() : ?TerminalNode
104437748cd8SNickeau	    {
104537748cd8SNickeau	        return $this->getToken(PageSqlParser::DATETIME, 0);
104637748cd8SNickeau	    }
104737748cd8SNickeau
104837748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
104937748cd8SNickeau		{
105037748cd8SNickeau			if ($listener instanceof PageSqlListener) {
105137748cd8SNickeau			    $listener->enterFunctionNames($this);
105237748cd8SNickeau		    }
105337748cd8SNickeau		}
105437748cd8SNickeau
105537748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
105637748cd8SNickeau		{
105737748cd8SNickeau			if ($listener instanceof PageSqlListener) {
105837748cd8SNickeau			    $listener->exitFunctionNames($this);
105937748cd8SNickeau		    }
106037748cd8SNickeau		}
106137748cd8SNickeau
106237748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
106337748cd8SNickeau		{
106437748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
106537748cd8SNickeau			    return $visitor->visitFunctionNames($this);
106637748cd8SNickeau		    }
106737748cd8SNickeau
106837748cd8SNickeau			return $visitor->visitChildren($this);
106937748cd8SNickeau		}
107037748cd8SNickeau	}
107137748cd8SNickeau
107237748cd8SNickeau	class TableNamesContext extends ParserRuleContext
107337748cd8SNickeau	{
107437748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
107537748cd8SNickeau		{
107637748cd8SNickeau			parent::__construct($parent, $invokingState);
107737748cd8SNickeau		}
107837748cd8SNickeau
107937748cd8SNickeau		public function getRuleIndex() : int
108037748cd8SNickeau		{
108137748cd8SNickeau		    return PageSqlParser::RULE_tableNames;
108237748cd8SNickeau	    }
108337748cd8SNickeau
1084*1fa8c418SNickeau	    public function PAGES() : ?TerminalNode
108537748cd8SNickeau	    {
1086*1fa8c418SNickeau	        return $this->getToken(PageSqlParser::PAGES, 0);
108737748cd8SNickeau	    }
108837748cd8SNickeau
1089*1fa8c418SNickeau	    public function BACKLINKS() : ?TerminalNode
109037748cd8SNickeau	    {
1091*1fa8c418SNickeau	        return $this->getToken(PageSqlParser::BACKLINKS, 0);
109237748cd8SNickeau	    }
109337748cd8SNickeau
109437748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
109537748cd8SNickeau		{
109637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
109737748cd8SNickeau			    $listener->enterTableNames($this);
109837748cd8SNickeau		    }
109937748cd8SNickeau		}
110037748cd8SNickeau
110137748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
110237748cd8SNickeau		{
110337748cd8SNickeau			if ($listener instanceof PageSqlListener) {
110437748cd8SNickeau			    $listener->exitTableNames($this);
110537748cd8SNickeau		    }
110637748cd8SNickeau		}
110737748cd8SNickeau
110837748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
110937748cd8SNickeau		{
111037748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
111137748cd8SNickeau			    return $visitor->visitTableNames($this);
111237748cd8SNickeau		    }
111337748cd8SNickeau
111437748cd8SNickeau			return $visitor->visitChildren($this);
111537748cd8SNickeau		}
111637748cd8SNickeau	}
111737748cd8SNickeau
111837748cd8SNickeau	class SqlNamesContext extends ParserRuleContext
111937748cd8SNickeau	{
112037748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
112137748cd8SNickeau		{
112237748cd8SNickeau			parent::__construct($parent, $invokingState);
112337748cd8SNickeau		}
112437748cd8SNickeau
112537748cd8SNickeau		public function getRuleIndex() : int
112637748cd8SNickeau		{
112737748cd8SNickeau		    return PageSqlParser::RULE_sqlNames;
112837748cd8SNickeau	    }
112937748cd8SNickeau
113037748cd8SNickeau	    public function SqlName() : ?TerminalNode
113137748cd8SNickeau	    {
113237748cd8SNickeau	        return $this->getToken(PageSqlParser::SqlName, 0);
113337748cd8SNickeau	    }
113437748cd8SNickeau
113537748cd8SNickeau	    public function Number() : ?TerminalNode
113637748cd8SNickeau	    {
113737748cd8SNickeau	        return $this->getToken(PageSqlParser::Number, 0);
113837748cd8SNickeau	    }
113937748cd8SNickeau
114037748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
114137748cd8SNickeau		{
114237748cd8SNickeau			if ($listener instanceof PageSqlListener) {
114337748cd8SNickeau			    $listener->enterSqlNames($this);
114437748cd8SNickeau		    }
114537748cd8SNickeau		}
114637748cd8SNickeau
114737748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
114837748cd8SNickeau		{
114937748cd8SNickeau			if ($listener instanceof PageSqlListener) {
115037748cd8SNickeau			    $listener->exitSqlNames($this);
115137748cd8SNickeau		    }
115237748cd8SNickeau		}
115337748cd8SNickeau
115437748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
115537748cd8SNickeau		{
115637748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
115737748cd8SNickeau			    return $visitor->visitSqlNames($this);
115837748cd8SNickeau		    }
115937748cd8SNickeau
116037748cd8SNickeau			return $visitor->visitChildren($this);
116137748cd8SNickeau		}
116237748cd8SNickeau	}
116337748cd8SNickeau
116437748cd8SNickeau	class ColumnContext extends ParserRuleContext
116537748cd8SNickeau	{
116637748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
116737748cd8SNickeau		{
116837748cd8SNickeau			parent::__construct($parent, $invokingState);
116937748cd8SNickeau		}
117037748cd8SNickeau
117137748cd8SNickeau		public function getRuleIndex() : int
117237748cd8SNickeau		{
117337748cd8SNickeau		    return PageSqlParser::RULE_column;
117437748cd8SNickeau	    }
117537748cd8SNickeau
117637748cd8SNickeau	    /**
117737748cd8SNickeau	     * @return array<SqlNamesContext>|SqlNamesContext|null
117837748cd8SNickeau	     */
117937748cd8SNickeau	    public function sqlNames(?int $index = null)
118037748cd8SNickeau	    {
118137748cd8SNickeau	    	if ($index === null) {
118237748cd8SNickeau	    		return $this->getTypedRuleContexts(SqlNamesContext::class);
118337748cd8SNickeau	    	}
118437748cd8SNickeau
118537748cd8SNickeau	        return $this->getTypedRuleContext(SqlNamesContext::class, $index);
118637748cd8SNickeau	    }
118737748cd8SNickeau
118837748cd8SNickeau	    public function DOT() : ?TerminalNode
118937748cd8SNickeau	    {
119037748cd8SNickeau	        return $this->getToken(PageSqlParser::DOT, 0);
119137748cd8SNickeau	    }
119237748cd8SNickeau
119337748cd8SNickeau	    public function AS() : ?TerminalNode
119437748cd8SNickeau	    {
119537748cd8SNickeau	        return $this->getToken(PageSqlParser::AS, 0);
119637748cd8SNickeau	    }
119737748cd8SNickeau
119837748cd8SNickeau	    public function StringLiteral() : ?TerminalNode
119937748cd8SNickeau	    {
120037748cd8SNickeau	        return $this->getToken(PageSqlParser::StringLiteral, 0);
120137748cd8SNickeau	    }
120237748cd8SNickeau
120337748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
120437748cd8SNickeau		{
120537748cd8SNickeau			if ($listener instanceof PageSqlListener) {
120637748cd8SNickeau			    $listener->enterColumn($this);
120737748cd8SNickeau		    }
120837748cd8SNickeau		}
120937748cd8SNickeau
121037748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
121137748cd8SNickeau		{
121237748cd8SNickeau			if ($listener instanceof PageSqlListener) {
121337748cd8SNickeau			    $listener->exitColumn($this);
121437748cd8SNickeau		    }
121537748cd8SNickeau		}
121637748cd8SNickeau
121737748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
121837748cd8SNickeau		{
121937748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
122037748cd8SNickeau			    return $visitor->visitColumn($this);
122137748cd8SNickeau		    }
122237748cd8SNickeau
122337748cd8SNickeau			return $visitor->visitChildren($this);
122437748cd8SNickeau		}
122537748cd8SNickeau	}
122637748cd8SNickeau
122737748cd8SNickeau	class PatternContext extends ParserRuleContext
122837748cd8SNickeau	{
122937748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
123037748cd8SNickeau		{
123137748cd8SNickeau			parent::__construct($parent, $invokingState);
123237748cd8SNickeau		}
123337748cd8SNickeau
123437748cd8SNickeau		public function getRuleIndex() : int
123537748cd8SNickeau		{
123637748cd8SNickeau		    return PageSqlParser::RULE_pattern;
123737748cd8SNickeau	    }
123837748cd8SNickeau
123937748cd8SNickeau	    public function StringLiteral() : ?TerminalNode
124037748cd8SNickeau	    {
124137748cd8SNickeau	        return $this->getToken(PageSqlParser::StringLiteral, 0);
124237748cd8SNickeau	    }
124337748cd8SNickeau
124437748cd8SNickeau	    public function NumberLiteral() : ?TerminalNode
124537748cd8SNickeau	    {
124637748cd8SNickeau	        return $this->getToken(PageSqlParser::NumberLiteral, 0);
124737748cd8SNickeau	    }
124837748cd8SNickeau
124937748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
125037748cd8SNickeau		{
125137748cd8SNickeau			if ($listener instanceof PageSqlListener) {
125237748cd8SNickeau			    $listener->enterPattern($this);
125337748cd8SNickeau		    }
125437748cd8SNickeau		}
125537748cd8SNickeau
125637748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
125737748cd8SNickeau		{
125837748cd8SNickeau			if ($listener instanceof PageSqlListener) {
125937748cd8SNickeau			    $listener->exitPattern($this);
126037748cd8SNickeau		    }
126137748cd8SNickeau		}
126237748cd8SNickeau
126337748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
126437748cd8SNickeau		{
126537748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
126637748cd8SNickeau			    return $visitor->visitPattern($this);
126737748cd8SNickeau		    }
126837748cd8SNickeau
126937748cd8SNickeau			return $visitor->visitChildren($this);
127037748cd8SNickeau		}
127137748cd8SNickeau	}
127237748cd8SNickeau
127337748cd8SNickeau	class ExpressionContext extends ParserRuleContext
127437748cd8SNickeau	{
127537748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
127637748cd8SNickeau		{
127737748cd8SNickeau			parent::__construct($parent, $invokingState);
127837748cd8SNickeau		}
127937748cd8SNickeau
128037748cd8SNickeau		public function getRuleIndex() : int
128137748cd8SNickeau		{
128237748cd8SNickeau		    return PageSqlParser::RULE_expression;
128337748cd8SNickeau	    }
128437748cd8SNickeau
128537748cd8SNickeau	    public function SqlName() : ?TerminalNode
128637748cd8SNickeau	    {
128737748cd8SNickeau	        return $this->getToken(PageSqlParser::SqlName, 0);
128837748cd8SNickeau	    }
128937748cd8SNickeau
129037748cd8SNickeau	    public function StringLiteral() : ?TerminalNode
129137748cd8SNickeau	    {
129237748cd8SNickeau	        return $this->getToken(PageSqlParser::StringLiteral, 0);
129337748cd8SNickeau	    }
129437748cd8SNickeau
129537748cd8SNickeau	    public function NumberLiteral() : ?TerminalNode
129637748cd8SNickeau	    {
129737748cd8SNickeau	        return $this->getToken(PageSqlParser::NumberLiteral, 0);
129837748cd8SNickeau	    }
129937748cd8SNickeau
130037748cd8SNickeau	    public function Number() : ?TerminalNode
130137748cd8SNickeau	    {
130237748cd8SNickeau	        return $this->getToken(PageSqlParser::Number, 0);
130337748cd8SNickeau	    }
130437748cd8SNickeau
130537748cd8SNickeau	    public function functionNames() : ?FunctionNamesContext
130637748cd8SNickeau	    {
130737748cd8SNickeau	    	return $this->getTypedRuleContext(FunctionNamesContext::class, 0);
130837748cd8SNickeau	    }
130937748cd8SNickeau
131037748cd8SNickeau	    public function LPAREN() : ?TerminalNode
131137748cd8SNickeau	    {
131237748cd8SNickeau	        return $this->getToken(PageSqlParser::LPAREN, 0);
131337748cd8SNickeau	    }
131437748cd8SNickeau
131537748cd8SNickeau	    public function RPAREN() : ?TerminalNode
131637748cd8SNickeau	    {
131737748cd8SNickeau	        return $this->getToken(PageSqlParser::RPAREN, 0);
131837748cd8SNickeau	    }
131937748cd8SNickeau
132037748cd8SNickeau	    /**
132137748cd8SNickeau	     * @return array<ExpressionContext>|ExpressionContext|null
132237748cd8SNickeau	     */
132337748cd8SNickeau	    public function expression(?int $index = null)
132437748cd8SNickeau	    {
132537748cd8SNickeau	    	if ($index === null) {
132637748cd8SNickeau	    		return $this->getTypedRuleContexts(ExpressionContext::class);
132737748cd8SNickeau	    	}
132837748cd8SNickeau
132937748cd8SNickeau	        return $this->getTypedRuleContext(ExpressionContext::class, $index);
133037748cd8SNickeau	    }
133137748cd8SNickeau
133237748cd8SNickeau	    /**
133337748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
133437748cd8SNickeau	     */
133537748cd8SNickeau	    public function COMMA(?int $index = null)
133637748cd8SNickeau	    {
133737748cd8SNickeau	    	if ($index === null) {
133837748cd8SNickeau	    		return $this->getTokens(PageSqlParser::COMMA);
133937748cd8SNickeau	    	}
134037748cd8SNickeau
134137748cd8SNickeau	        return $this->getToken(PageSqlParser::COMMA, $index);
134237748cd8SNickeau	    }
134337748cd8SNickeau
134437748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
134537748cd8SNickeau		{
134637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
134737748cd8SNickeau			    $listener->enterExpression($this);
134837748cd8SNickeau		    }
134937748cd8SNickeau		}
135037748cd8SNickeau
135137748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
135237748cd8SNickeau		{
135337748cd8SNickeau			if ($listener instanceof PageSqlListener) {
135437748cd8SNickeau			    $listener->exitExpression($this);
135537748cd8SNickeau		    }
135637748cd8SNickeau		}
135737748cd8SNickeau
135837748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
135937748cd8SNickeau		{
136037748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
136137748cd8SNickeau			    return $visitor->visitExpression($this);
136237748cd8SNickeau		    }
136337748cd8SNickeau
136437748cd8SNickeau			return $visitor->visitChildren($this);
136537748cd8SNickeau		}
136637748cd8SNickeau	}
136737748cd8SNickeau
136837748cd8SNickeau	class PredicateContext extends ParserRuleContext
136937748cd8SNickeau	{
137037748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
137137748cd8SNickeau		{
137237748cd8SNickeau			parent::__construct($parent, $invokingState);
137337748cd8SNickeau		}
137437748cd8SNickeau
137537748cd8SNickeau		public function getRuleIndex() : int
137637748cd8SNickeau		{
137737748cd8SNickeau		    return PageSqlParser::RULE_predicate;
137837748cd8SNickeau	    }
137937748cd8SNickeau
138037748cd8SNickeau	    public function sqlNames() : ?SqlNamesContext
138137748cd8SNickeau	    {
138237748cd8SNickeau	    	return $this->getTypedRuleContext(SqlNamesContext::class, 0);
138337748cd8SNickeau	    }
138437748cd8SNickeau
138537748cd8SNickeau	    /**
138637748cd8SNickeau	     * @return array<ExpressionContext>|ExpressionContext|null
138737748cd8SNickeau	     */
138837748cd8SNickeau	    public function expression(?int $index = null)
138937748cd8SNickeau	    {
139037748cd8SNickeau	    	if ($index === null) {
139137748cd8SNickeau	    		return $this->getTypedRuleContexts(ExpressionContext::class);
139237748cd8SNickeau	    	}
139337748cd8SNickeau
139437748cd8SNickeau	        return $this->getTypedRuleContext(ExpressionContext::class, $index);
139537748cd8SNickeau	    }
139637748cd8SNickeau
139737748cd8SNickeau	    public function BETWEEN() : ?TerminalNode
139837748cd8SNickeau	    {
139937748cd8SNickeau	        return $this->getToken(PageSqlParser::BETWEEN, 0);
140037748cd8SNickeau	    }
140137748cd8SNickeau
140237748cd8SNickeau	    public function AND() : ?TerminalNode
140337748cd8SNickeau	    {
140437748cd8SNickeau	        return $this->getToken(PageSqlParser::AND, 0);
140537748cd8SNickeau	    }
140637748cd8SNickeau
140737748cd8SNickeau	    public function IN() : ?TerminalNode
140837748cd8SNickeau	    {
140937748cd8SNickeau	        return $this->getToken(PageSqlParser::IN, 0);
141037748cd8SNickeau	    }
141137748cd8SNickeau
141237748cd8SNickeau	    public function LPAREN() : ?TerminalNode
141337748cd8SNickeau	    {
141437748cd8SNickeau	        return $this->getToken(PageSqlParser::LPAREN, 0);
141537748cd8SNickeau	    }
141637748cd8SNickeau
141737748cd8SNickeau	    public function RPAREN() : ?TerminalNode
141837748cd8SNickeau	    {
141937748cd8SNickeau	        return $this->getToken(PageSqlParser::RPAREN, 0);
142037748cd8SNickeau	    }
142137748cd8SNickeau
142237748cd8SNickeau	    public function LESS_THAN() : ?TerminalNode
142337748cd8SNickeau	    {
142437748cd8SNickeau	        return $this->getToken(PageSqlParser::LESS_THAN, 0);
142537748cd8SNickeau	    }
142637748cd8SNickeau
142737748cd8SNickeau	    public function LESS_THAN_OR_EQUAL() : ?TerminalNode
142837748cd8SNickeau	    {
142937748cd8SNickeau	        return $this->getToken(PageSqlParser::LESS_THAN_OR_EQUAL, 0);
143037748cd8SNickeau	    }
143137748cd8SNickeau
143237748cd8SNickeau	    public function GREATER_THAN() : ?TerminalNode
143337748cd8SNickeau	    {
143437748cd8SNickeau	        return $this->getToken(PageSqlParser::GREATER_THAN, 0);
143537748cd8SNickeau	    }
143637748cd8SNickeau
143737748cd8SNickeau	    public function GREATER_THAN_OR_EQUAL() : ?TerminalNode
143837748cd8SNickeau	    {
143937748cd8SNickeau	        return $this->getToken(PageSqlParser::GREATER_THAN_OR_EQUAL, 0);
144037748cd8SNickeau	    }
144137748cd8SNickeau
144237748cd8SNickeau	    public function NOT_EQUAL() : ?TerminalNode
144337748cd8SNickeau	    {
144437748cd8SNickeau	        return $this->getToken(PageSqlParser::NOT_EQUAL, 0);
144537748cd8SNickeau	    }
144637748cd8SNickeau
144737748cd8SNickeau	    public function EQUAL() : ?TerminalNode
144837748cd8SNickeau	    {
144937748cd8SNickeau	        return $this->getToken(PageSqlParser::EQUAL, 0);
145037748cd8SNickeau	    }
145137748cd8SNickeau
145237748cd8SNickeau	    public function LIKE() : ?TerminalNode
145337748cd8SNickeau	    {
145437748cd8SNickeau	        return $this->getToken(PageSqlParser::LIKE, 0);
145537748cd8SNickeau	    }
145637748cd8SNickeau
145737748cd8SNickeau	    public function pattern() : ?PatternContext
145837748cd8SNickeau	    {
145937748cd8SNickeau	    	return $this->getTypedRuleContext(PatternContext::class, 0);
146037748cd8SNickeau	    }
146137748cd8SNickeau
146237748cd8SNickeau	    public function GLOB() : ?TerminalNode
146337748cd8SNickeau	    {
146437748cd8SNickeau	        return $this->getToken(PageSqlParser::GLOB, 0);
146537748cd8SNickeau	    }
146637748cd8SNickeau
146737748cd8SNickeau	    public function NOT() : ?TerminalNode
146837748cd8SNickeau	    {
146937748cd8SNickeau	        return $this->getToken(PageSqlParser::NOT, 0);
147037748cd8SNickeau	    }
147137748cd8SNickeau
147237748cd8SNickeau	    public function ESCAPE() : ?TerminalNode
147337748cd8SNickeau	    {
147437748cd8SNickeau	        return $this->getToken(PageSqlParser::ESCAPE, 0);
147537748cd8SNickeau	    }
147637748cd8SNickeau
147737748cd8SNickeau	    public function StringLiteral() : ?TerminalNode
147837748cd8SNickeau	    {
147937748cd8SNickeau	        return $this->getToken(PageSqlParser::StringLiteral, 0);
148037748cd8SNickeau	    }
148137748cd8SNickeau
148237748cd8SNickeau	    /**
148337748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
148437748cd8SNickeau	     */
148537748cd8SNickeau	    public function COMMA(?int $index = null)
148637748cd8SNickeau	    {
148737748cd8SNickeau	    	if ($index === null) {
148837748cd8SNickeau	    		return $this->getTokens(PageSqlParser::COMMA);
148937748cd8SNickeau	    	}
149037748cd8SNickeau
149137748cd8SNickeau	        return $this->getToken(PageSqlParser::COMMA, $index);
149237748cd8SNickeau	    }
149337748cd8SNickeau
149437748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
149537748cd8SNickeau		{
149637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
149737748cd8SNickeau			    $listener->enterPredicate($this);
149837748cd8SNickeau		    }
149937748cd8SNickeau		}
150037748cd8SNickeau
150137748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
150237748cd8SNickeau		{
150337748cd8SNickeau			if ($listener instanceof PageSqlListener) {
150437748cd8SNickeau			    $listener->exitPredicate($this);
150537748cd8SNickeau		    }
150637748cd8SNickeau		}
150737748cd8SNickeau
150837748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
150937748cd8SNickeau		{
151037748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
151137748cd8SNickeau			    return $visitor->visitPredicate($this);
151237748cd8SNickeau		    }
151337748cd8SNickeau
151437748cd8SNickeau			return $visitor->visitChildren($this);
151537748cd8SNickeau		}
151637748cd8SNickeau	}
151737748cd8SNickeau
151837748cd8SNickeau	class ColumnsContext extends ParserRuleContext
151937748cd8SNickeau	{
152037748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
152137748cd8SNickeau		{
152237748cd8SNickeau			parent::__construct($parent, $invokingState);
152337748cd8SNickeau		}
152437748cd8SNickeau
152537748cd8SNickeau		public function getRuleIndex() : int
152637748cd8SNickeau		{
152737748cd8SNickeau		    return PageSqlParser::RULE_columns;
152837748cd8SNickeau	    }
152937748cd8SNickeau
153037748cd8SNickeau	    /**
153137748cd8SNickeau	     * @return array<ColumnContext>|ColumnContext|null
153237748cd8SNickeau	     */
153337748cd8SNickeau	    public function column(?int $index = null)
153437748cd8SNickeau	    {
153537748cd8SNickeau	    	if ($index === null) {
153637748cd8SNickeau	    		return $this->getTypedRuleContexts(ColumnContext::class);
153737748cd8SNickeau	    	}
153837748cd8SNickeau
153937748cd8SNickeau	        return $this->getTypedRuleContext(ColumnContext::class, $index);
154037748cd8SNickeau	    }
154137748cd8SNickeau
154237748cd8SNickeau	    /**
154337748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
154437748cd8SNickeau	     */
154537748cd8SNickeau	    public function COMMA(?int $index = null)
154637748cd8SNickeau	    {
154737748cd8SNickeau	    	if ($index === null) {
154837748cd8SNickeau	    		return $this->getTokens(PageSqlParser::COMMA);
154937748cd8SNickeau	    	}
155037748cd8SNickeau
155137748cd8SNickeau	        return $this->getToken(PageSqlParser::COMMA, $index);
155237748cd8SNickeau	    }
155337748cd8SNickeau
155437748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
155537748cd8SNickeau		{
155637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
155737748cd8SNickeau			    $listener->enterColumns($this);
155837748cd8SNickeau		    }
155937748cd8SNickeau		}
156037748cd8SNickeau
156137748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
156237748cd8SNickeau		{
156337748cd8SNickeau			if ($listener instanceof PageSqlListener) {
156437748cd8SNickeau			    $listener->exitColumns($this);
156537748cd8SNickeau		    }
156637748cd8SNickeau		}
156737748cd8SNickeau
156837748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
156937748cd8SNickeau		{
157037748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
157137748cd8SNickeau			    return $visitor->visitColumns($this);
157237748cd8SNickeau		    }
157337748cd8SNickeau
157437748cd8SNickeau			return $visitor->visitChildren($this);
157537748cd8SNickeau		}
157637748cd8SNickeau	}
157737748cd8SNickeau
157837748cd8SNickeau	class PredicatesContext extends ParserRuleContext
157937748cd8SNickeau	{
158037748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
158137748cd8SNickeau		{
158237748cd8SNickeau			parent::__construct($parent, $invokingState);
158337748cd8SNickeau		}
158437748cd8SNickeau
158537748cd8SNickeau		public function getRuleIndex() : int
158637748cd8SNickeau		{
158737748cd8SNickeau		    return PageSqlParser::RULE_predicates;
158837748cd8SNickeau	    }
158937748cd8SNickeau
159037748cd8SNickeau	    public function WHERE() : ?TerminalNode
159137748cd8SNickeau	    {
159237748cd8SNickeau	        return $this->getToken(PageSqlParser::WHERE, 0);
159337748cd8SNickeau	    }
159437748cd8SNickeau
159537748cd8SNickeau	    /**
159637748cd8SNickeau	     * @return array<PredicateContext>|PredicateContext|null
159737748cd8SNickeau	     */
159837748cd8SNickeau	    public function predicate(?int $index = null)
159937748cd8SNickeau	    {
160037748cd8SNickeau	    	if ($index === null) {
160137748cd8SNickeau	    		return $this->getTypedRuleContexts(PredicateContext::class);
160237748cd8SNickeau	    	}
160337748cd8SNickeau
160437748cd8SNickeau	        return $this->getTypedRuleContext(PredicateContext::class, $index);
160537748cd8SNickeau	    }
160637748cd8SNickeau
160737748cd8SNickeau	    /**
160837748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
160937748cd8SNickeau	     */
161037748cd8SNickeau	    public function AND(?int $index = null)
161137748cd8SNickeau	    {
161237748cd8SNickeau	    	if ($index === null) {
161337748cd8SNickeau	    		return $this->getTokens(PageSqlParser::AND);
161437748cd8SNickeau	    	}
161537748cd8SNickeau
161637748cd8SNickeau	        return $this->getToken(PageSqlParser::AND, $index);
161737748cd8SNickeau	    }
161837748cd8SNickeau
161937748cd8SNickeau	    /**
162037748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
162137748cd8SNickeau	     */
162237748cd8SNickeau	    public function OR(?int $index = null)
162337748cd8SNickeau	    {
162437748cd8SNickeau	    	if ($index === null) {
162537748cd8SNickeau	    		return $this->getTokens(PageSqlParser::OR);
162637748cd8SNickeau	    	}
162737748cd8SNickeau
162837748cd8SNickeau	        return $this->getToken(PageSqlParser::OR, $index);
162937748cd8SNickeau	    }
163037748cd8SNickeau
163137748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
163237748cd8SNickeau		{
163337748cd8SNickeau			if ($listener instanceof PageSqlListener) {
163437748cd8SNickeau			    $listener->enterPredicates($this);
163537748cd8SNickeau		    }
163637748cd8SNickeau		}
163737748cd8SNickeau
163837748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
163937748cd8SNickeau		{
164037748cd8SNickeau			if ($listener instanceof PageSqlListener) {
164137748cd8SNickeau			    $listener->exitPredicates($this);
164237748cd8SNickeau		    }
164337748cd8SNickeau		}
164437748cd8SNickeau
164537748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
164637748cd8SNickeau		{
164737748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
164837748cd8SNickeau			    return $visitor->visitPredicates($this);
164937748cd8SNickeau		    }
165037748cd8SNickeau
165137748cd8SNickeau			return $visitor->visitChildren($this);
165237748cd8SNickeau		}
165337748cd8SNickeau	}
165437748cd8SNickeau
165537748cd8SNickeau	class TablesContext extends ParserRuleContext
165637748cd8SNickeau	{
165737748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
165837748cd8SNickeau		{
165937748cd8SNickeau			parent::__construct($parent, $invokingState);
166037748cd8SNickeau		}
166137748cd8SNickeau
166237748cd8SNickeau		public function getRuleIndex() : int
166337748cd8SNickeau		{
166437748cd8SNickeau		    return PageSqlParser::RULE_tables;
166537748cd8SNickeau	    }
166637748cd8SNickeau
166737748cd8SNickeau	    public function FROM() : ?TerminalNode
166837748cd8SNickeau	    {
166937748cd8SNickeau	        return $this->getToken(PageSqlParser::FROM, 0);
167037748cd8SNickeau	    }
167137748cd8SNickeau
167237748cd8SNickeau	    public function tableNames() : ?TableNamesContext
167337748cd8SNickeau	    {
167437748cd8SNickeau	    	return $this->getTypedRuleContext(TableNamesContext::class, 0);
167537748cd8SNickeau	    }
167637748cd8SNickeau
167737748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
167837748cd8SNickeau		{
167937748cd8SNickeau			if ($listener instanceof PageSqlListener) {
168037748cd8SNickeau			    $listener->enterTables($this);
168137748cd8SNickeau		    }
168237748cd8SNickeau		}
168337748cd8SNickeau
168437748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
168537748cd8SNickeau		{
168637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
168737748cd8SNickeau			    $listener->exitTables($this);
168837748cd8SNickeau		    }
168937748cd8SNickeau		}
169037748cd8SNickeau
169137748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
169237748cd8SNickeau		{
169337748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
169437748cd8SNickeau			    return $visitor->visitTables($this);
169537748cd8SNickeau		    }
169637748cd8SNickeau
169737748cd8SNickeau			return $visitor->visitChildren($this);
169837748cd8SNickeau		}
169937748cd8SNickeau	}
170037748cd8SNickeau
170137748cd8SNickeau	class LimitContext extends ParserRuleContext
170237748cd8SNickeau	{
170337748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
170437748cd8SNickeau		{
170537748cd8SNickeau			parent::__construct($parent, $invokingState);
170637748cd8SNickeau		}
170737748cd8SNickeau
170837748cd8SNickeau		public function getRuleIndex() : int
170937748cd8SNickeau		{
171037748cd8SNickeau		    return PageSqlParser::RULE_limit;
171137748cd8SNickeau	    }
171237748cd8SNickeau
171337748cd8SNickeau	    public function LIMIT() : ?TerminalNode
171437748cd8SNickeau	    {
171537748cd8SNickeau	        return $this->getToken(PageSqlParser::LIMIT, 0);
171637748cd8SNickeau	    }
171737748cd8SNickeau
171837748cd8SNickeau	    public function Number() : ?TerminalNode
171937748cd8SNickeau	    {
172037748cd8SNickeau	        return $this->getToken(PageSqlParser::Number, 0);
172137748cd8SNickeau	    }
172237748cd8SNickeau
172337748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
172437748cd8SNickeau		{
172537748cd8SNickeau			if ($listener instanceof PageSqlListener) {
172637748cd8SNickeau			    $listener->enterLimit($this);
172737748cd8SNickeau		    }
172837748cd8SNickeau		}
172937748cd8SNickeau
173037748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
173137748cd8SNickeau		{
173237748cd8SNickeau			if ($listener instanceof PageSqlListener) {
173337748cd8SNickeau			    $listener->exitLimit($this);
173437748cd8SNickeau		    }
173537748cd8SNickeau		}
173637748cd8SNickeau
173737748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
173837748cd8SNickeau		{
173937748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
174037748cd8SNickeau			    return $visitor->visitLimit($this);
174137748cd8SNickeau		    }
174237748cd8SNickeau
174337748cd8SNickeau			return $visitor->visitChildren($this);
174437748cd8SNickeau		}
174537748cd8SNickeau	}
174637748cd8SNickeau
174737748cd8SNickeau	class OrderBysContext extends ParserRuleContext
174837748cd8SNickeau	{
174937748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
175037748cd8SNickeau		{
175137748cd8SNickeau			parent::__construct($parent, $invokingState);
175237748cd8SNickeau		}
175337748cd8SNickeau
175437748cd8SNickeau		public function getRuleIndex() : int
175537748cd8SNickeau		{
175637748cd8SNickeau		    return PageSqlParser::RULE_orderBys;
175737748cd8SNickeau	    }
175837748cd8SNickeau
175937748cd8SNickeau	    public function ORDER() : ?TerminalNode
176037748cd8SNickeau	    {
176137748cd8SNickeau	        return $this->getToken(PageSqlParser::ORDER, 0);
176237748cd8SNickeau	    }
176337748cd8SNickeau
176437748cd8SNickeau	    public function BY() : ?TerminalNode
176537748cd8SNickeau	    {
176637748cd8SNickeau	        return $this->getToken(PageSqlParser::BY, 0);
176737748cd8SNickeau	    }
176837748cd8SNickeau
176937748cd8SNickeau	    /**
177037748cd8SNickeau	     * @return array<OrderByDefContext>|OrderByDefContext|null
177137748cd8SNickeau	     */
177237748cd8SNickeau	    public function orderByDef(?int $index = null)
177337748cd8SNickeau	    {
177437748cd8SNickeau	    	if ($index === null) {
177537748cd8SNickeau	    		return $this->getTypedRuleContexts(OrderByDefContext::class);
177637748cd8SNickeau	    	}
177737748cd8SNickeau
177837748cd8SNickeau	        return $this->getTypedRuleContext(OrderByDefContext::class, $index);
177937748cd8SNickeau	    }
178037748cd8SNickeau
178137748cd8SNickeau	    /**
178237748cd8SNickeau	     * @return array<TerminalNode>|TerminalNode|null
178337748cd8SNickeau	     */
178437748cd8SNickeau	    public function COMMA(?int $index = null)
178537748cd8SNickeau	    {
178637748cd8SNickeau	    	if ($index === null) {
178737748cd8SNickeau	    		return $this->getTokens(PageSqlParser::COMMA);
178837748cd8SNickeau	    	}
178937748cd8SNickeau
179037748cd8SNickeau	        return $this->getToken(PageSqlParser::COMMA, $index);
179137748cd8SNickeau	    }
179237748cd8SNickeau
179337748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
179437748cd8SNickeau		{
179537748cd8SNickeau			if ($listener instanceof PageSqlListener) {
179637748cd8SNickeau			    $listener->enterOrderBys($this);
179737748cd8SNickeau		    }
179837748cd8SNickeau		}
179937748cd8SNickeau
180037748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
180137748cd8SNickeau		{
180237748cd8SNickeau			if ($listener instanceof PageSqlListener) {
180337748cd8SNickeau			    $listener->exitOrderBys($this);
180437748cd8SNickeau		    }
180537748cd8SNickeau		}
180637748cd8SNickeau
180737748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
180837748cd8SNickeau		{
180937748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
181037748cd8SNickeau			    return $visitor->visitOrderBys($this);
181137748cd8SNickeau		    }
181237748cd8SNickeau
181337748cd8SNickeau			return $visitor->visitChildren($this);
181437748cd8SNickeau		}
181537748cd8SNickeau	}
181637748cd8SNickeau
181737748cd8SNickeau	class OrderByDefContext extends ParserRuleContext
181837748cd8SNickeau	{
181937748cd8SNickeau		public function __construct(?ParserRuleContext $parent, ?int $invokingState = null)
182037748cd8SNickeau		{
182137748cd8SNickeau			parent::__construct($parent, $invokingState);
182237748cd8SNickeau		}
182337748cd8SNickeau
182437748cd8SNickeau		public function getRuleIndex() : int
182537748cd8SNickeau		{
182637748cd8SNickeau		    return PageSqlParser::RULE_orderByDef;
182737748cd8SNickeau	    }
182837748cd8SNickeau
182937748cd8SNickeau	    public function SqlName() : ?TerminalNode
183037748cd8SNickeau	    {
183137748cd8SNickeau	        return $this->getToken(PageSqlParser::SqlName, 0);
183237748cd8SNickeau	    }
183337748cd8SNickeau
183437748cd8SNickeau	    public function ASC() : ?TerminalNode
183537748cd8SNickeau	    {
183637748cd8SNickeau	        return $this->getToken(PageSqlParser::ASC, 0);
183737748cd8SNickeau	    }
183837748cd8SNickeau
183937748cd8SNickeau	    public function DESC() : ?TerminalNode
184037748cd8SNickeau	    {
184137748cd8SNickeau	        return $this->getToken(PageSqlParser::DESC, 0);
184237748cd8SNickeau	    }
184337748cd8SNickeau
184437748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
184537748cd8SNickeau		{
184637748cd8SNickeau			if ($listener instanceof PageSqlListener) {
184737748cd8SNickeau			    $listener->enterOrderByDef($this);
184837748cd8SNickeau		    }
184937748cd8SNickeau		}
185037748cd8SNickeau
185137748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
185237748cd8SNickeau		{
185337748cd8SNickeau			if ($listener instanceof PageSqlListener) {
185437748cd8SNickeau			    $listener->exitOrderByDef($this);
185537748cd8SNickeau		    }
185637748cd8SNickeau		}
185737748cd8SNickeau
185837748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
185937748cd8SNickeau		{
186037748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
186137748cd8SNickeau			    return $visitor->visitOrderByDef($this);
186237748cd8SNickeau		    }
186337748cd8SNickeau
186437748cd8SNickeau			return $visitor->visitChildren($this);
186537748cd8SNickeau		}
186637748cd8SNickeau	}
186737748cd8SNickeau
186837748cd8SNickeau	class PageSqlContext 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_pageSql;
187837748cd8SNickeau	    }
187937748cd8SNickeau
188037748cd8SNickeau	    public function SELECT() : ?TerminalNode
188137748cd8SNickeau	    {
188237748cd8SNickeau	        return $this->getToken(PageSqlParser::SELECT, 0);
188337748cd8SNickeau	    }
188437748cd8SNickeau
188537748cd8SNickeau	    public function RANDOM() : ?TerminalNode
188637748cd8SNickeau	    {
188737748cd8SNickeau	        return $this->getToken(PageSqlParser::RANDOM, 0);
188837748cd8SNickeau	    }
188937748cd8SNickeau
1890*1fa8c418SNickeau	    public function STAR() : ?TerminalNode
1891*1fa8c418SNickeau	    {
1892*1fa8c418SNickeau	        return $this->getToken(PageSqlParser::STAR, 0);
1893*1fa8c418SNickeau	    }
1894*1fa8c418SNickeau
1895*1fa8c418SNickeau	    public function columns() : ?ColumnsContext
1896*1fa8c418SNickeau	    {
1897*1fa8c418SNickeau	    	return $this->getTypedRuleContext(ColumnsContext::class, 0);
1898*1fa8c418SNickeau	    }
1899*1fa8c418SNickeau
190037748cd8SNickeau	    public function tables() : ?TablesContext
190137748cd8SNickeau	    {
190237748cd8SNickeau	    	return $this->getTypedRuleContext(TablesContext::class, 0);
190337748cd8SNickeau	    }
190437748cd8SNickeau
190537748cd8SNickeau	    public function predicates() : ?PredicatesContext
190637748cd8SNickeau	    {
190737748cd8SNickeau	    	return $this->getTypedRuleContext(PredicatesContext::class, 0);
190837748cd8SNickeau	    }
190937748cd8SNickeau
191037748cd8SNickeau	    public function orderBys() : ?OrderBysContext
191137748cd8SNickeau	    {
191237748cd8SNickeau	    	return $this->getTypedRuleContext(OrderBysContext::class, 0);
191337748cd8SNickeau	    }
191437748cd8SNickeau
191537748cd8SNickeau	    public function limit() : ?LimitContext
191637748cd8SNickeau	    {
191737748cd8SNickeau	    	return $this->getTypedRuleContext(LimitContext::class, 0);
191837748cd8SNickeau	    }
191937748cd8SNickeau
192037748cd8SNickeau		public function enterRule(ParseTreeListener $listener) : void
192137748cd8SNickeau		{
192237748cd8SNickeau			if ($listener instanceof PageSqlListener) {
192337748cd8SNickeau			    $listener->enterPageSql($this);
192437748cd8SNickeau		    }
192537748cd8SNickeau		}
192637748cd8SNickeau
192737748cd8SNickeau		public function exitRule(ParseTreeListener $listener) : void
192837748cd8SNickeau		{
192937748cd8SNickeau			if ($listener instanceof PageSqlListener) {
193037748cd8SNickeau			    $listener->exitPageSql($this);
193137748cd8SNickeau		    }
193237748cd8SNickeau		}
193337748cd8SNickeau
193437748cd8SNickeau		public function accept(ParseTreeVisitor $visitor)
193537748cd8SNickeau		{
193637748cd8SNickeau			if ($visitor instanceof PageSqlVisitor) {
193737748cd8SNickeau			    return $visitor->visitPageSql($this);
193837748cd8SNickeau		    }
193937748cd8SNickeau
194037748cd8SNickeau			return $visitor->visitChildren($this);
194137748cd8SNickeau		}
194237748cd8SNickeau	}
194337748cd8SNickeau}