PageRenderTime 54ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/external_lib/Smarty/sysplugins/smarty_internal_templatelexer.php

https://github.com/modulargaming/kittokittokitto
PHP | 1400 lines | 1389 code | 0 blank | 11 comment | 5 complexity | c75a9b6f1b70961aa1214fdc91bdc05e MD5 | raw file
  1. <?php
  2. /**
  3. * Smarty Internal Plugin Templatelexer
  4. *
  5. * This is the lexer to break the template source into tokens
  6. * @package Smarty
  7. * @subpackage Compiler
  8. * @author Uwe Tews
  9. */
  10. /**
  11. * Smarty Internal Plugin Templatelexer
  12. */
  13. class Smarty_Internal_Templatelexer
  14. {
  15. public $data;
  16. public $counter;
  17. public $token;
  18. public $value;
  19. public $node;
  20. public $line;
  21. public $state = 1;
  22. public $smarty_token_names = array ( // Text for parser error messages
  23. 'IDENTITY' => '===',
  24. 'NONEIDENTITY' => '!==',
  25. 'EQUALS' => '==',
  26. 'NOTEQUALS' => '!=',
  27. 'GREATEREQUAL' => '(>=,ge)',
  28. 'LESSEQUAL' => '(<=,le)',
  29. 'GREATERTHAN' => '(>,gt)',
  30. 'LESSTHAN' => '(<,lt)',
  31. 'MOD' => '(%,mod)',
  32. 'NOT' => '(!,not)',
  33. 'LAND' => '(&&,and)',
  34. 'LOR' => '(||,or)',
  35. 'LXOR' => 'xor',
  36. 'OPENP' => '(',
  37. 'CLOSEP' => ')',
  38. 'OPENB' => '[',
  39. 'CLOSEB' => ']',
  40. 'PTR' => '->',
  41. 'APTR' => '=>',
  42. 'EQUAL' => '=',
  43. 'NUMBER' => 'number',
  44. 'UNIMATH' => '+" , "-',
  45. 'MATH' => '*" , "/" , "%',
  46. 'INCDEC' => '++" , "--',
  47. 'SPACE' => ' ',
  48. 'DOLLAR' => '$',
  49. 'SEMICOLON' => ';',
  50. 'COLON' => ':',
  51. 'DOUBLECOLON' => '::',
  52. 'AT' => '@',
  53. 'HATCH' => '#',
  54. 'QUOTE' => '"',
  55. 'SINGLEQUOTE' => "'",
  56. 'BACKTICK' => '`',
  57. 'VERT' => '|',
  58. 'DOT' => '.',
  59. 'COMMA' => '","',
  60. 'ANDSYM' => '"&"',
  61. 'QMARK' => '"?"',
  62. 'ID' => 'identifier',
  63. 'OTHER' => 'text',
  64. 'PHP' => 'PHP code',
  65. 'LDELSLASH' => 'closing tag',
  66. 'COMMENT' => 'comment',
  67. 'LITERALEND' => 'literal close',
  68. 'AS' => 'as',
  69. 'NULL' => 'null',
  70. 'BOOLEAN' => 'boolean'
  71. );
  72. function __construct($data,$smarty)
  73. {
  74. // set instance object
  75. self::instance($this);
  76. $this->data = preg_replace("/(\r\n|\r|\n)/", "\n", $data);
  77. $this->counter = 0;
  78. $this->line = 1;
  79. $this->smarty = $smarty;
  80. $this->ldel = preg_quote($this->smarty->left_delimiter,'/');
  81. $this->rdel = preg_quote($this->smarty->right_delimiter,'/');
  82. $this->smarty_token_names['LDEL'] = $this->smarty->left_delimiter;
  83. $this->smarty_token_names['RDEL'] = $this->smarty->right_delimiter;
  84. }
  85. public static function &instance($new_instance = null)
  86. {
  87. static $instance = null;
  88. if (isset($new_instance) && is_object($new_instance))
  89. $instance = $new_instance;
  90. return $instance;
  91. }
  92. private $_yy_state = 1;
  93. private $_yy_stack = array();
  94. function yylex()
  95. {
  96. return $this->{'yylex' . $this->_yy_state}();
  97. }
  98. function yypushstate($state)
  99. {
  100. array_push($this->_yy_stack, $this->_yy_state);
  101. $this->_yy_state = $state;
  102. }
  103. function yypopstate()
  104. {
  105. $this->_yy_state = array_pop($this->_yy_stack);
  106. }
  107. function yybegin($state)
  108. {
  109. $this->_yy_state = $state;
  110. }
  111. function yylex1()
  112. {
  113. $tokenMap = array (
  114. 1 => 0,
  115. 2 => 1,
  116. 4 => 0,
  117. 5 => 0,
  118. 6 => 0,
  119. 7 => 0,
  120. 8 => 0,
  121. 9 => 0,
  122. 10 => 0,
  123. 11 => 0,
  124. 12 => 0,
  125. 13 => 2,
  126. 16 => 0,
  127. );
  128. if ($this->counter >= strlen($this->data)) {
  129. return false; // end of input
  130. }
  131. $yy_global_pattern = "/^(\\{\\})|^(".$this->ldel."\\*([\S\s]*?)\\*".$this->rdel.")|^(<\\?xml)|^(<\\?php)|^(<\\?=)|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)(".$this->ldel."|<\\?))|^([\S\s]+)/";
  132. do {
  133. if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
  134. $yysubmatches = $yymatches;
  135. $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
  136. if (!count($yymatches)) {
  137. throw new Exception('Error: lexing failed because a rule matched' .
  138. 'an empty string. Input "' . substr($this->data,
  139. $this->counter, 5) . '... state TEXT');
  140. }
  141. next($yymatches); // skip global match
  142. $this->token = key($yymatches); // token number
  143. if ($tokenMap[$this->token]) {
  144. // extract sub-patterns for passing to lex function
  145. $yysubmatches = array_slice($yysubmatches, $this->token + 1,
  146. $tokenMap[$this->token]);
  147. } else {
  148. $yysubmatches = array();
  149. }
  150. $this->value = current($yymatches); // token value
  151. $r = $this->{'yy_r1_' . $this->token}($yysubmatches);
  152. if ($r === null) {
  153. $this->counter += strlen($this->value);
  154. $this->line += substr_count($this->value, "\n");
  155. // accept this token
  156. return true;
  157. } elseif ($r === true) {
  158. // we have changed state
  159. // process this token in the new state
  160. return $this->yylex();
  161. } elseif ($r === false) {
  162. $this->counter += strlen($this->value);
  163. $this->line += substr_count($this->value, "\n");
  164. if ($this->counter >= strlen($this->data)) {
  165. return false; // end of input
  166. }
  167. // skip this token
  168. continue;
  169. } else { $yy_yymore_patterns = array(
  170. 1 => array(0, "^(".$this->ldel."\\*([\S\s]*?)\\*".$this->rdel.")|^(<\\?xml)|^(<\\?php)|^(<\\?=)|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)(".$this->ldel."|<\\?))|^([\S\s]+)"),
  171. 2 => array(1, "^(<\\?xml)|^(<\\?php)|^(<\\?=)|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)(".$this->ldel."|<\\?))|^([\S\s]+)"),
  172. 4 => array(1, "^(<\\?php)|^(<\\?=)|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)(".$this->ldel."|<\\?))|^([\S\s]+)"),
  173. 5 => array(1, "^(<\\?=)|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)(".$this->ldel."|<\\?))|^([\S\s]+)"),
  174. 6 => array(1, "^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)(".$this->ldel."|<\\?))|^([\S\s]+)"),
  175. 7 => array(1, "^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)(".$this->ldel."|<\\?))|^([\S\s]+)"),
  176. 8 => array(1, "^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)(".$this->ldel."|<\\?))|^([\S\s]+)"),
  177. 9 => array(1, "^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)(".$this->ldel."|<\\?))|^([\S\s]+)"),
  178. 10 => array(1, "^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)(".$this->ldel."|<\\?))|^([\S\s]+)"),
  179. 11 => array(1, "^(".$this->ldel.")|^(([\S\s]*?)(".$this->ldel."|<\\?))|^([\S\s]+)"),
  180. 12 => array(1, "^(([\S\s]*?)(".$this->ldel."|<\\?))|^([\S\s]+)"),
  181. 13 => array(3, "^([\S\s]+)"),
  182. 16 => array(3, ""),
  183. );
  184. // yymore is needed
  185. do {
  186. if (!strlen($yy_yymore_patterns[$this->token][1])) {
  187. throw new Exception('cannot do yymore for the last token');
  188. }
  189. $yysubmatches = array();
  190. if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
  191. substr($this->data, $this->counter), $yymatches)) {
  192. $yysubmatches = $yymatches;
  193. $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
  194. next($yymatches); // skip global match
  195. $this->token += key($yymatches) + $yy_yymore_patterns[$this->token][0]; // token number
  196. $this->value = current($yymatches); // token value
  197. $this->line = substr_count($this->value, "\n");
  198. if ($tokenMap[$this->token]) {
  199. // extract sub-patterns for passing to lex function
  200. $yysubmatches = array_slice($yysubmatches, $this->token + 1,
  201. $tokenMap[$this->token]);
  202. } else {
  203. $yysubmatches = array();
  204. }
  205. }
  206. $r = $this->{'yy_r1_' . $this->token}($yysubmatches);
  207. } while ($r !== null && !is_bool($r));
  208. if ($r === true) {
  209. // we have changed state
  210. // process this token in the new state
  211. return $this->yylex();
  212. } elseif ($r === false) {
  213. $this->counter += strlen($this->value);
  214. $this->line += substr_count($this->value, "\n");
  215. if ($this->counter >= strlen($this->data)) {
  216. return false; // end of input
  217. }
  218. // skip this token
  219. continue;
  220. } else {
  221. // accept
  222. $this->counter += strlen($this->value);
  223. $this->line += substr_count($this->value, "\n");
  224. return true;
  225. }
  226. }
  227. } else {
  228. throw new Exception('Unexpected input at line' . $this->line .
  229. ': ' . $this->data[$this->counter]);
  230. }
  231. break;
  232. } while (true);
  233. } // end function
  234. const TEXT = 1;
  235. function yy_r1_1($yy_subpatterns)
  236. {
  237. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  238. }
  239. function yy_r1_2($yy_subpatterns)
  240. {
  241. $this->token = Smarty_Internal_Templateparser::TP_COMMENT;
  242. }
  243. function yy_r1_4($yy_subpatterns)
  244. {
  245. $this->token = Smarty_Internal_Templateparser::TP_XML;
  246. $this->yypushstate(self::PHP);
  247. }
  248. function yy_r1_5($yy_subpatterns)
  249. {
  250. $this->token = Smarty_Internal_Templateparser::TP_PHP;
  251. $this->yypushstate(self::PHP);
  252. }
  253. function yy_r1_6($yy_subpatterns)
  254. {
  255. $this->token = Smarty_Internal_Templateparser::TP_SHORTTAGSTART;
  256. $this->yypushstate(self::PHP);
  257. }
  258. function yy_r1_7($yy_subpatterns)
  259. {
  260. $this->yypushstate(self::LITERAL);
  261. return true;
  262. }
  263. function yy_r1_8($yy_subpatterns)
  264. {
  265. return false; // unexspected here just ignore
  266. }
  267. function yy_r1_9($yy_subpatterns)
  268. {
  269. if ($this->smarty->auto_literal) {
  270. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  271. } else {
  272. $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
  273. $this->yypushstate(self::SMARTY);
  274. }
  275. }
  276. function yy_r1_10($yy_subpatterns)
  277. {
  278. if ($this->smarty->auto_literal) {
  279. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  280. } else {
  281. $this->token = Smarty_Internal_Templateparser::TP_LDEL;
  282. $this->yypushstate(self::SMARTY);
  283. }
  284. }
  285. function yy_r1_11($yy_subpatterns)
  286. {
  287. $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
  288. $this->yypushstate(self::SMARTY);
  289. }
  290. function yy_r1_12($yy_subpatterns)
  291. {
  292. $this->token = Smarty_Internal_Templateparser::TP_LDEL;
  293. $this->yypushstate(self::SMARTY);
  294. }
  295. function yy_r1_13($yy_subpatterns)
  296. {
  297. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  298. if (substr($this->value,-2) == '<?') {
  299. $this->value = substr($this->value,0,-2);
  300. } else {
  301. $this->value = substr($this->value,0,-strlen($this->smarty->left_delimiter));
  302. }
  303. if (strlen($this->value) == 0) {
  304. return true; // rescan
  305. }
  306. }
  307. function yy_r1_16($yy_subpatterns)
  308. {
  309. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  310. }
  311. function yylex2()
  312. {
  313. $tokenMap = array (
  314. 1 => 1,
  315. 3 => 1,
  316. 5 => 0,
  317. 6 => 0,
  318. 7 => 0,
  319. 8 => 0,
  320. 9 => 0,
  321. 10 => 0,
  322. 11 => 0,
  323. 12 => 0,
  324. 13 => 0,
  325. 14 => 1,
  326. 16 => 0,
  327. 17 => 0,
  328. 18 => 0,
  329. 19 => 0,
  330. 20 => 0,
  331. 21 => 1,
  332. 23 => 1,
  333. 25 => 1,
  334. 27 => 1,
  335. 29 => 1,
  336. 31 => 1,
  337. 33 => 1,
  338. 35 => 1,
  339. 37 => 1,
  340. 39 => 1,
  341. 41 => 1,
  342. 43 => 0,
  343. 44 => 0,
  344. 45 => 0,
  345. 46 => 0,
  346. 47 => 0,
  347. 48 => 0,
  348. 49 => 0,
  349. 50 => 0,
  350. 51 => 0,
  351. 52 => 0,
  352. 53 => 3,
  353. 57 => 0,
  354. 58 => 0,
  355. 59 => 0,
  356. 60 => 0,
  357. 61 => 0,
  358. 62 => 0,
  359. 63 => 0,
  360. 64 => 0,
  361. 65 => 1,
  362. 67 => 1,
  363. 69 => 1,
  364. 71 => 0,
  365. 72 => 0,
  366. 73 => 0,
  367. 74 => 0,
  368. 75 => 0,
  369. 76 => 0,
  370. 77 => 0,
  371. 78 => 0,
  372. 79 => 0,
  373. 80 => 0,
  374. 81 => 0,
  375. 82 => 0,
  376. 83 => 0,
  377. 84 => 0,
  378. 85 => 0,
  379. 86 => 0,
  380. );
  381. if ($this->counter >= strlen($this->data)) {
  382. return false; // end of input
  383. }
  384. $yy_global_pattern = "/^((\\\\\"|\\\\'))|^(''|'([\S\s]*?)[^\\\\]')|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)/";
  385. do {
  386. if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
  387. $yysubmatches = $yymatches;
  388. $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
  389. if (!count($yymatches)) {
  390. throw new Exception('Error: lexing failed because a rule matched' .
  391. 'an empty string. Input "' . substr($this->data,
  392. $this->counter, 5) . '... state SMARTY');
  393. }
  394. next($yymatches); // skip global match
  395. $this->token = key($yymatches); // token number
  396. if ($tokenMap[$this->token]) {
  397. // extract sub-patterns for passing to lex function
  398. $yysubmatches = array_slice($yysubmatches, $this->token + 1,
  399. $tokenMap[$this->token]);
  400. } else {
  401. $yysubmatches = array();
  402. }
  403. $this->value = current($yymatches); // token value
  404. $r = $this->{'yy_r2_' . $this->token}($yysubmatches);
  405. if ($r === null) {
  406. $this->counter += strlen($this->value);
  407. $this->line += substr_count($this->value, "\n");
  408. // accept this token
  409. return true;
  410. } elseif ($r === true) {
  411. // we have changed state
  412. // process this token in the new state
  413. return $this->yylex();
  414. } elseif ($r === false) {
  415. $this->counter += strlen($this->value);
  416. $this->line += substr_count($this->value, "\n");
  417. if ($this->counter >= strlen($this->data)) {
  418. return false; // end of input
  419. }
  420. // skip this token
  421. continue;
  422. } else { $yy_yymore_patterns = array(
  423. 1 => array(0, "^(''|'([\S\s]*?)[^\\\\]')|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  424. 3 => array(1, "^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  425. 5 => array(1, "^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  426. 6 => array(1, "^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  427. 7 => array(1, "^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  428. 8 => array(1, "^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  429. 9 => array(1, "^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  430. 10 => array(1, "^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  431. 11 => array(1, "^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  432. 12 => array(1, "^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  433. 13 => array(1, "^(\\s+(AS|as)\\s+)|^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  434. 14 => array(2, "^(\\s+instanceof\\s+)|^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  435. 16 => array(2, "^(true|false)|^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  436. 17 => array(2, "^(null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  437. 18 => array(2, "^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  438. 19 => array(2, "^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  439. 20 => array(2, "^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  440. 21 => array(3, "^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  441. 23 => array(4, "^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  442. 25 => array(5, "^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  443. 27 => array(6, "^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  444. 29 => array(7, "^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  445. 31 => array(8, "^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  446. 33 => array(9, "^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  447. 35 => array(10, "^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  448. 37 => array(11, "^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  449. 39 => array(12, "^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  450. 41 => array(13, "^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  451. 43 => array(13, "^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  452. 44 => array(13, "^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  453. 45 => array(13, "^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  454. 46 => array(13, "^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  455. 47 => array(13, "^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  456. 48 => array(13, "^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  457. 49 => array(13, "^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  458. 50 => array(13, "^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  459. 51 => array(13, "^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  460. 52 => array(13, "^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  461. 53 => array(16, "^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  462. 57 => array(16, "^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  463. 58 => array(16, "^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  464. 59 => array(16, "^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  465. 60 => array(16, "^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  466. 61 => array(16, "^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  467. 62 => array(16, "^(\\s*=\\s*)|^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  468. 63 => array(16, "^(\\d+)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  469. 64 => array(16, "^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  470. 65 => array(17, "^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  471. 67 => array(18, "^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  472. 69 => array(19, "^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  473. 71 => array(19, "^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  474. 72 => array(19, "^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  475. 73 => array(19, "^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  476. 74 => array(19, "^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  477. 75 => array(19, "^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  478. 76 => array(19, "^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  479. 77 => array(19, "^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  480. 78 => array(19, "^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  481. 79 => array(19, "^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  482. 80 => array(19, "^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  483. 81 => array(19, "^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  484. 82 => array(19, "^(\\s*\\?\\s*)|^(\\w+)|^(\\s+)|^(.)"),
  485. 83 => array(19, "^(\\w+)|^(\\s+)|^(.)"),
  486. 84 => array(19, "^(\\s+)|^(.)"),
  487. 85 => array(19, "^(.)"),
  488. 86 => array(19, ""),
  489. );
  490. // yymore is needed
  491. do {
  492. if (!strlen($yy_yymore_patterns[$this->token][1])) {
  493. throw new Exception('cannot do yymore for the last token');
  494. }
  495. $yysubmatches = array();
  496. if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
  497. substr($this->data, $this->counter), $yymatches)) {
  498. $yysubmatches = $yymatches;
  499. $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
  500. next($yymatches); // skip global match
  501. $this->token += key($yymatches) + $yy_yymore_patterns[$this->token][0]; // token number
  502. $this->value = current($yymatches); // token value
  503. $this->line = substr_count($this->value, "\n");
  504. if ($tokenMap[$this->token]) {
  505. // extract sub-patterns for passing to lex function
  506. $yysubmatches = array_slice($yysubmatches, $this->token + 1,
  507. $tokenMap[$this->token]);
  508. } else {
  509. $yysubmatches = array();
  510. }
  511. }
  512. $r = $this->{'yy_r2_' . $this->token}($yysubmatches);
  513. } while ($r !== null && !is_bool($r));
  514. if ($r === true) {
  515. // we have changed state
  516. // process this token in the new state
  517. return $this->yylex();
  518. } elseif ($r === false) {
  519. $this->counter += strlen($this->value);
  520. $this->line += substr_count($this->value, "\n");
  521. if ($this->counter >= strlen($this->data)) {
  522. return false; // end of input
  523. }
  524. // skip this token
  525. continue;
  526. } else {
  527. // accept
  528. $this->counter += strlen($this->value);
  529. $this->line += substr_count($this->value, "\n");
  530. return true;
  531. }
  532. }
  533. } else {
  534. throw new Exception('Unexpected input at line' . $this->line .
  535. ': ' . $this->data[$this->counter]);
  536. }
  537. break;
  538. } while (true);
  539. } // end function
  540. const SMARTY = 2;
  541. function yy_r2_1($yy_subpatterns)
  542. {
  543. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  544. }
  545. function yy_r2_3($yy_subpatterns)
  546. {
  547. $this->token = Smarty_Internal_Templateparser::TP_SINGLEQUOTESTRING;
  548. }
  549. function yy_r2_5($yy_subpatterns)
  550. {
  551. $this->yypushstate(self::LITERAL);
  552. return true;
  553. }
  554. function yy_r2_6($yy_subpatterns)
  555. {
  556. return false; // unexspected here just ignore
  557. }
  558. function yy_r2_7($yy_subpatterns)
  559. {
  560. if ($this->smarty->auto_literal) {
  561. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  562. } else {
  563. $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
  564. $this->yypushstate(self::SMARTY);
  565. }
  566. }
  567. function yy_r2_8($yy_subpatterns)
  568. {
  569. if ($this->smarty->auto_literal) {
  570. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  571. } else {
  572. $this->token = Smarty_Internal_Templateparser::TP_LDEL;
  573. $this->yypushstate(self::SMARTY);
  574. }
  575. }
  576. function yy_r2_9($yy_subpatterns)
  577. {
  578. if ($this->smarty->auto_literal) {
  579. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  580. } else {
  581. $this->token = Smarty_Internal_Templateparser::TP_RDEL;
  582. $this->yypopstate();
  583. }
  584. }
  585. function yy_r2_10($yy_subpatterns)
  586. {
  587. $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
  588. $this->yypushstate(self::SMARTY);
  589. }
  590. function yy_r2_11($yy_subpatterns)
  591. {
  592. $this->token = Smarty_Internal_Templateparser::TP_LDEL;
  593. $this->yypushstate(self::SMARTY);
  594. }
  595. function yy_r2_12($yy_subpatterns)
  596. {
  597. $this->token = Smarty_Internal_Templateparser::TP_RDEL;
  598. $this->yypopstate();
  599. }
  600. function yy_r2_13($yy_subpatterns)
  601. {
  602. $this->token = Smarty_Internal_Templateparser::TP_ISIN;
  603. }
  604. function yy_r2_14($yy_subpatterns)
  605. {
  606. $this->token = Smarty_Internal_Templateparser::TP_AS;
  607. }
  608. function yy_r2_16($yy_subpatterns)
  609. {
  610. $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF;
  611. }
  612. function yy_r2_17($yy_subpatterns)
  613. {
  614. $this->token = Smarty_Internal_Templateparser::TP_BOOLEAN;
  615. }
  616. function yy_r2_18($yy_subpatterns)
  617. {
  618. $this->token = Smarty_Internal_Templateparser::TP_NULL;
  619. }
  620. function yy_r2_19($yy_subpatterns)
  621. {
  622. $this->token = Smarty_Internal_Templateparser::TP_IDENTITY;
  623. }
  624. function yy_r2_20($yy_subpatterns)
  625. {
  626. $this->token = Smarty_Internal_Templateparser::TP_NONEIDENTITY;
  627. }
  628. function yy_r2_21($yy_subpatterns)
  629. {
  630. $this->token = Smarty_Internal_Templateparser::TP_EQUALS;
  631. }
  632. function yy_r2_23($yy_subpatterns)
  633. {
  634. $this->token = Smarty_Internal_Templateparser::TP_NOTEQUALS;
  635. }
  636. function yy_r2_25($yy_subpatterns)
  637. {
  638. $this->token = Smarty_Internal_Templateparser::TP_GREATEREQUAL;
  639. }
  640. function yy_r2_27($yy_subpatterns)
  641. {
  642. $this->token = Smarty_Internal_Templateparser::TP_LESSEQUAL;
  643. }
  644. function yy_r2_29($yy_subpatterns)
  645. {
  646. $this->token = Smarty_Internal_Templateparser::TP_GREATERTHAN;
  647. }
  648. function yy_r2_31($yy_subpatterns)
  649. {
  650. $this->token = Smarty_Internal_Templateparser::TP_LESSTHAN;
  651. }
  652. function yy_r2_33($yy_subpatterns)
  653. {
  654. $this->token = Smarty_Internal_Templateparser::TP_MOD;
  655. }
  656. function yy_r2_35($yy_subpatterns)
  657. {
  658. $this->token = Smarty_Internal_Templateparser::TP_NOT;
  659. }
  660. function yy_r2_37($yy_subpatterns)
  661. {
  662. $this->token = Smarty_Internal_Templateparser::TP_LAND;
  663. }
  664. function yy_r2_39($yy_subpatterns)
  665. {
  666. $this->token = Smarty_Internal_Templateparser::TP_LOR;
  667. }
  668. function yy_r2_41($yy_subpatterns)
  669. {
  670. $this->token = Smarty_Internal_Templateparser::TP_LXOR;
  671. }
  672. function yy_r2_43($yy_subpatterns)
  673. {
  674. $this->token = Smarty_Internal_Templateparser::TP_ISODDBY;
  675. }
  676. function yy_r2_44($yy_subpatterns)
  677. {
  678. $this->token = Smarty_Internal_Templateparser::TP_ISNOTODDBY;
  679. }
  680. function yy_r2_45($yy_subpatterns)
  681. {
  682. $this->token = Smarty_Internal_Templateparser::TP_ISODD;
  683. }
  684. function yy_r2_46($yy_subpatterns)
  685. {
  686. $this->token = Smarty_Internal_Templateparser::TP_ISNOTODD;
  687. }
  688. function yy_r2_47($yy_subpatterns)
  689. {
  690. $this->token = Smarty_Internal_Templateparser::TP_ISEVENBY;
  691. }
  692. function yy_r2_48($yy_subpatterns)
  693. {
  694. $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVENBY;
  695. }
  696. function yy_r2_49($yy_subpatterns)
  697. {
  698. $this->token = Smarty_Internal_Templateparser::TP_ISEVEN;
  699. }
  700. function yy_r2_50($yy_subpatterns)
  701. {
  702. $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVEN;
  703. }
  704. function yy_r2_51($yy_subpatterns)
  705. {
  706. $this->token = Smarty_Internal_Templateparser::TP_ISDIVBY;
  707. }
  708. function yy_r2_52($yy_subpatterns)
  709. {
  710. $this->token = Smarty_Internal_Templateparser::TP_ISNOTDIVBY;
  711. }
  712. function yy_r2_53($yy_subpatterns)
  713. {
  714. $this->token = Smarty_Internal_Templateparser::TP_TYPECAST;
  715. }
  716. function yy_r2_57($yy_subpatterns)
  717. {
  718. $this->token = Smarty_Internal_Templateparser::TP_OPENP;
  719. }
  720. function yy_r2_58($yy_subpatterns)
  721. {
  722. $this->token = Smarty_Internal_Templateparser::TP_CLOSEP;
  723. }
  724. function yy_r2_59($yy_subpatterns)
  725. {
  726. $this->token = Smarty_Internal_Templateparser::TP_OPENB;
  727. }
  728. function yy_r2_60($yy_subpatterns)
  729. {
  730. $this->token = Smarty_Internal_Templateparser::TP_CLOSEB;
  731. }
  732. function yy_r2_61($yy_subpatterns)
  733. {
  734. $this->token = Smarty_Internal_Templateparser::TP_PTR;
  735. }
  736. function yy_r2_62($yy_subpatterns)
  737. {
  738. $this->token = Smarty_Internal_Templateparser::TP_APTR;
  739. }
  740. function yy_r2_63($yy_subpatterns)
  741. {
  742. $this->token = Smarty_Internal_Templateparser::TP_EQUAL;
  743. }
  744. function yy_r2_64($yy_subpatterns)
  745. {
  746. $this->token = Smarty_Internal_Templateparser::TP_INTEGER;
  747. }
  748. function yy_r2_65($yy_subpatterns)
  749. {
  750. $this->token = Smarty_Internal_Templateparser::TP_INCDEC;
  751. }
  752. function yy_r2_67($yy_subpatterns)
  753. {
  754. $this->token = Smarty_Internal_Templateparser::TP_UNIMATH;
  755. }
  756. function yy_r2_69($yy_subpatterns)
  757. {
  758. $this->token = Smarty_Internal_Templateparser::TP_MATH;
  759. }
  760. function yy_r2_71($yy_subpatterns)
  761. {
  762. $this->token = Smarty_Internal_Templateparser::TP_DOLLAR;
  763. }
  764. function yy_r2_72($yy_subpatterns)
  765. {
  766. $this->token = Smarty_Internal_Templateparser::TP_SEMICOLON;
  767. }
  768. function yy_r2_73($yy_subpatterns)
  769. {
  770. $this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON;
  771. }
  772. function yy_r2_74($yy_subpatterns)
  773. {
  774. $this->token = Smarty_Internal_Templateparser::TP_COLON;
  775. }
  776. function yy_r2_75($yy_subpatterns)
  777. {
  778. $this->token = Smarty_Internal_Templateparser::TP_AT;
  779. }
  780. function yy_r2_76($yy_subpatterns)
  781. {
  782. $this->token = Smarty_Internal_Templateparser::TP_HATCH;
  783. }
  784. function yy_r2_77($yy_subpatterns)
  785. {
  786. $this->token = Smarty_Internal_Templateparser::TP_QUOTE;
  787. $this->yypushstate(self::DOUBLEQUOTEDSTRING);
  788. }
  789. function yy_r2_78($yy_subpatterns)
  790. {
  791. $this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
  792. $this->yypopstate();
  793. }
  794. function yy_r2_79($yy_subpatterns)
  795. {
  796. $this->token = Smarty_Internal_Templateparser::TP_VERT;
  797. }
  798. function yy_r2_80($yy_subpatterns)
  799. {
  800. $this->token = Smarty_Internal_Templateparser::TP_DOT;
  801. }
  802. function yy_r2_81($yy_subpatterns)
  803. {
  804. $this->token = Smarty_Internal_Templateparser::TP_COMMA;
  805. }
  806. function yy_r2_82($yy_subpatterns)
  807. {
  808. $this->token = Smarty_Internal_Templateparser::TP_ANDSYM;
  809. }
  810. function yy_r2_83($yy_subpatterns)
  811. {
  812. $this->token = Smarty_Internal_Templateparser::TP_QMARK;
  813. }
  814. function yy_r2_84($yy_subpatterns)
  815. {
  816. $this->token = Smarty_Internal_Templateparser::TP_ID;
  817. }
  818. function yy_r2_85($yy_subpatterns)
  819. {
  820. $this->token = Smarty_Internal_Templateparser::TP_SPACE;
  821. }
  822. function yy_r2_86($yy_subpatterns)
  823. {
  824. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  825. }
  826. function yylex3()
  827. {
  828. $tokenMap = array (
  829. 1 => 0,
  830. 2 => 1,
  831. 4 => 0,
  832. );
  833. if ($this->counter >= strlen($this->data)) {
  834. return false; // end of input
  835. }
  836. $yy_global_pattern = "/^(\\?>)|^(([\S\s]*?)\\?>)|^([\S\s]+)/";
  837. do {
  838. if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
  839. $yysubmatches = $yymatches;
  840. $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
  841. if (!count($yymatches)) {
  842. throw new Exception('Error: lexing failed because a rule matched' .
  843. 'an empty string. Input "' . substr($this->data,
  844. $this->counter, 5) . '... state PHP');
  845. }
  846. next($yymatches); // skip global match
  847. $this->token = key($yymatches); // token number
  848. if ($tokenMap[$this->token]) {
  849. // extract sub-patterns for passing to lex function
  850. $yysubmatches = array_slice($yysubmatches, $this->token + 1,
  851. $tokenMap[$this->token]);
  852. } else {
  853. $yysubmatches = array();
  854. }
  855. $this->value = current($yymatches); // token value
  856. $r = $this->{'yy_r3_' . $this->token}($yysubmatches);
  857. if ($r === null) {
  858. $this->counter += strlen($this->value);
  859. $this->line += substr_count($this->value, "\n");
  860. // accept this token
  861. return true;
  862. } elseif ($r === true) {
  863. // we have changed state
  864. // process this token in the new state
  865. return $this->yylex();
  866. } elseif ($r === false) {
  867. $this->counter += strlen($this->value);
  868. $this->line += substr_count($this->value, "\n");
  869. if ($this->counter >= strlen($this->data)) {
  870. return false; // end of input
  871. }
  872. // skip this token
  873. continue;
  874. } else { $yy_yymore_patterns = array(
  875. 1 => array(0, "^(([\S\s]*?)\\?>)|^([\S\s]+)"),
  876. 2 => array(1, "^([\S\s]+)"),
  877. 4 => array(1, ""),
  878. );
  879. // yymore is needed
  880. do {
  881. if (!strlen($yy_yymore_patterns[$this->token][1])) {
  882. throw new Exception('cannot do yymore for the last token');
  883. }
  884. $yysubmatches = array();
  885. if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
  886. substr($this->data, $this->counter), $yymatches)) {
  887. $yysubmatches = $yymatches;
  888. $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
  889. next($yymatches); // skip global match
  890. $this->token += key($yymatches) + $yy_yymore_patterns[$this->token][0]; // token number
  891. $this->value = current($yymatches); // token value
  892. $this->line = substr_count($this->value, "\n");
  893. if ($tokenMap[$this->token]) {
  894. // extract sub-patterns for passing to lex function
  895. $yysubmatches = array_slice($yysubmatches, $this->token + 1,
  896. $tokenMap[$this->token]);
  897. } else {
  898. $yysubmatches = array();
  899. }
  900. }
  901. $r = $this->{'yy_r3_' . $this->token}($yysubmatches);
  902. } while ($r !== null && !is_bool($r));
  903. if ($r === true) {
  904. // we have changed state
  905. // process this token in the new state
  906. return $this->yylex();
  907. } elseif ($r === false) {
  908. $this->counter += strlen($this->value);
  909. $this->line += substr_count($this->value, "\n");
  910. if ($this->counter >= strlen($this->data)) {
  911. return false; // end of input
  912. }
  913. // skip this token
  914. continue;
  915. } else {
  916. // accept
  917. $this->counter += strlen($this->value);
  918. $this->line += substr_count($this->value, "\n");
  919. return true;
  920. }
  921. }
  922. } else {
  923. throw new Exception('Unexpected input at line' . $this->line .
  924. ': ' . $this->data[$this->counter]);
  925. }
  926. break;
  927. } while (true);
  928. } // end function
  929. const PHP = 3;
  930. function yy_r3_1($yy_subpatterns)
  931. {
  932. $this->token = Smarty_Internal_Templateparser::TP_SHORTTAGEND;
  933. $this->yypopstate();
  934. }
  935. function yy_r3_2($yy_subpatterns)
  936. {
  937. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  938. $this->value = substr($this->value,0,-2);
  939. }
  940. function yy_r3_4($yy_subpatterns)
  941. {
  942. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  943. }
  944. function yylex4()
  945. {
  946. $tokenMap = array (
  947. 1 => 0,
  948. 2 => 0,
  949. 3 => 1,
  950. 5 => 0,
  951. );
  952. if ($this->counter >= strlen($this->data)) {
  953. return false; // end of input
  954. }
  955. $yy_global_pattern = "/^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(([\S\s]*?)".$this->ldel."\/literal".$this->rdel.")|^([\S\s]+)/";
  956. do {
  957. if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
  958. $yysubmatches = $yymatches;
  959. $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
  960. if (!count($yymatches)) {
  961. throw new Exception('Error: lexing failed because a rule matched' .
  962. 'an empty string. Input "' . substr($this->data,
  963. $this->counter, 5) . '... state LITERAL');
  964. }
  965. next($yymatches); // skip global match
  966. $this->token = key($yymatches); // token number
  967. if ($tokenMap[$this->token]) {
  968. // extract sub-patterns for passing to lex function
  969. $yysubmatches = array_slice($yysubmatches, $this->token + 1,
  970. $tokenMap[$this->token]);
  971. } else {
  972. $yysubmatches = array();
  973. }
  974. $this->value = current($yymatches); // token value
  975. $r = $this->{'yy_r4_' . $this->token}($yysubmatches);
  976. if ($r === null) {
  977. $this->counter += strlen($this->value);
  978. $this->line += substr_count($this->value, "\n");
  979. // accept this token
  980. return true;
  981. } elseif ($r === true) {
  982. // we have changed state
  983. // process this token in the new state
  984. return $this->yylex();
  985. } elseif ($r === false) {
  986. $this->counter += strlen($this->value);
  987. $this->line += substr_count($this->value, "\n");
  988. if ($this->counter >= strlen($this->data)) {
  989. return false; // end of input
  990. }
  991. // skip this token
  992. continue;
  993. } else { $yy_yymore_patterns = array(
  994. 1 => array(0, "^(".$this->ldel."\/literal".$this->rdel.")|^(([\S\s]*?)".$this->ldel."\/literal".$this->rdel.")|^([\S\s]+)"),
  995. 2 => array(0, "^(([\S\s]*?)".$this->ldel."\/literal".$this->rdel.")|^([\S\s]+)"),
  996. 3 => array(1, "^([\S\s]+)"),
  997. 5 => array(1, ""),
  998. );
  999. // yymore is needed
  1000. do {
  1001. if (!strlen($yy_yymore_patterns[$this->token][1])) {
  1002. throw new Exception('cannot do yymore for the last token');
  1003. }
  1004. $yysubmatches = array();
  1005. if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
  1006. substr($this->data, $this->counter), $yymatches)) {
  1007. $yysubmatches = $yymatches;
  1008. $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
  1009. next($yymatches); // skip global match
  1010. $this->token += key($yymatches) + $yy_yymore_patterns[$this->token][0]; // token number
  1011. $this->value = current($yymatches); // token value
  1012. $this->line = substr_count($this->value, "\n");
  1013. if ($tokenMap[$this->token]) {
  1014. // extract sub-patterns for passing to lex function
  1015. $yysubmatches = array_slice($yysubmatches, $this->token + 1,
  1016. $tokenMap[$this->token]);
  1017. } else {
  1018. $yysubmatches = array();
  1019. }
  1020. }
  1021. $r = $this->{'yy_r4_' . $this->token}($yysubmatches);
  1022. } while ($r !== null && !is_bool($r));
  1023. if ($r === true) {
  1024. // we have changed state
  1025. // process this token in the new state
  1026. return $this->yylex();
  1027. } elseif ($r === false) {
  1028. $this->counter += strlen($this->value);
  1029. $this->line += substr_count($this->value, "\n");
  1030. if ($this->counter >= strlen($this->data)) {
  1031. return false; // end of input
  1032. }
  1033. // skip this token
  1034. continue;
  1035. } else {
  1036. // accept
  1037. $this->counter += strlen($this->value);
  1038. $this->line += substr_count($this->value, "\n");
  1039. return true;
  1040. }
  1041. }
  1042. } else {
  1043. throw new Exception('Unexpected input at line' . $this->line .
  1044. ': ' . $this->data[$this->counter]);
  1045. }
  1046. break;
  1047. } while (true);
  1048. } // end function
  1049. const LITERAL = 4;
  1050. function yy_r4_1($yy_subpatterns)
  1051. {
  1052. return false;
  1053. }
  1054. function yy_r4_2($yy_subpatterns)
  1055. {
  1056. $this->yypopstate();
  1057. return false;
  1058. }
  1059. function yy_r4_3($yy_subpatterns)
  1060. {
  1061. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  1062. $this->value = substr($this->value,0,-strlen($this->smarty->left_delimiter)-strlen($this->smarty->right_delimiter)-8);
  1063. $this->yypopstate();
  1064. if (strlen($this->value) == 0) {
  1065. return false; // change state directly
  1066. } else {
  1067. return; // change state after processiing token
  1068. }
  1069. }
  1070. function yy_r4_5($yy_subpatterns)
  1071. {
  1072. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  1073. }
  1074. function yylex5()
  1075. {
  1076. $tokenMap = array (
  1077. 1 => 0,
  1078. 2 => 0,
  1079. 3 => 0,
  1080. 4 => 0,
  1081. 5 => 0,
  1082. 6 => 0,
  1083. 7 => 0,
  1084. 8 => 0,
  1085. 9 => 2,
  1086. 12 => 0,
  1087. );
  1088. if ($this->counter >= strlen($this->data)) {
  1089. return false; // end of input
  1090. }
  1091. $yy_global_pattern = "/^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(\")|^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(\\\\\\\\|[^\\\\]\"|".$this->ldel."|\\$|`\\$))|^([\S\s]+)/";
  1092. do {
  1093. if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
  1094. $yysubmatches = $yymatches;
  1095. $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
  1096. if (!count($yymatches)) {
  1097. throw new Exception('Error: lexing failed because a rule matched' .
  1098. 'an empty string. Input "' . substr($this->data,
  1099. $this->counter, 5) . '... state DOUBLEQUOTEDSTRING');
  1100. }
  1101. next($yymatches); // skip global match
  1102. $this->token = key($yymatches); // token number
  1103. if ($tokenMap[$this->token]) {
  1104. // extract sub-patterns for passing to lex function
  1105. $yysubmatches = array_slice($yysubmatches, $this->token + 1,
  1106. $tokenMap[$this->token]);
  1107. } else {
  1108. $yysubmatches = array();
  1109. }
  1110. $this->value = current($yymatches); // token value
  1111. $r = $this->{'yy_r5_' . $this->token}($yysubmatches);
  1112. if ($r === null) {
  1113. $this->counter += strlen($this->value);
  1114. $this->line += substr_count($this->value, "\n");
  1115. // accept this token
  1116. return true;
  1117. } elseif ($r === true) {
  1118. // we have changed state
  1119. // process this token in the new state
  1120. return $this->yylex();
  1121. } elseif ($r === false) {
  1122. $this->counter += strlen($this->value);
  1123. $this->line += substr_count($this->value, "\n");
  1124. if ($this->counter >= strlen($this->data)) {
  1125. return false; // end of input
  1126. }
  1127. // skip this token
  1128. continue;
  1129. } else { $yy_yymore_patterns = array(
  1130. 1 => array(0, "^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(\")|^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(\\\\\\\\|[^\\\\]\"|".$this->ldel."|\\$|`\\$))|^([\S\s]+)"),
  1131. 2 => array(0, "^(".$this->ldel."\/)|^(".$this->ldel.")|^(\")|^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(\\\\\\\\|[^\\\\]\"|".$this->ldel."|\\$|`\\$))|^([\S\s]+)"),
  1132. 3 => array(0, "^(".$this->ldel.")|^(\")|^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(\\\\\\\\|[^\\\\]\"|".$this->ldel."|\\$|`\\$))|^([\S\s]+)"),
  1133. 4 => array(0, "^(\")|^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(\\\\\\\\|[^\\\\]\"|".$this->ldel."|\\$|`\\$))|^([\S\s]+)"),
  1134. 5 => array(0, "^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(\\\\\\\\|[^\\\\]\"|".$this->ldel."|\\$|`\\$))|^([\S\s]+)"),
  1135. 6 => array(0, "^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(\\\\\\\\|[^\\\\]\"|".$this->ldel."|\\$|`\\$))|^([\S\s]+)"),
  1136. 7 => array(0, "^(\\$)|^(([\S\s]*?)(\\\\\\\\|[^\\\\]\"|".$this->ldel."|\\$|`\\$))|^([\S\s]+)"),
  1137. 8 => array(0, "^(([\S\s]*?)(\\\\\\\\|[^\\\\]\"|".$this->ldel."|\\$|`\\$))|^([\S\s]+)"),
  1138. 9 => array(2, "^([\S\s]+)"),
  1139. 12 => array(2, ""),
  1140. );
  1141. // yymore is needed
  1142. do {
  1143. if (!strlen($yy_yymore_patterns[$this->token][1])) {
  1144. throw new Exception('cannot do yymore for the last token');
  1145. }
  1146. $yysubmatches = array();
  1147. if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
  1148. substr($this->data, $this->counter), $yymatches)) {
  1149. $yysubmatches = $yymatches;
  1150. $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
  1151. next($yymatches); // skip global match
  1152. $this->token += key($yymatches) + $yy_yymore_patterns[$this->token][0]; // token number
  1153. $this->value = current($yymatches); // token value
  1154. $this->line = substr_count($this->value, "\n");
  1155. if ($tokenMap[$this->token]) {
  1156. // extract sub-patterns for passing to lex function
  1157. $yysubmatches = array_slice($yysubmatches, $this->token + 1,
  1158. $tokenMap[$this->token]);
  1159. } else {
  1160. $yysubmatches = array();
  1161. }
  1162. }
  1163. $r = $this->{'yy_r5_' . $this->token}($yysubmatches);
  1164. } while ($r !== null && !is_bool($r));
  1165. if ($r === true) {
  1166. // we have changed state
  1167. // process this token in the new state
  1168. return $this->yylex();
  1169. } elseif ($r === false) {
  1170. $this->counter += strlen($this->value);
  1171. $this->line += substr_count($this->value, "\n");
  1172. if ($this->counter >= strlen($this->data)) {
  1173. return false; // end of input
  1174. }
  1175. // skip this token
  1176. continue;
  1177. } else {
  1178. // accept
  1179. $this->counter += strlen($this->value);
  1180. $this->line += substr_count($this->value, "\n");
  1181. return true;
  1182. }
  1183. }
  1184. } else {
  1185. throw new Exception('Unexpected input at line' . $this->line .
  1186. ': ' . $this->data[$this->counter]);
  1187. }
  1188. break;
  1189. } while (true);
  1190. } // end function
  1191. const DOUBLEQUOTEDSTRING = 5;
  1192. function yy_r5_1($yy_subpatterns)
  1193. {
  1194. if ($this->smarty->auto_literal) {
  1195. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  1196. } else {
  1197. $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
  1198. $this->yypushstate(self::SMARTY);
  1199. }
  1200. }
  1201. function yy_r5_2($yy_subpatterns)
  1202. {
  1203. if ($this->smarty->auto_literal) {
  1204. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  1205. } else {
  1206. $this->token = Smarty_Internal_Templateparser::TP_LDEL;
  1207. $this->yypushstate(self::SMARTY);
  1208. }
  1209. }
  1210. function yy_r5_3($yy_subpatterns)
  1211. {
  1212. $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
  1213. $this->yypushstate(self::SMARTY);
  1214. }
  1215. function yy_r5_4($yy_subpatterns)
  1216. {
  1217. $this->token = Smarty_Internal_Templateparser::TP_LDEL;
  1218. $this->yypushstate(self::SMARTY);
  1219. }
  1220. function yy_r5_5($yy_subpatterns)
  1221. {
  1222. $this->token = Smarty_Internal_Templateparser::TP_QUOTE;
  1223. $this->yypopstate();
  1224. }
  1225. function yy_r5_6($yy_subpatterns)
  1226. {
  1227. $this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
  1228. $this->value = substr($this->value,0,-1);
  1229. $this->yypushstate(self::SMARTY);
  1230. }
  1231. function yy_r5_7($yy_subpatterns)
  1232. {
  1233. $this->token = Smarty_Internal_Templateparser::TP_DOLLARID;
  1234. }
  1235. function yy_r5_8($yy_subpatterns)
  1236. {
  1237. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  1238. }
  1239. function yy_r5_9($yy_subpatterns)
  1240. {
  1241. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  1242. if (substr($this->value,-strlen($this->smarty->left_delimiter)) == $this->smarty->left_delimiter) {
  1243. $this->value = substr($this->value,0,-strlen($this->smarty->left_delimiter));
  1244. } elseif (substr($this->value,-2) == '`$') {
  1245. $this->value = substr($this->value,0,-2);
  1246. } elseif (strpbrk(substr($this->value,-1),'"$') !== false) {
  1247. $this->value = substr($this->value,0,-1);
  1248. }
  1249. if (strlen($this->value) == 0) {
  1250. return true; // rescan
  1251. }
  1252. }
  1253. function yy_r5_12($yy_subpatterns)
  1254. {
  1255. $this->token = Smarty_Internal_Templateparser::TP_OTHER;
  1256. }
  1257. }
  1258. ?>