get config properties via compiler object

- reverting part of earlier change of today
This commit is contained in:
Uwe Tews
2014-12-30 18:16:51 +01:00
parent e351c0123f
commit 4b7fba4d88
4 changed files with 461 additions and 506 deletions

View File

@@ -117,7 +117,7 @@ class Smarty_Internal_Configfilelexer
$this->line = 1; $this->line = 1;
$this->compiler = $compiler; $this->compiler = $compiler;
$this->smarty = $compiler->smarty; $this->smarty = $compiler->smarty;
$this->configBooleanize = $compiler->template->smarty->config_booleanize; $this->configBooleanize = $this->smarty->config_booleanize;
} }
public static function &instance($new_instance = null) public static function &instance($new_instance = null)

View File

@@ -94,10 +94,10 @@ class Smarty_Internal_Configfileparser
// set instance object // set instance object
self::instance($this); self::instance($this);
$this->lex = $lex; $this->lex = $lex;
$this->smarty = $compiler->template->smarty; $this->smarty = $compiler->smarty;
$this->compiler = $compiler; $this->compiler = $compiler;
$this->configOverwrite = $compiler->smarty->config_overwrite; $this->configOverwrite = $this->smarty->config_overwrite;
$this->configReadHidden = $compiler->smarty->config_read_hidden; $this->configReadHidden = $this->smarty->config_read_hidden;
} }
/** /**

View File

@@ -1,22 +1,22 @@
<?php <?php
/** /**
* Smarty Internal Plugin Configfilelexer * Smarty Internal Plugin Configfilelexer
* This is the lexer to break the config file source into tokens *
* * This is the lexer to break the config file source into tokens
* @package Smarty * @package Smarty
* @subpackage Config * @subpackage Config
* @author Uwe Tews * @author Uwe Tews
*/ */
/** /**
* Smarty_Internal_Configfilelexer * Smarty_Internal_Configfilelexer
* This is the config file lexer. *
* It is generated from the smarty_internal_configfilelexer.plex file * This is the config file lexer.
* * It is generated from the smarty_internal_configfilelexer.plex file
* @package Smarty *
* @subpackage Compiler * @package Smarty
* @author Uwe Tews * @subpackage Compiler
*/ * @author Uwe Tews
*/
class Smarty_Internal_Configfilelexer class Smarty_Internal_Configfilelexer
{ {
/** /**
@@ -117,7 +117,7 @@ class Smarty_Internal_Configfilelexer
$this->line = 1; $this->line = 1;
$this->compiler = $compiler; $this->compiler = $compiler;
$this->smarty = $compiler->smarty; $this->smarty = $compiler->smarty;
$this->configBooleanize = $compiler->template->smarty->config_booleanize; $this->configBooleanize = $this->smarty->config_booleanize;
} }
public static function &instance($new_instance = null) public static function &instance($new_instance = null)
@@ -135,6 +135,8 @@ class Smarty_Internal_Configfilelexer
$this->yyTracePrompt = '<br>'; $this->yyTracePrompt = '<br>';
} }
private $_yy_state = 1; private $_yy_state = 1;
private $_yy_stack = array(); private $_yy_stack = array();
@@ -164,6 +166,7 @@ class Smarty_Internal_Configfilelexer
if ($this->yyTraceFILE) { if ($this->yyTraceFILE) {
fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
} }
} }
public function yybegin($state) public function yybegin($state)
@@ -174,9 +177,12 @@ class Smarty_Internal_Configfilelexer
} }
} }
public function yylex1() public function yylex1()
{ {
$tokenMap = array( $tokenMap = array (
1 => 0, 1 => 0,
2 => 0, 2 => 0,
3 => 0, 3 => 0,
@@ -192,7 +198,7 @@ class Smarty_Internal_Configfilelexer
$yy_global_pattern = "/\G(#|;)|\G(\\[)|\G(\\])|\G(=)|\G([ \t\r]+)|\G(\n)|\G([0-9]*[a-zA-Z_]\\w*)|\G([\S\s])/iS"; $yy_global_pattern = "/\G(#|;)|\G(\\[)|\G(\\])|\G(=)|\G([ \t\r]+)|\G(\n)|\G([0-9]*[a-zA-Z_]\\w*)|\G([\S\s])/iS";
do { do {
if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches; $yysubmatches = $yymatches;
$yymatches = preg_grep("/(.|\s)+/", $yysubmatches); $yymatches = preg_grep("/(.|\s)+/", $yysubmatches);
if (!count($yymatches)) { if (!count($yymatches)) {
@@ -228,71 +234,66 @@ class Smarty_Internal_Configfilelexer
} }
// skip this token // skip this token
continue; continue;
} } } else {
} else {
throw new Exception('Unexpected input at line' . $this->line . throw new Exception('Unexpected input at line' . $this->line .
': ' . $this->data[$this->counter]); ': ' . $this->data[$this->counter]);
} }
break; break;
} while (true); } while (true);
} // end function } // end function
const START = 1;
const START = 1;
function yy_r1_1($yy_subpatterns) function yy_r1_1($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_COMMENTSTART; $this->token = Smarty_Internal_Configfileparser::TPC_COMMENTSTART;
$this->yypushstate(self::COMMENT); $this->yypushstate(self::COMMENT);
} }
function yy_r1_2($yy_subpatterns) function yy_r1_2($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_OPENB; $this->token = Smarty_Internal_Configfileparser::TPC_OPENB;
$this->yypushstate(self::SECTION); $this->yypushstate(self::SECTION);
} }
function yy_r1_3($yy_subpatterns) function yy_r1_3($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_CLOSEB; $this->token = Smarty_Internal_Configfileparser::TPC_CLOSEB;
} }
function yy_r1_4($yy_subpatterns) function yy_r1_4($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_EQUAL; $this->token = Smarty_Internal_Configfileparser::TPC_EQUAL;
$this->yypushstate(self::VALUE); $this->yypushstate(self::VALUE);
} }
function yy_r1_5($yy_subpatterns) function yy_r1_5($yy_subpatterns)
{ {
return false; return false;
} }
function yy_r1_6($yy_subpatterns) function yy_r1_6($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_NEWLINE; $this->token = Smarty_Internal_Configfileparser::TPC_NEWLINE;
} }
function yy_r1_7($yy_subpatterns) function yy_r1_7($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_ID; $this->token = Smarty_Internal_Configfileparser::TPC_ID;
} }
function yy_r1_8($yy_subpatterns) function yy_r1_8($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_OTHER; $this->token = Smarty_Internal_Configfileparser::TPC_OTHER;
} }
public function yylex2() public function yylex2()
{ {
$tokenMap = array( $tokenMap = array (
1 => 0, 1 => 0,
2 => 0, 2 => 0,
3 => 0, 3 => 0,
@@ -309,7 +310,7 @@ class Smarty_Internal_Configfilelexer
$yy_global_pattern = "/\G([ \t\r]+)|\G(\\d+\\.\\d+(?=[ \t\r]*[\n#;]))|\G(\\d+(?=[ \t\r]*[\n#;]))|\G(\"\"\")|\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(?=[ \t\r]*[\n#;]))|\G(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"(?=[ \t\r]*[\n#;]))|\G([a-zA-Z]+(?=[ \t\r]*[\n#;]))|\G([^\n]+?(?=[ \t\r]*\n))|\G(\n)/iS"; $yy_global_pattern = "/\G([ \t\r]+)|\G(\\d+\\.\\d+(?=[ \t\r]*[\n#;]))|\G(\\d+(?=[ \t\r]*[\n#;]))|\G(\"\"\")|\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(?=[ \t\r]*[\n#;]))|\G(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"(?=[ \t\r]*[\n#;]))|\G([a-zA-Z]+(?=[ \t\r]*[\n#;]))|\G([^\n]+?(?=[ \t\r]*\n))|\G(\n)/iS";
do { do {
if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches; $yysubmatches = $yymatches;
$yymatches = preg_grep("/(.|\s)+/", $yysubmatches); $yymatches = preg_grep("/(.|\s)+/", $yysubmatches);
if (!count($yymatches)) { if (!count($yymatches)) {
@@ -345,62 +346,56 @@ class Smarty_Internal_Configfilelexer
} }
// skip this token // skip this token
continue; continue;
} } } else {
} else {
throw new Exception('Unexpected input at line' . $this->line . throw new Exception('Unexpected input at line' . $this->line .
': ' . $this->data[$this->counter]); ': ' . $this->data[$this->counter]);
} }
break; break;
} while (true); } while (true);
} // end function } // end function
const VALUE = 2;
const VALUE = 2;
function yy_r2_1($yy_subpatterns) function yy_r2_1($yy_subpatterns)
{ {
return false; return false;
} }
function yy_r2_2($yy_subpatterns) function yy_r2_2($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_FLOAT; $this->token = Smarty_Internal_Configfileparser::TPC_FLOAT;
$this->yypopstate(); $this->yypopstate();
} }
function yy_r2_3($yy_subpatterns) function yy_r2_3($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_INT; $this->token = Smarty_Internal_Configfileparser::TPC_INT;
$this->yypopstate(); $this->yypopstate();
} }
function yy_r2_4($yy_subpatterns) function yy_r2_4($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_QUOTES; $this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_QUOTES;
$this->yypushstate(self::TRIPPLE); $this->yypushstate(self::TRIPPLE);
} }
function yy_r2_5($yy_subpatterns) function yy_r2_5($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_SINGLE_QUOTED_STRING; $this->token = Smarty_Internal_Configfileparser::TPC_SINGLE_QUOTED_STRING;
$this->yypopstate(); $this->yypopstate();
} }
function yy_r2_6($yy_subpatterns) function yy_r2_6($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_DOUBLE_QUOTED_STRING; $this->token = Smarty_Internal_Configfileparser::TPC_DOUBLE_QUOTED_STRING;
$this->yypopstate(); $this->yypopstate();
} }
function yy_r2_7($yy_subpatterns) function yy_r2_7($yy_subpatterns)
{ {
if (!$this->configBooleanize || !in_array(strtolower($this->value), Array("true", "false", "on", "off", "yes", "no"))) { if (!$this->configBooleanize || !in_array(strtolower($this->value), Array("true", "false", "on", "off", "yes", "no")) ) {
$this->yypopstate(); $this->yypopstate();
$this->yypushstate(self::NAKED_STRING_VALUE); $this->yypushstate(self::NAKED_STRING_VALUE);
return true; //reprocess in new state return true; //reprocess in new state
@@ -409,14 +404,12 @@ class Smarty_Internal_Configfilelexer
$this->yypopstate(); $this->yypopstate();
} }
} }
function yy_r2_8($yy_subpatterns) function yy_r2_8($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING; $this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
$this->yypopstate(); $this->yypopstate();
} }
function yy_r2_9($yy_subpatterns) function yy_r2_9($yy_subpatterns)
{ {
@@ -425,9 +418,11 @@ class Smarty_Internal_Configfilelexer
$this->yypopstate(); $this->yypopstate();
} }
public function yylex3() public function yylex3()
{ {
$tokenMap = array( $tokenMap = array (
1 => 0, 1 => 0,
); );
if ($this->counter >= strlen($this->data)) { if ($this->counter >= strlen($this->data)) {
@@ -436,7 +431,7 @@ class Smarty_Internal_Configfilelexer
$yy_global_pattern = "/\G([^\n]+?(?=[ \t\r]*\n))/iS"; $yy_global_pattern = "/\G([^\n]+?(?=[ \t\r]*\n))/iS";
do { do {
if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches; $yysubmatches = $yymatches;
$yymatches = preg_grep("/(.|\s)+/", $yysubmatches); $yymatches = preg_grep("/(.|\s)+/", $yysubmatches);
if (!count($yymatches)) { if (!count($yymatches)) {
@@ -472,17 +467,17 @@ class Smarty_Internal_Configfilelexer
} }
// skip this token // skip this token
continue; continue;
} } } else {
} else {
throw new Exception('Unexpected input at line' . $this->line . throw new Exception('Unexpected input at line' . $this->line .
': ' . $this->data[$this->counter]); ': ' . $this->data[$this->counter]);
} }
break; break;
} while (true); } while (true);
} // end function } // end function
const NAKED_STRING_VALUE = 3;
const NAKED_STRING_VALUE = 3;
function yy_r3_1($yy_subpatterns) function yy_r3_1($yy_subpatterns)
{ {
@@ -490,9 +485,11 @@ class Smarty_Internal_Configfilelexer
$this->yypopstate(); $this->yypopstate();
} }
public function yylex4() public function yylex4()
{ {
$tokenMap = array( $tokenMap = array (
1 => 0, 1 => 0,
2 => 0, 2 => 0,
3 => 0, 3 => 0,
@@ -503,7 +500,7 @@ class Smarty_Internal_Configfilelexer
$yy_global_pattern = "/\G([ \t\r]+)|\G([^\n]+?(?=[ \t\r]*\n))|\G(\n)/iS"; $yy_global_pattern = "/\G([ \t\r]+)|\G([^\n]+?(?=[ \t\r]*\n))|\G(\n)/iS";
do { do {
if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches; $yysubmatches = $yymatches;
$yymatches = preg_grep("/(.|\s)+/", $yysubmatches); $yymatches = preg_grep("/(.|\s)+/", $yysubmatches);
if (!count($yymatches)) { if (!count($yymatches)) {
@@ -539,29 +536,27 @@ class Smarty_Internal_Configfilelexer
} }
// skip this token // skip this token
continue; continue;
} } } else {
} else {
throw new Exception('Unexpected input at line' . $this->line . throw new Exception('Unexpected input at line' . $this->line .
': ' . $this->data[$this->counter]); ': ' . $this->data[$this->counter]);
} }
break; break;
} while (true); } while (true);
} // end function } // end function
const COMMENT = 4;
const COMMENT = 4;
function yy_r4_1($yy_subpatterns) function yy_r4_1($yy_subpatterns)
{ {
return false; return false;
} }
function yy_r4_2($yy_subpatterns) function yy_r4_2($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING; $this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
} }
function yy_r4_3($yy_subpatterns) function yy_r4_3($yy_subpatterns)
{ {
@@ -569,9 +564,11 @@ class Smarty_Internal_Configfilelexer
$this->yypopstate(); $this->yypopstate();
} }
public function yylex5() public function yylex5()
{ {
$tokenMap = array( $tokenMap = array (
1 => 0, 1 => 0,
2 => 0, 2 => 0,
); );
@@ -581,7 +578,7 @@ class Smarty_Internal_Configfilelexer
$yy_global_pattern = "/\G(\\.)|\G(.*?(?=[\.=[\]\r\n]))/iS"; $yy_global_pattern = "/\G(\\.)|\G(.*?(?=[\.=[\]\r\n]))/iS";
do { do {
if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches; $yysubmatches = $yymatches;
$yymatches = preg_grep("/(.|\s)+/", $yysubmatches); $yymatches = preg_grep("/(.|\s)+/", $yysubmatches);
if (!count($yymatches)) { if (!count($yymatches)) {
@@ -617,23 +614,22 @@ class Smarty_Internal_Configfilelexer
} }
// skip this token // skip this token
continue; continue;
} } } else {
} else {
throw new Exception('Unexpected input at line' . $this->line . throw new Exception('Unexpected input at line' . $this->line .
': ' . $this->data[$this->counter]); ': ' . $this->data[$this->counter]);
} }
break; break;
} while (true); } while (true);
} // end function } // end function
const SECTION = 5;
const SECTION = 5;
function yy_r5_1($yy_subpatterns) function yy_r5_1($yy_subpatterns)
{ {
$this->token = Smarty_Internal_Configfileparser::TPC_DOT; $this->token = Smarty_Internal_Configfileparser::TPC_DOT;
} }
function yy_r5_2($yy_subpatterns) function yy_r5_2($yy_subpatterns)
{ {
@@ -641,9 +637,10 @@ class Smarty_Internal_Configfilelexer
$this->yypopstate(); $this->yypopstate();
} }
public function yylex6() public function yylex6()
{ {
$tokenMap = array( $tokenMap = array (
1 => 0, 1 => 0,
2 => 0, 2 => 0,
); );
@@ -653,7 +650,7 @@ class Smarty_Internal_Configfilelexer
$yy_global_pattern = "/\G(\"\"\"(?=[ \t\r]*[\n#;]))|\G([\S\s])/iS"; $yy_global_pattern = "/\G(\"\"\"(?=[ \t\r]*[\n#;]))|\G([\S\s])/iS";
do { do {
if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) { if (preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches; $yysubmatches = $yymatches;
$yymatches = preg_grep("/(.|\s)+/", $yysubmatches); $yymatches = preg_grep("/(.|\s)+/", $yysubmatches);
if (!count($yymatches)) { if (!count($yymatches)) {
@@ -689,17 +686,17 @@ class Smarty_Internal_Configfilelexer
} }
// skip this token // skip this token
continue; continue;
} } } else {
} else {
throw new Exception('Unexpected input at line' . $this->line . throw new Exception('Unexpected input at line' . $this->line .
': ' . $this->data[$this->counter]); ': ' . $this->data[$this->counter]);
} }
break; break;
} while (true); } while (true);
} // end function } // end function
const TRIPPLE = 6;
const TRIPPLE = 6;
function yy_r6_1($yy_subpatterns) function yy_r6_1($yy_subpatterns)
{ {
@@ -707,18 +704,19 @@ class Smarty_Internal_Configfilelexer
$this->yypopstate(); $this->yypopstate();
$this->yypushstate(self::START); $this->yypushstate(self::START);
} }
function yy_r6_2($yy_subpatterns) function yy_r6_2($yy_subpatterns)
{ {
$to = strlen($this->data); $to = strlen($this->data);
preg_match("/\"\"\"[ \t\r]*[\n#;]/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter); preg_match("/\"\"\"[ \t\r]*[\n#;]/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter);
if (isset($match[0][1])) { if (isset($match[0][1])) {
$to = $match[0][1]; $to = $match[0][1];
} else { } else {
$this->compiler->trigger_template_error("missing or misspelled literal closing tag"); $this->compiler->trigger_template_error ("missing or misspelled literal closing tag");
} }
$this->value = substr($this->data, $this->counter, $to - $this->counter); $this->value = substr($this->data,$this->counter,$to-$this->counter);
$this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_TEXT; $this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_TEXT;
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
class TPC_yyToken implements ArrayAccess class TPC_yyToken implements ArrayAccess
{ {
public $string = ''; public $string = '';
@@ -72,24 +71,23 @@ class TPC_yyStackEntry
** number for the token at this stack level */ ** number for the token at this stack level */
public $minor; /* The user-supplied minor token value. This public $minor; /* The user-supplied minor token value. This
** is the value of the token */ ** is the value of the token */
} };
;
#line 12 "../smarty/lexer/smarty_internal_configfileparser.y" #line 12 "../smarty/lexer/smarty_internal_configfileparser.y"
/** /**
* Smarty Internal Plugin Configfileparse * Smarty Internal Plugin Configfileparse
* This is the config file parser. *
* It is generated from the smarty_internal_configfileparser.y file * This is the config file parser.
* * It is generated from the smarty_internal_configfileparser.y file
* @package Smarty * @package Smarty
* @subpackage Compiler * @subpackage Compiler
* @author Uwe Tews * @author Uwe Tews
*/ */
class Smarty_Internal_Configfileparser class Smarty_Internal_Configfileparser
{ {
#line 25 "../smarty/lexer/smarty_internal_configfileparser.y" #line 25 "../smarty/lexer/smarty_internal_configfileparser.y"
/** /**
* result status * result status
@@ -162,10 +160,10 @@ class Smarty_Internal_Configfileparser
// set instance object // set instance object
self::instance($this); self::instance($this);
$this->lex = $lex; $this->lex = $lex;
$this->smarty = $compiler->template->smarty; $this->smarty = $compiler->smarty;
$this->compiler = $compiler; $this->compiler = $compiler;
$this->configOverwrite = $compiler->smarty->config_overwrite; $this->configOverwrite = $this->smarty->config_overwrite;
$this->configReadHidden = $compiler->smarty->config_read_hidden; $this->configReadHidden = $this->smarty->config_read_hidden;
} }
/** /**
@@ -325,7 +323,7 @@ class Smarty_Internal_Configfileparser
const YY_ERROR_ACTION = 58; const YY_ERROR_ACTION = 58;
const YY_SZ_ACTTAB = 38; const YY_SZ_ACTTAB = 38;
static public $yy_action = array( static public $yy_action = array(
29, 30, 34, 33, 24, 13, 19, 25, 35, 21, 29, 30, 34, 33, 24, 13, 19, 25, 35, 21,
59, 8, 3, 1, 20, 12, 14, 31, 20, 12, 59, 8, 3, 1, 20, 12, 14, 31, 20, 12,
15, 17, 23, 18, 27, 26, 4, 5, 6, 32, 15, 17, 23, 18, 27, 26, 4, 5, 6, 32,
@@ -336,40 +334,40 @@ class Smarty_Internal_Configfileparser
20, 21, 23, 23, 17, 18, 13, 14, 17, 18, 20, 21, 23, 23, 17, 18, 13, 14, 17, 18,
15, 2, 17, 4, 25, 26, 6, 3, 3, 14, 15, 2, 17, 4, 25, 26, 6, 3, 3, 14,
23, 1, 24, 17, 2, 25, 22, 25, 23, 1, 24, 17, 2, 25, 22, 25,
); );
const YY_SHIFT_USE_DFLT = - 8; const YY_SHIFT_USE_DFLT = -8;
const YY_SHIFT_MAX = 19; const YY_SHIFT_MAX = 19;
static public $yy_shift_ofst = array( static public $yy_shift_ofst = array(
- 8, 1, 1, 1, - 7, - 3, - 3, 30, - 8, - 8, -8, 1, 1, 1, -7, -3, -3, 30, -8, -8,
- 8, 19, 5, 3, 15, 16, 24, 25, 32, 20, -8, 19, 5, 3, 15, 16, 24, 25, 32, 20,
); );
const YY_REDUCE_USE_DFLT = - 21; const YY_REDUCE_USE_DFLT = -21;
const YY_REDUCE_MAX = 10; const YY_REDUCE_MAX = 10;
static public $yy_reduce_ofst = array( static public $yy_reduce_ofst = array(
- 10, - 1, - 1, - 1, - 20, 10, 12, 8, 14, 7, -10, -1, -1, -1, -20, 10, 12, 8, 14, 7,
- 11, -11,
); );
static public $yyExpectedTokens = array( static public $yyExpectedTokens = array(
array(), array(),
array(5, 17, 18,), array(5, 17, 18, ),
array(5, 17, 18,), array(5, 17, 18, ),
array(5, 17, 18,), array(5, 17, 18, ),
array(7, 8, 9, 10, 11, 12, 15, 16,), array(7, 8, 9, 10, 11, 12, 15, 16, ),
array(17, 18,), array(17, 18, ),
array(17, 18,), array(17, 18, ),
array(1,), array(1, ),
array(), array(),
array(), array(),
array(), array(),
array(2, 4,), array(2, 4, ),
array(15, 17,), array(15, 17, ),
array(13, 14,), array(13, 14, ),
array(14,), array(14, ),
array(17,), array(17, ),
array(3,), array(3, ),
array(3,), array(3, ),
array(2,), array(2, ),
array(6,), array(6, ),
array(), array(),
array(), array(),
array(), array(),
@@ -386,13 +384,13 @@ class Smarty_Internal_Configfileparser
array(), array(),
array(), array(),
array(), array(),
); );
static public $yy_default = array( static public $yy_default = array(
44, 37, 41, 40, 58, 58, 58, 36, 39, 44, 44, 37, 41, 40, 58, 58, 58, 36, 39, 44,
44, 58, 58, 58, 58, 58, 58, 58, 58, 58, 44, 58, 58, 58, 58, 58, 58, 58, 58, 58,
55, 54, 57, 56, 50, 45, 43, 42, 38, 46, 55, 54, 57, 56, 50, 45, 43, 42, 38, 46,
47, 52, 51, 49, 48, 53, 47, 52, 51, 49, 48, 53,
); );
const YYNOCODE = 29; const YYNOCODE = 29;
const YYSTACKDEPTH = 100; const YYSTACKDEPTH = 100;
const YYNSTATE = 36; const YYNSTATE = 36;
@@ -400,8 +398,8 @@ class Smarty_Internal_Configfileparser
const YYERRORSYMBOL = 19; const YYERRORSYMBOL = 19;
const YYERRSYMDT = 'yy0'; const YYERRSYMDT = 'yy0';
const YYFALLBACK = 0; const YYFALLBACK = 0;
public static $yyFallback = array(); public static $yyFallback = array(
);
public function Trace($TraceFILE, $zTracePrompt) public function Trace($TraceFILE, $zTracePrompt)
{ {
if (!$TraceFILE) { if (!$TraceFILE) {
@@ -475,8 +473,7 @@ class Smarty_Internal_Configfileparser
public static function yy_destructor($yymajor, $yypminor) public static function yy_destructor($yymajor, $yypminor)
{ {
switch ($yymajor) { switch ($yymajor) {
default: default: break; /* If no destructor action specified: do nothing */
break; /* If no destructor action specified: do nothing */
} }
} }
@@ -493,7 +490,7 @@ class Smarty_Internal_Configfileparser
} }
$yymajor = $yytos->major; $yymajor = $yytos->major;
self::yy_destructor($yymajor, $yytos->minor); self::yy_destructor($yymajor, $yytos->minor);
$this->yyidx --; $this->yyidx--;
return $yymajor; return $yymajor;
} }
@@ -523,7 +520,7 @@ class Smarty_Internal_Configfileparser
// reduce action // reduce action
$done = 0; $done = 0;
do { do {
if ($done ++ == 100) { if ($done++ == 100) {
$this->yyidx = $yyidx; $this->yyidx = $yyidx;
$this->yystack = $stack; $this->yystack = $stack;
// too much recursion prevents proper detection // too much recursion prevents proper detection
@@ -547,7 +544,7 @@ class Smarty_Internal_Configfileparser
} }
if ($nextstate < self::YYNSTATE) { if ($nextstate < self::YYNSTATE) {
// we need to shift a non-terminal // we need to shift a non-terminal
$this->yyidx ++; $this->yyidx++;
$x = new TPC_yyStackEntry; $x = new TPC_yyStackEntry;
$x->stateno = $nextstate; $x->stateno = $nextstate;
$x->major = self::$yyRuleInfo[$yyruleno][0]; $x->major = self::$yyRuleInfo[$yyruleno][0];
@@ -595,7 +592,7 @@ class Smarty_Internal_Configfileparser
// reduce action // reduce action
$done = 0; $done = 0;
do { do {
if ($done ++ == 100) { if ($done++ == 100) {
$this->yyidx = $yyidx; $this->yyidx = $yyidx;
$this->yystack = $stack; $this->yystack = $stack;
// too much recursion prevents proper detection // too much recursion prevents proper detection
@@ -608,8 +605,7 @@ class Smarty_Internal_Configfileparser
$this->yystack[$this->yyidx]->stateno, $this->yystack[$this->yyidx]->stateno,
self::$yyRuleInfo[$yyruleno][0]); self::$yyRuleInfo[$yyruleno][0]);
if (isset(self::$yyExpectedTokens[$nextstate]) && if (isset(self::$yyExpectedTokens[$nextstate]) &&
in_array($token, self::$yyExpectedTokens[$nextstate], true) in_array($token, self::$yyExpectedTokens[$nextstate], true)) {
) {
$this->yyidx = $yyidx; $this->yyidx = $yyidx;
$this->yystack = $stack; $this->yystack = $stack;
@@ -617,7 +613,7 @@ class Smarty_Internal_Configfileparser
} }
if ($nextstate < self::YYNSTATE) { if ($nextstate < self::YYNSTATE) {
// we need to shift a non-terminal // we need to shift a non-terminal
$this->yyidx ++; $this->yyidx++;
$x = new TPC_yyStackEntry; $x = new TPC_yyStackEntry;
$x->stateno = $nextstate; $x->stateno = $nextstate;
$x->major = self::$yyRuleInfo[$yyruleno][0]; $x->major = self::$yyRuleInfo[$yyruleno][0];
@@ -670,11 +666,9 @@ class Smarty_Internal_Configfileparser
} }
$i += $iLookAhead; $i += $iLookAhead;
if ($i < 0 || $i >= self::YY_SZ_ACTTAB || if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
self::$yy_lookahead[$i] != $iLookAhead self::$yy_lookahead[$i] != $iLookAhead) {
) {
if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback) if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
&& ($iFallback = self::$yyFallback[$iLookAhead]) != 0 && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) {
) {
if ($this->yyTraceFILE) { if ($this->yyTraceFILE) {
fwrite($this->yyTraceFILE, $this->yyTracePrompt . "FALLBACK " . fwrite($this->yyTraceFILE, $this->yyTracePrompt . "FALLBACK " .
$this->yyTokenName[$iLookAhead] . " => " . $this->yyTokenName[$iLookAhead] . " => " .
@@ -706,8 +700,7 @@ class Smarty_Internal_Configfileparser
} }
$i += $iLookAhead; $i += $iLookAhead;
if ($i < 0 || $i >= self::YY_SZ_ACTTAB || if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
self::$yy_lookahead[$i] != $iLookAhead self::$yy_lookahead[$i] != $iLookAhead) {
) {
return self::$yy_default[$stateno]; return self::$yy_default[$stateno];
} else { } else {
return self::$yy_action[$i]; return self::$yy_action[$i];
@@ -716,16 +709,16 @@ class Smarty_Internal_Configfileparser
public function yy_shift($yyNewState, $yyMajor, $yypMinor) public function yy_shift($yyNewState, $yyMajor, $yypMinor)
{ {
$this->yyidx ++; $this->yyidx++;
if ($this->yyidx >= self::YYSTACKDEPTH) { if ($this->yyidx >= self::YYSTACKDEPTH) {
$this->yyidx --; $this->yyidx--;
if ($this->yyTraceFILE) { if ($this->yyTraceFILE) {
fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt); fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt);
} }
while ($this->yyidx >= 0) { while ($this->yyidx >= 0) {
$this->yy_pop_parser_stack(); $this->yy_pop_parser_stack();
} }
#line 255 "../smarty/lexer/smarty_internal_configfileparser.y" #line 255 "../smarty/lexer/smarty_internal_configfileparser.y"
$this->internalError = true; $this->internalError = true;
$this->compiler->trigger_config_file_error("Stack overflow in configfile parser"); $this->compiler->trigger_config_file_error("Stack overflow in configfile parser");
@@ -741,37 +734,37 @@ class Smarty_Internal_Configfileparser
fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt, fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt,
$yyNewState); $yyNewState);
fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt); fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt);
for ($i = 1; $i <= $this->yyidx; $i ++) { for ($i = 1; $i <= $this->yyidx; $i++) {
fprintf($this->yyTraceFILE, " %s", fprintf($this->yyTraceFILE, " %s",
$this->yyTokenName[$this->yystack[$i]->major]); $this->yyTokenName[$this->yystack[$i]->major]);
} }
fwrite($this->yyTraceFILE, "\n"); fwrite($this->yyTraceFILE,"\n");
} }
} }
public static $yyRuleInfo = array( public static $yyRuleInfo = array(
array(0 => 20, 1 => 2), array( 0 => 20, 1 => 2 ),
array(0 => 21, 1 => 1), array( 0 => 21, 1 => 1 ),
array(0 => 22, 1 => 2), array( 0 => 22, 1 => 2 ),
array(0 => 22, 1 => 0), array( 0 => 22, 1 => 0 ),
array(0 => 24, 1 => 5), array( 0 => 24, 1 => 5 ),
array(0 => 24, 1 => 6), array( 0 => 24, 1 => 6 ),
array(0 => 23, 1 => 2), array( 0 => 23, 1 => 2 ),
array(0 => 23, 1 => 2), array( 0 => 23, 1 => 2 ),
array(0 => 23, 1 => 0), array( 0 => 23, 1 => 0 ),
array(0 => 26, 1 => 3), array( 0 => 26, 1 => 3 ),
array(0 => 27, 1 => 1), array( 0 => 27, 1 => 1 ),
array(0 => 27, 1 => 1), array( 0 => 27, 1 => 1 ),
array(0 => 27, 1 => 1), array( 0 => 27, 1 => 1 ),
array(0 => 27, 1 => 1), array( 0 => 27, 1 => 1 ),
array(0 => 27, 1 => 1), array( 0 => 27, 1 => 1 ),
array(0 => 27, 1 => 3), array( 0 => 27, 1 => 3 ),
array(0 => 27, 1 => 2), array( 0 => 27, 1 => 2 ),
array(0 => 27, 1 => 1), array( 0 => 27, 1 => 1 ),
array(0 => 27, 1 => 1), array( 0 => 27, 1 => 1 ),
array(0 => 25, 1 => 1), array( 0 => 25, 1 => 1 ),
array(0 => 25, 1 => 2), array( 0 => 25, 1 => 2 ),
array(0 => 25, 1 => 3), array( 0 => 25, 1 => 3 ),
); );
public static $yyReduceMap = array( public static $yyReduceMap = array(
@@ -798,105 +791,73 @@ class Smarty_Internal_Configfileparser
17 => 17, 17 => 17,
18 => 17, 18 => 17,
); );
#line 261 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 261 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r0(){
function yy_r0()
{
$this->_retvalue = null; $this->_retvalue = null;
} }
#line 266 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 266 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r1(){
function yy_r1()
{
$this->add_global_vars($this->yystack[$this->yyidx + 0]->minor); $this->add_global_vars($this->yystack[$this->yyidx + 0]->minor);
$this->_retvalue = null; $this->_retvalue = null;
} }
#line 280 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 280 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r4(){
function yy_r4() $this->add_section_vars($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + 0]->minor);
{
$this->add_section_vars($this->yystack[$this->yyidx + - 3]->minor, $this->yystack[$this->yyidx + 0]->minor);
$this->_retvalue = null; $this->_retvalue = null;
} }
#line 285 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 285 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r5(){
function yy_r5()
{
if ($this->configReadHidden) { if ($this->configReadHidden) {
$this->add_section_vars($this->yystack[$this->yyidx + - 3]->minor, $this->yystack[$this->yyidx + 0]->minor); $this->add_section_vars($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + 0]->minor);
} }
$this->_retvalue = null; $this->_retvalue = null;
} }
#line 293 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 293 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r6(){
function yy_r6() $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
{
$this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
} }
#line 297 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 297 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r7(){
function yy_r7() $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor, Array($this->yystack[$this->yyidx + 0]->minor));
{
$this->_retvalue = array_merge($this->yystack[$this->yyidx + - 1]->minor, Array($this->yystack[$this->yyidx + 0]->minor));
} }
#line 301 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 301 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r8(){
function yy_r8()
{
$this->_retvalue = Array(); $this->_retvalue = Array();
} }
#line 307 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 307 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r9(){
function yy_r9() $this->_retvalue = Array("key" => $this->yystack[$this->yyidx + -2]->minor, "value" => $this->yystack[$this->yyidx + 0]->minor);
{
$this->_retvalue = Array("key" => $this->yystack[$this->yyidx + - 2]->minor, "value" => $this->yystack[$this->yyidx + 0]->minor);
} }
#line 312 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 312 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r10(){
function yy_r10()
{
$this->_retvalue = (float) $this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = (float) $this->yystack[$this->yyidx + 0]->minor;
} }
#line 316 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 316 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r11(){
function yy_r11()
{
$this->_retvalue = (int) $this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = (int) $this->yystack[$this->yyidx + 0]->minor;
} }
#line 320 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 320 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r12(){
function yy_r12()
{
$this->_retvalue = $this->parse_bool($this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = $this->parse_bool($this->yystack[$this->yyidx + 0]->minor);
} }
#line 324 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 324 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r13(){
function yy_r13()
{
$this->_retvalue = self::parse_single_quoted_string($this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = self::parse_single_quoted_string($this->yystack[$this->yyidx + 0]->minor);
} }
#line 328 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 328 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r14(){
function yy_r14()
{
$this->_retvalue = self::parse_double_quoted_string($this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = self::parse_double_quoted_string($this->yystack[$this->yyidx + 0]->minor);
} }
#line 332 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 332 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r15(){
function yy_r15() $this->_retvalue = self::parse_tripple_double_quoted_string($this->yystack[$this->yyidx + -1]->minor);
{
$this->_retvalue = self::parse_tripple_double_quoted_string($this->yystack[$this->yyidx + - 1]->minor);
} }
#line 336 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 336 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r16(){
function yy_r16()
{
$this->_retvalue = ''; $this->_retvalue = '';
} }
#line 340 "../smarty/lexer/smarty_internal_configfileparser.y"
#line 340 "../smarty/lexer/smarty_internal_configfileparser.y" function yy_r17(){
function yy_r17()
{
$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
} }
@@ -906,8 +867,7 @@ class Smarty_Internal_Configfileparser
{ {
$yymsp = $this->yystack[$this->yyidx]; $yymsp = $this->yystack[$this->yyidx];
if ($this->yyTraceFILE && $yyruleno >= 0 if ($this->yyTraceFILE && $yyruleno >= 0
&& $yyruleno < count(self::$yyRuleName) && $yyruleno < count(self::$yyRuleName)) {
) {
fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n", fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n",
$this->yyTracePrompt, $yyruleno, $this->yyTracePrompt, $yyruleno,
self::$yyRuleName[$yyruleno]); self::$yyRuleName[$yyruleno]);
@@ -923,14 +883,14 @@ class Smarty_Internal_Configfileparser
$yygoto = self::$yyRuleInfo[$yyruleno][0]; $yygoto = self::$yyRuleInfo[$yyruleno][0];
$yysize = self::$yyRuleInfo[$yyruleno][1]; $yysize = self::$yyRuleInfo[$yyruleno][1];
$this->yyidx -= $yysize; $this->yyidx -= $yysize;
for ($i = $yysize; $i; $i --) { for ($i = $yysize; $i; $i--) {
// pop all of the right-hand side parameters // pop all of the right-hand side parameters
array_pop($this->yystack); array_pop($this->yystack);
} }
$yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto); $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
if ($yyact < self::YYNSTATE) { if ($yyact < self::YYNSTATE) {
if (!$this->yyTraceFILE && $yysize) { if (!$this->yyTraceFILE && $yysize) {
$this->yyidx ++; $this->yyidx++;
$x = new TPC_yyStackEntry; $x = new TPC_yyStackEntry;
$x->stateno = $yyact; $x->stateno = $yyact;
$x->major = $yygoto; $x->major = $yygoto;
@@ -948,15 +908,14 @@ class Smarty_Internal_Configfileparser
{ {
if ($this->yyTraceFILE) { if ($this->yyTraceFILE) {
fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt); fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
} } while ($this->yyidx >= 0) {
while ($this->yyidx >= 0) {
$this->yy_pop_parser_stack(); $this->yy_pop_parser_stack();
} }
} }
public function yy_syntax_error($yymajor, $TOKEN) public function yy_syntax_error($yymajor, $TOKEN)
{ {
#line 248 "../smarty/lexer/smarty_internal_configfileparser.y" #line 248 "../smarty/lexer/smarty_internal_configfileparser.y"
$this->internalError = true; $this->internalError = true;
$this->yymajor = $yymajor; $this->yymajor = $yymajor;
@@ -967,11 +926,10 @@ class Smarty_Internal_Configfileparser
{ {
if ($this->yyTraceFILE) { if ($this->yyTraceFILE) {
fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt); fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
} } while ($this->yyidx >= 0) {
while ($this->yyidx >= 0) {
$this->yy_pop_parser_stack(); $this->yy_pop_parser_stack();
} }
#line 241 "../smarty/lexer/smarty_internal_configfileparser.y" #line 241 "../smarty/lexer/smarty_internal_configfileparser.y"
$this->successful = !$this->internalError; $this->successful = !$this->internalError;
$this->internalError = false; $this->internalError = false;
@@ -984,14 +942,14 @@ class Smarty_Internal_Configfileparser
if ($this->yyidx === null || $this->yyidx < 0) { if ($this->yyidx === null || $this->yyidx < 0) {
$this->yyidx = 0; $this->yyidx = 0;
$this->yyerrcnt = - 1; $this->yyerrcnt = -1;
$x = new TPC_yyStackEntry; $x = new TPC_yyStackEntry;
$x->stateno = 0; $x->stateno = 0;
$x->major = 0; $x->major = 0;
$this->yystack = array(); $this->yystack = array();
array_push($this->yystack, $x); array_push($this->yystack, $x);
} }
$yyendofinput = ($yymajor == 0); $yyendofinput = ($yymajor==0);
if ($this->yyTraceFILE) { if ($this->yyTraceFILE) {
fprintf($this->yyTraceFILE, "%sInput %s\n", fprintf($this->yyTraceFILE, "%sInput %s\n",
@@ -1001,14 +959,13 @@ class Smarty_Internal_Configfileparser
do { do {
$yyact = $this->yy_find_shift_action($yymajor); $yyact = $this->yy_find_shift_action($yymajor);
if ($yymajor < self::YYERRORSYMBOL && if ($yymajor < self::YYERRORSYMBOL &&
!$this->yy_is_expected_token($yymajor) !$this->yy_is_expected_token($yymajor)) {
) {
// force a syntax error // force a syntax error
$yyact = self::YY_ERROR_ACTION; $yyact = self::YY_ERROR_ACTION;
} }
if ($yyact < self::YYNSTATE) { if ($yyact < self::YYNSTATE) {
$this->yy_shift($yyact, $yymajor, $yytokenvalue); $this->yy_shift($yyact, $yymajor, $yytokenvalue);
$this->yyerrcnt --; $this->yyerrcnt--;
if ($yyendofinput && $this->yyidx >= 0) { if ($yyendofinput && $this->yyidx >= 0) {
$yymajor = 0; $yymajor = 0;
} else { } else {
@@ -1037,10 +994,10 @@ class Smarty_Internal_Configfileparser
while ($this->yyidx >= 0 && while ($this->yyidx >= 0 &&
$yymx != self::YYERRORSYMBOL && $yymx != self::YYERRORSYMBOL &&
($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
) { ){
$this->yy_pop_parser_stack(); $this->yy_pop_parser_stack();
} }
if ($this->yyidx < 0 || $yymajor == 0) { if ($this->yyidx < 0 || $yymajor==0) {
$this->yy_destructor($yymajor, $yytokenvalue); $this->yy_destructor($yymajor, $yytokenvalue);
$this->yy_parse_failed(); $this->yy_parse_failed();
$yymajor = self::YYNOCODE; $yymajor = self::YYNOCODE;