23 private $heredoc_id_stack = Array();
26 'NONEIDENTITY' =>
'!==',
29 'GREATEREQUAL' =>
'(>=,ge)',
30 'LESSEQUAL' =>
'(<=,le)',
31 'GREATERTHAN' =>
'(>,gt)',
32 'LESSTHAN' =>
'(<,lt)',
46 'UNIMATH' =>
'+" , "-',
47 'MATH' =>
'*" , "/" , "%',
48 'INCDEC' =>
'++" , "--',
53 'DOUBLECOLON' =>
'::',
65 'FAKEPHPSTARTTAG' =>
'Fake PHP start tag',
66 'PHPSTARTTAG' =>
'PHP start tag',
67 'PHPENDTAG' =>
'PHP end tag',
68 'LITERALSTART' =>
'Literal start',
69 'LITERALEND' =>
'Literal end',
70 'LDELSLASH' =>
'closing tag',
71 'COMMENT' =>
'comment',
83 $this->smarty = $compiler->smarty;
84 $this->compiler = $compiler;
85 $this->ldel = preg_quote($this->smarty->left_delimiter,
'/');
86 $this->ldel_length = strlen($this->smarty->left_delimiter);
87 $this->rdel = preg_quote($this->smarty->right_delimiter,
'/');
88 $this->rdel_length = strlen($this->smarty->right_delimiter);
89 $this->smarty_token_names[
'LDEL'] = $this->smarty->left_delimiter;
90 $this->smarty_token_names[
'RDEL'] = $this->smarty->right_delimiter;
91 $this->mbstring_overload = ini_get(
'mbstring.func_overload') & 2;
95 private $_yy_state = 1;
96 private $_yy_stack = array();
100 return $this->{
'yylex' . $this->_yy_state}();
105 array_push($this->_yy_stack, $this->_yy_state);
106 $this->_yy_state =
$state;
111 $this->_yy_state = array_pop($this->_yy_stack);
116 $this->_yy_state =
$state;
147 if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,
'latin1'): strlen($this->data))) {
150 $yy_global_pattern =
"/\G(".$this->ldel.
"[$]smarty\\.block\\.child".$this->rdel.
")|\G(\\{\\})|\G(".$this->ldel.
"\\*([\S\s]*?)\\*".$this->rdel.
")|\G(".$this->ldel.
"strip".$this->rdel.
")|\G(".$this->ldel.
"\\s{1,}strip\\s{1,}".$this->rdel.
")|\G(".$this->ldel.
"\/strip".$this->rdel.
")|\G(".$this->ldel.
"\\s{1,}\/strip\\s{1,}".$this->rdel.
")|\G(".$this->ldel.
"\\s*literal\\s*".$this->rdel.
")|\G(".$this->ldel.
"\\s{1,}\/)|\G(".$this->ldel.
"\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel.
"\\s*for\\s+)|\G(".$this->ldel.
"\\s*foreach(?![^\s]))|\G(".$this->ldel.
"\\s*setfilter\\s+)|\G(".$this->ldel.
"\\s{1,})|\G(".$this->ldel.
"\/)|\G(".$this->ldel.
")|\G(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|\G(\\?>)|\G(".$this->rdel.
")|\G(<%)|\G(%>)|\G([\S\s])/iS";
153 if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,
'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
154 $yysubmatches = $yymatches;
155 $yymatches = array_filter($yymatches,
'strlen');
156 if (!count($yymatches)) {
157 throw new Exception(
'Error: lexing failed because a rule matched' .
158 ' an empty string. Input "' . substr($this->data,
159 $this->counter, 5) .
'... state TEXT');
162 $this->token = key($yymatches);
163 if ($tokenMap[$this->token]) {
165 $yysubmatches = array_slice($yysubmatches, $this->token + 1,
166 $tokenMap[$this->token]);
168 $yysubmatches = array();
170 $this->value = current($yymatches);
171 $r = $this->{
'yy_r1_' . $this->token}($yysubmatches);
173 $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,
'latin1'): strlen($this->value));
174 $this->
line += substr_count($this->value,
"\n");
180 return $this->
yylex();
182 $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,
'latin1'): strlen($this->value));
183 $this->
line += substr_count($this->value,
"\n");
184 if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,
'latin1'): strlen($this->data))) {
190 throw new Exception(
'Unexpected input at line' . $this->
line .
191 ': ' . $this->data[$this->counter]);
223 if ($this->smarty->auto_literal) {
237 if ($this->smarty->auto_literal) {
252 if ($this->smarty->auto_literal) {
263 if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) ==
'') {
274 if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) ==
'') {
285 if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) ==
'') {
296 if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) ==
'') {
307 if ($this->smarty->auto_literal) {
332 if (in_array($this->value, Array(
'<?',
'<?=',
'<?php'))) {
334 }
elseif ($this->value ==
'<?xml') {
338 $this->value = substr($this->value, 0, 2);
364 if ($this->mbstring_overload) {
365 $to = mb_strlen($this->data,
'latin1');
367 $to = strlen($this->data);
369 preg_match(
"/{$this->ldel}|<\?|\?>|<%|%>/",$this->data,
$match,PREG_OFFSET_CAPTURE,$this->counter);
370 if (isset(
$match[0][1])) {
373 if ($this->mbstring_overload) {
374 $this->value = mb_substr($this->data,$this->counter,$to-$this->counter,
'latin1');
376 $this->value = substr($this->data,$this->counter,$to-$this->counter);
454 if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,
'latin1'): strlen($this->data))) {
457 $yy_global_pattern =
"/\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G(".$this->ldel.
"\\s{1,}\/)|\G(".$this->ldel.
"\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel.
"\\s*for\\s+)|\G(".$this->ldel.
"\\s*foreach(?![^\s]))|\G(".$this->ldel.
"\\s{1,})|\G(\\s{1,}".$this->rdel.
")|\G(".$this->ldel.
"\/)|\G(".$this->ldel.
")|\G(".$this->rdel.
")|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*===\\s*)|\G(\\s*!==\\s*)|\G(\\s*==\\s*|\\s+eq\\s+)|\G(\\s*!=\\s*|\\s*<>\\s*|\\s+(ne|neq)\\s+)|\G(\\s*>=\\s*|\\s+(ge|gte)\\s+)|\G(\\s*<=\\s*|\\s+(le|lte)\\s+)|\G(\\s*>\\s*|\\s+gt\\s+)|\G(\\s*<\\s*|\\s+lt\\s+)|\G(\\s+mod\\s+)|\G(!\\s*|not\\s+)|\G(\\s*&&\\s*|\\s*and\\s+)|\G(\\s*\\|\\|\\s*|\\s*or\\s+)|\G(\\s*xor\\s+)|\G(\\s+is\\s+odd\\s+by\\s+)|\G(\\s+is\\s+not\\s+odd\\s+by\\s+)|\G(\\s+is\\s+odd)|\G(\\s+is\\s+not\\s+odd)|\G(\\s+is\\s+even\\s+by\\s+)|\G(\\s+is\\s+not\\s+even\\s+by\\s+)|\G(\\s+is\\s+even)|\G(\\s+is\\s+not\\s+even)|\G(\\s+is\\s+div\\s+by\\s+)|\G(\\s+is\\s+not\\s+div\\s+by\\s+)|\G(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\)\\s*)|\G(\\s*\\(\\s*)|\G(\\s*\\))|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*->\\s*)|\G(\\s*=>\\s*)|\G(\\s*=\\s*)|\G(\\+\\+|--)|\G(\\s*(\\+|-)\\s*)|\G(\\s*(\\*|\/|%)\\s*)|\G(\\$)|\G(\\s*;)|\G(::)|\G(\\s*:\\s*)|\G(@)|\G(#)|\G(\")|\G(`)|\G(\\|)|\G(\\.)|\G(\\s*,\\s*)|\G(\\s*&\\s*)|\G(\\s*\\?\\s*)|\G(0[xX][0-9a-fA-F]+)|\G(\\s+[0-9]*[a-zA-Z_][a-zA-Z0-9_\-:]*\\s*=\\s*)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G(\\s+)|\G([\S\s])/iS";
460 if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,
'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
461 $yysubmatches = $yymatches;
462 $yymatches = array_filter($yymatches,
'strlen');
463 if (!count($yymatches)) {
464 throw new Exception(
'Error: lexing failed because a rule matched' .
465 ' an empty string. Input "' . substr($this->data,
466 $this->counter, 5) .
'... state SMARTY');
469 $this->token = key($yymatches);
470 if ($tokenMap[$this->token]) {
472 $yysubmatches = array_slice($yysubmatches, $this->token + 1,
473 $tokenMap[$this->token]);
475 $yysubmatches = array();
477 $this->value = current($yymatches);
478 $r = $this->{
'yy_r2_' . $this->token}($yysubmatches);
480 $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,
'latin1'): strlen($this->value));
481 $this->
line += substr_count($this->value,
"\n");
487 return $this->
yylex();
489 $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,
'latin1'): strlen($this->value));
490 $this->
line += substr_count($this->value,
"\n");
491 if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,
'latin1'): strlen($this->data))) {
497 throw new Exception(
'Unexpected input at line' . $this->
line .
498 ': ' . $this->data[$this->counter]);
515 if ($this->smarty->auto_literal) {
526 if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) ==
'') {
537 if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) ==
'') {
548 if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) ==
'') {
559 if ($this->smarty->auto_literal) {
864 if (substr($this->data, $this->counter + strlen($this->value) - 1, $this->rdel_length) == $this->smarty->right_delimiter) {
865 preg_match(
"/\s+/",$this->value,
$match);
906 if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,
'latin1'): strlen($this->data))) {
909 $yy_global_pattern =
"/\G(".$this->ldel.
"\\s*literal\\s*".$this->rdel.
")|\G(".$this->ldel.
"\\s*\/literal\\s*".$this->rdel.
")|\G(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|\G(\\?>)|\G(<%)|\G(%>)|\G([\S\s])/iS";
912 if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,
'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
913 $yysubmatches = $yymatches;
914 $yymatches = array_filter($yymatches,
'strlen');
915 if (!count($yymatches)) {
916 throw new Exception(
'Error: lexing failed because a rule matched' .
917 ' an empty string. Input "' . substr($this->data,
918 $this->counter, 5) .
'... state LITERAL');
921 $this->token = key($yymatches);
922 if ($tokenMap[$this->token]) {
924 $yysubmatches = array_slice($yysubmatches, $this->token + 1,
925 $tokenMap[$this->token]);
927 $yysubmatches = array();
929 $this->value = current($yymatches);
930 $r = $this->{
'yy_r3_' . $this->token}($yysubmatches);
932 $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,
'latin1'): strlen($this->value));
933 $this->
line += substr_count($this->value,
"\n");
939 return $this->
yylex();
941 $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,
'latin1'): strlen($this->value));
942 $this->
line += substr_count($this->value,
"\n");
943 if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,
'latin1'): strlen($this->data))) {
949 throw new Exception(
'Unexpected input at line' . $this->
line .
950 ': ' . $this->data[$this->counter]);
974 if (in_array($this->value, Array(
'<?',
'<?=',
'<?php'))) {
978 $this->value = substr($this->value, 0, 2);
999 if ($this->mbstring_overload) {
1000 $to = mb_strlen($this->data,
'latin1');
1002 $to = strlen($this->data);
1004 preg_match(
"/{$this->ldel}\/?literal{$this->rdel}|<\?|<%|\?>|%>/",$this->data,
$match,PREG_OFFSET_CAPTURE,$this->counter);
1005 if (isset(
$match[0][1])) {
1008 $this->compiler->trigger_template_error (
"missing or misspelled literal closing tag");
1010 if ($this->mbstring_overload) {
1011 $this->value = mb_substr($this->data,$this->counter,$to-$this->counter,
'latin1');
1013 $this->value = substr($this->data,$this->counter,$to-$this->counter);
1036 if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,
'latin1'): strlen($this->data))) {
1039 $yy_global_pattern =
"/\G(".$this->ldel.
"\\s{1,}\/)|\G(".$this->ldel.
"\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel.
"\\s*for\\s+)|\G(".$this->ldel.
"\\s*foreach(?![^\s]))|\G(".$this->ldel.
"\\s{1,})|\G(".$this->ldel.
"\/)|\G(".$this->ldel.
")|\G(\")|\G(`\\$)|\G(\\$[0-9]*[a-zA-Z_]\\w*)|\G(\\$)|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=(".$this->ldel.
"|\\$|`\\$|\")))|\G([\S\s])/iS";
1042 if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,
'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
1043 $yysubmatches = $yymatches;
1044 $yymatches = array_filter($yymatches,
'strlen');
1045 if (!count($yymatches)) {
1046 throw new Exception(
'Error: lexing failed because a rule matched' .
1047 ' an empty string. Input "' . substr($this->data,
1048 $this->counter, 5) .
'... state DOUBLEQUOTEDSTRING');
1051 $this->token = key($yymatches);
1052 if ($tokenMap[$this->token]) {
1054 $yysubmatches = array_slice($yysubmatches, $this->token + 1,
1055 $tokenMap[$this->token]);
1057 $yysubmatches = array();
1059 $this->value = current($yymatches);
1060 $r = $this->{
'yy_r4_' . $this->token}($yysubmatches);
1062 $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,
'latin1'): strlen($this->value));
1063 $this->
line += substr_count($this->value,
"\n");
1069 return $this->
yylex();
1070 }
elseif ($r ===
false) {
1071 $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,
'latin1'): strlen($this->value));
1072 $this->
line += substr_count($this->value,
"\n");
1073 if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,
'latin1'): strlen($this->data))) {
1079 throw new Exception(
'Unexpected input at line' . $this->
line .
1080 ': ' . $this->data[$this->counter]);
1092 if ($this->smarty->auto_literal) {
1103 if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) ==
'') {
1114 if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) ==
'') {
1125 if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) ==
'') {
1136 if ($this->smarty->auto_literal) {
1168 $this->value = substr($this->value,0,-1);
1190 if ($this->mbstring_overload) {
1191 $to = mb_strlen($this->data,
'latin1');
1193 $to = strlen($this->data);
1195 if ($this->mbstring_overload) {
1196 $this->value = mb_substr($this->data,$this->counter,$to-$this->counter,
'latin1');
1198 $this->value = substr($this->data,$this->counter,$to-$this->counter);
yy_r2_68($yy_subpatterns)
yy_r1_19($yy_subpatterns)
yy_r2_38($yy_subpatterns)
yy_r2_33($yy_subpatterns)
yy_r2_17($yy_subpatterns)
yy_r2_66($yy_subpatterns)
yy_r1_24($yy_subpatterns)
yy_r2_62($yy_subpatterns)
yy_r2_27($yy_subpatterns)
yy_r2_52($yy_subpatterns)
yy_r1_18($yy_subpatterns)
yy_r2_26($yy_subpatterns)
yy_r4_17($yy_subpatterns)
yy_r2_19($yy_subpatterns)
yy_r2_55($yy_subpatterns)
yy_r2_71($yy_subpatterns)
Smarty Internal Plugin Templatelexer.
yy_r2_24($yy_subpatterns)
yy_r2_39($yy_subpatterns)
yy_r2_34($yy_subpatterns)
yy_r2_14($yy_subpatterns)
yy_r2_12($yy_subpatterns)
yy_r2_69($yy_subpatterns)
yy_r2_28($yy_subpatterns)
yy_r1_16($yy_subpatterns)
yy_r2_53($yy_subpatterns)
__construct($data, $compiler)
yy_r2_18($yy_subpatterns)
yy_r2_43($yy_subpatterns)
yy_r2_41($yy_subpatterns)
yy_r2_36($yy_subpatterns)
yy_r2_54($yy_subpatterns)
const TP_SINGLEQUOTESTRING
yy_r2_60($yy_subpatterns)
yy_r1_15($yy_subpatterns)
yy_r2_49($yy_subpatterns)
yy_r2_70($yy_subpatterns)
yy_r1_11($yy_subpatterns)
yy_r2_30($yy_subpatterns)
yy_r2_35($yy_subpatterns)
yy_r2_61($yy_subpatterns)
yy_r4_12($yy_subpatterns)
yy_r2_32($yy_subpatterns)
yy_r1_17($yy_subpatterns)
yy_r2_47($yy_subpatterns)
yy_r2_75($yy_subpatterns)
yy_r2_57($yy_subpatterns)
yy_r2_67($yy_subpatterns)
yy_r2_10($yy_subpatterns)
yy_r2_37($yy_subpatterns)
if(strlen($date2)== '10') if($type== 'users-by-age'&&a_priv('admin_users', true)) elseif($type== 'forums-count'&&a_priv('admin_content', true)) elseif($type== 'forums-categories'&&a_priv('admin_content', true)) elseif($type== 'users-count'&&a_priv('admin_users', true)) elseif($type== 'product-categories'&&a_priv('admin_products', true)) elseif($type== 'users-by-sex'&&a_priv('admin_users', true)) elseif($type== 'users-by-country'&&a_priv('admin_users', true)) elseif($type== 'sales'&&a_priv('admin_sales', true))
yy_r2_74($yy_subpatterns)
yy_r1_22($yy_subpatterns)
yy_r2_20($yy_subpatterns)
yy_r2_63($yy_subpatterns)
yy_r1_23($yy_subpatterns)
yy_r2_42($yy_subpatterns)
yy_r2_16($yy_subpatterns)
yy_r4_11($yy_subpatterns)
yy_r2_40($yy_subpatterns)
yy_r2_59($yy_subpatterns)
yy_r2_77($yy_subpatterns)
yy_r2_48($yy_subpatterns)
yy_r2_15($yy_subpatterns)
yy_r1_21($yy_subpatterns)
yy_r4_13($yy_subpatterns)
yy_r1_20($yy_subpatterns)
yy_r2_11($yy_subpatterns)
yy_r2_65($yy_subpatterns)
yy_r2_72($yy_subpatterns)
yy_r2_76($yy_subpatterns)
yy_r2_51($yy_subpatterns)
yy_r2_22($yy_subpatterns)
yy_r1_13($yy_subpatterns)
yy_r2_64($yy_subpatterns)
yy_r1_14($yy_subpatterns)
yy_r2_31($yy_subpatterns)
yy_r2_50($yy_subpatterns)
yy_r2_73($yy_subpatterns)
yy_r1_10($yy_subpatterns)
const TP_SMARTYBLOCKCHILD
yy_r4_10($yy_subpatterns)
yy_r2_29($yy_subpatterns)
yy_r2_13($yy_subpatterns)