PageRenderTime 80ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 1ms

/core/model/smarty/sysplugins/smarty_internal_templateparser.php

http://github.com/modxcms/revolution
PHP | 3539 lines | 3057 code | 194 blank | 288 comment | 161 complexity | fb090ab6c119acfa7bcb6f6de249cf50 MD5 | raw file
Possible License(s): GPL-2.0, Apache-2.0, BSD-3-Clause, LGPL-2.1
  1. <?php
  2. class TP_yyStackEntry
  3. {
  4. public $stateno; /* The state-number */
  5. public $major; /* The major token value. This is the code
  6. * number for the token at this stack level
  7. */
  8. public $minor; /* The user-supplied minor token value. This
  9. * is the value of the token
  10. */
  11. }
  12. // line 11 "../smarty/lexer/smarty_internal_templateparser.y"
  13. /**
  14. * Smarty Template Parser Class
  15. *
  16. * This is the template parser.
  17. * It is generated from the smarty_internal_templateparser.y file
  18. *
  19. * @author Uwe Tews <uwe.tews@googlemail.com>
  20. */
  21. class Smarty_Internal_Templateparser
  22. {
  23. // line 23 "../smarty/lexer/smarty_internal_templateparser.y"
  24. const ERR1 = 'Security error: Call to private object member not allowed';
  25. const ERR2 = 'Security error: Call to dynamic object member not allowed';
  26. const ERR3 = 'PHP in template not allowed. Use SmartyBC to enable it';
  27. const TP_VERT = 1;
  28. const TP_COLON = 2;
  29. const TP_UNIMATH = 3;
  30. const TP_PHP = 4;
  31. const TP_TEXT = 5;
  32. const TP_STRIPON = 6;
  33. const TP_STRIPOFF = 7;
  34. const TP_LITERALSTART = 8;
  35. const TP_LITERALEND = 9;
  36. const TP_LITERAL = 10;
  37. const TP_SIMPELOUTPUT = 11;
  38. const TP_SIMPLETAG = 12;
  39. const TP_SMARTYBLOCKCHILDPARENT = 13;
  40. const TP_LDEL = 14;
  41. const TP_RDEL = 15;
  42. const TP_DOLLARID = 16;
  43. const TP_EQUAL = 17;
  44. const TP_ID = 18;
  45. const TP_PTR = 19;
  46. const TP_LDELMAKENOCACHE = 20;
  47. const TP_LDELIF = 21;
  48. const TP_LDELFOR = 22;
  49. const TP_SEMICOLON = 23;
  50. const TP_INCDEC = 24;
  51. const TP_TO = 25;
  52. const TP_STEP = 26;
  53. const TP_LDELFOREACH = 27;
  54. const TP_SPACE = 28;
  55. const TP_AS = 29;
  56. const TP_APTR = 30;
  57. const TP_LDELSETFILTER = 31;
  58. const TP_CLOSETAG = 32;
  59. const TP_LDELSLASH = 33;
  60. const TP_ATTR = 34;
  61. const TP_INTEGER = 35;
  62. const TP_COMMA = 36;
  63. const TP_OPENP = 37;
  64. const TP_CLOSEP = 38;
  65. const TP_MATH = 39;
  66. const TP_ISIN = 40;
  67. const TP_QMARK = 41;
  68. const TP_NOT = 42;
  69. const TP_TYPECAST = 43;
  70. const TP_HEX = 44;
  71. const TP_DOT = 45;
  72. const TP_INSTANCEOF = 46;
  73. const TP_SINGLEQUOTESTRING = 47;
  74. const TP_DOUBLECOLON = 48;
  75. const TP_NAMESPACE = 49;
  76. const TP_AT = 50;
  77. const TP_HATCH = 51;
  78. const TP_OPENB = 52;
  79. const TP_CLOSEB = 53;
  80. const TP_DOLLAR = 54;
  81. const TP_LOGOP = 55;
  82. const TP_SLOGOP = 56;
  83. const TP_TLOGOP = 57;
  84. const TP_SINGLECOND = 58;
  85. const TP_QUOTE = 59;
  86. const TP_BACKTICK = 60;
  87. const YY_NO_ACTION = 511;
  88. const YY_ACCEPT_ACTION = 510;
  89. const YY_ERROR_ACTION = 509;
  90. const YY_SZ_ACTTAB = 2076;
  91. const YY_SHIFT_USE_DFLT = -23;
  92. const YY_SHIFT_MAX = 227;
  93. const YY_REDUCE_USE_DFLT = -68;
  94. const YY_REDUCE_MAX = 176;
  95. const YYNOCODE = 108;
  96. const YYSTACKDEPTH = 500;
  97. const YYNSTATE = 323;
  98. const YYNRULE = 186;
  99. const YYERRORSYMBOL = 61;
  100. const YYERRSYMDT = 'yy0';
  101. const YYFALLBACK = 0;
  102. public static $yy_action = array(
  103. 42, 266, 267, 379, 115, 202, 27, 204, 260, 235,
  104. 237, 1, 17, 125, 94, 182, 379, 215, 10, 79,
  105. 317, 168, 379, 12, 107, 425, 308, 318, 224, 298,
  106. 218, 129, 189, 292, 21, 203, 425, 27, 11, 39,
  107. 38, 299, 219, 17, 213, 385, 191, 245, 77, 3,
  108. 303, 315, 42, 385, 160, 385, 75, 29, 385, 95,
  109. 260, 235, 237, 1, 385, 126, 385, 193, 385, 215,
  110. 10, 79, 80, 290, 145, 226, 107, 148, 172, 150,
  111. 224, 298, 218, 85, 217, 315, 21, 280, 101, 280,
  112. 141, 39, 38, 299, 219, 20, 287, 183, 191, 232,
  113. 77, 3, 42, 315, 16, 176, 316, 172, 75, 275,
  114. 260, 235, 237, 1, 167, 128, 236, 193, 319, 215,
  115. 10, 79, 345, 40, 14, 257, 107, 319, 345, 5,
  116. 224, 298, 218, 89, 217, 315, 30, 292, 172, 203,
  117. 74, 39, 38, 299, 219, 132, 287, 205, 191, 74,
  118. 77, 3, 42, 315, 210, 194, 310, 99, 75, 345,
  119. 260, 235, 237, 1, 425, 126, 87, 179, 319, 215,
  120. 10, 79, 345, 95, 195, 425, 107, 272, 345, 176,
  121. 224, 298, 218, 315, 199, 115, 21, 128, 278, 209,
  122. 74, 39, 38, 299, 219, 94, 287, 226, 191, 129,
  123. 77, 3, 42, 315, 277, 309, 11, 308, 75, 13,
  124. 260, 235, 237, 1, 163, 127, 425, 193, 319, 215,
  125. 10, 79, 77, 254, 19, 315, 107, 425, 137, 34,
  126. 224, 298, 218, 196, 217, 33, 21, 220, 280, 159,
  127. 74, 39, 38, 299, 219, 196, 287, 8, 191, 162,
  128. 77, 3, 42, 315, 294, 222, 196, 438, 75, 378,
  129. 260, 235, 237, 1, 438, 126, 16, 193, 271, 215,
  130. 10, 79, 378, 172, 302, 315, 107, 175, 378, 267,
  131. 224, 298, 218, 27, 178, 252, 21, 164, 296, 17,
  132. 83, 39, 38, 299, 219, 196, 287, 205, 191, 170,
  133. 77, 3, 42, 315, 270, 18, 144, 99, 75, 346,
  134. 260, 235, 237, 1, 142, 126, 280, 177, 84, 215,
  135. 10, 79, 346, 172, 280, 4, 107, 95, 346, 321,
  136. 224, 298, 218, 438, 217, 131, 21, 321, 426, 24,
  137. 438, 39, 38, 299, 219, 196, 287, 205, 191, 426,
  138. 77, 3, 42, 315, 201, 9, 101, 99, 75, 381,
  139. 260, 235, 237, 1, 149, 124, 102, 193, 22, 215,
  140. 10, 79, 381, 315, 99, 231, 107, 311, 381, 425,
  141. 224, 298, 218, 23, 217, 319, 7, 207, 196, 17,
  142. 425, 39, 38, 299, 219, 307, 287, 36, 191, 154,
  143. 77, 3, 42, 315, 161, 296, 227, 74, 75, 280,
  144. 260, 235, 237, 1, 16, 91, 273, 76, 312, 215,
  145. 10, 79, 317, 208, 190, 12, 107, 176, 196, 318,
  146. 224, 298, 218, 135, 217, 321, 21, 196, 35, 95,
  147. 263, 39, 38, 299, 219, 157, 287, 111, 191, 88,
  148. 77, 3, 42, 315, 169, 280, 225, 15, 75, 285,
  149. 260, 235, 237, 1, 155, 126, 226, 184, 101, 215,
  150. 10, 79, 454, 172, 280, 454, 107, 246, 253, 454,
  151. 224, 298, 218, 152, 217, 111, 21, 161, 296, 265,
  152. 6, 39, 38, 299, 219, 269, 287, 203, 191, 119,
  153. 77, 3, 42, 315, 158, 262, 321, 274, 75, 97,
  154. 260, 235, 237, 1, 153, 128, 165, 193, 151, 215,
  155. 10, 79, 317, 43, 280, 12, 107, 320, 280, 318,
  156. 224, 298, 218, 8, 217, 171, 30, 306, 196, 36,
  157. 172, 39, 38, 299, 219, 264, 287, 256, 191, 128,
  158. 77, 288, 78, 315, 510, 90, 166, 296, 75, 41,
  159. 37, 223, 104, 228, 250, 251, 255, 122, 226, 289,
  160. 260, 235, 237, 1, 239, 233, 238, 240, 241, 215,
  161. 10, 79, 229, 305, 77, 304, 107, 315, 281, 300,
  162. 224, 298, 218, 261, 211, 203, 314, 28, 86, 108,
  163. 140, 181, 96, 61, 214, 247, 317, 454, 94, 12,
  164. 454, 297, 322, 318, 454, 29, 259, 192, 249, 248,
  165. 308, 313, 138, 27, 302, 143, 130, 82, 95, 17,
  166. 261, 211, 203, 314, 252, 86, 108, 286, 180, 96,
  167. 50, 136, 139, 100, 152, 94, 454, 81, 297, 322,
  168. 295, 321, 146, 259, 192, 249, 295, 308, 261, 295,
  169. 203, 295, 295, 110, 295, 295, 197, 105, 64, 295,
  170. 295, 295, 295, 94, 295, 295, 297, 322, 295, 295,
  171. 295, 259, 192, 249, 261, 308, 203, 276, 295, 110,
  172. 108, 295, 181, 96, 61, 187, 282, 295, 317, 94,
  173. 295, 12, 297, 322, 295, 318, 295, 259, 192, 249,
  174. 295, 308, 295, 291, 295, 295, 295, 295, 295, 260,
  175. 235, 237, 2, 295, 293, 295, 295, 295, 215, 10,
  176. 79, 295, 295, 295, 295, 107, 291, 206, 295, 224,
  177. 298, 218, 260, 235, 237, 2, 295, 293, 295, 295,
  178. 295, 215, 10, 79, 295, 295, 295, 295, 107, 295,
  179. 295, 295, 224, 298, 218, 295, 295, 295, 26, 261,
  180. 295, 203, 295, 295, 110, 295, 295, 197, 113, 60,
  181. 295, 295, 295, 295, 94, 156, 295, 297, 322, 167,
  182. 284, 26, 259, 192, 249, 280, 308, 295, 40, 14,
  183. 257, 295, 261, 200, 203, 295, 295, 110, 295, 295,
  184. 197, 105, 64, 172, 295, 295, 295, 94, 295, 295,
  185. 297, 322, 295, 295, 295, 259, 192, 249, 295, 308,
  186. 295, 295, 295, 295, 261, 295, 203, 295, 295, 98,
  187. 283, 295, 197, 113, 51, 295, 201, 295, 295, 94,
  188. 295, 295, 297, 322, 295, 295, 295, 259, 192, 249,
  189. 261, 308, 203, 295, 295, 110, 295, 295, 197, 113,
  190. 60, 295, 295, 295, 295, 94, 295, 295, 297, 322,
  191. 295, 295, 295, 259, 192, 249, 295, 308, 261, 295,
  192. 203, 295, 295, 110, 188, 295, 197, 113, 60, 196,
  193. 31, 43, 295, 94, 295, 295, 297, 322, 295, 295,
  194. 295, 259, 192, 249, 295, 308, 261, 295, 203, 295,
  195. 295, 98, 198, 295, 197, 113, 45, 295, 109, 295,
  196. 295, 94, 295, 295, 297, 322, 295, 41, 37, 259,
  197. 192, 249, 261, 308, 203, 295, 295, 110, 295, 295,
  198. 197, 113, 67, 233, 238, 240, 241, 94, 295, 295,
  199. 297, 322, 295, 295, 295, 259, 192, 249, 295, 308,
  200. 261, 295, 203, 295, 295, 110, 295, 295, 197, 113,
  201. 57, 196, 295, 43, 295, 94, 295, 295, 297, 322,
  202. 295, 295, 295, 259, 192, 249, 295, 308, 261, 295,
  203. 203, 295, 295, 110, 295, 295, 197, 113, 46, 295,
  204. 295, 295, 295, 94, 295, 295, 297, 322, 295, 41,
  205. 37, 259, 192, 249, 261, 308, 203, 295, 295, 110,
  206. 295, 295, 197, 113, 66, 233, 238, 240, 241, 94,
  207. 301, 295, 297, 322, 295, 295, 295, 259, 192, 249,
  208. 295, 308, 261, 295, 203, 295, 295, 110, 295, 295,
  209. 197, 113, 72, 196, 295, 43, 295, 94, 295, 295,
  210. 297, 322, 295, 295, 295, 259, 192, 249, 295, 308,
  211. 261, 295, 203, 295, 295, 110, 295, 295, 197, 113,
  212. 53, 295, 295, 295, 295, 94, 295, 295, 297, 322,
  213. 230, 41, 37, 259, 192, 249, 261, 308, 203, 295,
  214. 295, 110, 295, 295, 197, 113, 48, 233, 238, 240,
  215. 241, 94, 295, 295, 297, 322, 295, 295, 295, 259,
  216. 192, 249, 295, 308, 261, 295, 203, 295, 295, 110,
  217. 295, 295, 185, 103, 49, 196, 295, 43, 295, 94,
  218. 295, 295, 297, 322, 295, 295, 295, 259, 192, 249,
  219. 295, 308, 261, 295, 203, 295, 295, 110, 295, 295,
  220. 197, 113, 55, 134, 295, 295, 295, 94, 295, 295,
  221. 297, 322, 295, 41, 37, 259, 192, 249, 261, 308,
  222. 203, 295, 295, 110, 295, 295, 197, 113, 71, 233,
  223. 238, 240, 241, 94, 295, 295, 297, 322, 295, 295,
  224. 295, 259, 192, 249, 295, 308, 261, 295, 203, 295,
  225. 295, 110, 295, 295, 197, 113, 59, 196, 295, 43,
  226. 295, 94, 295, 295, 297, 322, 295, 295, 295, 259,
  227. 192, 249, 295, 308, 261, 295, 203, 295, 295, 110,
  228. 295, 295, 197, 113, 63, 295, 295, 295, 295, 94,
  229. 295, 295, 297, 322, 216, 41, 37, 259, 192, 249,
  230. 261, 308, 203, 295, 295, 110, 295, 295, 197, 113,
  231. 62, 233, 238, 240, 241, 94, 295, 295, 297, 322,
  232. 295, 295, 295, 259, 192, 249, 295, 308, 261, 295,
  233. 203, 295, 295, 110, 295, 295, 197, 92, 69, 196,
  234. 295, 43, 295, 94, 295, 295, 297, 322, 295, 295,
  235. 295, 259, 192, 249, 295, 308, 261, 295, 203, 295,
  236. 295, 110, 295, 295, 197, 113, 52, 295, 295, 295,
  237. 295, 94, 295, 295, 297, 322, 295, 41, 37, 259,
  238. 192, 249, 261, 308, 203, 295, 295, 110, 295, 295,
  239. 197, 113, 65, 233, 238, 240, 241, 94, 295, 295,
  240. 297, 322, 295, 196, 295, 259, 192, 249, 295, 308,
  241. 261, 295, 203, 295, 295, 110, 295, 349, 197, 113,
  242. 58, 221, 295, 295, 295, 94, 295, 295, 297, 322,
  243. 27, 295, 295, 259, 192, 249, 17, 308, 261, 425,
  244. 203, 295, 295, 110, 295, 295, 197, 113, 56, 295,
  245. 425, 295, 295, 94, 295, 295, 297, 322, 295, 295,
  246. 295, 259, 192, 249, 261, 308, 203, 295, 295, 110,
  247. 295, 295, 197, 113, 44, 295, 295, 295, 295, 94,
  248. 295, 295, 297, 322, 295, 295, 295, 259, 192, 249,
  249. 295, 308, 261, 295, 203, 295, 295, 110, 295, 295,
  250. 197, 93, 70, 295, 295, 295, 295, 94, 295, 295,
  251. 297, 322, 295, 295, 295, 259, 192, 249, 295, 308,
  252. 261, 295, 203, 295, 295, 110, 295, 295, 186, 113,
  253. 54, 295, 295, 295, 295, 94, 295, 295, 297, 322,
  254. 295, 295, 295, 259, 192, 249, 261, 308, 203, 295,
  255. 295, 110, 295, 295, 197, 113, 73, 295, 295, 295,
  256. 295, 94, 295, 295, 297, 322, 295, 295, 295, 259,
  257. 192, 249, 295, 308, 261, 295, 203, 295, 295, 110,
  258. 295, 295, 197, 113, 68, 295, 295, 295, 295, 94,
  259. 295, 295, 297, 322, 295, 295, 295, 259, 192, 249,
  260. 295, 308, 261, 295, 203, 295, 295, 110, 295, 295,
  261. 197, 93, 47, 295, 295, 295, 295, 94, 295, 295,
  262. 297, 322, 391, 391, 391, 259, 192, 249, 261, 308,
  263. 203, 295, 295, 110, 295, 295, 197, 113, 51, 295,
  264. 295, 295, 295, 94, 295, 295, 297, 322, 196, 295,
  265. 43, 259, 192, 249, 295, 308, 295, 295, 425, 295,
  266. 391, 391, 295, 295, 295, 261, 295, 203, 295, 425,
  267. 110, 295, 295, 197, 118, 27, 391, 391, 391, 391,
  268. 94, 17, 295, 295, 258, 295, 41, 37, 259, 192,
  269. 249, 261, 308, 203, 295, 196, 110, 43, 295, 197,
  270. 120, 295, 233, 238, 240, 241, 94, 295, 295, 295,
  271. 243, 295, 295, 295, 259, 192, 249, 295, 308, 295,
  272. 32, 295, 27, 212, 295, 295, 295, 295, 17, 295,
  273. 295, 295, 454, 41, 37, 454, 295, 295, 295, 454,
  274. 438, 295, 295, 295, 295, 295, 295, 295, 295, 233,
  275. 238, 240, 241, 295, 295, 261, 295, 203, 295, 295,
  276. 110, 295, 295, 197, 112, 295, 438, 295, 295, 438,
  277. 94, 454, 212, 438, 268, 295, 295, 295, 259, 192,
  278. 249, 454, 308, 212, 454, 295, 295, 34, 454, 438,
  279. 295, 295, 454, 295, 295, 454, 295, 133, 4, 454,
  280. 438, 167, 295, 295, 295, 295, 295, 280, 295, 295,
  281. 40, 14, 257, 295, 295, 438, 295, 295, 438, 261,
  282. 454, 203, 438, 295, 110, 172, 438, 197, 121, 438,
  283. 261, 454, 203, 438, 94, 110, 295, 295, 197, 117,
  284. 295, 295, 259, 192, 249, 94, 308, 295, 295, 295,
  285. 295, 295, 295, 259, 192, 249, 261, 308, 203, 295,
  286. 295, 110, 295, 295, 197, 116, 295, 261, 295, 203,
  287. 295, 94, 110, 295, 295, 197, 114, 295, 295, 259,
  288. 192, 249, 94, 308, 196, 295, 43, 295, 295, 295,
  289. 259, 192, 249, 261, 308, 203, 295, 196, 110, 43,
  290. 295, 197, 123, 295, 295, 295, 106, 295, 94, 295,
  291. 196, 174, 43, 295, 295, 295, 259, 192, 249, 196,
  292. 308, 43, 41, 37, 244, 295, 295, 295, 295, 295,
  293. 295, 295, 295, 234, 295, 41, 37, 295, 233, 238,
  294. 240, 241, 295, 295, 295, 295, 295, 295, 41, 37,
  295. 295, 233, 238, 240, 241, 295, 295, 41, 37, 295,
  296. 295, 295, 295, 295, 233, 238, 240, 241, 25, 196,
  297. 295, 43, 295, 233, 238, 240, 241, 454, 295, 295,
  298. 454, 295, 295, 279, 454, 438, 212, 295, 295, 295,
  299. 295, 295, 295, 295, 295, 454, 295, 295, 454, 295,
  300. 295, 295, 454, 438, 196, 295, 43, 41, 37, 295,
  301. 295, 438, 295, 196, 438, 43, 454, 295, 438, 295,
  302. 295, 295, 295, 233, 238, 240, 241, 173, 295, 438,
  303. 295, 295, 438, 295, 454, 295, 438, 454, 295, 295,
  304. 454, 295, 41, 37, 454, 438, 295, 295, 295, 295,
  305. 295, 41, 37, 295, 295, 295, 242, 295, 233, 238,
  306. 240, 241, 295, 295, 295, 295, 295, 233, 238, 240,
  307. 241, 438, 295, 295, 438, 295, 454, 147, 438, 295,
  308. 295, 167, 295, 295, 295, 295, 295, 280, 295, 295,
  309. 40, 14, 257, 295, 295, 295, 295, 295, 295, 295,
  310. 295, 295, 295, 295, 295, 172,
  311. );
  312. public static $yy_lookahead = array(
  313. 3, 9, 10, 15, 71, 17, 28, 74, 11, 12,
  314. 13, 14, 34, 16, 81, 18, 28, 20, 21, 22,
  315. 11, 82, 34, 14, 27, 37, 93, 18, 31, 32,
  316. 33, 45, 35, 66, 37, 68, 48, 28, 52, 42,
  317. 43, 44, 45, 34, 47, 15, 49, 16, 51, 52,
  318. 53, 54, 3, 23, 77, 25, 59, 17, 28, 19,
  319. 11, 12, 13, 14, 34, 16, 36, 18, 38, 20,
  320. 21, 22, 105, 106, 94, 45, 27, 73, 101, 73,
  321. 31, 32, 33, 77, 35, 54, 37, 83, 48, 83,
  322. 94, 42, 43, 44, 45, 14, 47, 16, 49, 18,
  323. 51, 52, 3, 54, 36, 101, 38, 101, 59, 15,
  324. 11, 12, 13, 14, 77, 16, 35, 18, 24, 20,
  325. 21, 22, 28, 86, 87, 88, 27, 24, 34, 37,
  326. 31, 32, 33, 82, 35, 54, 37, 66, 101, 68,
  327. 46, 42, 43, 44, 45, 16, 47, 71, 49, 46,
  328. 51, 52, 3, 54, 78, 79, 53, 81, 59, 15,
  329. 11, 12, 13, 14, 37, 16, 37, 18, 24, 20,
  330. 21, 22, 28, 19, 65, 48, 27, 106, 34, 101,
  331. 31, 32, 33, 54, 35, 71, 37, 16, 74, 18,
  332. 46, 42, 43, 44, 45, 81, 47, 45, 49, 45,
  333. 51, 52, 3, 54, 90, 53, 52, 93, 59, 30,
  334. 11, 12, 13, 14, 82, 16, 37, 18, 24, 20,
  335. 21, 22, 51, 18, 14, 54, 27, 48, 73, 17,
  336. 31, 32, 33, 1, 35, 14, 37, 16, 83, 18,
  337. 46, 42, 43, 44, 45, 1, 47, 37, 49, 77,
  338. 51, 52, 3, 54, 60, 50, 1, 45, 59, 15,
  339. 11, 12, 13, 14, 52, 16, 36, 18, 38, 20,
  340. 21, 22, 28, 101, 102, 54, 27, 8, 34, 10,
  341. 31, 32, 33, 28, 35, 95, 37, 97, 98, 34,
  342. 94, 42, 43, 44, 45, 1, 47, 71, 49, 77,
  343. 51, 52, 3, 54, 78, 23, 73, 81, 59, 15,
  344. 11, 12, 13, 14, 73, 16, 83, 18, 36, 20,
  345. 21, 22, 28, 101, 83, 17, 27, 19, 34, 96,
  346. 31, 32, 33, 45, 35, 16, 37, 96, 37, 41,
  347. 52, 42, 43, 44, 45, 1, 47, 71, 49, 48,
  348. 51, 52, 3, 54, 78, 37, 48, 81, 59, 15,
  349. 11, 12, 13, 14, 71, 16, 48, 18, 17, 20,
  350. 21, 22, 28, 54, 81, 24, 27, 70, 34, 37,
  351. 31, 32, 33, 28, 35, 24, 37, 45, 1, 34,
  352. 48, 42, 43, 44, 45, 53, 47, 2, 49, 73,
  353. 51, 52, 3, 54, 97, 98, 19, 46, 59, 83,
  354. 11, 12, 13, 14, 36, 16, 38, 18, 98, 20,
  355. 21, 22, 11, 64, 65, 14, 27, 101, 1, 18,
  356. 31, 32, 33, 94, 35, 96, 37, 1, 17, 19,
  357. 92, 42, 43, 44, 45, 73, 47, 99, 49, 77,
  358. 51, 52, 3, 54, 16, 83, 18, 30, 59, 70,
  359. 11, 12, 13, 14, 73, 16, 45, 18, 48, 20,
  360. 21, 22, 11, 101, 83, 14, 27, 35, 92, 18,
  361. 31, 32, 33, 94, 35, 99, 37, 97, 98, 53,
  362. 36, 42, 43, 44, 45, 66, 47, 68, 49, 18,
  363. 51, 52, 3, 54, 94, 38, 96, 53, 59, 81,
  364. 11, 12, 13, 14, 73, 16, 77, 18, 73, 20,
  365. 21, 22, 11, 3, 83, 14, 27, 99, 83, 18,
  366. 31, 32, 33, 37, 35, 18, 37, 18, 1, 2,
  367. 101, 42, 43, 44, 45, 35, 47, 18, 49, 16,
  368. 51, 18, 18, 54, 62, 63, 97, 98, 59, 39,
  369. 40, 50, 18, 4, 5, 6, 7, 8, 45, 16,
  370. 11, 12, 13, 14, 18, 55, 56, 57, 58, 20,
  371. 21, 22, 49, 53, 51, 53, 27, 54, 18, 15,
  372. 31, 32, 33, 66, 67, 68, 69, 25, 71, 72,
  373. 51, 74, 75, 76, 18, 18, 11, 11, 81, 14,
  374. 14, 84, 85, 18, 18, 17, 89, 90, 91, 9,
  375. 93, 15, 51, 28, 102, 30, 81, 81, 19, 34,
  376. 66, 67, 68, 69, 95, 71, 72, 83, 74, 75,
  377. 76, 94, 94, 80, 94, 81, 50, 81, 84, 85,
  378. 107, 96, 94, 89, 90, 91, 107, 93, 66, 107,
  379. 68, 107, 107, 71, 107, 107, 74, 75, 76, 107,
  380. 107, 107, 107, 81, 107, 107, 84, 85, 107, 107,
  381. 107, 89, 90, 91, 66, 93, 68, 69, 107, 71,
  382. 72, 107, 74, 75, 76, 103, 104, 107, 11, 81,
  383. 107, 14, 84, 85, 107, 18, 107, 89, 90, 91,
  384. 107, 93, 107, 5, 107, 107, 107, 107, 107, 11,
  385. 12, 13, 14, 107, 16, 107, 107, 107, 20, 21,
  386. 22, 107, 107, 107, 107, 27, 5, 50, 107, 31,
  387. 32, 33, 11, 12, 13, 14, 107, 16, 107, 107,
  388. 107, 20, 21, 22, 107, 107, 107, 107, 27, 107,
  389. 107, 107, 31, 32, 33, 107, 107, 59, 60, 66,
  390. 107, 68, 107, 107, 71, 107, 107, 74, 75, 76,
  391. 107, 107, 107, 107, 81, 73, 107, 84, 85, 77,
  392. 59, 60, 89, 90, 91, 83, 93, 107, 86, 87,
  393. 88, 107, 66, 100, 68, 107, 107, 71, 107, 107,
  394. 74, 75, 76, 101, 107, 107, 107, 81, 107, 107,
  395. 84, 85, 107, 107, 107, 89, 90, 91, 107, 93,
  396. 107, 107, 107, 107, 66, 107, 68, 107, 107, 71,
  397. 104, 107, 74, 75, 76, 107, 78, 107, 107, 81,
  398. 107, 107, 84, 85, 107, 107, 107, 89, 90, 91,
  399. 66, 93, 68, 107, 107, 71, 107, 107, 74, 75,
  400. 76, 107, 107, 107, 107, 81, 107, 107, 84, 85,
  401. 107, 107, 107, 89, 90, 91, 107, 93, 66, 107,
  402. 68, 107, 107, 71, 100, 107, 74, 75, 76, 1,
  403. 2, 3, 107, 81, 107, 107, 84, 85, 107, 107,
  404. 107, 89, 90, 91, 107, 93, 66, 107, 68, 107,
  405. 107, 71, 100, 107, 74, 75, 76, 107, 78, 107,
  406. 107, 81, 107, 107, 84, 85, 107, 39, 40, 89,
  407. 90, 91, 66, 93, 68, 107, 107, 71, 107, 107,
  408. 74, 75, 76, 55, 56, 57, 58, 81, 107, 107,
  409. 84, 85, 107, 107, 107, 89, 90, 91, 107, 93,
  410. 66, 107, 68, 107, 107, 71, 107, 107, 74, 75,
  411. 76, 1, 107, 3, 107, 81, 107, 107, 84, 85,
  412. 107, 107, 107, 89, 90, 91, 107, 93, 66, 107,
  413. 68, 107, 107, 71, 107, 107, 74, 75, 76, 107,
  414. 107, 107, 107, 81, 107, 107, 84, 85, 107, 39,
  415. 40, 89, 90, 91, 66, 93, 68, 107, 107, 71,
  416. 107, 107, 74, 75, 76, 55, 56, 57, 58, 81,
  417. 60, 107, 84, 85, 107, 107, 107, 89, 90, 91,
  418. 107, 93, 66, 107, 68, 107, 107, 71, 107, 107,
  419. 74, 75, 76, 1, 107, 3, 107, 81, 107, 107,
  420. 84, 85, 107, 107, 107, 89, 90, 91, 107, 93,
  421. 66, 107, 68, 107, 107, 71, 107, 107, 74, 75,
  422. 76, 107, 107, 107, 107, 81, 107, 107, 84, 85,
  423. 38, 39, 40, 89, 90, 91, 66, 93, 68, 107,
  424. 107, 71, 107, 107, 74, 75, 76, 55, 56, 57,
  425. 58, 81, 107, 107, 84, 85, 107, 107, 107, 89,
  426. 90, 91, 107, 93, 66, 107, 68, 107, 107, 71,
  427. 107, 107, 74, 75, 76, 1, 107, 3, 107, 81,
  428. 107, 107, 84, 85, 107, 107, 107, 89, 90, 91,
  429. 107, 93, 66, 107, 68, 107, 107, 71, 107, 107,
  430. 74, 75, 76, 29, 107, 107, 107, 81, 107, 107,
  431. 84, 85, 107, 39, 40, 89, 90, 91, 66, 93,
  432. 68, 107, 107, 71, 107, 107, 74, 75, 76, 55,
  433. 56, 57, 58, 81, 107, 107, 84, 85, 107, 107,
  434. 107, 89, 90, 91, 107, 93, 66, 107, 68, 107,
  435. 107, 71, 107, 107, 74, 75, 76, 1, 107, 3,
  436. 107, 81, 107, 107, 84, 85, 107, 107, 107, 89,
  437. 90, 91, 107, 93, 66, 107, 68, 107, 107, 71,
  438. 107, 107, 74, 75, 76, 107, 107, 107, 107, 81,
  439. 107, 107, 84, 85, 38, 39, 40, 89, 90, 91,
  440. 66, 93, 68, 107, 107, 71, 107, 107, 74, 75,
  441. 76, 55, 56, 57, 58, 81, 107, 107, 84, 85,
  442. 107, 107, 107, 89, 90, 91, 107, 93, 66, 107,
  443. 68, 107, 107, 71, 107, 107, 74, 75, 76, 1,
  444. 107, 3, 107, 81, 107, 107, 84, 85, 107, 107,
  445. 107, 89, 90, 91, 107, 93, 66, 107, 68, 107,
  446. 107, 71, 107, 107, 74, 75, 76, 107, 107, 107,
  447. 107, 81, 107, 107, 84, 85, 107, 39, 40, 89,
  448. 90, 91, 66, 93, 68, 107, 107, 71, 107, 107,
  449. 74, 75, 76, 55, 56, 57, 58, 81, 107, 107,
  450. 84, 85, 107, 1, 107, 89, 90, 91, 107, 93,
  451. 66, 107, 68, 107, 107, 71, 107, 15, 74, 75,
  452. 76, 19, 107, 107, 107, 81, 107, 107, 84, 85,
  453. 28, 107, 107, 89, 90, 91, 34, 93, 66, 37,
  454. 68, 107, 107, 71, 107, 107, 74, 75, 76, 107,
  455. 48, 107, 107, 81, 107, 107, 84, 85, 107, 107,
  456. 107, 89, 90, 91, 66, 93, 68, 107, 107, 71,
  457. 107, 107, 74, 75, 76, 107, 107, 107, 107, 81,
  458. 107, 107, 84, 85, 107, 107, 107, 89, 90, 91,
  459. 107, 93, 66, 107, 68, 107, 107, 71, 107, 107,
  460. 74, 75, 76, 107, 107, 107, 107, 81, 107, 107,
  461. 84, 85, 107, 107, 107, 89, 90, 91, 107, 93,
  462. 66, 107, 68, 107, 107, 71, 107, 107, 74, 75,
  463. 76, 107, 107, 107, 107, 81, 107, 107, 84, 85,
  464. 107, 107, 107, 89, 90, 91, 66, 93, 68, 107,
  465. 107, 71, 107, 107, 74, 75, 76, 107, 107, 107,
  466. 107, 81, 107, 107, 84, 85, 107, 107, 107, 89,
  467. 90, 91, 107, 93, 66, 107, 68, 107, 107, 71,
  468. 107, 107, 74, 75, 76, 107, 107, 107, 107, 81,
  469. 107, 107, 84, 85, 107, 107, 107, 89, 90, 91,
  470. 107, 93, 66, 107, 68, 107, 107, 71, 107, 107,
  471. 74, 75, 76, 107, 107, 107, 107, 81, 107, 107,
  472. 84, 85, 1, 2, 3, 89, 90, 91, 66, 93,
  473. 68, 107, 107, 71, 107, 107, 74, 75, 76, 107,
  474. 107, 107, 107, 81, 107, 107, 84, 85, 1, 107,
  475. 3, 89, 90, 91, 107, 93, 107, 107, 37, 107,
  476. 39, 40, 107, 107, 107, 66, 107, 68, 107, 48,
  477. 71, 107, 107, 74, 75, 28, 55, 56, 57, 58,
  478. 81, 34, 107, 107, 85, 107, 39, 40, 89, 90,
  479. 91, 66, 93, 68, 107, 1, 71, 3, 107, 74,
  480. 75, 107, 55, 56, 57, 58, 81, 107, 107, 107,
  481. 85, 107, 107, 107, 89, 90, 91, 107, 93, 107,
  482. 26, 107, 28, 2, 107, 107, 107, 107, 34, 107,
  483. 107, 107, 11, 39, 40, 14, 107, 107, 107, 18,
  484. 19, 107, 107, 107, 107, 107, 107, 107, 107, 55,
  485. 56, 57, 58, 107, 107, 66, 107, 68, 107, 107,
  486. 71, 107, 107, 74, 75, 107, 45, 107, 107, 48,
  487. 81, 50, 2, 52, 53, 107, 107, 107, 89, 90,
  488. 91, 11, 93, 2, 14, 107, 107, 17, 18, 19,
  489. 107, 107, 11, 107, 107, 14, 107, 73, 17, 18,
  490. 19, 77, 107, 107, 107, 107, 107, 83, 107, 107,
  491. 86, 87, 88, 107, 107, 45, 107, 107, 48, 66,
  492. 50, 68, 52, 107, 71, 101, 45, 74, 75, 48,
  493. 66, 50, 68, 52, 81, 71, 107, 107, 74, 75,
  494. 107, 107, 89, 90, 91, 81, 93, 107, 107, 107,
  495. 107, 107, 107, 89, 90, 91, 66, 93, 68, 107,
  496. 107, 71, 107, 107, 74, 75, 107, 66, 107, 68,
  497. 107, 81, 71, 107, 107, 74, 75, 107, 107, 89,
  498. 90, 91, 81, 93, 1, 107, 3, 107, 107, 107,
  499. 89, 90, 91, 66, 93, 68, 107, 1, 71, 3,
  500. 107, 74, 75, 107, 107, 107, 23, 107, 81, 107,
  501. 1, 15, 3, 107, 107, 107, 89, 90, 91, 1,
  502. 93, 3, 39, 40, 15, 107, 107, 107, 107, 107,
  503. 107, 107, 107, 15, 107, 39, 40, 107, 55, 56,
  504. 57, 58, 107, 107, 107, 107, 107, 107, 39, 40,
  505. 107, 55, 56, 57, 58, 107, 107, 39, 40, 107,
  506. 107, 107, 107, 107, 55, 56, 57, 58, 2, 1,
  507. 107, 3, 107, 55, 56, 57, 58, 11, 107, 107,
  508. 14, 107, 107, 15, 18, 19, 2, 107, 107, 107,
  509. 107, 107, 107, 107, 107, 11, 107, 107, 14, 107,
  510. 107, 107, 18, 19, 1, 107, 3, 39, 40, 107,
  511. 107, 45, 107, 1, 48, 3, 50, 107, 52, 107,
  512. 107, 107, 107, 55, 56, 57, 58, 15, 107, 45,
  513. 107, 107, 48, 107, 50, 107, 52, 11, 107, 107,
  514. 14, 107, 39, 40, 18, 19, 107, 107, 107, 107,
  515. 107, 39, 40, 107, 107, 107, 53, 107, 55, 56,
  516. 57, 58, 107, 107, 107, 107, 107, 55, 56, 57,
  517. 58, 45, 107, 107, 48, 107, 50, 73, 52, 107,
  518. 107, 77, 107, 107, 107, 107, 107, 83, 107, 107,
  519. 86, 87, 88, 107, 107, 107, 107, 107, 107, 107,
  520. 107, 107, 107, 107, 107, 101,
  521. );
  522. public static $yy_shift_ofst = array(
  523. -23, 399, 399, 449, 49, 49, 449, 349, 49, 49,
  524. 349, -3, 49, 49, 49, 49, 49, 49, 49, 49,
  525. 49, 49, 49, 149, 199, 299, 49, 149, 49, 49,
  526. 49, 49, 49, 49, 249, 49, 99, 99, 499, 499,
  527. 499, 499, 499, 499, 1664, 1617, 1617, 1144, 1982, 1973,
  528. 1938, 1226, 1853, 1062, 980, 1879, 898, 1866, 1888, 1308,
  529. 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
  530. 1308, 1308, 520, 520, 533, 731, 1372, 171, 255, 129,
  531. 708, 595, 9, 154, 129, 255, 308, 129, 255, 537,
  532. 559, 1751, 244, 344, 511, 221, 294, 411, 40, 411,
  533. -22, 438, 438, 436, 387, 427, 319, 355, -22, -22,
  534. 420, 609, 232, 232, 232, 609, 232, 232, 232, 232,
  535. -23, -23, -23, -23, 1740, 1691, 1954, 1936, 1996, 81,
  536. 687, 461, 212, -22, 31, -14, -14, -22, 288, -14,
  537. 288, -14, -22, 31, -22, -14, -14, -22, -22, 351,
  538. -22, -22, -14, -22, -22, -22, -22, -22, -14, 210,
  539. 232, 609, 232, 395, 609, 232, 609, 232, 395, 92,
  540. 232, -23, -23, -23, -23, -23, -23, 1591, 30, -12,
  541. 94, 144, 342, 596, 179, 103, 194, 454, 230, 152,
  542. 269, 301, 318, 127, 282, -8, 205, 361, 378, 421,
  543. 68, 467, 556, 606, 571, 598, 587, 586, 610, 549,
  544. 572, 574, 570, 532, 530, 553, 298, 523, 544, 510,
  545. 92, 534, 529, 519, 517, 496, 442, 481,
  546. );
  547. public static $yy_reduce_ofst = array(
  548. 492, 527, 564, 592, 618, 703, 736, 768, 794, 822,
  549. 850, 1068, 1096, 1122, 1150, 1286, 1204, 1232, 1260, 1040,
  550. 1314, 1532, 1478, 1506, 1342, 1450, 1424, 1396, 1368, 1178,
  551. 1014, 986, 932, 904, 876, 958, 1595, 1569, 1771, 1659,
  552. 1760, 1734, 1723, 1797, 712, 1694, 1974, 37, 37, 37,
  553. 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
  554. 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
  555. 37, 37, 37, 37, 114, -33, 372, -67, 6, 76,
  556. 71, 233, 241, 190, 226, 4, 307, 276, 326, 172,
  557. 429, 389, -23, -23, 339, 428, -23, 410, 390, 339,
  558. 391, 386, 348, -23, 222, -23, 293, 155, 441, 445,
  559. 390, 459, -23, -23, -23, 390, -23, -23, -23, 439,
  560. -23, -23, 359, -23, 550, 550, 550, 550, 550, 545,
  561. 555, 550, 550, 554, 566, 539, 539, 554, 547, 539,
  562. 548, 539, 554, 546, 554, 539, 539, 554, 554, 563,
  563. 554, 554, 539, 554, 554, 554, 554, 554, 539, 558,
  564. 78, 320, 78, 522, 320, 78, 320, 78, 522, 196,
  565. 78, 51, -61, -20, -4, 109, 132,
  566. );
  567. public static $yyExpectedTokens = array(
  568. array(),
  569. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  570. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  571. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  572. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  573. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  574. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  575. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  576. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  577. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  578. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  579. array(
  580. 3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 53, 54, 59,
  581. ),
  582. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  583. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  584. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  585. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  586. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  587. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  588. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  589. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  590. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  591. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  592. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  593. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  594. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  595. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  596. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  597. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  598. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  599. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  600. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  601. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  602. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  603. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  604. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  605. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  606. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  607. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,),
  608. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 54, 59,),
  609. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 54, 59,),
  610. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 54, 59,),
  611. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 54, 59,),
  612. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 54, 59,),
  613. array(3, 11, 12, 13, 14, 16, 18, 20, 21, 22, 27, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 54, 59,),
  614. array(1, 3, 26, 28, 34, 39, 40, 55, 56, 57, 58,),
  615. array(1, 3, 28, 34, 39, 40, 55, 56, 57, 58,),
  616. array(1, 3, 28, 34, 39, 40, 55, 56, 57, 58,),
  617. array(1, 3, 29, 39, 40, 55, 56, 57, 58,),
  618. array(1, 3, 15, 39, 40, 55, 56, 57, 58,),
  619. array(1, 3, 39, 40, 53, 55, 56, 57, 58,),
  620. array(1, 3, 15, 39, 40, 55, 56, 57, 58,),
  621. array(1, 3, 38, 39, 40, 55, 56, 57, 58,),
  622. array(1, 3, 23, 39, 40, 55, 56, 57, 58,),
  623. array(1, 3, 38, 39, 40, 55, 56, 57, 58,),
  624. array(1, 3, 39, 40, 55, 56, 57, 58, 60,),
  625. array(1, 3, 15, 39, 40, 55, 56, 57, 58,),
  626. array(1, 2, 3, 39, 40, 55, 56, 57, 58,),
  627. array(1, 3, 15, 39, 40, 55, 56, 57, 58,),
  628. array(1, 3, 15, 39, 40, 55, 56, 57, 58,),
  629. array(1, 3, 39, 40, 55, 56, 57, 58,),
  630. array(1, 3, 39, 40, 55, 56, 57, 58,),
  631. array(1, 3, 39, 40, 55, 56, 57, 58,),
  632. array(1, 3, 39, 40, 55, 56, 57, 58,),
  633. array(1, 3, 39, 40, 55, 56, 57, 58,),
  634. array(1, 3, 39, 40, 55, 56, 57, 58,),
  635. array(1, 3, 39, 40, 55, 56, 57, 58,),
  636. array(1, 3, 39, 40, 55, 56, 57, 58,),
  637. array(1, 3, 39, 40, 55, 56, 57, 58,),
  638. array(1, 3, 39, 40, 55, 56, 57, 58,),
  639. array(1, 3, 39, 40, 55, 56, 57, 58,),
  640. array(1, 3, 39, 40, 55, 56, 57, 58,),
  641. array(1, 3, 39, 40, 55, 56, 57, 58,),
  642. array(3, 39, 40, 55, 56, 57, 58,),
  643. array(3, 39, 40, 55, 56, 57, 58,),
  644. array(16, 18, 49, 51, 54,),
  645. array(5, 11, 12, 13, 14, 16, 20, 21, 22, 27, 31, 32, 33, 59, 60,),
  646. array(1, 15, 19, 28, 34, 37, 48,),
  647. array(16, 18, 51, 54,),
  648. array(1, 28, 34,),
  649. array(16, 37, 54,),
  650. array(5, 11, 12, 13, 14, 16, 20, 21, 22, 27, 31, 32, 33, 59, 60,),
  651. array(11, 14, 18, 28, 30, 34,),
  652. array(11, 14, 18, 28, 34,),
  653. array(19, 45, 52,),
  654. array(16, 37, 54,),
  655. array(1, 28, 34,),
  656. array(17, 19, 48,),
  657. array(16, 37, 54,),
  658. array(1, 28, 34,),
  659. array(1, 2,),
  660. array(4, 5, 6, 7, 8, 11, 12, 13, 14, 20, 21, 22, 27, 31, 32, 33,),
  661. array(2, 11, 14, 17, 18, 19, 45, 48, 50, 52,),
  662. array(1, 15, 28, 34,),
  663. array(1, 15, 28, 34,),
  664. array(11, 14, 18, 50,),
  665. array(14, 16, 18, 54,),
  666. array(1, 15, 28, 34,),
  667. array(11, 14, 18,),
  668. array(17, 19, 48,),
  669. array(11, 14, 18,),
  670. array(28, 34,),
  671. array(16, 18,),
  672. array(16, 18,),
  673. array(1, 53,),
  674. array(1, 19,),
  675. array(1, 30,),
  676. array(16, 54,),
  677. array(28, 34,),
  678. array(28, 34,),
  679. array(28, 34,),
  680. array(19, 48,),
  681. array(19,),
  682. array(1,),
  683. array(1,),
  684. array(1,),
  685. array(19,),
  686. array(1,),
  687. array(1,),
  688. array(1,),
  689. array(1,),
  690. array(),
  691. array(),
  692. array(),
  693. array(),
  694. array(2, 11, 14, 17, 18, 19, 45, 48, 50, 52,),
  695. array(2, 11, 14, 18, 19, 45, 48, 50, 52, 53,),
  696. array(2, 11, 14, 18, 19, 45, 48, 50, 52,),
  697. array(2, 11, 14, 18, 19, 45, 48, 50, 52,),
  698. array(11, 14, 18, 19, 45, 48, 50, 52,),
  699. array(14, 16, 18, 35, 54,),
  700. array(11, 14, 18, 50,),
  701. array(11, 14, 18,),
  702. array(17, 45, 52,),
  703. array(28, 34,),
  704. array(16, 54,),
  705. array(45, 52,),
  706. array(45, 52,),
  707. array(28, 34,),
  708. array(45, 52,),
  709. array(45, 52,),
  710. array(45, 52,),
  711. array(45, 52,),
  712. array(28, 34,),
  713. array(16, 54,),
  714. array(28, 34,),
  715. array(45, 52,),
  716. array(45, 52,),
  717. array(28, 34,),
  718. array(28, 34,),
  719. array(17, 24,),
  720. array(28, 34,),
  721. array(28, 34,),
  722. array(45, 52,),
  723. array(28, 34,),
  724. array(28, 34,),
  725. array(28, 34,),
  726. array(28, 34,),
  727. array(28, 34,),
  728. array(45, 52,),
  729. array(14, 37,),
  730. array(1,),
  731. array(19,),
  732. array(1,),
  733. array(2,),
  734. array(19,),
  735. array(1,),
  736. array(19,),
  737. array(1,),
  738. array(2,),
  739. array(37,),
  740. array(1,),
  741. array(),
  742. array(),
  743. array(),
  744. array(),
  745. array(),
  746. array(),
  747. array(1, 2, 3, 37, 39, 40, 48, 55, 56, 57, 58,),
  748. array(15, 23, 25, 28, 34, 36, 38, 45,),
  749. array(15, 17, 28, 34, 37, 48,),
  750. array(15, 24, 28, 34, 46,),
  751. array(15, 24, 28, 34, 46,),
  752. array(37, 45, 48, 53,),
  753. array(11, 14, 18, 50,),
  754. array(30, 37, 48,),
  755. array(24, 46, 53,),
  756. array(24, 46, 60,),
  757. array(36, 53,),
  758. array(36, 38,),
  759. array(45, 53,),
  760. array(8, 10,),
  761. array(37, 48,),
  762. array(37, 48,),
  763. array(37, 48,),
  764. array(23, 36,),
  765. array(9, 10,),
  766. array(18, 50,),
  767. array(24, 46,),
  768. array(36, 38,),
  769. array(17, 45,),
  770. array(36, 38,),
  771. array(38,),
  772. array(18,),
  773. array(15,),
  774. array(51,),
  775. array(17,),
  776. array(18,),
  777. array(18,),
  778. array(9,),
  779. array(51,),
  780. array(25,),
  781. array(15,),
  782. array(18,),
  783. array(53,),
  784. array(53,),
  785. array(16,),
  786. array(41,),
  787. array(45,),
  788. array(18,),
  789. array(35,),
  790. array(37,),
  791. array(18,),
  792. array(18,),
  793. array(18,),
  794. array(18,),
  795. array(37,),
  796. array(35,),
  797. array(18,),
  798. array(),
  799. array(),
  800. array(),
  801. array(),
  802. array(),
  803. array(),
  804. array(),
  805. array(),
  806. array(),
  807. array(),
  808. array(),
  809. array(),
  810. array(),
  811. array(),
  812. array(),
  813. array(),
  814. array(),
  815. array(),
  816. array(),
  817. array(),
  818. array(),
  819. array(),
  820. array(),
  821. array(),
  822. array(),
  823. array(),
  824. array(),
  825. array(),
  826. array(),
  827. array(),
  828. array(),
  829. array(),
  830. array(),
  831. array(),
  832. array(),
  833. array(),
  834. array(),
  835. array(),
  836. array(),
  837. array(),
  838. array(),
  839. array(),
  840. array(),
  841. array(),
  842. array(),
  843. array(),
  844. array(),
  845. array(),
  846. array(),
  847. array(),
  848. array(),
  849. array(),
  850. array(),
  851. array(),
  852. array(),
  853. array(),
  854. array(),
  855. array(),
  856. array(),
  857. array(),
  858. array(),
  859. array(),
  860. array(),
  861. array(),
  862. array(),
  863. array(),
  864. array(),
  865. array(),
  866. array(),
  867. array(),
  868. array(),
  869. array(),
  870. array(),
  871. array(),
  872. array(),
  873. array(),
  874. array(),
  875. array(),
  876. array(),
  877. array(),
  878. array(),
  879. array(),
  880. array(),
  881. array(),
  882. array(),
  883. array(),
  884. array(),
  885. array(),
  886. array(),
  887. array(),
  888. array(),
  889. array(),
  890. array(),
  891. array(),
  892. array(),
  893. );
  894. public static $yy_default = array(
  895. 334, 509, 509, 494, 509, 473, 509, 509, 473, 473,
  896. 509, 509, 509, 509, 509, 509, 509, 509, 509, 509,
  897. 509, 509, 509, 509, 509, 509, 509, 509, 509, 509,
  898. 509, 509, 509, 509, 509, 509, 509, 509, 509, 509,
  899. 509, 509, 509, 509, 375, 354, 375, 380, 509, 509,
  900. 347, 509, 509, 509, 509, 509, 509, 509, 509, 397,
  901. 472, 347, 471, 387, 497, 495, 382, 386, 359, 377,
  902. 380, 496, 402, 401, 509, 509, 413, 509, 375, 509,
  903. 509, 375, 375, 485, 509, 375, 428, 509, 375, 366,
  904. 323, 427, 389, 389, 438, 509, 389, 438, 428, 438,
  905. 375, 509, 509, 389, 369, 389, 509, 375, 375, 356,
  906. 428, 482, 405, 389, 406, 428, 396, 392, 400, 371,
  907. 480, 404, 332, 393, 427, 427, 427, 427, 427, 509,
  908. 440, 438, 454, 355, 509, 436, 434, 365, 433, 432,
  909. 431, 465, 364, 509, 363, 466, 463, 362, 352, 509,
  910. 351, 357, 435, 344, 350, 358, 361, 348, 464, 438,
  911. 422, 460, 367, 474, 486, 372, 483, 395, 475, 438,
  912. 370, 479, 479, 438, 438, 332, 479, 413, 409, 413,
  913. 403, 403, 413, 439, 413, 403, 403, 509, 509, 409,
  914. 330, 423, 509, 413, 509, 509, 509, 403, 509, 409,
  915. 509, 509, 509, 509, 509, 509, 509, 509, 509, 509,
  916. 383, 509, 509, 418, 509, 509, 415, 409, 509, 509,
  917. 454, 509, 509, 509, 509, 484, 411, 509, 324, 426,
  918. 415, 360, 442, 487, 444, 336, 443, 337, 488, 376,
  919. 489, 490, 452, 481, 459, 454, 410, 441, 328, 419,
  920. 325, 326, 437, 420, 477, 327, 476, 398, 399, 414,
  921. 335, 421, 388, 424, 412, 451, 329, 331, 449, 333,
  922. 384, 469, 500, 468, 491, 505, 343, 416, 417, 506,
  923. 374, 391, 492, 493, 498, 341, 373, 418, 425, 353,
  924. 501, 508, 507, 504, 502, 499, 461, 390, 368, 408,
  925. 338, 503, 478, 453, 447, 446, 429, 445, 430, 448,
  926. 450, 342, 462, 339, 340, 455, 470, 458, 457, 407,
  927. 467, 456, 394,
  928. );
  929. public static $yyFallback = array();
  930. public static $yyRuleName = array(
  931. 'start ::= template',
  932. 'template ::= template PHP',
  933. 'template ::= template TEXT',
  934. 'template ::= template STRIPON',
  935. 'template ::= template STRIPOFF',
  936. 'template ::= template LITERALSTART literal_e2 LITERALEND',
  937. 'literal_e2 ::= literal_e1 LITERALSTART literal_e1 LITERALEND',
  938. 'literal_e2 ::= literal_e1',
  939. 'literal_e1 ::= literal_e1 LITERAL',
  940. 'literal_e1 ::=',
  941. 'template ::= template smartytag',
  942. 'template ::=',
  943. 'smartytag ::= SIMPELOUTPUT',
  944. 'smartytag ::= SIMPLETAG',
  945. 'smartytag ::= SMARTYBLOCKCHILDPARENT',
  946. 'smartytag ::= LDEL tagbody RDEL',
  947. 'smartytag ::= tag RDEL',
  948. 'tagbody ::= outattr',
  949. 'tagbody ::= DOLLARID eqoutattr',
  950. 'tagbody ::= varindexed eqoutattr',
  951. 'eqoutattr ::= EQUAL outattr',
  952. 'outattr ::= output attributes',
  953. 'output ::= variable',
  954. 'output ::= value',
  955. 'output ::= expr',
  956. 'tag ::= LDEL ID attributes',
  957. 'tag ::= LDEL ID',
  958. 'tag ::= LDEL ID modifierlist attributes',
  959. 'tag ::= LDEL ID PTR ID attributes',
  960. 'tag ::= LDEL ID PTR ID modifierlist attributes',
  961. 'tag ::= LDELMAKENOCACHE DOLLARID',
  962. 'tag ::= LDELIF expr',
  963. 'tag ::= LDELIF expr attributes',
  964. 'tag ::= LDELIF statement',
  965. 'tag ::= LDELIF statement attributes',
  966. 'tag ::= LDELFOR statements SEMICOLON expr SEMICOLON varindexed foraction attributes',
  967. 'foraction ::= EQUAL expr',
  968. 'foraction ::= INCDEC',
  969. 'tag ::= LDELFOR statement TO expr attributes',
  970. 'tag ::= LDELFOR statement TO expr STEP expr attributes',
  971. 'tag ::= LDELFOREACH SPACE expr AS varvar attributes',
  972. 'tag ::= LDELFOREACH SPACE expr AS varvar APTR varvar attributes',
  973. 'tag ::= LDELFOREACH attributes',
  974. 'tag ::= LDELSETFILTER ID modparameters',
  975. 'tag ::= LDELSETFILTER ID modparameters modifierlist',
  976. 'smartytag ::= CLOSETAG',
  977. 'tag ::= LDELSLASH ID',
  978. 'tag ::= LDELSLASH ID modifierlist',
  979. 'tag ::= LDELSLASH ID PTR ID',
  980. 'tag ::= LDELSLASH ID PTR ID modifierlist',
  981. 'attributes ::= attributes attribute',
  982. 'attributes ::= attribute',
  983. 'attributes ::=',
  984. 'attribute ::= SPACE ID EQUAL ID',
  985. 'attribute ::= ATTR expr',
  986. 'attribute ::= ATTR value',
  987. 'attribute ::= SPACE ID',
  988. 'attribute ::= SPACE expr',
  989. 'attribute ::= SPACE value',
  990. 'attribute ::= SPACE INTEGER EQUAL expr',
  991. 'statements ::= statement',
  992. 'statements ::= statements COMMA statement',
  993. 'statement ::= DOLLARID EQUAL INTEGER',
  994. 'statement ::= DOLLARID EQUAL expr',
  995. 'statement ::= varindexed EQUAL expr',
  996. 'statement ::= OPENP statement CLOSEP',
  997. 'expr ::= value',
  998. 'expr ::= ternary',
  999. 'expr ::= DOLLARID COLON ID',
  1000. 'expr ::= expr MATH value',
  1001. 'expr ::= expr UNIMATH value',
  1002. 'expr ::= array',
  1003. 'expr ::= expr modifierlist',
  1004. 'expr ::= expr tlop value',
  1005. 'expr ::= expr lop expr',
  1006. 'expr ::= expr scond',
  1007. 'expr ::= expr ISIN array',
  1008. 'expr ::= expr ISIN value',
  1009. 'ternary ::= OPENP expr CLOSEP QMARK DOLLARID COLON expr',
  1010. 'ternary ::= OPENP expr CLOSEP QMARK expr COLON expr',
  1011. 'value ::= variable',
  1012. 'value ::= UNIMATH value',
  1013. 'value ::= NOT value',
  1014. 'value ::= TYPECAST value',
  1015. 'value ::= variable INCDEC',
  1016. 'value ::= HEX',
  1017. 'value ::= INTEGER',
  1018. 'value ::= INTEGER DOT INTEGER',
  1019. 'value ::= INTEGER DOT',
  1020. 'value ::= DOT INTEGER',
  1021. 'value ::= ID',
  1022. 'value ::= function',
  1023. 'value ::= OPENP expr CLOSEP',
  1024. 'value ::= variable INSTANCEOF ns1',
  1025. 'value ::= variable INSTANCEOF variable',
  1026. 'value ::= SINGLEQUOTESTRING',
  1027. 'value ::= doublequoted_with_quotes',
  1028. 'value ::= varindexed DOUBLECOLON static_class_access',
  1029. 'value ::= smartytag',
  1030. 'value ::= value modifierlist',
  1031. 'value ::= NAMESPACE',
  1032. 'value ::= ns1 DOUBLECOLON static_class_access',
  1033. 'ns1 ::= ID',
  1034. 'ns1 ::= NAMESPACE',
  1035. 'variable ::= DOLLARID',
  1036. 'variable ::= varindexed',
  1037. 'variable ::= varvar AT ID',
  1038. 'variable ::= object',
  1039. 'variable ::= HATCH ID HATCH',
  1040. 'variable ::= HATCH ID HATCH arrayindex',
  1041. 'variable ::= HATCH variable HATCH',
  1042. 'variable ::= HATCH variable HATCH arrayindex',
  1043. 'varindexed ::= DOLLARID arrayindex',
  1044. 'varindexed ::= varvar arrayindex',
  1045. 'arrayindex ::= arrayindex indexdef',
  1046. 'arrayindex ::=',
  1047. 'indexdef ::= DOT DOLLARID',
  1048. 'indexdef ::= DOT varvar',
  1049. 'indexdef ::= DOT varvar AT ID',
  1050. 'indexdef ::= DOT ID',
  1051. 'indexdef ::= DOT INTEGER',
  1052. 'indexdef ::= DOT LDEL expr RDEL',
  1053. 'indexdef ::= OPENB ID CLOSEB',
  1054. 'indexdef ::= OPENB ID DOT ID CLOSEB',
  1055. 'indexdef ::= OPENB SINGLEQUOTESTRING CLOSEB',
  1056. 'indexdef ::= OPENB INTEGER CLOSEB',
  1057. 'indexdef ::= OPENB DOLLARID CLOSEB',
  1058. 'indexdef ::= OPENB variable CLOSEB',
  1059. 'indexdef ::= OPENB value CLOSEB',
  1060. 'indexdef ::= OPENB expr CLOSEB',
  1061. 'indexdef ::= OPENB CLOSEB',
  1062. 'varvar ::= DOLLARID',
  1063. 'varvar ::= DOLLAR',
  1064. 'varvar ::= varvar varvarele',
  1065. 'varvarele ::= ID',
  1066. 'varvarele ::= SIMPELOUTPUT',
  1067. 'varvarele ::= LDEL expr RDEL',
  1068. 'object ::= varindexed objectchain',
  1069. 'objectchain ::= objectelement',
  1070. 'objectchain ::= objectchain objectelement',
  1071. 'objectelement ::= PTR ID arrayindex',
  1072. 'objectelement ::= PTR varvar arrayindex',
  1073. 'objectelement ::= PTR LDEL expr RDEL arrayindex',
  1074. 'objectelement ::= PTR ID LDEL expr RDEL arrayindex',
  1075. 'objectelement ::= PTR method',
  1076. 'function ::= ns1 OPENP params CLOSEP',
  1077. 'method ::= ID OPENP params CLOSEP',
  1078. 'method ::= DOLLARID OPENP params CLOSEP',
  1079. 'params ::= params COMMA expr',
  1080. 'params ::= expr',
  1081. 'params ::=',
  1082. 'modifierlist ::= modifierlist modifier modparameters',
  1083. 'modifierlist ::= modifier modparameters',
  1084. 'modifier ::= VERT AT ID',
  1085. 'modifier ::= VERT ID',
  1086. 'modparameters ::= modparameters modparameter',
  1087. 'modparameters ::=',
  1088. 'modparameter ::= COLON value',
  1089. 'modparameter ::= COLON array',
  1090. 'static_class_access ::= method',
  1091. 'static_class_access ::= method objectchain',
  1092. 'static_class_access ::= ID',
  1093. 'static_class_access ::= DOLLARID arrayindex',
  1094. 'static_class_access ::= DOLLARID arrayindex objectchain',
  1095. 'lop ::= LOGOP',
  1096. 'lop ::= SLOGOP',
  1097. 'tlop ::= TLOGOP',
  1098. 'scond ::= SINGLECOND',
  1099. 'array ::= OPENB arrayelements CLOSEB',
  1100. 'arrayelements ::= arrayelement',
  1101. 'arrayelements ::= arrayelements COMMA arrayelement',
  1102. 'arrayelements ::=',
  1103. 'arrayelement ::= value APTR expr',
  1104. 'arrayelement ::= ID APTR expr',
  1105. 'arrayelement ::= expr',
  1106. 'doublequoted_with_quotes ::= QUOTE QUOTE',
  1107. 'doublequoted_with_quotes ::= QUOTE doublequoted QUOTE',
  1108. 'doublequoted ::= doublequoted doublequotedcontent',
  1109. 'doublequoted ::= doublequotedcontent',
  1110. 'doublequotedcontent ::= BACKTICK variable BACKTICK',
  1111. 'doublequotedcontent ::= BACKTICK expr BACKTICK',
  1112. 'doublequotedcontent ::= DOLLARID',
  1113. 'doublequotedcontent ::= LDEL variable RDEL',
  1114. 'doublequotedcontent ::= LDEL expr RDEL',
  1115. 'doublequotedcontent ::= smartytag',
  1116. 'doublequotedcontent ::= TEXT',
  1117. );
  1118. public static $yyRuleInfo = array(
  1119. array(0 => 62, 1 => 1),
  1120. array(0 => 63, 1 => 2),
  1121. array(0 => 63, 1 => 2),
  1122. array(0 => 63, 1 => 2),
  1123. array(0 => 63, 1 => 2),
  1124. array(0 => 63, 1 => 4),
  1125. array(0 => 64, 1 => 4),
  1126. array(0 => 64, 1 => 1),
  1127. array(0 => 65, 1 => 2),
  1128. array(0 => 65, 1 => 0),
  1129. array(0 => 63, 1 => 2),
  1130. array(0 => 63, 1 => 0),
  1131. array(0 => 66, 1 => 1),
  1132. array(0 => 66, 1 => 1),
  1133. array(0 => 66, 1 => 1),
  1134. array(0 => 66, 1 => 3),
  1135. array(0 => 66, 1 => 2),
  1136. array(0 => 67, 1 => 1),
  1137. array(0 => 67, 1 => 2),
  1138. array(0 => 67, 1 => 2),
  1139. array(0 => 70, 1 => 2),
  1140. array(0 => 69, 1 => 2),
  1141. array(0 => 72, 1 => 1),
  1142. array(0 => 72, 1 => 1),
  1143. array(0 => 72, 1 => 1),
  1144. array(0 => 68, 1 => 3),
  1145. array(0 => 68, 1 => 2),
  1146. array(0 => 68, 1 => 4),
  1147. array(0 => 68, 1 => 5),
  1148. array(0 => 68, 1 => 6),
  1149. array(0 => 68, 1 => 2),
  1150. array(0 => 68, 1 => 2),
  1151. array(0 => 68, 1 => 3),
  1152. array(0 => 68, 1 => 2),
  1153. array(0 => 68, 1 => 3),
  1154. array(0 => 68, 1 => 8),
  1155. array(0 => 80, 1 => 2),
  1156. array(0 => 80, 1 => 1),
  1157. array(0 => 68, 1 => 5),
  1158. array(0 => 68, 1 => 7),
  1159. array(0 => 68, 1 => 6),
  1160. array(0 => 68, 1 => 8),
  1161. array(0 => 68, 1 => 2),
  1162. array(0 => 68, 1 => 3),
  1163. array(0 => 68, 1 => 4),
  1164. array(0 => 66, 1 => 1),
  1165. array(0 => 68, 1 => 2),
  1166. array(0 => 68, 1 => 3),
  1167. array(0 => 68, 1 => 4),
  1168. array(0 => 68, 1 => 5),
  1169. array(0 => 73, 1 => 2),
  1170. array(0 => 73, 1 => 1),
  1171. array(0 => 73, 1 => 0),
  1172. array(0 => 83, 1 => 4),
  1173. array(0 => 83, 1 => 2),
  1174. array(0 => 83, 1 => 2),
  1175. array(0 => 83, 1 => 2),
  1176. array(0 => 83, 1 => 2),
  1177. array(0 => 83, 1 => 2),
  1178. array(0 => 83, 1 => 4),
  1179. array(0 => 79, 1 => 1),
  1180. array(0 => 79, 1 => 3),
  1181. array(0 => 78, 1 => 3),
  1182. array(0 => 78, 1 => 3),
  1183. array(0 => 78, 1 => 3),
  1184. array(0 => 78, 1 => 3),
  1185. array(0 => 76, 1 => 1),
  1186. array(0 => 76, 1 => 1),
  1187. array(0 => 76, 1 => 3),
  1188. array(0 => 76, 1 => 3),
  1189. array(0 => 76, 1 => 3),
  1190. array(0 => 76, 1 => 1),
  1191. array(0 => 76, 1 => 2),
  1192. array(0 => 76, 1 => 3),
  1193. array(0 => 76, 1 => 3),
  1194. array(0 => 76, 1 => 2),
  1195. array(0 => 76, 1 => 3),
  1196. array(0 => 76, 1 => 3),
  1197. array(0 => 84, 1 => 7),
  1198. array(0 => 84, 1 => 7),
  1199. array(0 => 75, 1 => 1),
  1200. array(0 => 75, 1 => 2),
  1201. array(0 => 75, 1 => 2),
  1202. array(0 => 75, 1 => 2),
  1203. array(0 => 75, 1 => 2),
  1204. array(0 => 75, 1 => 1),
  1205. array(0 => 75, 1 => 1),
  1206. array(0 => 75, 1 => 3),
  1207. array(0 => 75, 1 => 2),
  1208. array(0 => 75, 1 => 2),
  1209. array(0 => 75, 1 => 1),
  1210. array(0 => 75, 1 => 1),
  1211. array(0 => 75, 1 => 3),
  1212. array(0 => 75, 1 => 3),
  1213. array(0 => 75, 1 => 3),
  1214. array(0 => 75, 1 => 1),
  1215. array(0 => 75, 1 => 1),
  1216. array(0 => 75, 1 => 3),
  1217. array(0 => 75, 1 => 1),
  1218. array(0 => 75, 1 => 2),
  1219. array(0 => 75, 1 => 1),
  1220. array(0 => 75, 1 => 3),
  1221. array(0 => 90, 1 => 1),
  1222. array(0 => 90, 1 => 1),
  1223. array(0 => 74, 1 => 1),
  1224. array(0 => 74, 1 => 1),
  1225. array(0 => 74, 1 => 3),
  1226. array(0 => 74, 1 => 1),
  1227. array(0 => 74, 1 => 3),
  1228. array(0 => 74, 1 => 4),
  1229. array(0 => 74, 1 => 3),
  1230. array(0 => 74, 1 => 4),
  1231. array(0 => 71, 1 => 2),
  1232. array(0 => 71, 1 => 2),
  1233. array(0 => 94, 1 => 2),
  1234. array(0 => 94, 1 => 0),
  1235. array(0 => 95, 1 => 2),
  1236. array(0 => 95, 1 => 2),
  1237. array(0 => 95, 1 => 4),
  1238. array(0 => 95, 1 => 2),
  1239. array(0 => 95, 1 => 2),
  1240. array(0 => 95, 1 => 4),
  1241. array(0 => 95, 1 => 3),
  1242. array(0 => 95, 1 => 5),
  1243. array(0 => 95, 1 => 3),
  1244. array(0 => 95, 1 => 3),
  1245. array(0 => 95, 1 => 3),
  1246. array(0 => 95, 1 => 3),
  1247. array(0 => 95, 1 => 3),
  1248. array(0 => 95, 1 => 3),
  1249. array(0 => 95, 1 => 2),
  1250. array(0 => 81, 1 => 1),
  1251. array(0 => 81, 1 => 1),
  1252. array(0 => 81, 1 => 2),
  1253. array(0 => 96, 1 => 1),
  1254. array(0 => 96, 1 => 1),
  1255. array(0 => 96, 1 => 3),
  1256. array(0 => 93, 1 => 2),
  1257. array(0 => 97, 1 => 1),
  1258. array(0 => 97, 1 => 2),
  1259. array(0 => 98, 1 => 3),
  1260. array(0 => 98, 1 => 3),
  1261. array(0 => 98, 1 => 5),
  1262. array(0 => 98, 1 => 6),
  1263. array(0 => 98, 1 => 2),
  1264. array(0 => 89, 1 => 4),
  1265. array(0 => 99, 1 => 4),
  1266. array(0 => 99, 1 => 4),
  1267. array(0 => 100, 1 => 3),
  1268. array(0 => 100, 1 => 1),
  1269. array(0 => 100, 1 => 0),
  1270. array(0 => 77, 1 => 3),
  1271. array(0 => 77, 1 => 2),
  1272. array(0 => 101, 1 => 3),
  1273. array(0 => 101, 1 => 2),
  1274. array(0 => 82, 1 => 2),
  1275. array(0 => 82, 1 => 0),
  1276. array(0 => 102, 1 => 2),
  1277. array(0 => 102, 1 => 2),
  1278. array(0 => 92, 1 => 1),
  1279. array(0 => 92, 1 => 2),
  1280. array(0 => 92, 1 => 1),
  1281. array(0 => 92, 1 => 2),
  1282. array(0 => 92, 1 => 3),
  1283. array(0 => 87, 1 => 1),
  1284. array(0 => 87, 1 => 1),
  1285. array(0 => 86, 1 => 1),
  1286. array(0 => 88, 1 => 1),
  1287. array(0 => 85, 1 => 3),
  1288. array(0 => 103, 1 => 1),
  1289. array(0 => 103, 1 => 3),
  1290. array(0 => 103, 1 => 0),
  1291. array(0 => 104, 1 => 3),
  1292. array(0 => 104, 1 => 3),
  1293. array(0 => 104, 1 => 1),
  1294. array(0 => 91, 1 => 2),
  1295. array(0 => 91, 1 => 3),
  1296. array(0 => 105, 1 => 2),
  1297. array(0 => 105, 1 => 1),
  1298. array(0 => 106, 1 => 3),
  1299. array(0 => 106, 1 => 3),
  1300. array(0 => 106, 1 => 1),
  1301. array(0 => 106, 1 => 3),
  1302. array(0 => 106, 1 => 3),
  1303. array(0 => 106, 1 => 1),
  1304. array(0 => 106, 1 => 1),
  1305. );
  1306. public static $yyReduceMap = array(
  1307. 0 => 0,
  1308. 1 => 1,
  1309. 2 => 2,
  1310. 3 => 3,
  1311. 4 => 4,
  1312. 5 => 5,
  1313. 6 => 6,
  1314. 7 => 7,
  1315. 22 => 7,
  1316. 23 => 7,
  1317. 24 => 7,
  1318. 37 => 7,
  1319. 57 => 7,
  1320. 58 => 7,
  1321. 66 => 7,
  1322. 67 => 7,
  1323. 71 => 7,
  1324. 80 => 7,
  1325. 85 => 7,
  1326. 86 => 7,
  1327. 91 => 7,
  1328. 95 => 7,
  1329. 96 => 7,
  1330. 100 => 7,
  1331. 102 => 7,
  1332. 107 => 7,
  1333. 169 => 7,
  1334. 174 => 7,
  1335. 8 => 8,
  1336. 9 => 9,
  1337. 10 => 10,
  1338. 12 => 12,
  1339. 13 => 13,
  1340. 14 => 14,
  1341. 15 => 15,
  1342. 16 => 16,
  1343. 17 => 17,
  1344. 18 => 18,
  1345. 19 => 19,
  1346. 20 => 20,
  1347. 21 => 21,
  1348. 25 => 25,
  1349. 26 => 26,
  1350. 27 => 27,
  1351. 28 => 28,
  1352. 29 => 29,
  1353. 30 => 30,
  1354. 31 => 31,
  1355. 32 => 32,
  1356. 34 => 32,
  1357. 33 => 33,
  1358. 35 => 35,
  1359. 36 => 36,
  1360. 38 => 38,
  1361. 39 => 39,
  1362. 40 => 40,
  1363. 41 => 41,
  1364. 42 => 42,
  1365. 43 => 43,
  1366. 44 => 44,
  1367. 45 => 45,
  1368. 46 => 46,
  1369. 47 => 47,
  1370. 48 => 48,
  1371. 49 => 49,
  1372. 50 => 50,
  1373. 51 => 51,
  1374. 60 => 51,
  1375. 149 => 51,
  1376. 153 => 51,
  1377. 157 => 51,
  1378. 158 => 51,
  1379. 52 => 52,
  1380. 150 => 52,
  1381. 156 => 52,
  1382. 53 => 53,
  1383. 54 => 54,
  1384. 55 => 54,
  1385. 56 => 56,
  1386. 134 => 56,
  1387. 59 => 59,
  1388. 61 => 61,
  1389. 62 => 62,
  1390. 63 => 62,
  1391. 64 => 64,
  1392. 65 => 65,
  1393. 68 => 68,
  1394. 69 => 69,
  1395. 70 => 69,
  1396. 72 => 72,
  1397. 99 => 72,
  1398. 73 => 73,
  1399. 74 => 74,
  1400. 75 => 75,
  1401. 76 => 76,
  1402. 77 => 77,
  1403. 78 => 78,
  1404. 79 => 79,
  1405. 81 => 81,
  1406. 83 => 81,
  1407. 84 => 81,
  1408. 114 => 81,
  1409. 82 => 82,
  1410. 87 => 87,
  1411. 88 => 88,
  1412. 89 => 89,
  1413. 90 => 90,
  1414. 92 => 92,
  1415. 93 => 93,
  1416. 94 => 93,
  1417. 97 => 97,
  1418. 98 => 98,
  1419. 101 => 101,
  1420. 103 => 103,
  1421. 104 => 104,
  1422. 105 => 105,
  1423. 106 => 106,
  1424. 108 => 108,
  1425. 109 => 109,
  1426. 110 => 110,
  1427. 111 => 111,
  1428. 112 => 112,
  1429. 113 => 113,
  1430. 115 => 115,
  1431. 171 => 115,
  1432. 116 => 116,
  1433. 117 => 117,
  1434. 118 => 118,
  1435. 119 => 119,
  1436. 120 => 120,
  1437. 121 => 121,
  1438. 129 => 121,
  1439. 122 => 122,
  1440. 123 => 123,
  1441. 124 => 124,
  1442. 125 => 124,
  1443. 127 => 124,
  1444. 128 => 124,
  1445. 126 => 126,
  1446. 130 => 130,
  1447. 131 => 131,
  1448. 132 => 132,
  1449. 175 => 132,
  1450. 133 => 133,
  1451. 135 => 135,
  1452. 136 => 136,
  1453. 137 => 137,
  1454. 138 => 138,
  1455. 139 => 139,
  1456. 140 => 140,
  1457. 141 => 141,
  1458. 142 => 142,
  1459. 143 => 143,
  1460. 144 => 144,
  1461. 145 => 145,
  1462. 146 => 146,
  1463. 147 => 147,
  1464. 148 => 148,
  1465. 151 => 151,
  1466. 152 => 152,
  1467. 154 => 154,
  1468. 155 => 155,
  1469. 159 => 159,
  1470. 160 => 160,
  1471. 161 => 161,
  1472. 162 => 162,
  1473. 163 => 163,
  1474. 164 => 164,
  1475. 165 => 165,
  1476. 166 => 166,
  1477. 167 => 167,
  1478. 168 => 168,
  1479. 170 => 170,
  1480. 172 => 172,
  1481. 173 => 173,
  1482. 176 => 176,
  1483. 177 => 177,
  1484. 178 => 178,
  1485. 179 => 179,
  1486. 182 => 179,
  1487. 180 => 180,
  1488. 183 => 180,
  1489. 181 => 181,
  1490. 184 => 184,
  1491. 185 => 185,
  1492. );
  1493. /**
  1494. * result status
  1495. *
  1496. * @var bool
  1497. */
  1498. public $successful = true;
  1499. /**
  1500. * return value
  1501. *
  1502. * @var mixed
  1503. */
  1504. public $retvalue = 0;
  1505. /**
  1506. * @var
  1507. */
  1508. public $yymajor;
  1509. /**
  1510. * last index of array variable
  1511. *
  1512. * @var mixed
  1513. */
  1514. public $last_index;
  1515. /**
  1516. * last variable name
  1517. *
  1518. * @var string
  1519. */
  1520. public $last_variable;
  1521. /**
  1522. * root parse tree buffer
  1523. *
  1524. * @var Smarty_Internal_ParseTree_Template
  1525. */
  1526. public $root_buffer;
  1527. /**
  1528. * current parse tree object
  1529. *
  1530. * @var Smarty_Internal_ParseTree
  1531. */
  1532. public $current_buffer;
  1533. /**
  1534. * lexer object
  1535. *
  1536. * @var Smarty_Internal_Templatelexer
  1537. */
  1538. public $lex;
  1539. /**
  1540. * {strip} status
  1541. *
  1542. * @var bool
  1543. */
  1544. public $strip = false;
  1545. /**
  1546. * compiler object
  1547. *
  1548. * @var Smarty_Internal_TemplateCompilerBase
  1549. */
  1550. public $compiler = null;
  1551. /**
  1552. * smarty object
  1553. *
  1554. * @var Smarty
  1555. */
  1556. public $smarty = null;
  1557. /**
  1558. * template object
  1559. *
  1560. * @var Smarty_Internal_Template
  1561. */
  1562. public $template = null;
  1563. /**
  1564. * block nesting level
  1565. *
  1566. * @var int
  1567. */
  1568. public $block_nesting_level = 0;
  1569. /**
  1570. * security object
  1571. *
  1572. * @var Smarty_Security
  1573. */
  1574. public $security = null;
  1575. /**
  1576. * template prefix array
  1577. *
  1578. * @var \Smarty_Internal_ParseTree[]
  1579. */
  1580. public $template_prefix = array();
  1581. /**
  1582. * template prefix array
  1583. *
  1584. * @var \Smarty_Internal_ParseTree[]
  1585. */
  1586. public $template_postfix = array();
  1587. public $yyTraceFILE;
  1588. public $yyTracePrompt;
  1589. public $yyidx;
  1590. public $yyerrcnt;
  1591. public $yystack = array();
  1592. public $yyTokenName = array(
  1593. '$', 'VERT', 'COLON', 'UNIMATH',
  1594. 'PHP', 'TEXT', 'STRIPON', 'STRIPOFF',
  1595. 'LITERALSTART', 'LITERALEND', 'LITERAL', 'SIMPELOUTPUT',
  1596. 'SIMPLETAG', 'SMARTYBLOCKCHILDPARENT', 'LDEL', 'RDEL',
  1597. 'DOLLARID', 'EQUAL', 'ID', 'PTR',
  1598. 'LDELMAKENOCACHE', 'LDELIF', 'LDELFOR', 'SEMICOLON',
  1599. 'INCDEC', 'TO', 'STEP', 'LDELFOREACH',
  1600. 'SPACE', 'AS', 'APTR', 'LDELSETFILTER',
  1601. 'CLOSETAG', 'LDELSLASH', 'ATTR', 'INTEGER',
  1602. 'COMMA', 'OPENP', 'CLOSEP', 'MATH',
  1603. 'ISIN', 'QMARK', 'NOT', 'TYPECAST',
  1604. 'HEX', 'DOT', 'INSTANCEOF', 'SINGLEQUOTESTRING',
  1605. 'DOUBLECOLON', 'NAMESPACE', 'AT', 'HATCH',
  1606. 'OPENB', 'CLOSEB', 'DOLLAR', 'LOGOP',
  1607. 'SLOGOP', 'TLOGOP', 'SINGLECOND', 'QUOTE',
  1608. 'BACKTICK', 'error', 'start', 'template',
  1609. 'literal_e2', 'literal_e1', 'smartytag', 'tagbody',
  1610. 'tag', 'outattr', 'eqoutattr', 'varindexed',
  1611. 'output', 'attributes', 'variable', 'value',
  1612. 'expr', 'modifierlist', 'statement', 'statements',
  1613. 'foraction', 'varvar', 'modparameters', 'attribute',
  1614. 'ternary', 'array', 'tlop', 'lop',
  1615. 'scond', 'function', 'ns1', 'doublequoted_with_quotes',
  1616. 'static_class_access', 'object', 'arrayindex', 'indexdef',
  1617. 'varvarele', 'objectchain', 'objectelement', 'method',
  1618. 'params', 'modifier', 'modparameter', 'arrayelements',
  1619. 'arrayelement', 'doublequoted', 'doublequotedcontent',
  1620. );
  1621. /**
  1622. * internal error flag
  1623. *
  1624. * @var bool
  1625. */
  1626. private $internalError = false; /* Index of top element in stack */
  1627. private $_retvalue; /* Shifts left before out of the error */
  1628. /**
  1629. * constructor
  1630. *
  1631. * @param Smarty_Internal_Templatelexer $lex
  1632. * @param Smarty_Internal_TemplateCompilerBase $compiler
  1633. */
  1634. public function __construct(Smarty_Internal_Templatelexer $lex, Smarty_Internal_TemplateCompilerBase $compiler)
  1635. {
  1636. $this->lex = $lex;
  1637. $this->compiler = $compiler;
  1638. $this->template = $this->compiler->template;
  1639. $this->smarty = $this->template->smarty;
  1640. $this->security = isset($this->smarty->security_policy) ? $this->smarty->security_policy : false;
  1641. $this->current_buffer = $this->root_buffer = new Smarty_Internal_ParseTree_Template();
  1642. } /* The parser's stack */
  1643. public static function yy_destructor($yymajor, $yypminor)
  1644. {
  1645. switch ($yymajor) {
  1646. default:
  1647. break; /* If no destructor action specified: do nothing */
  1648. }
  1649. }
  1650. /**
  1651. * insert PHP code in current buffer
  1652. *
  1653. * @param string $code
  1654. */
  1655. public function insertPhpCode($code)
  1656. {
  1657. $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Tag($this, $code));
  1658. }
  1659. /**
  1660. * error rundown
  1661. *
  1662. */
  1663. public function errorRunDown()
  1664. {
  1665. while ($this->yystack !== array()) {
  1666. $this->yy_pop_parser_stack();
  1667. }
  1668. if (is_resource($this->yyTraceFILE)) {
  1669. fclose($this->yyTraceFILE);
  1670. }
  1671. }
  1672. /**
  1673. * merge PHP code with prefix code and return parse tree tag object
  1674. *
  1675. * @param string $code
  1676. *
  1677. * @return Smarty_Internal_ParseTree_Tag
  1678. */
  1679. public function mergePrefixCode($code)
  1680. {
  1681. $tmp = '';
  1682. foreach ($this->compiler->prefix_code as $preCode) {
  1683. $tmp .= $preCode;
  1684. }
  1685. $this->compiler->prefix_code = array();
  1686. $tmp .= $code;
  1687. return new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp, true));
  1688. }
  1689. public function Trace($TraceFILE, $zTracePrompt)
  1690. {
  1691. if (!$TraceFILE) {
  1692. $zTracePrompt = 0;
  1693. } elseif (!$zTracePrompt) {
  1694. $TraceFILE = 0;
  1695. }
  1696. $this->yyTraceFILE = $TraceFILE;
  1697. $this->yyTracePrompt = $zTracePrompt;
  1698. }
  1699. public function PrintTrace()
  1700. {
  1701. $this->yyTraceFILE = fopen('php://output', 'w');
  1702. $this->yyTracePrompt = '<br>';
  1703. }
  1704. public function tokenName($tokenType)
  1705. {
  1706. if ($tokenType === 0) {
  1707. return 'End of Input';
  1708. }
  1709. if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) {
  1710. return $this->yyTokenName[ $tokenType ];
  1711. } else {
  1712. return 'Unknown';
  1713. }
  1714. }
  1715. public function yy_pop_parser_stack()
  1716. {
  1717. if (empty($this->yystack)) {
  1718. return;
  1719. }
  1720. $yytos = array_pop($this->yystack);
  1721. if ($this->yyTraceFILE && $this->yyidx >= 0) {
  1722. fwrite(
  1723. $this->yyTraceFILE,
  1724. $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[ $yytos->major ] .
  1725. "\n"
  1726. );
  1727. }
  1728. $yymajor = $yytos->major;
  1729. self::yy_destructor($yymajor, $yytos->minor);
  1730. $this->yyidx--;
  1731. return $yymajor;
  1732. }
  1733. public function __destruct()
  1734. {
  1735. while ($this->yystack !== array()) {
  1736. $this->yy_pop_parser_stack();
  1737. }
  1738. if (is_resource($this->yyTraceFILE)) {
  1739. fclose($this->yyTraceFILE);
  1740. }
  1741. }
  1742. public function yy_get_expected_tokens($token)
  1743. {
  1744. static $res3 = array();
  1745. static $res4 = array();
  1746. $state = $this->yystack[ $this->yyidx ]->stateno;
  1747. $expected = self::$yyExpectedTokens[ $state ];
  1748. if (isset($res3[ $state ][ $token ])) {
  1749. if ($res3[ $state ][ $token ]) {
  1750. return $expected;
  1751. }
  1752. } else {
  1753. if ($res3[ $state ][ $token ] = in_array($token, self::$yyExpectedTokens[ $state ], true)) {
  1754. return $expected;
  1755. }
  1756. }
  1757. $stack = $this->yystack;
  1758. $yyidx = $this->yyidx;
  1759. do {
  1760. $yyact = $this->yy_find_shift_action($token);
  1761. if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
  1762. // reduce action
  1763. $done = 0;
  1764. do {
  1765. if ($done++ === 100) {
  1766. $this->yyidx = $yyidx;
  1767. $this->yystack = $stack;
  1768. // too much recursion prevents proper detection
  1769. // so give up
  1770. return array_unique($expected);
  1771. }
  1772. $yyruleno = $yyact - self::YYNSTATE;
  1773. $this->yyidx -= self::$yyRuleInfo[ $yyruleno ][ 1 ];
  1774. $nextstate = $this->yy_find_reduce_action(
  1775. $this->yystack[ $this->yyidx ]->stateno,
  1776. self::$yyRuleInfo[ $yyruleno ][ 0 ]
  1777. );
  1778. if (isset(self::$yyExpectedTokens[ $nextstate ])) {
  1779. $expected = array_merge($expected, self::$yyExpectedTokens[ $nextstate ]);
  1780. if (isset($res4[ $nextstate ][ $token ])) {
  1781. if ($res4[ $nextstate ][ $token ]) {
  1782. $this->yyidx = $yyidx;
  1783. $this->yystack = $stack;
  1784. return array_unique($expected);
  1785. }
  1786. } else {
  1787. if ($res4[ $nextstate ][ $token ] =
  1788. in_array($token, self::$yyExpectedTokens[ $nextstate ], true)) {
  1789. $this->yyidx = $yyidx;
  1790. $this->yystack = $stack;
  1791. return array_unique($expected);
  1792. }
  1793. }
  1794. }
  1795. if ($nextstate < self::YYNSTATE) {
  1796. // we need to shift a non-terminal
  1797. $this->yyidx++;
  1798. $x = new TP_yyStackEntry;
  1799. $x->stateno = $nextstate;
  1800. $x->major = self::$yyRuleInfo[ $yyruleno ][ 0 ];
  1801. $this->yystack[ $this->yyidx ] = $x;
  1802. continue 2;
  1803. } elseif ($nextstate === self::YYNSTATE + self::YYNRULE + 1) {
  1804. $this->yyidx = $yyidx;
  1805. $this->yystack = $stack;
  1806. // the last token was just ignored, we can't accept
  1807. // by ignoring input, this is in essence ignoring a
  1808. // syntax error!
  1809. return array_unique($expected);
  1810. } elseif ($nextstate === self::YY_NO_ACTION) {
  1811. $this->yyidx = $yyidx;
  1812. $this->yystack = $stack;
  1813. // input accepted, but not shifted (I guess)
  1814. return $expected;
  1815. } else {
  1816. $yyact = $nextstate;
  1817. }
  1818. } while (true);
  1819. }
  1820. break;
  1821. } while (true);
  1822. $this->yyidx = $yyidx;
  1823. $this->yystack = $stack;
  1824. return array_unique($expected);
  1825. }
  1826. public function yy_is_expected_token($token)
  1827. {
  1828. static $res = array();
  1829. static $res2 = array();
  1830. if ($token === 0) {
  1831. return true; // 0 is not part of this
  1832. }
  1833. $state = $this->yystack[ $this->yyidx ]->stateno;
  1834. if (isset($res[ $state ][ $token ])) {
  1835. if ($res[ $state ][ $token ]) {
  1836. return true;
  1837. }
  1838. } else {
  1839. if ($res[ $state ][ $token ] = in_array($token, self::$yyExpectedTokens[ $state ], true)) {
  1840. return true;
  1841. }
  1842. }
  1843. $stack = $this->yystack;
  1844. $yyidx = $this->yyidx;
  1845. do {
  1846. $yyact = $this->yy_find_shift_action($token);
  1847. if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
  1848. // reduce action
  1849. $done = 0;
  1850. do {
  1851. if ($done++ === 100) {
  1852. $this->yyidx = $yyidx;
  1853. $this->yystack = $stack;
  1854. // too much recursion prevents proper detection
  1855. // so give up
  1856. return true;
  1857. }
  1858. $yyruleno = $yyact - self::YYNSTATE;
  1859. $this->yyidx -= self::$yyRuleInfo[ $yyruleno ][ 1 ];
  1860. $nextstate = $this->yy_find_reduce_action(
  1861. $this->yystack[ $this->yyidx ]->stateno,
  1862. self::$yyRuleInfo[ $yyruleno ][ 0 ]
  1863. );
  1864. if (isset($res2[ $nextstate ][ $token ])) {
  1865. if ($res2[ $nextstate ][ $token ]) {
  1866. $this->yyidx = $yyidx;
  1867. $this->yystack = $stack;
  1868. return true;
  1869. }
  1870. } else {
  1871. if ($res2[ $nextstate ][ $token ] =
  1872. (isset(self::$yyExpectedTokens[ $nextstate ]) &&
  1873. in_array($token, self::$yyExpectedTokens[ $nextstate ], true))) {
  1874. $this->yyidx = $yyidx;
  1875. $this->yystack = $stack;
  1876. return true;
  1877. }
  1878. }
  1879. if ($nextstate < self::YYNSTATE) {
  1880. // we need to shift a non-terminal
  1881. $this->yyidx++;
  1882. $x = new TP_yyStackEntry;
  1883. $x->stateno = $nextstate;
  1884. $x->major = self::$yyRuleInfo[ $yyruleno ][ 0 ];
  1885. $this->yystack[ $this->yyidx ] = $x;
  1886. continue 2;
  1887. } elseif ($nextstate === self::YYNSTATE + self::YYNRULE + 1) {
  1888. $this->yyidx = $yyidx;
  1889. $this->yystack = $stack;
  1890. if (!$token) {
  1891. // end of input: this is valid
  1892. return true;
  1893. }
  1894. // the last token was just ignored, we can't accept
  1895. // by ignoring input, this is in essence ignoring a
  1896. // syntax error!
  1897. return false;
  1898. } elseif ($nextstate === self::YY_NO_ACTION) {
  1899. $this->yyidx = $yyidx;
  1900. $this->yystack = $stack;
  1901. // input accepted, but not shifted (I guess)
  1902. return true;
  1903. } else {
  1904. $yyact = $nextstate;
  1905. }
  1906. } while (true);
  1907. }
  1908. break;
  1909. } while (true);
  1910. $this->yyidx = $yyidx;
  1911. $this->yystack = $stack;
  1912. return true;
  1913. }
  1914. public function yy_find_shift_action($iLookAhead)
  1915. {
  1916. $stateno = $this->yystack[ $this->yyidx ]->stateno;
  1917. /* if ($this->yyidx < 0) return self::YY_NO_ACTION; */
  1918. if (!isset(self::$yy_shift_ofst[ $stateno ])) {
  1919. // no shift actions
  1920. return self::$yy_default[ $stateno ];
  1921. }
  1922. $i = self::$yy_shift_ofst[ $stateno ];
  1923. if ($i === self::YY_SHIFT_USE_DFLT) {
  1924. return self::$yy_default[ $stateno ];
  1925. }
  1926. if ($iLookAhead === self::YYNOCODE) {
  1927. return self::YY_NO_ACTION;
  1928. }
  1929. $i += $iLookAhead;
  1930. if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
  1931. self::$yy_lookahead[ $i ] != $iLookAhead) {
  1932. if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
  1933. && ($iFallback = self::$yyFallback[ $iLookAhead ]) != 0) {
  1934. if ($this->yyTraceFILE) {
  1935. fwrite($this->yyTraceFILE, $this->yyTracePrompt . 'FALLBACK ' .
  1936. $this->yyTokenName[ $iLookAhead ] . ' => ' .
  1937. $this->yyTokenName[ $iFallback ] . "\n");
  1938. }
  1939. return $this->yy_find_shift_action($iFallback);
  1940. }
  1941. return self::$yy_default[ $stateno ];
  1942. } else {
  1943. return self::$yy_action[ $i ];
  1944. }
  1945. }
  1946. public function yy_find_reduce_action($stateno, $iLookAhead)
  1947. {
  1948. /* $stateno = $this->yystack[$this->yyidx]->stateno; */
  1949. if (!isset(self::$yy_reduce_ofst[ $stateno ])) {
  1950. return self::$yy_default[ $stateno ];
  1951. }
  1952. $i = self::$yy_reduce_ofst[ $stateno ];
  1953. if ($i === self::YY_REDUCE_USE_DFLT) {
  1954. return self::$yy_default[ $stateno ];
  1955. }
  1956. if ($iLookAhead === self::YYNOCODE) {
  1957. return self::YY_NO_ACTION;
  1958. }
  1959. $i += $iLookAhead;
  1960. if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
  1961. self::$yy_lookahead[ $i ] != $iLookAhead) {
  1962. return self::$yy_default[ $stateno ];
  1963. } else {
  1964. return self::$yy_action[ $i ];
  1965. }
  1966. }
  1967. // line 234 "../smarty/lexer/smarty_internal_templateparser.y"
  1968. public function yy_shift($yyNewState, $yyMajor, $yypMinor)
  1969. {
  1970. $this->yyidx++;
  1971. if ($this->yyidx >= self::YYSTACKDEPTH) {
  1972. $this->yyidx--;
  1973. if ($this->yyTraceFILE) {
  1974. fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt);
  1975. }
  1976. while ($this->yyidx >= 0) {
  1977. $this->yy_pop_parser_stack();
  1978. }
  1979. // line 221 "../smarty/lexer/smarty_internal_templateparser.y"
  1980. $this->internalError = true;
  1981. $this->compiler->trigger_template_error('Stack overflow in template parser');
  1982. return;
  1983. }
  1984. $yytos = new TP_yyStackEntry;
  1985. $yytos->stateno = $yyNewState;
  1986. $yytos->major = $yyMajor;
  1987. $yytos->minor = $yypMinor;
  1988. $this->yystack[] = $yytos;
  1989. if ($this->yyTraceFILE && $this->yyidx > 0) {
  1990. fprintf(
  1991. $this->yyTraceFILE,
  1992. "%sShift %d\n",
  1993. $this->yyTracePrompt,
  1994. $yyNewState
  1995. );
  1996. fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt);
  1997. for ($i = 1; $i <= $this->yyidx; $i++) {
  1998. fprintf(
  1999. $this->yyTraceFILE,
  2000. " %s",
  2001. $this->yyTokenName[ $this->yystack[ $i ]->major ]
  2002. );
  2003. }
  2004. fwrite($this->yyTraceFILE, "\n");
  2005. }
  2006. }
  2007. // line 242 "../smarty/lexer/smarty_internal_templateparser.y"
  2008. public function yy_r0()
  2009. {
  2010. $this->root_buffer->prepend_array($this, $this->template_prefix);
  2011. $this->root_buffer->append_array($this, $this->template_postfix);
  2012. $this->_retvalue = $this->root_buffer->to_smarty_php($this);
  2013. }
  2014. // line 251 "../smarty/lexer/smarty_internal_templateparser.y"
  2015. public function yy_r1()
  2016. {
  2017. $code =
  2018. $this->compiler->compileTag('private_php',
  2019. array(array('code' => $this->yystack[ $this->yyidx + 0 ]->minor), array('type' => $this->lex->phpType)),
  2020. array());
  2021. if ($this->compiler->has_code && !empty($code)) {
  2022. $tmp = '';
  2023. foreach ($this->compiler->prefix_code as $code) {
  2024. $tmp .= $code;
  2025. }
  2026. $this->compiler->prefix_code = array();
  2027. $this->current_buffer->append_subtree($this,
  2028. new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp . $code, true)));
  2029. }
  2030. }
  2031. // line 255 "../smarty/lexer/smarty_internal_templateparser.y"
  2032. public function yy_r2()
  2033. {
  2034. $this->current_buffer->append_subtree($this,
  2035. $this->compiler->processText($this->yystack[ $this->yyidx + 0 ]->minor));
  2036. }
  2037. // line 259 "../smarty/lexer/smarty_internal_templateparser.y"
  2038. public function yy_r3()
  2039. {
  2040. $this->strip = true;
  2041. }
  2042. // line 264 "../smarty/lexer/smarty_internal_templateparser.y"
  2043. public function yy_r4()
  2044. {
  2045. $this->strip = false;
  2046. }
  2047. // line 269 "../smarty/lexer/smarty_internal_templateparser.y"
  2048. public function yy_r5()
  2049. {
  2050. $this->current_buffer->append_subtree($this,
  2051. new Smarty_Internal_ParseTree_Text($this->yystack[ $this->yyidx + -1 ]->minor));
  2052. }
  2053. // line 272 "../smarty/lexer/smarty_internal_templateparser.y"
  2054. public function yy_r6()
  2055. {
  2056. $this->_retvalue = $this->yystack[ $this->yyidx + -3 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor;
  2057. }
  2058. // line 276 "../smarty/lexer/smarty_internal_templateparser.y"
  2059. public function yy_r7()
  2060. {
  2061. $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
  2062. }
  2063. // line 281 "../smarty/lexer/smarty_internal_templateparser.y"
  2064. public function yy_r8()
  2065. {
  2066. $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
  2067. }
  2068. // line 285 "../smarty/lexer/smarty_internal_templateparser.y"
  2069. public function yy_r9()
  2070. {
  2071. $this->_retvalue = '';
  2072. }
  2073. // line 297 "../smarty/lexer/smarty_internal_templateparser.y"
  2074. public function yy_r10()
  2075. {
  2076. if ($this->compiler->has_code) {
  2077. $this->current_buffer->append_subtree($this,
  2078. $this->mergePrefixCode($this->yystack[ $this->yyidx + 0 ]->minor));
  2079. }
  2080. $this->compiler->has_variable_string = false;
  2081. $this->block_nesting_level = count($this->compiler->_tag_stack);
  2082. }
  2083. // line 307 "../smarty/lexer/smarty_internal_templateparser.y"
  2084. public function yy_r12()
  2085. {
  2086. $var =
  2087. trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
  2088. -$this->compiler->getRdelLength()), ' $');
  2089. if (preg_match('/^(.*)(\s+nocache)$/', $var, $match)) {
  2090. $this->_retvalue =
  2091. $this->compiler->compileTag('private_print_expression', array('nocache'),
  2092. array('value' => $this->compiler->compileVariable('\'' . $match[ 1 ] . '\'')));
  2093. } else {
  2094. $this->_retvalue =
  2095. $this->compiler->compileTag('private_print_expression', array(),
  2096. array('value' => $this->compiler->compileVariable('\'' . $var . '\'')));
  2097. }
  2098. }
  2099. // line 328 "../smarty/lexer/smarty_internal_templateparser.y"
  2100. public function yy_r13()
  2101. {
  2102. $tag =
  2103. trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
  2104. -$this->compiler->getRdelLength()));
  2105. if ($tag == 'strip') {
  2106. $this->strip = true;
  2107. $this->_retvalue = null;;
  2108. } else {
  2109. if (defined($tag)) {
  2110. if ($this->security) {
  2111. $this->security->isTrustedConstant($tag, $this->compiler);
  2112. }
  2113. $this->_retvalue =
  2114. $this->compiler->compileTag('private_print_expression', array(), array('value' => $tag));
  2115. } else {
  2116. if (preg_match('/^(.*)(\s+nocache)$/', $tag, $match)) {
  2117. $this->_retvalue = $this->compiler->compileTag($match[ 1 ], array('\'nocache\''));
  2118. } else {
  2119. $this->_retvalue = $this->compiler->compileTag($tag, array());
  2120. }
  2121. }
  2122. }
  2123. }
  2124. // line 339 "../smarty/lexer/smarty_internal_templateparser.y"
  2125. public function yy_r14()
  2126. {
  2127. $j = strrpos($this->yystack[ $this->yyidx + 0 ]->minor, '.');
  2128. if ($this->yystack[ $this->yyidx + 0 ]->minor[ $j + 1 ] == 'c') {
  2129. // {$smarty.block.child}
  2130. $this->_retvalue =
  2131. $this->compiler->compileTag('child', array(), array($this->yystack[ $this->yyidx + 0 ]->minor));
  2132. } else {
  2133. // {$smarty.block.parent}
  2134. $this->_retvalue =
  2135. $this->compiler->compileTag('parent', array(), array($this->yystack[ $this->yyidx + 0 ]->minor));
  2136. }
  2137. }
  2138. // line 343 "../smarty/lexer/smarty_internal_templateparser.y"
  2139. public function yy_r15()
  2140. {
  2141. $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
  2142. }
  2143. // line 347 "../smarty/lexer/smarty_internal_templateparser.y"
  2144. public function yy_r16()
  2145. {
  2146. $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
  2147. }
  2148. // line 356 "../smarty/lexer/smarty_internal_templateparser.y"
  2149. public function yy_r17()
  2150. {
  2151. $this->_retvalue =
  2152. $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ],
  2153. array('value' => $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ]));
  2154. }
  2155. // line 360 "../smarty/lexer/smarty_internal_templateparser.y"
  2156. public function yy_r18()
  2157. {
  2158. $this->_retvalue =
  2159. $this->compiler->compileTag('assign', array_merge(array(
  2160. array('value' => $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ]),
  2161. array('var' => '\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'')
  2162. ), $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ]));
  2163. }
  2164. // line 364 "../smarty/lexer/smarty_internal_templateparser.y"
  2165. public function yy_r19()
  2166. {
  2167. $this->_retvalue =
  2168. $this->compiler->compileTag('assign', array_merge(array(
  2169. array('value' => $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ]),
  2170. array('var' => $this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ])
  2171. ), $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ]), array(
  2172. 'smarty_internal_index' => $this->yystack[ $this->yyidx +
  2173. -1 ]->minor[ 'smarty_internal_index' ]
  2174. ));
  2175. }
  2176. // line 368 "../smarty/lexer/smarty_internal_templateparser.y"
  2177. public function yy_r20()
  2178. {
  2179. $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
  2180. }
  2181. // line 383 "../smarty/lexer/smarty_internal_templateparser.y"
  2182. public function yy_r21()
  2183. {
  2184. $this->_retvalue = array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor);
  2185. }
  2186. // line 393 "../smarty/lexer/smarty_internal_templateparser.y"
  2187. public function yy_r25()
  2188. {
  2189. if (defined($this->yystack[ $this->yyidx + -1 ]->minor)) {
  2190. if ($this->security) {
  2191. $this->security->isTrustedConstant($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler);
  2192. }
  2193. $this->_retvalue =
  2194. $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor,
  2195. array('value' => $this->yystack[ $this->yyidx + -1 ]->minor));
  2196. } else {
  2197. $this->_retvalue =
  2198. $this->compiler->compileTag($this->yystack[ $this->yyidx + -1 ]->minor,
  2199. $this->yystack[ $this->yyidx + 0 ]->minor);
  2200. }
  2201. }
  2202. // line 406 "../smarty/lexer/smarty_internal_templateparser.y"
  2203. public function yy_r26()
  2204. {
  2205. if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
  2206. if ($this->security) {
  2207. $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
  2208. }
  2209. $this->_retvalue =
  2210. $this->compiler->compileTag('private_print_expression', array(),
  2211. array('value' => $this->yystack[ $this->yyidx + 0 ]->minor));
  2212. } else {
  2213. $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor, array());
  2214. }
  2215. }
  2216. // line 418 "../smarty/lexer/smarty_internal_templateparser.y"
  2217. public function yy_r27()
  2218. {
  2219. if (defined($this->yystack[ $this->yyidx + -2 ]->minor)) {
  2220. if ($this->security) {
  2221. $this->security->isTrustedConstant($this->yystack[ $this->yyidx + -2 ]->minor, $this->compiler);
  2222. }
  2223. $this->_retvalue =
  2224. $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor,
  2225. array(
  2226. 'value' => $this->yystack[ $this->yyidx + -2 ]->minor,
  2227. 'modifierlist' => $this->yystack[ $this->yyidx + -1 ]->minor
  2228. ));
  2229. } else {
  2230. $this->_retvalue =
  2231. $this->compiler->compileTag($this->yystack[ $this->yyidx + -2 ]->minor,
  2232. $this->yystack[ $this->yyidx + 0 ]->minor,
  2233. array('modifierlist' => $this->yystack[ $this->yyidx + -1 ]->minor));
  2234. }
  2235. }
  2236. // line 423 "../smarty/lexer/smarty_internal_templateparser.y"
  2237. public function yy_r28()
  2238. {
  2239. $this->_retvalue =
  2240. $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor,
  2241. $this->yystack[ $this->yyidx + 0 ]->minor,
  2242. array('object_method' => $this->yystack[ $this->yyidx + -1 ]->minor));
  2243. }
  2244. // line 428 "../smarty/lexer/smarty_internal_templateparser.y"
  2245. public function yy_r29()
  2246. {
  2247. $this->_retvalue =
  2248. $this->compiler->compileTag($this->yystack[ $this->yyidx + -4 ]->minor,
  2249. $this->yystack[ $this->yyidx + 0 ]->minor, array(
  2250. 'modifierlist' => $this->yystack[ $this->yyidx + -1 ]->minor,
  2251. 'object_method' => $this->yystack[ $this->yyidx + -2 ]->minor
  2252. ));
  2253. }
  2254. // line 433 "../smarty/lexer/smarty_internal_templateparser.y"
  2255. public function yy_r30()
  2256. {
  2257. $this->_retvalue =
  2258. $this->compiler->compileTag('make_nocache',
  2259. array(array('var' => '\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'')));
  2260. }
  2261. // line 438 "../smarty/lexer/smarty_internal_templateparser.y"
  2262. public function yy_r31()
  2263. {
  2264. $tag = trim(substr($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler->getLdelLength()));
  2265. $this->_retvalue =
  2266. $this->compiler->compileTag(($tag === 'else if') ? 'elseif' : $tag, array(),
  2267. array('if condition' => $this->yystack[ $this->yyidx + 0 ]->minor));
  2268. }
  2269. // line 443 "../smarty/lexer/smarty_internal_templateparser.y"
  2270. public function yy_r32()
  2271. {
  2272. $tag = trim(substr($this->yystack[ $this->yyidx + -2 ]->minor, $this->compiler->getLdelLength()));
  2273. $this->_retvalue =
  2274. $this->compiler->compileTag(($tag === 'else if') ? 'elseif' : $tag,
  2275. $this->yystack[ $this->yyidx + 0 ]->minor,
  2276. array('if condition' => $this->yystack[ $this->yyidx + -1 ]->minor));
  2277. }
  2278. // line 454 "../smarty/lexer/smarty_internal_templateparser.y"
  2279. public function yy_r33()
  2280. {
  2281. $tag = trim(substr($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler->getLdelLength()));
  2282. $this->_retvalue =
  2283. $this->compiler->compileTag(($tag === 'else if') ? 'elseif' : $tag, array(),
  2284. array('if condition' => $this->yystack[ $this->yyidx + 0 ]->minor));
  2285. }
  2286. // line 458 "../smarty/lexer/smarty_internal_templateparser.y"
  2287. public function yy_r35()
  2288. {
  2289. $this->_retvalue =
  2290. $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
  2291. array('start' => $this->yystack[ $this->yyidx + -6 ]->minor),
  2292. array('ifexp' => $this->yystack[ $this->yyidx + -4 ]->minor),
  2293. array('var' => $this->yystack[ $this->yyidx + -2 ]->minor),
  2294. array('step' => $this->yystack[ $this->yyidx + -1 ]->minor)
  2295. )), 1);
  2296. }
  2297. // line 466 "../smarty/lexer/smarty_internal_templateparser.y"
  2298. public function yy_r36()
  2299. {
  2300. $this->_retvalue = '=' . $this->yystack[ $this->yyidx + 0 ]->minor;
  2301. }
  2302. // line 470 "../smarty/lexer/smarty_internal_templateparser.y"
  2303. public function yy_r38()
  2304. {
  2305. $this->_retvalue =
  2306. $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
  2307. array('start' => $this->yystack[ $this->yyidx + -3 ]->minor),
  2308. array('to' => $this->yystack[ $this->yyidx + -1 ]->minor)
  2309. )), 0);
  2310. }
  2311. // line 475 "../smarty/lexer/smarty_internal_templateparser.y"
  2312. public function yy_r39()
  2313. {
  2314. $this->_retvalue =
  2315. $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
  2316. array('start' => $this->yystack[ $this->yyidx + -5 ]->minor),
  2317. array('to' => $this->yystack[ $this->yyidx + -3 ]->minor),
  2318. array('step' => $this->yystack[ $this->yyidx + -1 ]->minor)
  2319. )), 0);
  2320. }
  2321. // line 479 "../smarty/lexer/smarty_internal_templateparser.y"
  2322. public function yy_r40()
  2323. {
  2324. $this->_retvalue =
  2325. $this->compiler->compileTag('foreach', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
  2326. array('from' => $this->yystack[ $this->yyidx + -3 ]->minor),
  2327. array('item' => $this->yystack[ $this->yyidx + -1 ]->minor)
  2328. )));
  2329. }
  2330. // line 482 "../smarty/lexer/smarty_internal_templateparser.y"
  2331. public function yy_r41()
  2332. {
  2333. $this->_retvalue =
  2334. $this->compiler->compileTag('foreach', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
  2335. array('from' => $this->yystack[ $this->yyidx + -5 ]->minor),
  2336. array('item' => $this->yystack[ $this->yyidx + -1 ]->minor),
  2337. array('key' => $this->yystack[ $this->yyidx + -3 ]->minor)
  2338. )));
  2339. }
  2340. // line 487 "../smarty/lexer/smarty_internal_templateparser.y"
  2341. public function yy_r42()
  2342. {
  2343. $this->_retvalue = $this->compiler->compileTag('foreach', $this->yystack[ $this->yyidx + 0 ]->minor);
  2344. }
  2345. // line 491 "../smarty/lexer/smarty_internal_templateparser.y"
  2346. public function yy_r43()
  2347. {
  2348. $this->_retvalue =
  2349. $this->compiler->compileTag('setfilter', array(), array(
  2350. 'modifier_list' => array(
  2351. array_merge(array($this->yystack[ $this->yyidx + -1 ]->minor),
  2352. $this->yystack[ $this->yyidx + 0 ]->minor)
  2353. )
  2354. ));
  2355. }
  2356. // line 497 "../smarty/lexer/smarty_internal_templateparser.y"
  2357. public function yy_r44()
  2358. {
  2359. $this->_retvalue =
  2360. $this->compiler->compileTag('setfilter', array(), array(
  2361. 'modifier_list' => array_merge(array(
  2362. array_merge(array(
  2363. $this->yystack[ $this->yyidx +
  2364. -2 ]->minor
  2365. ), $this->yystack[ $this->yyidx + -1 ]->minor)
  2366. ), $this->yystack[ $this->yyidx + 0 ]->minor)
  2367. ));
  2368. }
  2369. // line 506 "../smarty/lexer/smarty_internal_templateparser.y"
  2370. public function yy_r45()
  2371. {
  2372. $tag =
  2373. trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
  2374. -$this->compiler->getRdelLength()), ' /');
  2375. if ($tag === 'strip') {
  2376. $this->strip = false;
  2377. $this->_retvalue = null;
  2378. } else {
  2379. $this->_retvalue = $this->compiler->compileTag($tag . 'close', array());
  2380. }
  2381. }
  2382. // line 510 "../smarty/lexer/smarty_internal_templateparser.y"
  2383. public function yy_r46()
  2384. {
  2385. $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor . 'close', array());
  2386. }
  2387. // line 515 "../smarty/lexer/smarty_internal_templateparser.y"
  2388. public function yy_r47()
  2389. {
  2390. $this->_retvalue =
  2391. $this->compiler->compileTag($this->yystack[ $this->yyidx + -1 ]->minor . 'close', array(),
  2392. array('modifier_list' => $this->yystack[ $this->yyidx + 0 ]->minor));
  2393. }
  2394. // line 519 "../smarty/lexer/smarty_internal_templateparser.y"
  2395. public function yy_r48()
  2396. {
  2397. $this->_retvalue =
  2398. $this->compiler->compileTag($this->yystack[ $this->yyidx + -2 ]->minor . 'close', array(),
  2399. array('object_method' => $this->yystack[ $this->yyidx + 0 ]->minor));
  2400. }
  2401. // line 527 "../smarty/lexer/smarty_internal_templateparser.y"
  2402. public function yy_r49()
  2403. {
  2404. $this->_retvalue =
  2405. $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor . 'close', array(), array(
  2406. 'object_method' => $this->yystack[ $this->yyidx + -1 ]->minor,
  2407. 'modifier_list' => $this->yystack[ $this->yyidx + 0 ]->minor
  2408. ));
  2409. }
  2410. // line 533 "../smarty/lexer/smarty_internal_templateparser.y"
  2411. public function yy_r50()
  2412. {
  2413. $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
  2414. $this->_retvalue[] = $this->yystack[ $this->yyidx + 0 ]->minor;
  2415. }
  2416. // line 538 "../smarty/lexer/smarty_internal_templateparser.y"
  2417. public function yy_r51()
  2418. {
  2419. $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor);
  2420. }
  2421. // line 543 "../smarty/lexer/smarty_internal_templateparser.y"
  2422. public function yy_r52()
  2423. {
  2424. $this->_retvalue = array();
  2425. }
  2426. // line 554 "../smarty/lexer/smarty_internal_templateparser.y"
  2427. public function yy_r53()
  2428. {
  2429. if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
  2430. if ($this->security) {
  2431. $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
  2432. }
  2433. $this->_retvalue =
  2434. array($this->yystack[ $this->yyidx + -2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor);
  2435. } else {
  2436. $this->_retvalue =
  2437. array(
  2438. $this->yystack[ $this->yyidx + -2 ]->minor => '\'' .
  2439. $this->yystack[ $this->yyidx + 0 ]->minor .
  2440. '\''
  2441. );
  2442. }
  2443. }
  2444. // line 562 "../smarty/lexer/smarty_internal_templateparser.y"
  2445. public function yy_r54()
  2446. {
  2447. $this->_retvalue =
  2448. array(
  2449. trim($this->yystack[ $this->yyidx + -1 ]->minor, " =\n\r\t") => $this->yystack[ $this->yyidx +
  2450. 0 ]->minor
  2451. );
  2452. }
  2453. // line 574 "../smarty/lexer/smarty_internal_templateparser.y"
  2454. public function yy_r56()
  2455. {
  2456. $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\'';
  2457. }
  2458. // line 587 "../smarty/lexer/smarty_internal_templateparser.y"
  2459. public function yy_r59()
  2460. {
  2461. $this->_retvalue =
  2462. array($this->yystack[ $this->yyidx + -2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor);
  2463. }
  2464. // line 592 "../smarty/lexer/smarty_internal_templateparser.y"
  2465. public function yy_r61()
  2466. {
  2467. $this->yystack[ $this->yyidx + -2 ]->minor[] = $this->yystack[ $this->yyidx + 0 ]->minor;
  2468. $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor;
  2469. }
  2470. // line 599 "../smarty/lexer/smarty_internal_templateparser.y"
  2471. public function yy_r62()
  2472. {
  2473. $this->_retvalue =
  2474. array(
  2475. 'var' => '\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '\'',
  2476. 'value' => $this->yystack[ $this->yyidx + 0 ]->minor
  2477. );
  2478. }
  2479. // line 603 "../smarty/lexer/smarty_internal_templateparser.y"
  2480. public function yy_r64()
  2481. {
  2482. $this->_retvalue =
  2483. array(
  2484. 'var' => $this->yystack[ $this->yyidx + -2 ]->minor,
  2485. 'value' => $this->yystack[ $this->yyidx + 0 ]->minor
  2486. );
  2487. }
  2488. // line 623 "../smarty/lexer/smarty_internal_templateparser.y"
  2489. public function yy_r65()
  2490. {
  2491. $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
  2492. }
  2493. // line 628 "../smarty/lexer/smarty_internal_templateparser.y"
  2494. public function yy_r68()
  2495. {
  2496. $this->_retvalue =
  2497. '$_smarty_tpl->getStreamVariable(\'' .
  2498. substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) .
  2499. '://' .
  2500. $this->yystack[ $this->yyidx + 0 ]->minor .
  2501. '\')';
  2502. }
  2503. // line 642 "../smarty/lexer/smarty_internal_templateparser.y"
  2504. public function yy_r69()
  2505. {
  2506. $this->_retvalue =
  2507. $this->yystack[ $this->yyidx + -2 ]->minor .
  2508. trim($this->yystack[ $this->yyidx + -1 ]->minor) .
  2509. $this->yystack[ $this->yyidx + 0 ]->minor;
  2510. }
  2511. // line 648 "../smarty/lexer/smarty_internal_templateparser.y"
  2512. public function yy_r72()
  2513. {
  2514. $this->_retvalue =
  2515. $this->compiler->compileTag('private_modifier', array(), array(
  2516. 'value' => $this->yystack[ $this->yyidx + -1 ]->minor,
  2517. 'modifierlist' => $this->yystack[ $this->yyidx + 0 ]->minor
  2518. ));
  2519. }
  2520. // line 652 "../smarty/lexer/smarty_internal_templateparser.y"
  2521. public function yy_r73()
  2522. {
  2523. $this->_retvalue =
  2524. $this->yystack[ $this->yyidx + -1 ]->minor[ 'pre' ] .
  2525. $this->yystack[ $this->yyidx + -2 ]->minor .
  2526. $this->yystack[ $this->yyidx + -1 ]->minor[ 'op' ] .
  2527. $this->yystack[ $this->yyidx + 0 ]->minor .
  2528. ')';
  2529. }
  2530. // line 656 "../smarty/lexer/smarty_internal_templateparser.y"
  2531. public function yy_r74()
  2532. {
  2533. $this->_retvalue =
  2534. $this->yystack[ $this->yyidx + -2 ]->minor .
  2535. $this->yystack[ $this->yyidx + -1 ]->minor .
  2536. $this->yystack[ $this->yyidx + 0 ]->minor;
  2537. }
  2538. // line 660 "../smarty/lexer/smarty_internal_templateparser.y"
  2539. public function yy_r75()
  2540. {
  2541. $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
  2542. }
  2543. // line 664 "../smarty/lexer/smarty_internal_templateparser.y"
  2544. public function yy_r76()
  2545. {
  2546. $this->_retvalue =
  2547. 'in_array(' .
  2548. $this->yystack[ $this->yyidx + -2 ]->minor .
  2549. ',' .
  2550. $this->yystack[ $this->yyidx + 0 ]->minor .
  2551. ')';
  2552. }
  2553. // line 672 "../smarty/lexer/smarty_internal_templateparser.y"
  2554. public function yy_r77()
  2555. {
  2556. $this->_retvalue =
  2557. 'in_array(' .
  2558. $this->yystack[ $this->yyidx + -2 ]->minor .
  2559. ',(array)' .
  2560. $this->yystack[ $this->yyidx + 0 ]->minor .
  2561. ')';
  2562. }
  2563. // line 676 "../smarty/lexer/smarty_internal_templateparser.y"
  2564. public function yy_r78()
  2565. {
  2566. $this->_retvalue =
  2567. $this->yystack[ $this->yyidx + -5 ]->minor .
  2568. ' ? ' .
  2569. $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '\'') .
  2570. ' : ' .
  2571. $this->yystack[ $this->yyidx + 0 ]->minor;
  2572. }
  2573. // line 686 "../smarty/lexer/smarty_internal_templateparser.y"
  2574. public function yy_r79()
  2575. {
  2576. $this->_retvalue =
  2577. $this->yystack[ $this->yyidx + -5 ]->minor .
  2578. ' ? ' .
  2579. $this->yystack[ $this->yyidx + -2 ]->minor .
  2580. ' : ' .
  2581. $this->yystack[ $this->yyidx + 0 ]->minor;
  2582. }
  2583. // line 691 "../smarty/lexer/smarty_internal_templateparser.y"
  2584. public function yy_r81()
  2585. {
  2586. $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
  2587. }
  2588. // line 712 "../smarty/lexer/smarty_internal_templateparser.y"
  2589. public function yy_r82()
  2590. {
  2591. $this->_retvalue = '!' . $this->yystack[ $this->yyidx + 0 ]->minor;
  2592. }
  2593. // line 716 "../smarty/lexer/smarty_internal_templateparser.y"
  2594. public function yy_r87()
  2595. {
  2596. $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
  2597. }
  2598. // line 720 "../smarty/lexer/smarty_internal_templateparser.y"
  2599. public function yy_r88()
  2600. {
  2601. $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.';
  2602. }
  2603. // line 725 "../smarty/lexer/smarty_internal_templateparser.y"
  2604. public function yy_r89()
  2605. {
  2606. $this->_retvalue = '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
  2607. }
  2608. // line 742 "../smarty/lexer/smarty_internal_templateparser.y"
  2609. public function yy_r90()
  2610. {
  2611. if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
  2612. if ($this->security) {
  2613. $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
  2614. }
  2615. $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
  2616. } else {
  2617. $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\'';
  2618. }
  2619. }
  2620. // line 746 "../smarty/lexer/smarty_internal_templateparser.y"
  2621. public function yy_r92()
  2622. {
  2623. $this->_retvalue = '(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
  2624. }
  2625. // line 764 "../smarty/lexer/smarty_internal_templateparser.y"
  2626. public function yy_r93()
  2627. {
  2628. $this->_retvalue =
  2629. $this->yystack[ $this->yyidx + -2 ]->minor .
  2630. $this->yystack[ $this->yyidx + -1 ]->minor .
  2631. $this->yystack[ $this->yyidx + 0 ]->minor;
  2632. }
  2633. // line 775 "../smarty/lexer/smarty_internal_templateparser.y"
  2634. public function yy_r97()
  2635. {
  2636. $prefixVar = $this->compiler->getNewPrefixVariable();
  2637. if ($this->yystack[ $this->yyidx + -2 ]->minor[ 'var' ] === '\'smarty\'') {
  2638. $this->compiler->appendPrefixCode("<?php {$prefixVar} = " .
  2639. $this->compiler->compileTag('private_special_variable', array(),
  2640. $this->yystack[ $this->yyidx +
  2641. -2 ]->minor[ 'smarty_internal_index' ]) .
  2642. ';?>');
  2643. } else {
  2644. $this->compiler->appendPrefixCode("<?php {$prefixVar} = " .
  2645. $this->compiler->compileVariable($this->yystack[ $this->yyidx +
  2646. -2 ]->minor[ 'var' ]) .
  2647. $this->yystack[ $this->yyidx + -2 ]->minor[ 'smarty_internal_index' ] .
  2648. ';?>');
  2649. }
  2650. $this->_retvalue =
  2651. $prefixVar .
  2652. '::' .
  2653. $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
  2654. $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
  2655. }
  2656. // line 792 "../smarty/lexer/smarty_internal_templateparser.y"
  2657. public function yy_r98()
  2658. {
  2659. $prefixVar = $this->compiler->getNewPrefixVariable();
  2660. $tmp = $this->compiler->appendCode('<?php ob_start();?>', $this->yystack[ $this->yyidx + 0 ]->minor);
  2661. $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "<?php {$prefixVar} = ob_get_clean();?>"));
  2662. $this->_retvalue = $prefixVar;
  2663. }
  2664. // line 811 "../smarty/lexer/smarty_internal_templateparser.y"
  2665. public function yy_r101()
  2666. {
  2667. if (!in_array(strtolower($this->yystack[ $this->yyidx + -2 ]->minor), array('self', 'parent')) &&
  2668. (!$this->security ||
  2669. $this->security->isTrustedStaticClassAccess($this->yystack[ $this->yyidx + -2 ]->minor,
  2670. $this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler))) {
  2671. if (isset($this->smarty->registered_classes[ $this->yystack[ $this->yyidx + -2 ]->minor ])) {
  2672. $this->_retvalue =
  2673. $this->smarty->registered_classes[ $this->yystack[ $this->yyidx + -2 ]->minor ] .
  2674. '::' .
  2675. $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
  2676. $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
  2677. } else {
  2678. $this->_retvalue =
  2679. $this->yystack[ $this->yyidx + -2 ]->minor .
  2680. '::' .
  2681. $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
  2682. $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
  2683. }
  2684. } else {
  2685. $this->compiler->trigger_template_error('static class \'' .
  2686. $this->yystack[ $this->yyidx + -2 ]->minor .
  2687. '\' is undefined or not allowed by security setting');
  2688. }
  2689. }
  2690. // line 822 "../smarty/lexer/smarty_internal_templateparser.y"
  2691. public function yy_r103()
  2692. {
  2693. $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
  2694. }
  2695. // line 825 "../smarty/lexer/smarty_internal_templateparser.y"
  2696. public function yy_r104()
  2697. {
  2698. $this->_retvalue =
  2699. $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'');
  2700. }
  2701. // line 838 "../smarty/lexer/smarty_internal_templateparser.y"
  2702. public function yy_r105()
  2703. {
  2704. if ($this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ] === '\'smarty\'') {
  2705. $smarty_var =
  2706. $this->compiler->compileTag('private_special_variable', array(),
  2707. $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ]);
  2708. $this->_retvalue = $smarty_var;
  2709. } else {
  2710. // used for array reset,next,prev,end,current
  2711. $this->last_variable = $this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ];
  2712. $this->last_index = $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ];
  2713. $this->_retvalue =
  2714. $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ]) .
  2715. $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ];
  2716. }
  2717. }
  2718. // line 848 "../smarty/lexer/smarty_internal_templateparser.y"
  2719. public function yy_r106()
  2720. {
  2721. $this->_retvalue =
  2722. '$_smarty_tpl->tpl_vars[' .
  2723. $this->yystack[ $this->yyidx + -2 ]->minor .
  2724. ']->' .
  2725. $this->yystack[ $this->yyidx + 0 ]->minor;
  2726. }
  2727. // line 852 "../smarty/lexer/smarty_internal_templateparser.y"
  2728. public function yy_r108()
  2729. {
  2730. $this->_retvalue =
  2731. $this->compiler->compileConfigVariable('\'' . $this->yystack[ $this->yyidx + -1 ]->minor . '\'');
  2732. }
  2733. // line 856 "../smarty/lexer/smarty_internal_templateparser.y"
  2734. public function yy_r109()
  2735. {
  2736. $this->_retvalue =
  2737. '(is_array($tmp = ' .
  2738. $this->compiler->compileConfigVariable('\'' . $this->yystack[ $this->yyidx + -2 ]->minor . '\'') .
  2739. ') ? $tmp' .
  2740. $this->yystack[ $this->yyidx + 0 ]->minor .
  2741. ' :null)';
  2742. }
  2743. // line 860 "../smarty/lexer/smarty_internal_templateparser.y"
  2744. public function yy_r110()
  2745. {
  2746. $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -1 ]->minor);
  2747. }
  2748. // line 864 "../smarty/lexer/smarty_internal_templateparser.y"
  2749. public function yy_r111()
  2750. {
  2751. $this->_retvalue =
  2752. '(is_array($tmp = ' .
  2753. $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -2 ]->minor) .
  2754. ') ? $tmp' .
  2755. $this->yystack[ $this->yyidx + 0 ]->minor .
  2756. ' : null)';
  2757. }
  2758. // line 867 "../smarty/lexer/smarty_internal_templateparser.y"
  2759. public function yy_r112()
  2760. {
  2761. $this->_retvalue =
  2762. array(
  2763. 'var' => '\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'',
  2764. 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor
  2765. );
  2766. }
  2767. // line 880 "../smarty/lexer/smarty_internal_templateparser.y"
  2768. public function yy_r113()
  2769. {
  2770. $this->_retvalue =
  2771. array(
  2772. 'var' => $this->yystack[ $this->yyidx + -1 ]->minor,
  2773. 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor
  2774. );
  2775. }
  2776. // line 886 "../smarty/lexer/smarty_internal_templateparser.y"
  2777. public function yy_r115()
  2778. {
  2779. return;
  2780. }
  2781. // line 889 "../smarty/lexer/smarty_internal_templateparser.y"
  2782. public function yy_r116()
  2783. {
  2784. $this->_retvalue =
  2785. '[' .
  2786. $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'') .
  2787. ']';
  2788. }
  2789. // line 893 "../smarty/lexer/smarty_internal_templateparser.y"
  2790. public function yy_r117()
  2791. {
  2792. $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor) . ']';
  2793. }
  2794. // line 897 "../smarty/lexer/smarty_internal_templateparser.y"
  2795. public function yy_r118()
  2796. {
  2797. $this->_retvalue =
  2798. '[' .
  2799. $this->compiler->compileVariable($this->yystack[ $this->yyidx + -2 ]->minor) .
  2800. '->' .
  2801. $this->yystack[ $this->yyidx + 0 ]->minor .
  2802. ']';
  2803. }
  2804. // line 901 "../smarty/lexer/smarty_internal_templateparser.y"
  2805. public function yy_r119()
  2806. {
  2807. $this->_retvalue = '[\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\']';
  2808. }
  2809. // line 906 "../smarty/lexer/smarty_internal_templateparser.y"
  2810. public function yy_r120()
  2811. {
  2812. $this->_retvalue = '[' . $this->yystack[ $this->yyidx + 0 ]->minor . ']';
  2813. }
  2814. // line 911 "../smarty/lexer/smarty_internal_templateparser.y"
  2815. public function yy_r121()
  2816. {
  2817. $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']';
  2818. }
  2819. // line 915 "../smarty/lexer/smarty_internal_templateparser.y"
  2820. public function yy_r122()
  2821. {
  2822. $this->_retvalue =
  2823. '[' .
  2824. $this->compiler->compileTag('private_special_variable', array(),
  2825. '[\'section\'][\'' . $this->yystack[ $this->yyidx + -1 ]->minor . '\'][\'index\']') .
  2826. ']';
  2827. }
  2828. // line 918 "../smarty/lexer/smarty_internal_templateparser.y"
  2829. public function yy_r123()
  2830. {
  2831. $this->_retvalue =
  2832. '[' .
  2833. $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' .
  2834. $this->yystack[ $this->yyidx +
  2835. -3 ]->minor .
  2836. '\'][\'' .
  2837. $this->yystack[ $this->yyidx +
  2838. -1 ]->minor .
  2839. '\']') .
  2840. ']';
  2841. }
  2842. // line 924 "../smarty/lexer/smarty_internal_templateparser.y"
  2843. public function yy_r124()
  2844. {
  2845. $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']';
  2846. }
  2847. // line 940 "../smarty/lexer/smarty_internal_templateparser.y"
  2848. public function yy_r126()
  2849. {
  2850. $this->_retvalue =
  2851. '[' .
  2852. $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'') .
  2853. ']';
  2854. }
  2855. // line 950 "../smarty/lexer/smarty_internal_templateparser.y"
  2856. public function yy_r130()
  2857. {
  2858. $this->_retvalue = '[]';
  2859. }
  2860. // line 954 "../smarty/lexer/smarty_internal_templateparser.y"
  2861. public function yy_r131()
  2862. {
  2863. $this->_retvalue = '\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'';
  2864. }
  2865. // line 959 "../smarty/lexer/smarty_internal_templateparser.y"
  2866. public function yy_r132()
  2867. {
  2868. $this->_retvalue = '\'\'';
  2869. }
  2870. // line 967 "../smarty/lexer/smarty_internal_templateparser.y"
  2871. public function yy_r133()
  2872. {
  2873. $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
  2874. }
  2875. // line 973 "../smarty/lexer/smarty_internal_templateparser.y"
  2876. public function yy_r135()
  2877. {
  2878. $var =
  2879. trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
  2880. -$this->compiler->getRdelLength()), ' $');
  2881. $this->_retvalue = $this->compiler->compileVariable('\'' . $var . '\'');
  2882. }
  2883. // line 980 "../smarty/lexer/smarty_internal_templateparser.y"
  2884. public function yy_r136()
  2885. {
  2886. $this->_retvalue = '(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
  2887. }
  2888. // line 989 "../smarty/lexer/smarty_internal_templateparser.y"
  2889. public function yy_r137()
  2890. {
  2891. if ($this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ] === '\'smarty\'') {
  2892. $this->_retvalue =
  2893. $this->compiler->compileTag('private_special_variable', array(),
  2894. $this->yystack[ $this->yyidx + -1 ]->minor[ 'smarty_internal_index' ]) .
  2895. $this->yystack[ $this->yyidx + 0 ]->minor;
  2896. } else {
  2897. $this->_retvalue =
  2898. $this->compiler->compileVariable($this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ]) .
  2899. $this->yystack[ $this->yyidx + -1 ]->minor[ 'smarty_internal_index' ] .
  2900. $this->yystack[ $this->yyidx + 0 ]->minor;
  2901. }
  2902. }
  2903. // line 994 "../smarty/lexer/smarty_internal_templateparser.y"
  2904. public function yy_r138()
  2905. {
  2906. $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
  2907. }
  2908. // line 999 "../smarty/lexer/smarty_internal_templateparser.y"
  2909. public function yy_r139()
  2910. {
  2911. $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
  2912. }
  2913. // line 1006 "../smarty/lexer/smarty_internal_templateparser.y"
  2914. public function yy_r140()
  2915. {
  2916. if ($this->security && substr($this->yystack[ $this->yyidx + -1 ]->minor, 0, 1) === '_') {
  2917. $this->compiler->trigger_template_error(self::ERR1);
  2918. }
  2919. $this->_retvalue =
  2920. '->' . $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
  2921. }
  2922. // line 1013 "../smarty/lexer/smarty_internal_templateparser.y"
  2923. public function yy_r141()
  2924. {
  2925. if ($this->security) {
  2926. $this->compiler->trigger_template_error(self::ERR2);
  2927. }
  2928. $this->_retvalue =
  2929. '->{' .
  2930. $this->compiler->compileVariable($this->yystack[ $this->yyidx + -1 ]->minor) .
  2931. $this->yystack[ $this->yyidx + 0 ]->minor .
  2932. '}';
  2933. }
  2934. // line 1020 "../smarty/lexer/smarty_internal_templateparser.y"
  2935. public function yy_r142()
  2936. {
  2937. if ($this->security) {
  2938. $this->compiler->trigger_template_error(self::ERR2);
  2939. }
  2940. $this->_retvalue =
  2941. '->{' . $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor . '}';
  2942. }
  2943. // line 1028 "../smarty/lexer/smarty_internal_templateparser.y"
  2944. public function yy_r143()
  2945. {
  2946. if ($this->security) {
  2947. $this->compiler->trigger_template_error(self::ERR2);
  2948. }
  2949. $this->_retvalue =
  2950. '->{\'' .
  2951. $this->yystack[ $this->yyidx + -4 ]->minor .
  2952. '\'.' .
  2953. $this->yystack[ $this->yyidx + -2 ]->minor .
  2954. $this->yystack[ $this->yyidx + 0 ]->minor .
  2955. '}';
  2956. }
  2957. // line 1036 "../smarty/lexer/smarty_internal_templateparser.y"
  2958. public function yy_r144()
  2959. {
  2960. $this->_retvalue = '->' . $this->yystack[ $this->yyidx + 0 ]->minor;
  2961. }
  2962. // line 1044 "../smarty/lexer/smarty_internal_templateparser.y"
  2963. public function yy_r145()
  2964. {
  2965. $this->_retvalue =
  2966. $this->compiler->compilePHPFunctionCall($this->yystack[ $this->yyidx + -3 ]->minor,
  2967. $this->yystack[ $this->yyidx + -1 ]->minor);
  2968. }
  2969. // line 1051 "../smarty/lexer/smarty_internal_templateparser.y"
  2970. public function yy_r146()
  2971. {
  2972. if ($this->security && substr($this->yystack[ $this->yyidx + -3 ]->minor, 0, 1) === '_') {
  2973. $this->compiler->trigger_template_error(self::ERR1);
  2974. }
  2975. $this->_retvalue =
  2976. $this->yystack[ $this->yyidx + -3 ]->minor .
  2977. '(' .
  2978. implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) .
  2979. ')';
  2980. }
  2981. // line 1062 "../smarty/lexer/smarty_internal_templateparser.y"
  2982. public function yy_r147()
  2983. {
  2984. if ($this->security) {
  2985. $this->compiler->trigger_template_error(self::ERR2);
  2986. }
  2987. $prefixVar = $this->compiler->getNewPrefixVariable();
  2988. $this->compiler->appendPrefixCode("<?php {$prefixVar} = " .
  2989. $this->compiler->compileVariable('\'' .
  2990. substr($this->yystack[ $this->yyidx +
  2991. -3 ]->minor, 1) .
  2992. '\'') .
  2993. ';?>');
  2994. $this->_retvalue = $prefixVar . '(' . implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) . ')';
  2995. }
  2996. // line 1079 "../smarty/lexer/smarty_internal_templateparser.y"
  2997. public function yy_r148()
  2998. {
  2999. $this->_retvalue =
  3000. array_merge($this->yystack[ $this->yyidx + -2 ]->minor, array($this->yystack[ $this->yyidx + 0 ]->minor));
  3001. }
  3002. // line 1083 "../smarty/lexer/smarty_internal_templateparser.y"
  3003. public function yy_r151()
  3004. {
  3005. $this->_retvalue =
  3006. array_merge($this->yystack[ $this->yyidx + -2 ]->minor, array(
  3007. array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor)
  3008. ));
  3009. }
  3010. // line 1091 "../smarty/lexer/smarty_internal_templateparser.y"
  3011. public function yy_r152()
  3012. {
  3013. $this->_retvalue =
  3014. array(array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor));
  3015. }
  3016. // line 1099 "../smarty/lexer/smarty_internal_templateparser.y"
  3017. public function yy_r154()
  3018. {
  3019. $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor);
  3020. }
  3021. // line 1118 "../smarty/lexer/smarty_internal_templateparser.y"
  3022. public function yy_r155()
  3023. {
  3024. $this->_retvalue =
  3025. array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor);
  3026. }
  3027. // line 1123 "../smarty/lexer/smarty_internal_templateparser.y"
  3028. public function yy_r159()
  3029. {
  3030. $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '', 'method');
  3031. }
  3032. // line 1128 "../smarty/lexer/smarty_internal_templateparser.y"
  3033. public function yy_r160()
  3034. {
  3035. $this->_retvalue =
  3036. array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'method');
  3037. }
  3038. // line 1133 "../smarty/lexer/smarty_internal_templateparser.y"
  3039. public function yy_r161()
  3040. {
  3041. $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '');
  3042. }
  3043. // line 1138 "../smarty/lexer/smarty_internal_templateparser.y"
  3044. public function yy_r162()
  3045. {
  3046. $this->_retvalue =
  3047. array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'property');
  3048. }
  3049. // line 1144 "../smarty/lexer/smarty_internal_templateparser.y"
  3050. public function yy_r163()
  3051. {
  3052. $this->_retvalue =
  3053. array(
  3054. $this->yystack[ $this->yyidx + -2 ]->minor,
  3055. $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor, 'property'
  3056. );
  3057. }
  3058. // line 1148 "../smarty/lexer/smarty_internal_templateparser.y"
  3059. public function yy_r164()
  3060. {
  3061. $this->_retvalue = ' ' . trim($this->yystack[ $this->yyidx + 0 ]->minor) . ' ';
  3062. }
  3063. // line 1167 "../smarty/lexer/smarty_internal_templateparser.y"
  3064. public function yy_r165()
  3065. {
  3066. static $lops = array(
  3067. 'eq' => ' == ',
  3068. 'ne' => ' != ',
  3069. 'neq' => ' != ',
  3070. 'gt' => ' > ',
  3071. 'ge' => ' >= ',
  3072. 'gte' => ' >= ',
  3073. 'lt' => ' < ',
  3074. 'le' => ' <= ',
  3075. 'lte' => ' <= ',
  3076. 'mod' => ' % ',
  3077. 'and' => ' && ',
  3078. 'or' => ' || ',
  3079. 'xor' => ' xor ',
  3080. );
  3081. $op = strtolower(preg_replace('/\s*/', '', $this->yystack[ $this->yyidx + 0 ]->minor));
  3082. $this->_retvalue = $lops[ $op ];
  3083. }
  3084. // line 1180 "../smarty/lexer/smarty_internal_templateparser.y"
  3085. public function yy_r166()
  3086. {
  3087. static $tlops = array(
  3088. 'isdivby' => array('op' => ' % ', 'pre' => '!('),
  3089. 'isnotdivby' => array('op' => ' % ', 'pre' => '('),
  3090. 'isevenby' => array('op' => ' / ', 'pre' => '!(1 & '),
  3091. 'isnotevenby' => array('op' => ' / ', 'pre' => '(1 & '),
  3092. 'isoddby' => array('op' => ' / ', 'pre' => '(1 & '),
  3093. 'isnotoddby' => array('op' => ' / ', 'pre' => '!(1 & '),
  3094. );
  3095. $op = strtolower(preg_replace('/\s*/', '', $this->yystack[ $this->yyidx + 0 ]->minor));
  3096. $this->_retvalue = $tlops[ $op ];
  3097. }
  3098. // line 1194 "../smarty/lexer/smarty_internal_templateparser.y"
  3099. public function yy_r167()
  3100. {
  3101. static $scond = array(
  3102. 'iseven' => '!(1 & ',
  3103. 'isnoteven' => '(1 & ',
  3104. 'isodd' => '(1 & ',
  3105. 'isnotodd' => '!(1 & ',
  3106. );
  3107. $op = strtolower(str_replace(' ', '', $this->yystack[ $this->yyidx + 0 ]->minor));
  3108. $this->_retvalue = $scond[ $op ];
  3109. }
  3110. // line 1202 "../smarty/lexer/smarty_internal_templateparser.y"
  3111. public function yy_r168()
  3112. {
  3113. $this->_retvalue = 'array(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
  3114. }
  3115. // line 1210 "../smarty/lexer/smarty_internal_templateparser.y"
  3116. public function yy_r170()
  3117. {
  3118. $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . ',' . $this->yystack[ $this->yyidx + 0 ]->minor;
  3119. }
  3120. // line 1214 "../smarty/lexer/smarty_internal_templateparser.y"
  3121. public function yy_r172()
  3122. {
  3123. $this->_retvalue =
  3124. $this->yystack[ $this->yyidx + -2 ]->minor . '=>' . $this->yystack[ $this->yyidx + 0 ]->minor;
  3125. }
  3126. // line 1230 "../smarty/lexer/smarty_internal_templateparser.y"
  3127. public function yy_r173()
  3128. {
  3129. $this->_retvalue =
  3130. '\'' . $this->yystack[ $this->yyidx + -2 ]->minor . '\'=>' . $this->yystack[ $this->yyidx + 0 ]->minor;
  3131. }
  3132. // line 1236 "../smarty/lexer/smarty_internal_templateparser.y"
  3133. public function yy_r176()
  3134. {
  3135. $this->compiler->leaveDoubleQuote();
  3136. $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor->to_smarty_php($this);
  3137. }
  3138. // line 1241 "../smarty/lexer/smarty_internal_templateparser.y"
  3139. public function yy_r177()
  3140. {
  3141. $this->yystack[ $this->yyidx + -1 ]->minor->append_subtree($this, $this->yystack[ $this->yyidx + 0 ]->minor);
  3142. $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
  3143. }
  3144. // line 1245 "../smarty/lexer/smarty_internal_templateparser.y"
  3145. public function yy_r178()
  3146. {
  3147. $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[ $this->yyidx + 0 ]->minor);
  3148. }
  3149. // line 1249 "../smarty/lexer/smarty_internal_templateparser.y"
  3150. public function yy_r179()
  3151. {
  3152. $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)' . $this->yystack[ $this->yyidx + -1 ]->minor);
  3153. }
  3154. // line 1253 "../smarty/lexer/smarty_internal_templateparser.y"
  3155. public function yy_r180()
  3156. {
  3157. $this->_retvalue =
  3158. new Smarty_Internal_ParseTree_Code('(string)(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')');
  3159. }
  3160. // line 1265 "../smarty/lexer/smarty_internal_templateparser.y"
  3161. public function yy_r181()
  3162. {
  3163. $this->_retvalue =
  3164. new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\'' .
  3165. substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) .
  3166. '\']->value');
  3167. }
  3168. // line 1269 "../smarty/lexer/smarty_internal_templateparser.y"
  3169. public function yy_r184()
  3170. {
  3171. $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[ $this->yyidx + 0 ]->minor);
  3172. }
  3173. public function yy_r185()
  3174. {
  3175. $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[ $this->yyidx + 0 ]->minor);
  3176. }
  3177. public function yy_reduce($yyruleno)
  3178. {
  3179. if ($this->yyTraceFILE && $yyruleno >= 0
  3180. && $yyruleno < count(self::$yyRuleName)) {
  3181. fprintf(
  3182. $this->yyTraceFILE,
  3183. "%sReduce (%d) [%s].\n",
  3184. $this->yyTracePrompt,
  3185. $yyruleno,
  3186. self::$yyRuleName[ $yyruleno ]
  3187. );
  3188. }
  3189. $this->_retvalue = $yy_lefthand_side = null;
  3190. if (isset(self::$yyReduceMap[ $yyruleno ])) {
  3191. // call the action
  3192. $this->_retvalue = null;
  3193. $this->{'yy_r' . self::$yyReduceMap[ $yyruleno ]}();
  3194. $yy_lefthand_side = $this->_retvalue;
  3195. }
  3196. $yygoto = self::$yyRuleInfo[ $yyruleno ][ 0 ];
  3197. $yysize = self::$yyRuleInfo[ $yyruleno ][ 1 ];
  3198. $this->yyidx -= $yysize;
  3199. for ($i = $yysize; $i; $i--) {
  3200. // pop all of the right-hand side parameters
  3201. array_pop($this->yystack);
  3202. }
  3203. $yyact = $this->yy_find_reduce_action($this->yystack[ $this->yyidx ]->stateno, $yygoto);
  3204. if ($yyact < self::YYNSTATE) {
  3205. if (!$this->yyTraceFILE && $yysize) {
  3206. $this->yyidx++;
  3207. $x = new TP_yyStackEntry;
  3208. $x->stateno = $yyact;
  3209. $x->major = $yygoto;
  3210. $x->minor = $yy_lefthand_side;
  3211. $this->yystack[ $this->yyidx ] = $x;
  3212. } else {
  3213. $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
  3214. }
  3215. } elseif ($yyact === self::YYNSTATE + self::YYNRULE + 1) {
  3216. $this->yy_accept();
  3217. }
  3218. }
  3219. public function yy_parse_failed()
  3220. {
  3221. if ($this->yyTraceFILE) {
  3222. fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
  3223. }
  3224. while ($this->yyidx >= 0) {
  3225. $this->yy_pop_parser_stack();
  3226. }
  3227. }
  3228. public function yy_syntax_error($yymajor, $TOKEN)
  3229. {
  3230. // line 214 "../smarty/lexer/smarty_internal_templateparser.y"
  3231. $this->internalError = true;
  3232. $this->yymajor = $yymajor;
  3233. $this->compiler->trigger_template_error();
  3234. }
  3235. public function yy_accept()
  3236. {
  3237. if ($this->yyTraceFILE) {
  3238. fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
  3239. }
  3240. while ($this->yyidx >= 0) {
  3241. $this->yy_pop_parser_stack();
  3242. }
  3243. // line 207 "../smarty/lexer/smarty_internal_templateparser.y"
  3244. $this->successful = !$this->internalError;
  3245. $this->internalError = false;
  3246. $this->retvalue = $this->_retvalue;
  3247. }
  3248. public function doParse($yymajor, $yytokenvalue)
  3249. {
  3250. $yyerrorhit = 0; /* True if yymajor has invoked an error */
  3251. if ($this->yyidx === null || $this->yyidx < 0) {
  3252. $this->yyidx = 0;
  3253. $this->yyerrcnt = -1;
  3254. $x = new TP_yyStackEntry;
  3255. $x->stateno = 0;
  3256. $x->major = 0;
  3257. $this->yystack = array();
  3258. $this->yystack[] = $x;
  3259. }
  3260. $yyendofinput = ($yymajor == 0);
  3261. if ($this->yyTraceFILE) {
  3262. fprintf(
  3263. $this->yyTraceFILE,
  3264. "%sInput %s\n",
  3265. $this->yyTracePrompt,
  3266. $this->yyTokenName[ $yymajor ]
  3267. );
  3268. }
  3269. do {
  3270. $yyact = $this->yy_find_shift_action($yymajor);
  3271. if ($yymajor < self::YYERRORSYMBOL &&
  3272. !$this->yy_is_expected_token($yymajor)) {
  3273. // force a syntax error
  3274. $yyact = self::YY_ERROR_ACTION;
  3275. }
  3276. if ($yyact < self::YYNSTATE) {
  3277. $this->yy_shift($yyact, $yymajor, $yytokenvalue);
  3278. $this->yyerrcnt--;
  3279. if ($yyendofinput && $this->yyidx >= 0) {
  3280. $yymajor = 0;
  3281. } else {
  3282. $yymajor = self::YYNOCODE;
  3283. }
  3284. } elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
  3285. $this->yy_reduce($yyact - self::YYNSTATE);
  3286. } elseif ($yyact === self::YY_ERROR_ACTION) {
  3287. if ($this->yyTraceFILE) {
  3288. fprintf(
  3289. $this->yyTraceFILE,
  3290. "%sSyntax Error!\n",
  3291. $this->yyTracePrompt
  3292. );
  3293. }
  3294. if (self::YYERRORSYMBOL) {
  3295. if ($this->yyerrcnt < 0) {
  3296. $this->yy_syntax_error($yymajor, $yytokenvalue);
  3297. }
  3298. $yymx = $this->yystack[ $this->yyidx ]->major;
  3299. if ($yymx === self::YYERRORSYMBOL || $yyerrorhit) {
  3300. if ($this->yyTraceFILE) {
  3301. fprintf(
  3302. $this->yyTraceFILE,
  3303. "%sDiscard input token %s\n",
  3304. $this->yyTracePrompt,
  3305. $this->yyTokenName[ $yymajor ]
  3306. );
  3307. }
  3308. $this->yy_destructor($yymajor, $yytokenvalue);
  3309. $yymajor = self::YYNOCODE;
  3310. } else {
  3311. while ($this->yyidx >= 0 &&
  3312. $yymx !== self::YYERRORSYMBOL &&
  3313. ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
  3314. ) {
  3315. $this->yy_pop_parser_stack();
  3316. }
  3317. if ($this->yyidx < 0 || $yymajor == 0) {
  3318. $this->yy_destructor($yymajor, $yytokenvalue);
  3319. $this->yy_parse_failed();
  3320. $yymajor = self::YYNOCODE;
  3321. } elseif ($yymx !== self::YYERRORSYMBOL) {
  3322. $u2 = 0;
  3323. $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
  3324. }
  3325. }
  3326. $this->yyerrcnt = 3;
  3327. $yyerrorhit = 1;
  3328. } else {
  3329. if ($this->yyerrcnt <= 0) {
  3330. $this->yy_syntax_error($yymajor, $yytokenvalue);
  3331. }
  3332. $this->yyerrcnt = 3;
  3333. $this->yy_destructor($yymajor, $yytokenvalue);
  3334. if ($yyendofinput) {
  3335. $this->yy_parse_failed();
  3336. }
  3337. $yymajor = self::YYNOCODE;
  3338. }
  3339. } else {
  3340. $this->yy_accept();
  3341. $yymajor = self::YYNOCODE;
  3342. }
  3343. } while ($yymajor !== self::YYNOCODE && $this->yyidx >= 0);
  3344. }
  3345. }