- bugfix {if $foo instanceof $bar} failed to compile if 2nd value is a variable https://github.com/smarty-php/smarty/issues/92

This commit is contained in:
uwetews
2015-10-08 19:45:42 +02:00
parent 7f0a2f788f
commit 428e667453

View File

@@ -31,58 +31,68 @@ class Smarty_Internal_Templateparser
* @var bool * @var bool
*/ */
public $successful = true; public $successful = true;
/** /**
* return value * return value
* *
* @var mixed * @var mixed
*/ */
public $retvalue = 0; public $retvalue = 0;
/** /**
* counter for prefix code * counter for prefix code
* *
* @var int * @var int
*/ */
public static $prefix_number = 0; public static $prefix_number = 0;
/** /**
* @var * @var
*/ */
public $yymajor; public $yymajor;
/** /**
* last index of array variable * last index of array variable
* *
* @var mixed * @var mixed
*/ */
public $last_index; public $last_index;
/** /**
* last variable name * last variable name
* *
* @var string * @var string
*/ */
public $last_variable; public $last_variable;
/** /**
* root parse tree buffer * root parse tree buffer
* *
* @var Smarty_Internal_ParseTree * @var Smarty_Internal_ParseTree
*/ */
public $root_buffer; public $root_buffer;
/** /**
* current parse tree object * current parse tree object
* *
* @var Smarty_Internal_ParseTree * @var Smarty_Internal_ParseTree
*/ */
public $current_buffer; public $current_buffer;
/** /**
* lexer object * lexer object
* *
* @var Smarty_Internal_Templatelexer * @var Smarty_Internal_Templatelexer
*/ */
public $lex; public $lex;
/** /**
* internal error flag * internal error flag
* *
* @var bool * @var bool
*/ */
private $internalError = false; private $internalError = false;
/** /**
* {strip} status * {strip} status
* *
@@ -95,18 +105,21 @@ class Smarty_Internal_Templateparser
* @var Smarty_Internal_TemplateCompilerBase * @var Smarty_Internal_TemplateCompilerBase
*/ */
public $compiler = null; public $compiler = null;
/** /**
* smarty object * smarty object
* *
* @var Smarty * @var Smarty
*/ */
public $smarty = null; public $smarty = null;
/** /**
* template object * template object
* *
* @var Smarty_Internal_Template * @var Smarty_Internal_Template
*/ */
public $template = null; public $template = null;
/** /**
* block nesting level * block nesting level
* *
@@ -121,6 +134,20 @@ class Smarty_Internal_Templateparser
*/ */
public $security = null; public $security = null;
/**
* template prefix array
*
* @var \Smarty_Internal_ParseTree[]
*/
public $template_prefix = array();
/**
* security object
*
* @var \Smarty_Internal_ParseTree[]
*/
public $template_postfix = array();
/** /**
* constructor * constructor
* *
@@ -196,7 +223,8 @@ class Smarty_Internal_Templateparser
// complete template // complete template
// //
start(res) ::= template. { start(res) ::= template. {
$this->compiler->processInheritance($this); $this->root_buffer->prepend_array($this, $this->template_prefix);
$this->root_buffer->append_array($this, $this->template_postfix);
res = $this->root_buffer->to_smarty_php($this); res = $this->root_buffer->to_smarty_php($this);
} }
@@ -839,11 +867,7 @@ ns1(res) ::= ID(i). {
ns1(res) ::= NAMESPACE(i). { ns1(res) ::= NAMESPACE(i). {
res = i; res = i;
} }
//ns1(res) ::= variable(v). {
// res = v;
//}