diff --git a/change_log.txt b/change_log.txt index dbe155cc..c7c9a0b5 100644 --- a/change_log.txt +++ b/change_log.txt @@ -1,3 +1,7 @@ +04/18/2009 +- added stream resources ($smarty->display('mystream://mytemplate')) +- added stream variables {$mystream:myvar} + 04/14/2009 - fixed compile_id handling on {include} tags - fixed append/prepend attributes in {block} tag diff --git a/libs/Smarty.class.php b/libs/Smarty.class.php index 206d6a90..978b88fb 100644 --- a/libs/Smarty.class.php +++ b/libs/Smarty.class.php @@ -111,7 +111,7 @@ class Smarty extends Smarty_Internal_TemplateBase { // config var settings public $config_overwrite = true; //Controls whether variables with the same name overwrite each other. public $config_booleanize = true; //Controls whether config values of on/true/yes and off/false/no get converted to boolean - public $config_read_hidden = true; //Controls whether hidden config sections/vars are read from the file. + public $config_read_hidden = true; //Controls whether hidden config sections/vars are read from the file. // config vars public $config_vars = array(); // assigned tpl vars @@ -173,6 +173,9 @@ class Smarty extends Smarty_Internal_TemplateBase { */ public function __construct() { + // set instance object + self::instance($this); + if (is_callable('mb_internal_encoding')) { $this->has_mb = true; mb_internal_encoding($this->resource_char_set); @@ -185,15 +188,13 @@ class Smarty extends Smarty_Internal_TemplateBase { if (!empty($this->exception_handler)) set_exception_handler($this->exception_handler); // set default dirs - $this->template_dir = '.' . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR; + $this->template_dir = array('.' . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR); $this->compile_dir = '.' . DIRECTORY_SEPARATOR . 'templates_c' . DIRECTORY_SEPARATOR; $this->plugins_dir = array(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR); $this->cache_dir = '.' . DIRECTORY_SEPARATOR . 'cache' . DIRECTORY_SEPARATOR; $this->config_dir = '.' . DIRECTORY_SEPARATOR . 'configs' . DIRECTORY_SEPARATOR; $this->sysplugins_dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'sysplugins' . DIRECTORY_SEPARATOR; $this->debug_tpl = SMARTY_DIR . 'debug.tpl'; - // set instance object - self::instance($this); // load base plugins $this->loadPlugin('Smarty_Internal_Base'); $this->loadPlugin('Smarty_Internal_PluginBase'); diff --git a/libs/sysplugins/internal.resource_stream.php b/libs/sysplugins/internal.resource_stream.php new file mode 100644 index 00000000..490ddfc1 --- /dev/null +++ b/libs/sysplugins/internal.resource_stream.php @@ -0,0 +1,101 @@ +resource_name; + } + + /** + * Get timestamp to template source + * + * @param object $_template template object + * @return boolean false as string resources have no timestamp + */ + public function getTemplateTimestamp($_template) + { + // strings must always be compiled and have no timestamp + return false; + } + + /** + * Retuen template source from resource name + * + * @param object $_template template object + * @return string content of template source + */ + public function getTemplateSource($_template) + { + // return template string + $_template->template_source = ''; + $fp = fopen($_template->resource_name,'r+'); + while (!feof($fp)) { + $_template->template_source .= fgets($fp); + } + fclose($fp); + + return true; + } + + /** + * Return flag that this resource uses the compiler + * + * @return boolean true + */ + public function usesCompiler() + { + // resource string is template, needs compiler + return true; + } + + /** + * Return flag that this resource is evaluated + * + * @return boolean true + */ + public function isEvaluated() + { + // compiled template is evaluated instead of saved to disk + return true; + } + + /** + * Get filepath to compiled template + * + * @param object $_template template object + * @return boolean return false as compiled template is not stored + */ + public function getCompiledFilepath($_template) + { + // no filepath for strings + return false; + } +} + +?> diff --git a/libs/sysplugins/internal.template.php b/libs/sysplugins/internal.template.php index 73e46b39..b07887ac 100644 --- a/libs/sysplugins/internal.template.php +++ b/libs/sysplugins/internal.template.php @@ -473,7 +473,7 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase { // no resource given, use default $this->resource_type = $this->smarty->default_resource_type; $this->resource_name = $template_resource; - } else { + } elseif (strpos($template_resource, '://') != strpos($template_resource, ':')) { // get type and name from path list($this->resource_type, $this->resource_name) = explode(':', $template_resource, 2); if (strlen($this->resource_type) == 1) { @@ -483,11 +483,15 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase { } else { $this->resource_type = strtolower($this->resource_type); } + } else { + // stream resource + $this->resource_type = 'stream'; + $this->resource_name = $template_resource; } // load resource handler if required if (!isset($this->resource_objects[$this->resource_type])) { // is this an internal or custom resource? - if (in_array($this->resource_type, array('file', 'php', 'string', 'extend'))) { + if (in_array($this->resource_type, array('file', 'php', 'string', 'extend', 'stream'))) { // internal, get from sysplugins dir $_resource_class = "Smarty_Internal_Resource_{$this->resource_type}"; } else { @@ -500,96 +504,96 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase { } // cache template object under a unique ID // do not cache string resources - if ($this->resource_type != 'string') { - Smarty::$template_objects[$this->buildTemplateId ($this->template_resource, $this->cache_id, $this->compile_id)] = $this; - } - return true; - } - - /** - * get system filepath to template - */ - public function buildTemplateFilepath ($file = null) - { - if ($file == null) { - $file = $this->resource_name; - } - foreach((array)$this->smarty->template_dir as $_template_dir) { - if (substr($_template_dir, -1) != DIRECTORY_SEPARATOR) { - $_template_dir .= DIRECTORY_SEPARATOR; + if (!in_array($this->resource_type, array('string', 'stream'))) { + Smarty::$template_objects[$this->buildTemplateId ($this->template_resource, $this->cache_id, $this->compile_id)] = $this; + } + return true; } - $_filepath = $_template_dir . $file; - if (file_exists($_filepath)) - return $_filepath; - } - if (file_exists($file)) return $file; - // no tpl file found - if (!empty($this->smarty->default_template_handler_func)) { - if (!is_callable($this->smarty->default_template_handler_func)) { - throw new Exception("Default template handler not callable"); - } else { - $_return = call_user_func_array($this->smarty->default_template_handler_func, - array($this->resource_type, $this->resource_name, &$this->template_source, &$this->template_timestamp, &$this)); - if ($_return == true) { - return $_filepath; + /** + * get system filepath to template + */ + public function buildTemplateFilepath ($file = null) + { + if ($file == null) { + $file = $this->resource_name; + } + foreach((array)$this->smarty->template_dir as $_template_dir) { + if (substr($_template_dir, -1) != DIRECTORY_SEPARATOR) { + $_template_dir .= DIRECTORY_SEPARATOR; + } + + $_filepath = $_template_dir . $file; + if (file_exists($_filepath)) + return $_filepath; + } + if (file_exists($file)) return $file; + // no tpl file found + if (!empty($this->smarty->default_template_handler_func)) { + if (!is_callable($this->smarty->default_template_handler_func)) { + throw new Exception("Default template handler not callable"); + } else { + $_return = call_user_func_array($this->smarty->default_template_handler_func, + array($this->resource_type, $this->resource_name, &$this->template_source, &$this->template_timestamp, &$this)); + if ($_return == true) { + return $_filepath; + } + } + } + throw new Exception("Unable to load template \"{$file}\""); + return false; + } + + /** + * Update Smarty variables in parent variable object + */ + public function updateParentVariables ($scope = SMARTY_LOCAL_SCOPE) + { + foreach ($this->tpl_vars as $_key => $_value) { + // copy global vars back to parent + if (isset($this->parent) && ($scope == SMARTY_PARENT_SCOPE || $this->tpl_vars[$_key]->scope == SMARTY_PARENT_SCOPE)) { + if (isset($this->parent->tpl_vars[$_key])) { + // variable is already defined in parent, copy value + $this->parent->tpl_vars[$_key]->value = $this->tpl_vars[$_key]->value; + } else { + // create variable in parent + $this->parent->tpl_vars[$_key] = clone $_value; + $this->smarty->tpl_vars[$_key]->scope = SMARTY_LOCAL_SCOPE; + } + } + if ($scope == SMARTY_ROOT_SCOPE || $this->tpl_vars[$_key]->scope == SMARTY_ROOT_SCOPE) { + $_ptr = $this; + // find root + while ($_ptr->parent != null) { + $_ptr = $_ptr->parent; + } + if (isset($_ptr->tpl_vars[$_key])) { + // variable is already defined in root, copy value + $_ptr->tpl_vars[$_key]->value = $this->tpl_vars[$_key]->value; + } else { + // create variable in root + $_ptr->tpl_vars[$_key] = clone $_value; + $_ptr->tpl_vars[$_key]->scope = SMARTY_LOCAL_SCOPE; + } + } + if ($scope == SMARTY_GLOBAL_SCOPE || $this->tpl_vars[$_key]->scope == SMARTY_GLOBAL_SCOPE) { + if (isset($this->smarty->global_tpl_vars[$_key])) { + // variable is already defined in root, copy value + $this->smarty->global_tpl_vars[$_key]->value = $this->tpl_vars[$_key]->value; + } else { + // create variable in root + $this->smarty->global_tpl_vars[$_key] = clone $_value; + } + $this->smarty->global_tpl_vars[$_key]->scope = SMARTY_LOCAL_SCOPE; + } } } } - throw new Exception("Unable to load template \"{$file}\""); - return false; - } - /** - * Update Smarty variables in parent variable object - */ - public function updateParentVariables ($scope = SMARTY_LOCAL_SCOPE) - { - foreach ($this->tpl_vars as $_key => $_value) { - // copy global vars back to parent - if (isset($this->parent) && ($scope == SMARTY_PARENT_SCOPE || $this->tpl_vars[$_key]->scope == SMARTY_PARENT_SCOPE)) { - if (isset($this->parent->tpl_vars[$_key])) { - // variable is already defined in parent, copy value - $this->parent->tpl_vars[$_key]->value = $this->tpl_vars[$_key]->value; - } else { - // create variable in parent - $this->parent->tpl_vars[$_key] = clone $_value; - $this->smarty->tpl_vars[$_key]->scope = SMARTY_LOCAL_SCOPE; - } - } - if ($scope == SMARTY_ROOT_SCOPE || $this->tpl_vars[$_key]->scope == SMARTY_ROOT_SCOPE) { - $_ptr = $this; - // find root - while ($_ptr->parent != null) { - $_ptr = $_ptr->parent; - } - if (isset($_ptr->tpl_vars[$_key])) { - // variable is already defined in root, copy value - $_ptr->tpl_vars[$_key]->value = $this->tpl_vars[$_key]->value; - } else { - // create variable in root - $_ptr->tpl_vars[$_key] = clone $_value; - $_ptr->tpl_vars[$_key]->scope = SMARTY_LOCAL_SCOPE; - } - } - if ($scope == SMARTY_GLOBAL_SCOPE || $this->tpl_vars[$_key]->scope == SMARTY_GLOBAL_SCOPE) { - if (isset($this->smarty->global_tpl_vars[$_key])) { - // variable is already defined in root, copy value - $this->smarty->global_tpl_vars[$_key]->value = $this->tpl_vars[$_key]->value; - } else { - // create variable in root - $this->smarty->global_tpl_vars[$_key] = clone $_value; - } - $this->smarty->global_tpl_vars[$_key]->scope = SMARTY_LOCAL_SCOPE; - } + /** + * wrapper for template class + */ + class Smarty_Template extends Smarty_Internal_Template { } - } -} -/** -* wrapper for template class -*/ -class Smarty_Template extends Smarty_Internal_Template { -} - -?> + ?> diff --git a/libs/sysplugins/internal.templatebase.php b/libs/sysplugins/internal.templatebase.php index 726d6f54..08687f58 100644 --- a/libs/sysplugins/internal.templatebase.php +++ b/libs/sysplugins/internal.templatebase.php @@ -275,6 +275,29 @@ class Smarty_Internal_TemplateBase { return ''; } } + /** + * gets a stream variable + * + * @param string $variable the stream of the variable + * @return mixed the value of the global variable + */ + public function getStreamVariable($variable) + { + $_result = ''; + if ($fp = fopen($variable, 'r+')) { + while (!feof($fp)) { + $_result .= fgets($fp); + } + fclose($fp); + return $_result; + } + + if (Smarty::$error_unassigned) { + throw new Exception('Undefined global variable "' . $variable . '"'); + } else { + return ''; + } + } /** * creates a template object diff --git a/libs/sysplugins/internal.templateparser.php b/libs/sysplugins/internal.templateparser.php index 76b24658..cf437cca 100644 --- a/libs/sysplugins/internal.templateparser.php +++ b/libs/sysplugins/internal.templateparser.php @@ -214,9 +214,9 @@ class Smarty_Internal_Templateparser#line 109 "internal.templateparser.php" const TP_RDELIMTAG = 65; const TP_PHPSTART = 66; const TP_PHPEND = 67; - const YY_NO_ACTION = 408; - const YY_ACCEPT_ACTION = 407; - const YY_ERROR_ACTION = 406; + const YY_NO_ACTION = 412; + const YY_ACCEPT_ACTION = 411; + const YY_ERROR_ACTION = 410; /* Next are that tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement @@ -268,237 +268,232 @@ class Smarty_Internal_Templateparser#line 109 "internal.templateparser.php" ** shifting non-terminals after a reduce. ** self::$yy_default Default action for each state. */ - const YY_SZ_ACTTAB = 941; + const YY_SZ_ACTTAB = 911; static public $yy_action = array( - /* 0 */ 186, 189, 204, 169, 23, 192, 22, 407, 52, 177, - /* 10 */ 176, 200, 201, 194, 198, 196, 3, 4, 5, 2, - /* 20 */ 10, 11, 64, 23, 189, 204, 145, 19, 38, 241, - /* 30 */ 8, 213, 12, 107, 64, 201, 194, 198, 196, 3, - /* 40 */ 4, 5, 2, 10, 11, 131, 19, 34, 13, 21, - /* 50 */ 213, 158, 135, 208, 6, 133, 105, 39, 57, 246, - /* 60 */ 240, 15, 133, 197, 135, 189, 204, 56, 243, 261, - /* 70 */ 166, 175, 174, 173, 172, 179, 201, 194, 198, 196, - /* 80 */ 3, 4, 5, 2, 10, 11, 140, 217, 178, 53, - /* 90 */ 152, 202, 169, 169, 192, 192, 69, 132, 35, 162, - /* 100 */ 161, 13, 183, 87, 227, 236, 189, 204, 145, 105, - /* 110 */ 203, 23, 25, 64, 12, 170, 64, 201, 194, 198, - /* 120 */ 196, 3, 4, 5, 2, 10, 11, 129, 32, 145, - /* 130 */ 108, 38, 193, 8, 219, 12, 168, 64, 213, 39, - /* 140 */ 57, 246, 240, 135, 64, 145, 135, 38, 131, 25, - /* 150 */ 259, 12, 232, 64, 223, 181, 26, 6, 13, 190, - /* 160 */ 39, 57, 246, 240, 128, 133, 105, 135, 133, 30, - /* 170 */ 1, 137, 64, 140, 135, 199, 39, 57, 246, 240, - /* 180 */ 214, 148, 24, 135, 216, 188, 50, 124, 145, 62, - /* 190 */ 38, 206, 8, 65, 12, 255, 60, 210, 211, 210, - /* 200 */ 211, 45, 135, 226, 145, 229, 38, 127, 25, 223, - /* 210 */ 12, 26, 64, 169, 31, 192, 6, 43, 64, 39, - /* 220 */ 57, 246, 240, 42, 88, 41, 135, 64, 31, 136, - /* 230 */ 233, 43, 37, 202, 37, 39, 57, 246, 240, 210, - /* 240 */ 211, 59, 135, 167, 195, 58, 13, 145, 135, 38, - /* 250 */ 221, 25, 203, 12, 105, 64, 45, 135, 191, 208, - /* 260 */ 28, 156, 250, 145, 230, 38, 131, 25, 133, 12, - /* 270 */ 121, 64, 154, 202, 37, 160, 187, 176, 39, 57, - /* 280 */ 246, 240, 129, 138, 159, 135, 202, 178, 106, 220, - /* 290 */ 202, 169, 203, 192, 39, 57, 246, 240, 162, 161, - /* 300 */ 23, 135, 87, 17, 236, 203, 145, 133, 38, 203, - /* 310 */ 25, 180, 12, 233, 64, 112, 202, 130, 248, 254, - /* 320 */ 140, 143, 145, 18, 38, 134, 25, 213, 12, 33, - /* 330 */ 64, 40, 101, 258, 140, 203, 123, 39, 57, 246, - /* 340 */ 240, 126, 140, 251, 135, 222, 178, 103, 115, 202, - /* 350 */ 193, 97, 219, 39, 57, 246, 240, 162, 161, 224, - /* 360 */ 135, 87, 251, 236, 247, 95, 231, 14, 203, 124, - /* 370 */ 178, 51, 23, 202, 164, 209, 251, 202, 70, 89, - /* 380 */ 133, 162, 161, 178, 53, 87, 202, 236, 29, 110, - /* 390 */ 251, 77, 203, 219, 162, 161, 203, 170, 87, 213, - /* 400 */ 236, 178, 53, 114, 202, 203, 9, 49, 139, 78, - /* 410 */ 170, 202, 162, 161, 178, 53, 87, 202, 236, 158, - /* 420 */ 82, 122, 73, 203, 102, 162, 161, 257, 170, 87, - /* 430 */ 203, 236, 178, 103, 85, 202, 203, 133, 93, 140, - /* 440 */ 217, 170, 133, 162, 161, 178, 53, 87, 202, 236, - /* 450 */ 140, 239, 155, 74, 203, 253, 162, 161, 178, 53, - /* 460 */ 87, 202, 236, 169, 205, 192, 76, 203, 191, 162, - /* 470 */ 161, 15, 170, 87, 140, 236, 178, 53, 140, 202, - /* 480 */ 203, 125, 153, 83, 71, 170, 109, 162, 161, 178, - /* 490 */ 53, 87, 202, 236, 218, 184, 212, 79, 203, 84, - /* 500 */ 162, 161, 133, 170, 87, 260, 236, 178, 103, 118, - /* 510 */ 202, 203, 41, 219, 124, 133, 170, 191, 162, 161, - /* 520 */ 178, 53, 87, 202, 236, 141, 27, 150, 75, 203, - /* 530 */ 98, 162, 161, 191, 124, 87, 20, 236, 90, 94, - /* 540 */ 13, 251, 203, 61, 7, 182, 133, 170, 105, 54, - /* 550 */ 251, 27, 243, 261, 166, 175, 174, 173, 172, 179, - /* 560 */ 234, 44, 178, 53, 145, 202, 249, 55, 25, 217, - /* 570 */ 72, 185, 64, 162, 161, 142, 149, 87, 245, 236, - /* 580 */ 212, 63, 35, 129, 203, 66, 163, 217, 68, 170, - /* 590 */ 237, 207, 228, 144, 235, 39, 57, 246, 240, 225, - /* 600 */ 252, 36, 135, 178, 106, 193, 202, 212, 165, 33, - /* 610 */ 209, 104, 46, 67, 162, 161, 16, 254, 87, 140, - /* 620 */ 236, 178, 103, 254, 202, 203, 254, 254, 254, 254, - /* 630 */ 254, 254, 162, 161, 238, 254, 87, 254, 236, 178, - /* 640 */ 99, 157, 202, 203, 254, 254, 254, 254, 254, 254, - /* 650 */ 162, 161, 178, 119, 87, 202, 236, 254, 254, 254, - /* 660 */ 254, 203, 254, 162, 161, 254, 254, 87, 254, 236, - /* 670 */ 178, 120, 178, 202, 203, 202, 254, 254, 254, 254, - /* 680 */ 254, 162, 161, 147, 146, 87, 254, 236, 254, 236, - /* 690 */ 178, 92, 203, 202, 203, 254, 254, 254, 254, 254, - /* 700 */ 254, 162, 161, 254, 254, 87, 254, 236, 178, 96, - /* 710 */ 254, 202, 203, 254, 254, 254, 254, 254, 254, 162, - /* 720 */ 161, 254, 254, 87, 254, 236, 178, 100, 254, 202, - /* 730 */ 203, 254, 254, 254, 254, 254, 254, 162, 161, 178, - /* 740 */ 48, 87, 151, 236, 254, 254, 254, 254, 203, 254, - /* 750 */ 162, 161, 254, 254, 87, 254, 236, 178, 113, 178, - /* 760 */ 202, 203, 202, 254, 254, 254, 254, 254, 162, 161, - /* 770 */ 242, 244, 87, 254, 236, 254, 236, 178, 117, 203, - /* 780 */ 202, 203, 254, 254, 254, 254, 254, 254, 162, 161, - /* 790 */ 254, 254, 87, 254, 236, 178, 111, 254, 202, 203, - /* 800 */ 254, 254, 254, 254, 254, 254, 162, 161, 254, 254, - /* 810 */ 87, 254, 236, 178, 91, 254, 202, 203, 254, 254, - /* 820 */ 254, 254, 254, 254, 162, 161, 178, 116, 87, 202, - /* 830 */ 236, 254, 254, 254, 254, 203, 254, 162, 161, 254, - /* 840 */ 254, 87, 254, 236, 178, 47, 178, 202, 203, 202, - /* 850 */ 254, 254, 254, 254, 254, 162, 161, 215, 254, 87, - /* 860 */ 254, 236, 254, 236, 178, 254, 203, 202, 203, 254, - /* 870 */ 254, 254, 254, 254, 254, 162, 161, 254, 254, 86, - /* 880 */ 254, 236, 178, 254, 254, 202, 203, 254, 254, 254, - /* 890 */ 254, 254, 254, 162, 161, 254, 254, 80, 254, 236, - /* 900 */ 178, 254, 178, 202, 203, 202, 254, 254, 254, 254, - /* 910 */ 254, 162, 161, 171, 254, 81, 254, 236, 178, 236, - /* 920 */ 254, 202, 203, 254, 203, 254, 254, 254, 254, 256, - /* 930 */ 254, 254, 254, 254, 254, 236, 254, 254, 254, 254, - /* 940 */ 203, + /* 0 */ 185, 188, 186, 15, 26, 411, 51, 169, 216, 248, + /* 10 */ 21, 101, 176, 182, 177, 175, 3, 2, 11, 8, + /* 20 */ 6, 5, 13, 59, 188, 186, 147, 29, 36, 144, + /* 30 */ 28, 229, 12, 247, 63, 176, 182, 177, 175, 3, + /* 40 */ 2, 11, 8, 6, 5, 127, 110, 35, 223, 145, + /* 50 */ 234, 143, 235, 213, 180, 210, 100, 39, 57, 192, + /* 60 */ 193, 131, 215, 216, 151, 188, 186, 170, 187, 189, + /* 70 */ 174, 183, 181, 178, 184, 99, 176, 182, 177, 175, + /* 80 */ 3, 2, 11, 8, 6, 5, 242, 252, 254, 245, + /* 90 */ 188, 186, 147, 258, 36, 207, 4, 34, 12, 253, + /* 100 */ 63, 176, 182, 177, 175, 3, 2, 11, 8, 6, + /* 110 */ 5, 129, 137, 146, 31, 23, 227, 43, 31, 220, + /* 120 */ 9, 43, 38, 39, 57, 192, 193, 232, 236, 41, + /* 130 */ 151, 63, 194, 53, 40, 220, 252, 254, 221, 63, + /* 140 */ 71, 130, 104, 198, 197, 168, 167, 88, 257, 199, + /* 150 */ 213, 213, 210, 210, 221, 47, 147, 239, 36, 179, + /* 160 */ 4, 151, 12, 111, 60, 223, 147, 234, 36, 151, + /* 170 */ 28, 38, 12, 122, 63, 126, 220, 244, 154, 30, + /* 180 */ 137, 238, 225, 49, 9, 129, 61, 39, 57, 192, + /* 190 */ 193, 152, 190, 120, 151, 221, 7, 39, 57, 192, + /* 200 */ 193, 147, 15, 36, 151, 28, 107, 12, 196, 63, + /* 210 */ 101, 220, 131, 212, 1, 135, 226, 147, 93, 36, + /* 220 */ 42, 28, 124, 12, 125, 63, 263, 252, 254, 242, + /* 230 */ 221, 10, 39, 57, 192, 193, 132, 262, 58, 151, + /* 240 */ 218, 219, 62, 249, 235, 131, 14, 131, 39, 57, + /* 250 */ 192, 193, 147, 131, 36, 151, 28, 261, 12, 27, + /* 260 */ 63, 147, 38, 36, 213, 28, 210, 12, 15, 63, + /* 270 */ 121, 134, 217, 15, 227, 63, 101, 220, 94, 24, + /* 280 */ 128, 101, 123, 39, 57, 192, 193, 18, 116, 242, + /* 290 */ 151, 131, 39, 57, 192, 193, 221, 162, 204, 151, + /* 300 */ 194, 53, 85, 220, 45, 151, 201, 213, 78, 210, + /* 310 */ 26, 198, 197, 194, 53, 88, 220, 199, 213, 131, + /* 320 */ 210, 69, 221, 22, 198, 197, 200, 179, 88, 230, + /* 330 */ 199, 194, 53, 29, 220, 221, 211, 229, 149, 73, + /* 340 */ 179, 220, 198, 197, 194, 53, 88, 220, 199, 205, + /* 350 */ 131, 26, 77, 221, 63, 198, 197, 46, 179, 88, + /* 360 */ 221, 199, 163, 16, 147, 157, 221, 131, 28, 103, + /* 370 */ 12, 179, 63, 123, 20, 159, 232, 26, 229, 131, + /* 380 */ 242, 137, 15, 132, 151, 259, 160, 84, 194, 83, + /* 390 */ 101, 220, 253, 240, 33, 39, 57, 192, 193, 206, + /* 400 */ 194, 53, 151, 220, 229, 199, 155, 237, 75, 220, + /* 410 */ 221, 198, 197, 123, 241, 88, 137, 199, 194, 52, + /* 420 */ 26, 220, 221, 211, 143, 131, 70, 179, 221, 198, + /* 430 */ 197, 194, 53, 88, 220, 199, 171, 137, 123, 79, + /* 440 */ 221, 87, 198, 197, 33, 179, 88, 229, 199, 137, + /* 450 */ 123, 264, 224, 221, 86, 131, 56, 54, 179, 137, + /* 460 */ 25, 170, 187, 189, 174, 183, 181, 178, 184, 26, + /* 470 */ 194, 53, 25, 220, 137, 211, 237, 237, 74, 137, + /* 480 */ 153, 198, 197, 194, 91, 88, 220, 199, 211, 112, + /* 490 */ 150, 34, 221, 234, 198, 197, 138, 179, 88, 119, + /* 500 */ 199, 97, 41, 234, 64, 221, 55, 194, 53, 261, + /* 510 */ 220, 27, 242, 133, 255, 76, 222, 172, 198, 197, + /* 520 */ 194, 53, 88, 220, 199, 233, 237, 63, 72, 221, + /* 530 */ 96, 198, 197, 246, 179, 88, 147, 199, 19, 13, + /* 540 */ 28, 242, 221, 173, 63, 68, 32, 179, 140, 231, + /* 550 */ 260, 251, 24, 67, 208, 132, 45, 151, 203, 202, + /* 560 */ 194, 105, 63, 220, 139, 191, 148, 39, 57, 192, + /* 570 */ 193, 198, 197, 209, 151, 88, 65, 199, 166, 109, + /* 580 */ 158, 95, 221, 194, 105, 214, 220, 37, 223, 137, + /* 590 */ 243, 232, 151, 44, 198, 197, 194, 105, 88, 220, + /* 600 */ 199, 17, 92, 156, 255, 221, 255, 198, 197, 194, + /* 610 */ 91, 88, 220, 199, 255, 255, 161, 255, 221, 255, + /* 620 */ 198, 197, 194, 105, 88, 220, 199, 66, 255, 255, + /* 630 */ 255, 221, 255, 198, 197, 194, 118, 88, 220, 199, + /* 640 */ 250, 255, 256, 255, 221, 255, 198, 197, 255, 255, + /* 650 */ 88, 255, 199, 255, 255, 194, 90, 221, 220, 255, + /* 660 */ 255, 255, 255, 255, 255, 255, 198, 197, 255, 255, + /* 670 */ 88, 255, 199, 194, 115, 255, 220, 221, 255, 255, + /* 680 */ 255, 255, 255, 255, 198, 197, 194, 102, 88, 220, + /* 690 */ 199, 255, 255, 255, 255, 221, 255, 198, 197, 194, + /* 700 */ 108, 88, 220, 199, 255, 255, 255, 255, 221, 255, + /* 710 */ 198, 197, 194, 106, 88, 220, 199, 255, 255, 255, + /* 720 */ 255, 221, 255, 198, 197, 194, 117, 88, 220, 199, + /* 730 */ 255, 255, 194, 255, 221, 220, 198, 197, 255, 255, + /* 740 */ 88, 255, 199, 165, 164, 194, 98, 221, 220, 199, + /* 750 */ 255, 255, 255, 255, 221, 255, 198, 197, 255, 255, + /* 760 */ 88, 255, 199, 194, 48, 255, 220, 221, 255, 255, + /* 770 */ 255, 255, 255, 255, 198, 197, 194, 114, 88, 220, + /* 780 */ 199, 255, 255, 255, 255, 221, 255, 198, 197, 194, + /* 790 */ 89, 88, 220, 199, 255, 255, 255, 255, 221, 255, + /* 800 */ 198, 197, 194, 50, 88, 141, 199, 255, 255, 255, + /* 810 */ 255, 221, 255, 198, 197, 194, 113, 88, 220, 199, + /* 820 */ 255, 255, 194, 255, 221, 220, 198, 197, 255, 255, + /* 830 */ 88, 194, 199, 228, 220, 255, 255, 221, 255, 199, + /* 840 */ 255, 255, 198, 197, 221, 255, 82, 255, 199, 194, + /* 850 */ 255, 255, 220, 221, 255, 255, 255, 255, 255, 255, + /* 860 */ 198, 197, 194, 255, 80, 220, 199, 255, 255, 255, + /* 870 */ 255, 221, 255, 198, 197, 194, 255, 81, 220, 199, + /* 880 */ 255, 255, 255, 255, 221, 255, 136, 142, 194, 255, + /* 890 */ 255, 220, 199, 255, 255, 255, 255, 221, 255, 195, + /* 900 */ 255, 255, 255, 255, 255, 199, 255, 255, 255, 255, + /* 910 */ 221, ); static public $yy_lookahead = array( - /* 0 */ 16, 40, 41, 1, 3, 3, 3, 69, 70, 71, - /* 10 */ 72, 9, 51, 52, 53, 54, 55, 56, 57, 58, - /* 20 */ 59, 60, 19, 3, 40, 41, 11, 26, 13, 4, - /* 30 */ 15, 30, 17, 30, 19, 51, 52, 53, 54, 55, - /* 40 */ 56, 57, 58, 59, 60, 30, 26, 46, 15, 3, - /* 50 */ 30, 50, 49, 16, 39, 25, 23, 42, 43, 44, - /* 60 */ 45, 15, 25, 4, 49, 40, 41, 78, 31, 32, - /* 70 */ 33, 34, 35, 36, 37, 38, 51, 52, 53, 54, - /* 80 */ 55, 56, 57, 58, 59, 60, 27, 98, 74, 75, - /* 90 */ 24, 77, 1, 1, 3, 3, 82, 83, 61, 85, - /* 100 */ 86, 15, 88, 89, 18, 91, 40, 41, 11, 23, - /* 110 */ 96, 3, 15, 19, 17, 101, 19, 51, 52, 53, - /* 120 */ 54, 55, 56, 57, 58, 59, 60, 30, 3, 11, - /* 130 */ 95, 13, 97, 15, 99, 17, 11, 19, 30, 42, - /* 140 */ 43, 44, 45, 49, 19, 11, 49, 13, 30, 15, - /* 150 */ 4, 17, 18, 19, 1, 30, 3, 39, 15, 67, - /* 160 */ 42, 43, 44, 45, 30, 25, 23, 49, 25, 29, - /* 170 */ 27, 28, 19, 27, 49, 4, 42, 43, 44, 45, - /* 180 */ 1, 2, 3, 49, 5, 6, 7, 80, 11, 10, - /* 190 */ 13, 4, 15, 19, 17, 42, 19, 12, 13, 12, - /* 200 */ 13, 48, 49, 18, 11, 16, 13, 30, 15, 1, - /* 210 */ 17, 3, 19, 1, 17, 3, 39, 20, 19, 42, - /* 220 */ 43, 44, 45, 30, 73, 28, 49, 19, 17, 30, - /* 230 */ 74, 20, 47, 77, 47, 42, 43, 44, 45, 12, - /* 240 */ 13, 62, 49, 64, 65, 66, 15, 11, 49, 13, - /* 250 */ 42, 15, 96, 17, 23, 19, 48, 49, 107, 16, - /* 260 */ 29, 19, 106, 11, 30, 13, 30, 15, 25, 17, - /* 270 */ 74, 19, 30, 77, 47, 63, 71, 72, 42, 43, - /* 280 */ 44, 45, 30, 74, 50, 49, 77, 74, 75, 93, - /* 290 */ 77, 1, 96, 3, 42, 43, 44, 45, 85, 86, - /* 300 */ 3, 49, 89, 21, 91, 96, 11, 25, 13, 96, - /* 310 */ 15, 14, 17, 74, 19, 30, 77, 104, 105, 4, - /* 320 */ 27, 28, 11, 26, 13, 30, 15, 30, 17, 22, - /* 330 */ 19, 92, 76, 43, 27, 96, 80, 42, 43, 44, - /* 340 */ 45, 30, 27, 87, 49, 106, 74, 75, 95, 77, - /* 350 */ 97, 76, 99, 42, 43, 44, 45, 85, 86, 4, - /* 360 */ 49, 89, 87, 91, 18, 76, 94, 21, 96, 80, - /* 370 */ 74, 75, 3, 77, 74, 100, 87, 77, 82, 76, - /* 380 */ 25, 85, 86, 74, 75, 89, 77, 91, 26, 95, - /* 390 */ 87, 82, 96, 99, 85, 86, 96, 101, 89, 30, - /* 400 */ 91, 74, 75, 21, 77, 96, 24, 81, 74, 82, - /* 410 */ 101, 77, 85, 86, 74, 75, 89, 77, 91, 50, - /* 420 */ 78, 4, 82, 96, 79, 85, 86, 4, 101, 89, - /* 430 */ 96, 91, 74, 75, 73, 77, 96, 25, 79, 27, - /* 440 */ 98, 101, 25, 85, 86, 74, 75, 89, 77, 91, - /* 450 */ 27, 4, 94, 82, 96, 4, 85, 86, 74, 75, - /* 460 */ 89, 77, 91, 1, 99, 3, 82, 96, 107, 85, - /* 470 */ 86, 15, 101, 89, 27, 91, 74, 75, 27, 77, - /* 480 */ 96, 4, 84, 73, 82, 101, 81, 85, 86, 74, - /* 490 */ 75, 89, 77, 91, 4, 88, 98, 82, 96, 73, - /* 500 */ 85, 86, 25, 101, 89, 43, 91, 74, 75, 95, - /* 510 */ 77, 96, 28, 99, 80, 25, 101, 107, 85, 86, - /* 520 */ 74, 75, 89, 77, 91, 30, 26, 94, 82, 96, - /* 530 */ 76, 85, 86, 107, 80, 89, 102, 91, 79, 76, - /* 540 */ 15, 87, 96, 19, 103, 49, 25, 101, 23, 78, - /* 550 */ 87, 26, 31, 32, 33, 34, 35, 36, 37, 38, - /* 560 */ 48, 79, 74, 75, 11, 77, 48, 78, 15, 98, - /* 570 */ 82, 8, 19, 85, 86, 30, 30, 89, 11, 91, - /* 580 */ 98, 30, 61, 30, 96, 16, 4, 98, 30, 101, - /* 590 */ 4, 30, 30, 20, 4, 42, 43, 44, 45, 16, - /* 600 */ 87, 90, 49, 74, 75, 97, 77, 98, 107, 22, - /* 610 */ 100, 79, 79, 93, 85, 86, 15, 108, 89, 27, - /* 620 */ 91, 74, 75, 108, 77, 96, 108, 108, 108, 108, - /* 630 */ 108, 108, 85, 86, 105, 108, 89, 108, 91, 74, - /* 640 */ 75, 94, 77, 96, 108, 108, 108, 108, 108, 108, - /* 650 */ 85, 86, 74, 75, 89, 77, 91, 108, 108, 108, - /* 660 */ 108, 96, 108, 85, 86, 108, 108, 89, 108, 91, - /* 670 */ 74, 75, 74, 77, 96, 77, 108, 108, 108, 108, - /* 680 */ 108, 85, 86, 85, 86, 89, 108, 91, 108, 91, - /* 690 */ 74, 75, 96, 77, 96, 108, 108, 108, 108, 108, - /* 700 */ 108, 85, 86, 108, 108, 89, 108, 91, 74, 75, - /* 710 */ 108, 77, 96, 108, 108, 108, 108, 108, 108, 85, - /* 720 */ 86, 108, 108, 89, 108, 91, 74, 75, 108, 77, - /* 730 */ 96, 108, 108, 108, 108, 108, 108, 85, 86, 74, - /* 740 */ 75, 89, 77, 91, 108, 108, 108, 108, 96, 108, - /* 750 */ 85, 86, 108, 108, 89, 108, 91, 74, 75, 74, - /* 760 */ 77, 96, 77, 108, 108, 108, 108, 108, 85, 86, - /* 770 */ 85, 86, 89, 108, 91, 108, 91, 74, 75, 96, - /* 780 */ 77, 96, 108, 108, 108, 108, 108, 108, 85, 86, - /* 790 */ 108, 108, 89, 108, 91, 74, 75, 108, 77, 96, - /* 800 */ 108, 108, 108, 108, 108, 108, 85, 86, 108, 108, - /* 810 */ 89, 108, 91, 74, 75, 108, 77, 96, 108, 108, - /* 820 */ 108, 108, 108, 108, 85, 86, 74, 75, 89, 77, - /* 830 */ 91, 108, 108, 108, 108, 96, 108, 85, 86, 108, - /* 840 */ 108, 89, 108, 91, 74, 75, 74, 77, 96, 77, - /* 850 */ 108, 108, 108, 108, 108, 85, 86, 85, 108, 89, - /* 860 */ 108, 91, 108, 91, 74, 108, 96, 77, 96, 108, - /* 870 */ 108, 108, 108, 108, 108, 85, 86, 108, 108, 89, - /* 880 */ 108, 91, 74, 108, 108, 77, 96, 108, 108, 108, - /* 890 */ 108, 108, 108, 85, 86, 108, 108, 89, 108, 91, - /* 900 */ 74, 108, 74, 77, 96, 77, 108, 108, 108, 108, - /* 910 */ 108, 85, 86, 85, 108, 89, 108, 91, 74, 91, - /* 920 */ 108, 77, 96, 108, 96, 108, 108, 108, 108, 85, - /* 930 */ 108, 108, 108, 108, 108, 91, 108, 108, 108, 108, - /* 940 */ 96, + /* 0 */ 16, 40, 41, 15, 3, 69, 70, 71, 72, 30, + /* 10 */ 3, 23, 51, 52, 53, 54, 55, 56, 57, 58, + /* 20 */ 59, 60, 15, 30, 40, 41, 11, 26, 13, 50, + /* 30 */ 15, 30, 17, 18, 19, 51, 52, 53, 54, 55, + /* 40 */ 56, 57, 58, 59, 60, 30, 95, 46, 97, 24, + /* 50 */ 99, 50, 16, 1, 4, 3, 79, 42, 43, 44, + /* 60 */ 45, 25, 71, 72, 49, 40, 41, 31, 32, 33, + /* 70 */ 34, 35, 36, 37, 38, 76, 51, 52, 53, 54, + /* 80 */ 55, 56, 57, 58, 59, 60, 87, 12, 13, 4, + /* 90 */ 40, 41, 11, 18, 13, 43, 15, 61, 17, 100, + /* 100 */ 19, 51, 52, 53, 54, 55, 56, 57, 58, 59, + /* 110 */ 60, 30, 27, 84, 17, 3, 74, 20, 17, 77, + /* 120 */ 39, 20, 47, 42, 43, 44, 45, 98, 4, 28, + /* 130 */ 49, 19, 74, 75, 92, 77, 12, 13, 96, 19, + /* 140 */ 82, 83, 30, 85, 86, 4, 88, 89, 106, 91, + /* 150 */ 1, 1, 3, 3, 96, 81, 11, 4, 13, 101, + /* 160 */ 15, 49, 17, 95, 19, 97, 11, 99, 13, 49, + /* 170 */ 15, 47, 17, 74, 19, 30, 77, 1, 2, 3, + /* 180 */ 27, 5, 6, 7, 39, 30, 10, 42, 43, 44, + /* 190 */ 45, 30, 93, 21, 49, 96, 24, 42, 43, 44, + /* 200 */ 45, 11, 15, 13, 49, 15, 79, 17, 74, 19, + /* 210 */ 23, 77, 25, 63, 27, 28, 67, 11, 76, 13, + /* 220 */ 30, 15, 80, 17, 4, 19, 4, 12, 13, 87, + /* 230 */ 96, 103, 42, 43, 44, 45, 30, 16, 62, 49, + /* 240 */ 64, 65, 66, 18, 16, 25, 21, 25, 42, 43, + /* 250 */ 44, 45, 11, 25, 13, 49, 15, 1, 17, 3, + /* 260 */ 19, 11, 47, 13, 1, 15, 3, 17, 15, 19, + /* 270 */ 4, 30, 9, 15, 74, 19, 23, 77, 76, 26, + /* 280 */ 30, 23, 80, 42, 43, 44, 45, 29, 81, 87, + /* 290 */ 49, 25, 42, 43, 44, 45, 96, 88, 42, 49, + /* 300 */ 74, 75, 73, 77, 48, 49, 106, 1, 82, 3, + /* 310 */ 3, 85, 86, 74, 75, 89, 77, 91, 1, 25, + /* 320 */ 3, 82, 96, 29, 85, 86, 99, 101, 89, 4, + /* 330 */ 91, 74, 75, 26, 77, 96, 107, 30, 74, 82, + /* 340 */ 101, 77, 85, 86, 74, 75, 89, 77, 91, 43, + /* 350 */ 25, 3, 82, 96, 19, 85, 86, 79, 101, 89, + /* 360 */ 96, 91, 14, 21, 11, 30, 96, 25, 15, 76, + /* 370 */ 17, 101, 19, 80, 26, 19, 98, 3, 30, 25, + /* 380 */ 87, 27, 15, 30, 49, 18, 30, 78, 74, 73, + /* 390 */ 23, 77, 100, 4, 22, 42, 43, 44, 45, 85, + /* 400 */ 74, 75, 49, 77, 30, 91, 74, 98, 82, 77, + /* 410 */ 96, 85, 86, 80, 4, 89, 27, 91, 74, 75, + /* 420 */ 3, 77, 96, 107, 50, 25, 82, 101, 96, 85, + /* 430 */ 86, 74, 75, 89, 77, 91, 4, 27, 80, 82, + /* 440 */ 96, 73, 85, 86, 22, 101, 89, 30, 91, 27, + /* 450 */ 80, 4, 8, 96, 73, 25, 78, 78, 101, 27, + /* 460 */ 102, 31, 32, 33, 34, 35, 36, 37, 38, 3, + /* 470 */ 74, 75, 102, 77, 27, 107, 98, 98, 82, 27, + /* 480 */ 28, 85, 86, 74, 75, 89, 77, 91, 107, 95, + /* 490 */ 30, 61, 96, 99, 85, 86, 30, 101, 89, 95, + /* 500 */ 91, 76, 28, 99, 19, 96, 78, 74, 75, 1, + /* 510 */ 77, 3, 87, 104, 105, 82, 49, 4, 85, 86, + /* 520 */ 74, 75, 89, 77, 91, 30, 98, 19, 82, 96, + /* 530 */ 76, 85, 86, 16, 101, 89, 11, 91, 26, 15, + /* 540 */ 15, 87, 96, 4, 19, 30, 3, 101, 30, 30, + /* 550 */ 42, 30, 26, 16, 11, 30, 48, 49, 48, 48, + /* 560 */ 74, 75, 19, 77, 22, 11, 20, 42, 43, 44, + /* 570 */ 45, 85, 86, 30, 49, 89, 19, 91, 4, 30, + /* 580 */ 94, 79, 96, 74, 75, 107, 77, 90, 97, 27, + /* 590 */ 87, 98, 49, 79, 85, 86, 74, 75, 89, 77, + /* 600 */ 91, 15, 79, 94, 108, 96, 108, 85, 86, 74, + /* 610 */ 75, 89, 77, 91, 108, 108, 94, 108, 96, 108, + /* 620 */ 85, 86, 74, 75, 89, 77, 91, 93, 108, 108, + /* 630 */ 108, 96, 108, 85, 86, 74, 75, 89, 77, 91, + /* 640 */ 105, 108, 94, 108, 96, 108, 85, 86, 108, 108, + /* 650 */ 89, 108, 91, 108, 108, 74, 75, 96, 77, 108, + /* 660 */ 108, 108, 108, 108, 108, 108, 85, 86, 108, 108, + /* 670 */ 89, 108, 91, 74, 75, 108, 77, 96, 108, 108, + /* 680 */ 108, 108, 108, 108, 85, 86, 74, 75, 89, 77, + /* 690 */ 91, 108, 108, 108, 108, 96, 108, 85, 86, 74, + /* 700 */ 75, 89, 77, 91, 108, 108, 108, 108, 96, 108, + /* 710 */ 85, 86, 74, 75, 89, 77, 91, 108, 108, 108, + /* 720 */ 108, 96, 108, 85, 86, 74, 75, 89, 77, 91, + /* 730 */ 108, 108, 74, 108, 96, 77, 85, 86, 108, 108, + /* 740 */ 89, 108, 91, 85, 86, 74, 75, 96, 77, 91, + /* 750 */ 108, 108, 108, 108, 96, 108, 85, 86, 108, 108, + /* 760 */ 89, 108, 91, 74, 75, 108, 77, 96, 108, 108, + /* 770 */ 108, 108, 108, 108, 85, 86, 74, 75, 89, 77, + /* 780 */ 91, 108, 108, 108, 108, 96, 108, 85, 86, 74, + /* 790 */ 75, 89, 77, 91, 108, 108, 108, 108, 96, 108, + /* 800 */ 85, 86, 74, 75, 89, 77, 91, 108, 108, 108, + /* 810 */ 108, 96, 108, 85, 86, 74, 75, 89, 77, 91, + /* 820 */ 108, 108, 74, 108, 96, 77, 85, 86, 108, 108, + /* 830 */ 89, 74, 91, 85, 77, 108, 108, 96, 108, 91, + /* 840 */ 108, 108, 85, 86, 96, 108, 89, 108, 91, 74, + /* 850 */ 108, 108, 77, 96, 108, 108, 108, 108, 108, 108, + /* 860 */ 85, 86, 74, 108, 89, 77, 91, 108, 108, 108, + /* 870 */ 108, 96, 108, 85, 86, 74, 108, 89, 77, 91, + /* 880 */ 108, 108, 108, 108, 96, 108, 85, 86, 74, 108, + /* 890 */ 108, 77, 91, 108, 108, 108, 108, 96, 108, 85, + /* 900 */ 108, 108, 108, 108, 108, 91, 108, 108, 108, 108, + /* 910 */ 96, ); const YY_SHIFT_USE_DFLT = -40; - const YY_SHIFT_MAX = 159; + const YY_SHIFT_MAX = 161; static public $yy_shift_ofst = array( - /* 0 */ 179, 177, 15, 15, 15, 15, 15, 15, 15, 118, - /* 10 */ 15, 15, 311, 236, 311, 236, 236, 236, 236, 236, - /* 20 */ 236, 236, 236, 236, 193, 236, 236, 236, 236, 236, - /* 30 */ 236, 134, 252, 295, 97, 97, 553, 553, 553, 208, - /* 40 */ 153, 3, 143, 125, 197, 199, 197, 412, 412, 307, - /* 50 */ 94, 37, 179, 521, 1, 297, 369, 462, 91, 91, - /* 60 */ 108, 108, 91, 293, 108, 108, 484, 484, 592, 25, - /* 70 */ -16, 66, -39, -39, -39, -39, -39, -39, -39, -39, - /* 80 */ 185, 187, 20, 92, 290, 212, 227, 227, 2, 59, - /* 90 */ 211, 477, 355, 211, 423, 315, 243, 447, 451, 417, - /* 100 */ 490, 146, 211, 282, 211, 242, 140, 46, 484, 587, - /* 110 */ 484, 30, 601, 30, 524, 484, 30, 30, 484, 30, - /* 120 */ 30, -40, -40, -40, -40, -40, 231, 525, 86, 33, - /* 130 */ 346, 33, 382, 234, 33, 545, 518, 558, 563, 512, - /* 140 */ 495, 500, 496, 546, 567, 573, 590, 586, 551, 582, - /* 150 */ 583, 362, 174, 171, 456, 189, 285, 569, 561, 562, + /* 0 */ 176, 145, 81, 81, 81, 81, 81, 81, 81, 81, + /* 10 */ 81, 81, 250, 155, 250, 155, 155, 155, 155, 155, + /* 20 */ 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, + /* 30 */ 190, 15, 206, 241, 353, 353, 525, 525, 525, 508, + /* 40 */ 256, 112, 187, 543, 101, 335, 101, 422, 354, 120, + /* 50 */ 354, 176, 36, 430, 1, 348, 374, 306, 317, 452, + /* 60 */ 466, 317, 317, 466, 417, 417, 474, 474, 562, 25, + /* 70 */ -16, 50, -39, -39, -39, -39, -39, -39, -39, -39, + /* 80 */ 75, 124, 215, 263, 307, 149, 52, 150, 215, 220, + /* 90 */ 222, 294, 97, 389, 153, 97, 410, 432, 228, 447, + /* 100 */ 97, 356, 325, 85, 7, 342, 266, 97, 400, 586, + /* 110 */ 474, 474, 474, 400, 400, 400, 372, 400, 400, 474, + /* 120 */ 485, -40, -40, -40, -40, -40, 253, 367, 258, -12, + /* 130 */ 172, -21, -12, 225, -12, 515, 539, 518, 542, 519, + /* 140 */ 526, 512, 513, 495, 521, 557, 574, 546, 554, 510, + /* 150 */ 467, 460, 141, 161, -7, 444, 221, 511, 537, 549, + /* 160 */ 524, 517, ); - const YY_REDUCE_USE_DFLT = -63; + const YY_REDUCE_USE_DFLT = -65; const YY_REDUCE_MAX = 125; static public $yy_reduce_ofst = array( - /* 0 */ -62, 14, 340, 371, 384, 327, 415, 309, 296, 402, - /* 10 */ 446, 488, 213, 433, 529, 358, 547, 272, 721, 703, - /* 20 */ 596, 739, 565, 652, 665, 634, 616, 578, 683, 770, - /* 30 */ 752, 808, 826, 790, 598, 685, 844, 772, 828, 239, - /* 40 */ 156, 196, 256, 300, 253, 334, 35, 289, 454, 275, - /* 50 */ 209, 434, 205, 434, 482, 398, 482, 426, 410, 361, - /* 60 */ 471, 342, 151, 303, -11, 489, 294, 414, 463, 441, - /* 70 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441, - /* 80 */ 511, 511, 509, 501, 501, 501, 511, 511, 501, 513, - /* 90 */ 508, 107, 107, 508, 513, 513, 107, 513, 513, 107, - /* 100 */ 107, 513, 508, 107, 508, 520, 107, 532, 365, 510, - /* 110 */ 365, 107, 533, 107, 407, 365, 107, 107, 365, 107, - /* 120 */ 107, 359, 345, 326, 405, 459, + /* 0 */ -64, 58, 270, 326, 344, 257, 396, 239, 226, 357, + /* 10 */ 433, 446, 409, 522, 535, 509, 548, 486, 702, 689, + /* 20 */ 599, 715, 561, 638, 651, 625, 612, 581, 671, 741, + /* 30 */ 728, 775, 788, 757, 658, 801, 814, 314, 748, 42, + /* 40 */ 200, 99, 142, 134, 68, 264, -49, -1, 202, 332, + /* 50 */ 293, -9, 370, 358, 278, 29, 278, 381, 368, 425, + /* 60 */ 379, 316, 229, 378, 309, 428, 404, 394, 454, 128, + /* 70 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + /* 80 */ 497, 497, 497, 478, 493, 478, 478, 478, 497, 333, + /* 90 */ 333, 333, 491, 503, 503, 491, 503, 503, 333, 503, + /* 100 */ 491, 534, 333, 503, 523, 333, 333, 491, 333, 514, + /* 110 */ 227, 227, 227, 333, 333, 333, 292, 333, 333, 227, + /* 120 */ 209, -23, 127, 207, 74, 502, ); static public $yyExpectedTokens = array( /* 0 */ array(1, 2, 3, 5, 6, 7, 10, 62, 64, 65, 66, ), @@ -548,31 +543,31 @@ static public $yy_action = array( /* 44 */ array(17, 20, 28, ), /* 45 */ array(19, 30, 49, ), /* 46 */ array(17, 20, 28, ), - /* 47 */ array(25, 27, ), + /* 47 */ array(22, 27, ), /* 48 */ array(25, 27, ), - /* 49 */ array(22, 27, ), - /* 50 */ array(19, 49, ), - /* 51 */ array(16, 25, 31, 32, 33, 34, 35, 36, 37, 38, 61, ), - /* 52 */ array(1, 2, 3, 5, 6, 7, 10, 62, 64, 65, 66, ), + /* 49 */ array(19, 49, ), + /* 50 */ array(25, 27, ), + /* 51 */ array(1, 2, 3, 5, 6, 7, 10, 62, 64, 65, 66, ), + /* 52 */ array(16, 25, 31, 32, 33, 34, 35, 36, 37, 38, 61, ), /* 53 */ array(25, 31, 32, 33, 34, 35, 36, 37, 38, 61, ), /* 54 */ array(3, 26, 30, 46, 50, ), /* 55 */ array(3, 14, 26, 30, ), /* 56 */ array(3, 30, 50, ), /* 57 */ array(1, 3, 43, ), /* 58 */ array(1, 3, ), - /* 59 */ array(1, 3, ), + /* 59 */ array(27, 28, ), /* 60 */ array(3, 30, ), - /* 61 */ array(3, 30, ), + /* 61 */ array(1, 3, ), /* 62 */ array(1, 3, ), - /* 63 */ array(27, 28, ), + /* 63 */ array(3, 30, ), /* 64 */ array(3, 30, ), /* 65 */ array(3, 30, ), /* 66 */ array(28, ), /* 67 */ array(28, ), /* 68 */ array(27, ), - /* 69 */ array(4, 40, 41, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ), + /* 69 */ array(24, 40, 41, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ), /* 70 */ array(16, 40, 41, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ), - /* 71 */ array(24, 40, 41, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ), + /* 71 */ array(4, 40, 41, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ), /* 72 */ array(40, 41, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ), /* 73 */ array(40, 41, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ), /* 74 */ array(40, 41, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ), @@ -583,86 +578,86 @@ static public $yy_action = array( /* 79 */ array(40, 41, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ), /* 80 */ array(12, 13, 18, 47, ), /* 81 */ array(4, 12, 13, 47, ), - /* 82 */ array(3, 26, 30, ), - /* 83 */ array(1, 3, 67, ), - /* 84 */ array(1, 3, 43, ), - /* 85 */ array(1, 3, 63, ), - /* 86 */ array(12, 13, 47, ), - /* 87 */ array(12, 13, 47, ), - /* 88 */ array(1, 3, 9, ), - /* 89 */ array(4, 27, ), - /* 90 */ array(17, 20, ), - /* 91 */ array(4, 25, ), - /* 92 */ array(4, 25, ), - /* 93 */ array(17, 20, ), + /* 82 */ array(12, 13, 47, ), + /* 83 */ array(1, 3, 9, ), + /* 84 */ array(3, 26, 30, ), + /* 85 */ array(1, 3, 67, ), + /* 86 */ array(1, 3, 43, ), + /* 87 */ array(1, 3, 63, ), + /* 88 */ array(12, 13, 47, ), + /* 89 */ array(4, 25, ), + /* 90 */ array(4, 25, ), + /* 91 */ array(25, 29, ), + /* 92 */ array(17, 20, ), + /* 93 */ array(4, 27, ), /* 94 */ array(4, 27, ), - /* 95 */ array(4, 27, ), - /* 96 */ array(16, 25, ), + /* 95 */ array(17, 20, ), + /* 96 */ array(4, 27, ), /* 97 */ array(4, 27, ), - /* 98 */ array(4, 27, ), - /* 99 */ array(4, 25, ), - /* 100 */ array(4, 25, ), - /* 101 */ array(4, 27, ), - /* 102 */ array(17, 20, ), - /* 103 */ array(21, 25, ), - /* 104 */ array(17, 20, ), - /* 105 */ array(19, 30, ), - /* 106 */ array(25, 29, ), - /* 107 */ array(3, 15, ), - /* 108 */ array(28, ), - /* 109 */ array(22, ), + /* 98 */ array(16, 25, ), + /* 99 */ array(4, 27, ), + /* 100 */ array(17, 20, ), + /* 101 */ array(19, 30, ), + /* 102 */ array(4, 25, ), + /* 103 */ array(4, 27, ), + /* 104 */ array(3, 15, ), + /* 105 */ array(21, 25, ), + /* 106 */ array(4, 25, ), + /* 107 */ array(17, 20, ), + /* 108 */ array(25, ), + /* 109 */ array(15, ), /* 110 */ array(28, ), - /* 111 */ array(25, ), - /* 112 */ array(15, ), + /* 111 */ array(28, ), + /* 112 */ array(28, ), /* 113 */ array(25, ), - /* 114 */ array(19, ), - /* 115 */ array(28, ), - /* 116 */ array(25, ), + /* 114 */ array(25, ), + /* 115 */ array(25, ), + /* 116 */ array(22, ), /* 117 */ array(25, ), - /* 118 */ array(28, ), - /* 119 */ array(25, ), - /* 120 */ array(25, ), + /* 118 */ array(25, ), + /* 119 */ array(28, ), + /* 120 */ array(19, ), /* 121 */ array(), /* 122 */ array(), /* 123 */ array(), /* 124 */ array(), /* 125 */ array(), - /* 126 */ array(15, 23, 29, ), - /* 127 */ array(15, 23, 26, ), - /* 128 */ array(15, 18, 23, ), + /* 126 */ array(15, 23, 26, ), + /* 127 */ array(15, 18, 23, ), + /* 128 */ array(15, 23, 29, ), /* 129 */ array(15, 23, ), - /* 130 */ array(18, 21, ), - /* 131 */ array(15, 23, ), - /* 132 */ array(21, 24, ), - /* 133 */ array(30, 50, ), + /* 130 */ array(21, 24, ), + /* 131 */ array(30, 50, ), + /* 132 */ array(15, 23, ), + /* 133 */ array(18, 21, ), /* 134 */ array(15, 23, ), /* 135 */ array(30, ), - /* 136 */ array(48, ), + /* 136 */ array(4, ), /* 137 */ array(30, ), - /* 138 */ array(8, ), - /* 139 */ array(48, ), - /* 140 */ array(30, ), + /* 138 */ array(22, ), + /* 139 */ array(30, ), + /* 140 */ array(26, ), /* 141 */ array(26, ), - /* 142 */ array(49, ), + /* 142 */ array(4, ), /* 143 */ array(30, ), - /* 144 */ array(11, ), - /* 145 */ array(20, ), + /* 144 */ array(30, ), + /* 145 */ array(19, ), /* 146 */ array(4, ), - /* 147 */ array(4, ), - /* 148 */ array(30, ), - /* 149 */ array(4, ), - /* 150 */ array(16, ), - /* 151 */ array(26, ), - /* 152 */ array(19, ), - /* 153 */ array(4, ), - /* 154 */ array(15, ), - /* 155 */ array(16, ), - /* 156 */ array(30, ), - /* 157 */ array(16, ), - /* 158 */ array(30, ), + /* 147 */ array(20, ), + /* 148 */ array(11, ), + /* 149 */ array(48, ), + /* 150 */ array(49, ), + /* 151 */ array(30, ), + /* 152 */ array(4, ), + /* 153 */ array(30, ), + /* 154 */ array(30, ), + /* 155 */ array(8, ), + /* 156 */ array(16, ), + /* 157 */ array(48, ), + /* 158 */ array(16, ), /* 159 */ array(30, ), - /* 160 */ array(), - /* 161 */ array(), + /* 160 */ array(15, ), + /* 161 */ array(16, ), /* 162 */ array(), /* 163 */ array(), /* 164 */ array(), @@ -763,35 +758,38 @@ static public $yy_action = array( /* 259 */ array(), /* 260 */ array(), /* 261 */ array(), + /* 262 */ array(), + /* 263 */ array(), + /* 264 */ array(), ); static public $yy_default = array( - /* 0 */ 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, - /* 10 */ 406, 406, 391, 353, 406, 353, 353, 353, 406, 406, - /* 20 */ 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, - /* 30 */ 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, - /* 40 */ 406, 406, 291, 406, 277, 406, 322, 291, 291, 291, - /* 50 */ 406, 363, 262, 363, 329, 406, 329, 406, 406, 406, - /* 60 */ 406, 406, 406, 291, 406, 406, 318, 317, 291, 406, - /* 70 */ 406, 406, 369, 373, 376, 368, 377, 367, 372, 361, - /* 80 */ 406, 406, 406, 406, 406, 406, 358, 297, 406, 406, - /* 90 */ 347, 406, 406, 345, 406, 406, 406, 406, 406, 406, - /* 100 */ 406, 406, 346, 352, 344, 406, 392, 329, 323, 298, - /* 110 */ 320, 285, 329, 394, 406, 341, 393, 295, 319, 292, - /* 120 */ 364, 329, 329, 357, 357, 329, 296, 296, 406, 406, - /* 130 */ 406, 296, 406, 406, 359, 406, 406, 406, 406, 406, - /* 140 */ 406, 406, 406, 406, 406, 307, 406, 406, 406, 406, - /* 150 */ 406, 324, 406, 406, 321, 406, 406, 406, 406, 406, - /* 160 */ 267, 299, 300, 282, 332, 402, 380, 268, 331, 404, - /* 170 */ 360, 301, 384, 383, 382, 381, 265, 263, 306, 385, - /* 180 */ 286, 330, 327, 293, 294, 272, 362, 264, 270, 386, - /* 190 */ 271, 403, 405, 328, 375, 269, 371, 281, 370, 284, - /* 200 */ 266, 374, 324, 326, 387, 343, 333, 325, 312, 356, - /* 210 */ 305, 304, 338, 339, 274, 303, 273, 337, 340, 342, - /* 220 */ 348, 316, 396, 401, 400, 349, 335, 334, 354, 350, - /* 230 */ 355, 351, 336, 399, 398, 288, 311, 287, 390, 280, - /* 240 */ 310, 283, 366, 378, 365, 308, 309, 388, 389, 397, - /* 250 */ 395, 290, 289, 275, 276, 315, 302, 279, 313, 278, - /* 260 */ 314, 379, + /* 0 */ 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + /* 10 */ 410, 410, 395, 357, 410, 357, 357, 357, 410, 410, + /* 20 */ 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + /* 30 */ 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + /* 40 */ 410, 410, 294, 410, 325, 410, 280, 294, 294, 410, + /* 50 */ 294, 265, 367, 367, 333, 410, 333, 410, 410, 294, + /* 60 */ 410, 410, 410, 410, 410, 410, 320, 321, 294, 410, + /* 70 */ 410, 410, 376, 373, 372, 380, 371, 381, 377, 365, + /* 80 */ 410, 410, 362, 410, 410, 410, 410, 410, 300, 410, + /* 90 */ 410, 396, 348, 410, 410, 351, 410, 410, 410, 410, + /* 100 */ 350, 410, 410, 410, 333, 356, 410, 349, 368, 333, + /* 110 */ 345, 326, 323, 298, 398, 288, 301, 295, 397, 322, + /* 120 */ 410, 333, 333, 361, 361, 333, 299, 410, 299, 299, + /* 130 */ 410, 410, 410, 410, 363, 410, 410, 410, 343, 410, + /* 140 */ 410, 327, 410, 410, 410, 410, 410, 310, 410, 410, + /* 150 */ 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + /* 160 */ 324, 410, 297, 289, 369, 370, 287, 296, 285, 266, + /* 170 */ 382, 284, 291, 290, 385, 375, 378, 374, 388, 364, + /* 180 */ 286, 387, 379, 386, 389, 366, 391, 383, 390, 384, + /* 190 */ 352, 311, 312, 313, 309, 304, 336, 302, 303, 314, + /* 200 */ 347, 399, 401, 402, 318, 317, 305, 316, 335, 334, + /* 210 */ 409, 407, 270, 408, 406, 267, 268, 269, 271, 272, + /* 220 */ 327, 329, 330, 332, 275, 273, 274, 403, 306, 343, + /* 230 */ 344, 331, 342, 328, 346, 315, 337, 341, 276, 279, + /* 240 */ 281, 282, 293, 292, 277, 278, 354, 340, 359, 392, + /* 250 */ 394, 358, 308, 360, 307, 393, 355, 400, 339, 338, + /* 260 */ 319, 405, 353, 404, 283, ); /* The next thing included is series of defines which control ** various aspects of the generated parser. @@ -810,8 +808,8 @@ static public $yy_action = array( */ const YYNOCODE = 109; const YYSTACKDEPTH = 100; - const YYNSTATE = 262; - const YYNRULE = 144; + const YYNSTATE = 265; + const YYNRULE = 145; const YYERRORSYMBOL = 68; const YYERRSYMDT = 'yy0'; const YYFALLBACK = 1; @@ -1062,84 +1060,85 @@ static public $yy_action = array( /* 63 */ "variable ::= DOLLAR varvar AT ID", /* 64 */ "variable ::= object", /* 65 */ "variable ::= HATCH ID HATCH", - /* 66 */ "arrayindex ::= arrayindex indexdef", - /* 67 */ "arrayindex ::=", - /* 68 */ "indexdef ::= DOT ID", - /* 69 */ "indexdef ::= DOT INTEGER", - /* 70 */ "indexdef ::= DOT variable", - /* 71 */ "indexdef ::= DOT LDEL exprs RDEL", - /* 72 */ "indexdef ::= OPENB ID CLOSEB", - /* 73 */ "indexdef ::= OPENB exprs CLOSEB", - /* 74 */ "indexdef ::= OPENB CLOSEB", - /* 75 */ "varvar ::= varvarele", - /* 76 */ "varvar ::= varvar varvarele", - /* 77 */ "varvarele ::= ID", - /* 78 */ "varvarele ::= LDEL expr RDEL", - /* 79 */ "object ::= DOLLAR varvar arrayindex objectchain", - /* 80 */ "objectchain ::= objectelement", - /* 81 */ "objectchain ::= objectchain objectelement", - /* 82 */ "objectelement ::= PTR ID arrayindex", - /* 83 */ "objectelement ::= PTR variable arrayindex", - /* 84 */ "objectelement ::= PTR LDEL expr RDEL arrayindex", - /* 85 */ "objectelement ::= PTR ID LDEL expr RDEL arrayindex", - /* 86 */ "objectelement ::= PTR method", - /* 87 */ "function ::= ID OPENP params CLOSEP", - /* 88 */ "method ::= ID OPENP params CLOSEP", - /* 89 */ "params ::= expr COMMA params", - /* 90 */ "params ::= expr", - /* 91 */ "params ::=", - /* 92 */ "modifier ::= VERT AT ID", - /* 93 */ "modifier ::= VERT ID", - /* 94 */ "modparameters ::= modparameters modparameter", - /* 95 */ "modparameters ::=", - /* 96 */ "modparameter ::= COLON exprs", - /* 97 */ "modparameter ::= COLON ID", - /* 98 */ "ifexprs ::= ifexpr", - /* 99 */ "ifexprs ::= NOT ifexprs", - /* 100 */ "ifexprs ::= OPENP ifexprs CLOSEP", - /* 101 */ "ifexpr ::= expr", - /* 102 */ "ifexpr ::= expr ifcond expr", - /* 103 */ "ifexpr ::= expr ISIN array", - /* 104 */ "ifexpr ::= expr ISIN value", - /* 105 */ "ifexpr ::= ifexprs lop ifexprs", - /* 106 */ "ifexpr ::= ifexprs ISDIVBY ifexprs", - /* 107 */ "ifexpr ::= ifexprs ISNOTDIVBY ifexprs", - /* 108 */ "ifexpr ::= ifexprs ISEVEN", - /* 109 */ "ifexpr ::= ifexprs ISNOTEVEN", - /* 110 */ "ifexpr ::= ifexprs ISEVENBY ifexprs", - /* 111 */ "ifexpr ::= ifexprs ISNOTEVENBY ifexprs", - /* 112 */ "ifexpr ::= ifexprs ISODD", - /* 113 */ "ifexpr ::= ifexprs ISNOTODD", - /* 114 */ "ifexpr ::= ifexprs ISODDBY ifexprs", - /* 115 */ "ifexpr ::= ifexprs ISNOTODDBY ifexprs", - /* 116 */ "ifcond ::= EQUALS", - /* 117 */ "ifcond ::= NOTEQUALS", - /* 118 */ "ifcond ::= GREATERTHAN", - /* 119 */ "ifcond ::= LESSTHAN", - /* 120 */ "ifcond ::= GREATEREQUAL", - /* 121 */ "ifcond ::= LESSEQUAL", - /* 122 */ "ifcond ::= IDENTITY", - /* 123 */ "ifcond ::= NONEIDENTITY", - /* 124 */ "lop ::= LAND", - /* 125 */ "lop ::= LOR", - /* 126 */ "array ::= OPENB arrayelements CLOSEB", - /* 127 */ "arrayelements ::= arrayelement", - /* 128 */ "arrayelements ::= arrayelements COMMA arrayelement", - /* 129 */ "arrayelements ::=", - /* 130 */ "arrayelement ::= expr", - /* 131 */ "arrayelement ::= expr APTR expr", - /* 132 */ "arrayelement ::= ID APTR expr", - /* 133 */ "doublequoted ::= doublequoted doublequotedcontent", - /* 134 */ "doublequoted ::= doublequotedcontent", - /* 135 */ "doublequotedcontent ::= BACKTICK ID BACKTICK", - /* 136 */ "doublequotedcontent ::= BACKTICK variable BACKTICK", - /* 137 */ "doublequotedcontent ::= variable", - /* 138 */ "doublequotedcontent ::= LDEL expr RDEL", - /* 139 */ "doublequotedcontent ::= OTHER", - /* 140 */ "text ::= text textelement", - /* 141 */ "text ::= textelement", - /* 142 */ "textelement ::= OTHER", - /* 143 */ "textelement ::= LDEL", + /* 66 */ "variable ::= DOLLAR ID COLON ID", + /* 67 */ "arrayindex ::= arrayindex indexdef", + /* 68 */ "arrayindex ::=", + /* 69 */ "indexdef ::= DOT ID", + /* 70 */ "indexdef ::= DOT INTEGER", + /* 71 */ "indexdef ::= DOT variable", + /* 72 */ "indexdef ::= DOT LDEL exprs RDEL", + /* 73 */ "indexdef ::= OPENB ID CLOSEB", + /* 74 */ "indexdef ::= OPENB exprs CLOSEB", + /* 75 */ "indexdef ::= OPENB CLOSEB", + /* 76 */ "varvar ::= varvarele", + /* 77 */ "varvar ::= varvar varvarele", + /* 78 */ "varvarele ::= ID", + /* 79 */ "varvarele ::= LDEL expr RDEL", + /* 80 */ "object ::= DOLLAR varvar arrayindex objectchain", + /* 81 */ "objectchain ::= objectelement", + /* 82 */ "objectchain ::= objectchain objectelement", + /* 83 */ "objectelement ::= PTR ID arrayindex", + /* 84 */ "objectelement ::= PTR variable arrayindex", + /* 85 */ "objectelement ::= PTR LDEL expr RDEL arrayindex", + /* 86 */ "objectelement ::= PTR ID LDEL expr RDEL arrayindex", + /* 87 */ "objectelement ::= PTR method", + /* 88 */ "function ::= ID OPENP params CLOSEP", + /* 89 */ "method ::= ID OPENP params CLOSEP", + /* 90 */ "params ::= expr COMMA params", + /* 91 */ "params ::= expr", + /* 92 */ "params ::=", + /* 93 */ "modifier ::= VERT AT ID", + /* 94 */ "modifier ::= VERT ID", + /* 95 */ "modparameters ::= modparameters modparameter", + /* 96 */ "modparameters ::=", + /* 97 */ "modparameter ::= COLON exprs", + /* 98 */ "modparameter ::= COLON ID", + /* 99 */ "ifexprs ::= ifexpr", + /* 100 */ "ifexprs ::= NOT ifexprs", + /* 101 */ "ifexprs ::= OPENP ifexprs CLOSEP", + /* 102 */ "ifexpr ::= expr", + /* 103 */ "ifexpr ::= expr ifcond expr", + /* 104 */ "ifexpr ::= expr ISIN array", + /* 105 */ "ifexpr ::= expr ISIN value", + /* 106 */ "ifexpr ::= ifexprs lop ifexprs", + /* 107 */ "ifexpr ::= ifexprs ISDIVBY ifexprs", + /* 108 */ "ifexpr ::= ifexprs ISNOTDIVBY ifexprs", + /* 109 */ "ifexpr ::= ifexprs ISEVEN", + /* 110 */ "ifexpr ::= ifexprs ISNOTEVEN", + /* 111 */ "ifexpr ::= ifexprs ISEVENBY ifexprs", + /* 112 */ "ifexpr ::= ifexprs ISNOTEVENBY ifexprs", + /* 113 */ "ifexpr ::= ifexprs ISODD", + /* 114 */ "ifexpr ::= ifexprs ISNOTODD", + /* 115 */ "ifexpr ::= ifexprs ISODDBY ifexprs", + /* 116 */ "ifexpr ::= ifexprs ISNOTODDBY ifexprs", + /* 117 */ "ifcond ::= EQUALS", + /* 118 */ "ifcond ::= NOTEQUALS", + /* 119 */ "ifcond ::= GREATERTHAN", + /* 120 */ "ifcond ::= LESSTHAN", + /* 121 */ "ifcond ::= GREATEREQUAL", + /* 122 */ "ifcond ::= LESSEQUAL", + /* 123 */ "ifcond ::= IDENTITY", + /* 124 */ "ifcond ::= NONEIDENTITY", + /* 125 */ "lop ::= LAND", + /* 126 */ "lop ::= LOR", + /* 127 */ "array ::= OPENB arrayelements CLOSEB", + /* 128 */ "arrayelements ::= arrayelement", + /* 129 */ "arrayelements ::= arrayelements COMMA arrayelement", + /* 130 */ "arrayelements ::=", + /* 131 */ "arrayelement ::= expr", + /* 132 */ "arrayelement ::= expr APTR expr", + /* 133 */ "arrayelement ::= ID APTR expr", + /* 134 */ "doublequoted ::= doublequoted doublequotedcontent", + /* 135 */ "doublequoted ::= doublequotedcontent", + /* 136 */ "doublequotedcontent ::= BACKTICK ID BACKTICK", + /* 137 */ "doublequotedcontent ::= BACKTICK variable BACKTICK", + /* 138 */ "doublequotedcontent ::= variable", + /* 139 */ "doublequotedcontent ::= LDEL expr RDEL", + /* 140 */ "doublequotedcontent ::= OTHER", + /* 141 */ "text ::= text textelement", + /* 142 */ "text ::= textelement", + /* 143 */ "textelement ::= OTHER", + /* 144 */ "textelement ::= LDEL", ); /** @@ -1570,6 +1569,7 @@ static public $yy_action = array( array( 'lhs' => 74, 'rhs' => 4 ), array( 'lhs' => 74, 'rhs' => 1 ), array( 'lhs' => 74, 'rhs' => 3 ), + array( 'lhs' => 74, 'rhs' => 4 ), array( 'lhs' => 79, 'rhs' => 2 ), array( 'lhs' => 79, 'rhs' => 0 ), array( 'lhs' => 97, 'rhs' => 2 ), @@ -1665,22 +1665,22 @@ static public $yy_action = array( 48 => 0, 49 => 0, 64 => 0, - 127 => 0, + 128 => 0, 1 => 1, 35 => 1, 37 => 1, 42 => 1, 43 => 1, - 75 => 1, - 98 => 1, - 134 => 1, - 141 => 1, + 76 => 1, + 99 => 1, + 135 => 1, 142 => 1, 143 => 1, + 144 => 1, 2 => 2, - 66 => 2, - 133 => 2, - 140 => 2, + 67 => 2, + 134 => 2, + 141 => 2, 3 => 3, 4 => 4, 5 => 5, @@ -1704,8 +1704,8 @@ static public $yy_action = array( 23 => 23, 24 => 24, 28 => 24, - 90 => 24, - 130 => 24, + 91 => 24, + 131 => 24, 25 => 25, 26 => 25, 27 => 27, @@ -1735,20 +1735,20 @@ static public $yy_action = array( 62 => 62, 63 => 63, 65 => 65, - 67 => 67, - 95 => 67, + 66 => 66, 68 => 68, + 96 => 68, 69 => 69, 70 => 70, 71 => 71, - 73 => 71, 72 => 72, - 74 => 74, - 76 => 76, + 74 => 72, + 73 => 73, + 75 => 75, 77 => 77, 78 => 78, - 100 => 78, 79 => 79, + 101 => 79, 80 => 80, 81 => 81, 82 => 82, @@ -1759,29 +1759,29 @@ static public $yy_action = array( 87 => 87, 88 => 88, 89 => 89, - 91 => 91, + 90 => 90, 92 => 92, 93 => 93, 94 => 94, - 96 => 96, + 95 => 95, 97 => 97, - 99 => 99, - 101 => 101, + 98 => 98, + 100 => 100, 102 => 102, - 105 => 102, 103 => 103, + 106 => 103, 104 => 104, - 106 => 106, + 105 => 105, 107 => 107, 108 => 108, - 113 => 108, 109 => 109, - 112 => 109, + 114 => 109, 110 => 110, - 115 => 110, + 113 => 110, 111 => 111, - 114 => 111, - 116 => 116, + 116 => 111, + 112 => 112, + 115 => 112, 117 => 117, 118 => 118, 119 => 119, @@ -1792,15 +1792,16 @@ static public $yy_action = array( 124 => 124, 125 => 125, 126 => 126, - 128 => 128, + 127 => 127, 129 => 129, - 131 => 131, + 130 => 130, 132 => 132, - 135 => 135, + 133 => 133, 136 => 136, 137 => 137, 138 => 138, 139 => 139, + 140 => 140, ); /* Beginning here are the reduction cases. A typical example ** follows: @@ -1810,31 +1811,31 @@ static public $yy_action = array( */ #line 73 "internal.templateparser.y" function yy_r0(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 1818 "internal.templateparser.php" +#line 1819 "internal.templateparser.php" #line 79 "internal.templateparser.y" function yy_r1(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 1821 "internal.templateparser.php" +#line 1822 "internal.templateparser.php" #line 81 "internal.templateparser.y" function yy_r2(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 1824 "internal.templateparser.php" +#line 1825 "internal.templateparser.php" #line 87 "internal.templateparser.y" function yy_r3(){if ($this->compiler->has_code) { $tmp =''; foreach ($this->prefix_code as $code) {$tmp.=$code;} $this->prefix_code=array(); $this->_retvalue = $this->cacher->processNocacheCode($tmp.$this->yystack[$this->yyidx + 0]->minor, $this->compiler,$this->nocache,true); } $this->nocache=false; } -#line 1830 "internal.templateparser.php" +#line 1831 "internal.templateparser.php" #line 100 "internal.templateparser.y" function yy_r4(){ $this->_retvalue = ''; } -#line 1833 "internal.templateparser.php" +#line 1834 "internal.templateparser.php" #line 103 "internal.templateparser.y" function yy_r5(){$this->_retvalue = $this->cacher->processNocacheCode($this->yystack[$this->yyidx + -1]->minor, $this->compiler,false,false); } -#line 1836 "internal.templateparser.php" +#line 1837 "internal.templateparser.php" #line 105 "internal.templateparser.y" function yy_r6(){$this->_retvalue = $this->cacher->processNocacheCode($this->smarty->left_delimiter, $this->compiler,false,false); } -#line 1839 "internal.templateparser.php" +#line 1840 "internal.templateparser.php" #line 107 "internal.templateparser.y" function yy_r7(){$this->_retvalue = $this->cacher->processNocacheCode($this->smarty->right_delimiter, $this->compiler,false,false); } -#line 1842 "internal.templateparser.php" +#line 1843 "internal.templateparser.php" #line 109 "internal.templateparser.y" function yy_r8(){if (!$this->template->security) { $this->_retvalue = $this->cacher->processNocacheCode($this->yystack[$this->yyidx + 0]->minor, $this->compiler, false,true); @@ -1845,7 +1846,7 @@ static public $yy_action = array( }elseif ($this->smarty->security_policy->php_handling == SMARTY_PHP_REMOVE) { $this->_retvalue = ''; } } -#line 1853 "internal.templateparser.php" +#line 1854 "internal.templateparser.php" #line 119 "internal.templateparser.y" function yy_r9(){if (!$this->template->security) { $this->_retvalue = $this->cacher->processNocacheCode('yystack[$this->yyidx + -1]->minor.' ?>', $this->compiler, false,true); @@ -1856,7 +1857,7 @@ static public $yy_action = array( }elseif ($this->smarty->security_policy->php_handling == SMARTY_PHP_REMOVE) { $this->_retvalue = ''; } } -#line 1864 "internal.templateparser.php" +#line 1865 "internal.templateparser.php" #line 129 "internal.templateparser.y" function yy_r10(){if (!$this->template->security) { $this->_retvalue = $this->cacher->processNocacheCode($this->compiler->compileTag('print_expression',array('value'=>$this->yystack[$this->yyidx + -1]->minor)), $this->compiler, false,true); @@ -1867,28 +1868,28 @@ static public $yy_action = array( }elseif ($this->smarty->security_policy->php_handling == SMARTY_PHP_REMOVE) { $this->_retvalue = ''; } } -#line 1875 "internal.templateparser.php" +#line 1876 "internal.templateparser.php" #line 139 "internal.templateparser.y" function yy_r11(){$this->_retvalue = $this->cacher->processNocacheCode("yystack[$this->yyidx + 0]->minor."';?>\n", $this->compiler, true, true); } -#line 1878 "internal.templateparser.php" +#line 1879 "internal.templateparser.php" #line 141 "internal.templateparser.y" function yy_r12(){$this->_retvalue = $this->cacher->processNocacheCode($this->yystack[$this->yyidx + 0]->minor, $this->compiler,false,false); } -#line 1881 "internal.templateparser.php" +#line 1882 "internal.templateparser.php" #line 149 "internal.templateparser.y" function yy_r13(){ $this->_retvalue = $this->compiler->compileTag('print_expression',array_merge(array('value'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)); } -#line 1884 "internal.templateparser.php" +#line 1885 "internal.templateparser.php" #line 151 "internal.templateparser.y" function yy_r14(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array('value'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + -1]->minor)); } -#line 1887 "internal.templateparser.php" +#line 1888 "internal.templateparser.php" #line 152 "internal.templateparser.y" function yy_r15(){$this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'index'=>$this->yystack[$this->yyidx + 0]->minor); } -#line 1890 "internal.templateparser.php" +#line 1891 "internal.templateparser.php" #line 155 "internal.templateparser.y" function yy_r16(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + -1]->minor); } -#line 1893 "internal.templateparser.php" +#line 1894 "internal.templateparser.php" #line 157 "internal.templateparser.y" function yy_r17(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,array_merge(array('object_methode'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)); } -#line 1896 "internal.templateparser.php" +#line 1897 "internal.templateparser.php" #line 159 "internal.templateparser.y" function yy_r18(){ $this->_retvalue = ''.$this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + -1]->minor).'smarty->plugin_handler->loadSmartyPlugin($this->yystack[$this->yyidx + -3]->minor[0],'modifier')) { @@ -1903,49 +1904,49 @@ static public $yy_action = array( } } } -#line 1911 "internal.templateparser.php" +#line 1912 "internal.templateparser.php" #line 173 "internal.templateparser.y" function yy_r19(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',$this->yystack[$this->yyidx + -1]->minor); } -#line 1914 "internal.templateparser.php" +#line 1915 "internal.templateparser.php" #line 175 "internal.templateparser.y" function yy_r20(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array('object_methode'=>$this->yystack[$this->yyidx + -1]->minor)); } -#line 1917 "internal.templateparser.php" +#line 1918 "internal.templateparser.php" #line 177 "internal.templateparser.y" function yy_r21(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor,array('if condition'=>$this->yystack[$this->yyidx + -1]->minor)); } -#line 1920 "internal.templateparser.php" +#line 1921 "internal.templateparser.php" #line 179 "internal.templateparser.y" function yy_r22(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -9]->minor,array('start'=>$this->yystack[$this->yyidx + -7]->minor,'ifexp'=>$this->yystack[$this->yyidx + -5]->minor,'varloop'=>$this->yystack[$this->yyidx + -2]->minor,'loop'=>$this->yystack[$this->yyidx + -1]->minor)); } -#line 1923 "internal.templateparser.php" +#line 1924 "internal.templateparser.php" #line 180 "internal.templateparser.y" function yy_r23(){ $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor; } -#line 1926 "internal.templateparser.php" +#line 1927 "internal.templateparser.php" #line 181 "internal.templateparser.y" function yy_r24(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 1929 "internal.templateparser.php" +#line 1930 "internal.templateparser.php" #line 184 "internal.templateparser.y" function yy_r25(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -6]->minor,array('from'=>$this->yystack[$this->yyidx + -1]->minor,'item'=>$this->yystack[$this->yyidx + -3]->minor)); } -#line 1932 "internal.templateparser.php" +#line 1933 "internal.templateparser.php" #line 191 "internal.templateparser.y" function yy_r27(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); } -#line 1935 "internal.templateparser.php" +#line 1936 "internal.templateparser.php" #line 195 "internal.templateparser.y" function yy_r29(){ $this->_retvalue = array(); } -#line 1938 "internal.templateparser.php" +#line 1939 "internal.templateparser.php" #line 199 "internal.templateparser.y" function yy_r30(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor); } -#line 1941 "internal.templateparser.php" +#line 1942 "internal.templateparser.php" #line 204 "internal.templateparser.y" function yy_r31(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); } -#line 1944 "internal.templateparser.php" +#line 1945 "internal.templateparser.php" #line 205 "internal.templateparser.y" function yy_r32(){ $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; } -#line 1947 "internal.templateparser.php" +#line 1948 "internal.templateparser.php" #line 207 "internal.templateparser.y" function yy_r33(){ $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor); } -#line 1950 "internal.templateparser.php" +#line 1951 "internal.templateparser.php" #line 214 "internal.templateparser.y" function yy_r34(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; } -#line 1953 "internal.templateparser.php" +#line 1954 "internal.templateparser.php" #line 218 "internal.templateparser.y" function yy_r36(){ if ($this->smarty->plugin_handler->loadSmartyPlugin($this->yystack[$this->yyidx + -1]->minor[0],'modifier')) { @@ -1960,242 +1961,245 @@ static public $yy_action = array( } } } -#line 1968 "internal.templateparser.php" +#line 1969 "internal.templateparser.php" #line 236 "internal.templateparser.y" function yy_r39(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 1971 "internal.templateparser.php" +#line 1972 "internal.templateparser.php" #line 238 "internal.templateparser.y" function yy_r40(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . $this->yystack[$this->yyidx + -1]->minor . $this->yystack[$this->yyidx + 0]->minor; } -#line 1974 "internal.templateparser.php" +#line 1975 "internal.templateparser.php" #line 240 "internal.templateparser.y" function yy_r41(){ $this->_retvalue = '('. $this->yystack[$this->yyidx + -2]->minor . ').(' . $this->yystack[$this->yyidx + 0]->minor. ')'; } -#line 1977 "internal.templateparser.php" +#line 1978 "internal.templateparser.php" #line 257 "internal.templateparser.y" function yy_r46(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; } -#line 1980 "internal.templateparser.php" +#line 1981 "internal.templateparser.php" #line 266 "internal.templateparser.y" function yy_r50(){ $this->_retvalue = "(". $this->yystack[$this->yyidx + -1]->minor .")"; } -#line 1983 "internal.templateparser.php" +#line 1984 "internal.templateparser.php" #line 269 "internal.templateparser.y" function yy_r51(){ $this->_retvalue = "'".$this->yystack[$this->yyidx + -1]->minor."'"; } -#line 1986 "internal.templateparser.php" +#line 1987 "internal.templateparser.php" #line 270 "internal.templateparser.y" function yy_r52(){ $this->_retvalue = "''"; } -#line 1989 "internal.templateparser.php" +#line 1990 "internal.templateparser.php" #line 272 "internal.templateparser.y" function yy_r53(){ $this->_retvalue = "'".str_replace('\"','"',$this->yystack[$this->yyidx + -1]->minor)."'"; } -#line 1992 "internal.templateparser.php" +#line 1993 "internal.templateparser.php" #line 278 "internal.templateparser.y" function yy_r55(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor; } -#line 1995 "internal.templateparser.php" +#line 1996 "internal.templateparser.php" #line 279 "internal.templateparser.y" function yy_r56(){ $this->prefix_number++; $this->prefix_code[] = 'prefix_number.'=$_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -3]->minor .'\')->value;?>'; $this->_retvalue = $this->yystack[$this->yyidx + -6]->minor.'::$_tmp'.$this->prefix_number.'('. $this->yystack[$this->yyidx + -1]->minor .')'; } -#line 1998 "internal.templateparser.php" +#line 1999 "internal.templateparser.php" #line 281 "internal.templateparser.y" function yy_r57(){ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor.'::'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2001 "internal.templateparser.php" +#line 2002 "internal.templateparser.php" #line 282 "internal.templateparser.y" function yy_r58(){ $this->prefix_number++; $this->prefix_code[] = 'prefix_number.'=$_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -4]->minor .'\')->value;?>'; $this->_retvalue = $this->yystack[$this->yyidx + -7]->minor.'::$_tmp'.$this->prefix_number.'('. $this->yystack[$this->yyidx + -2]->minor .')'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2004 "internal.templateparser.php" +#line 2005 "internal.templateparser.php" #line 284 "internal.templateparser.y" function yy_r59(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2007 "internal.templateparser.php" +#line 2008 "internal.templateparser.php" #line 286 "internal.templateparser.y" function yy_r60(){ $this->_retvalue = $this->yystack[$this->yyidx + -4]->minor.'::$'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2010 "internal.templateparser.php" +#line 2011 "internal.templateparser.php" #line 288 "internal.templateparser.y" function yy_r61(){ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.'::$'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2013 "internal.templateparser.php" +#line 2014 "internal.templateparser.php" #line 297 "internal.templateparser.y" function yy_r62(){ if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag(trim($this->yystack[$this->yyidx + 0]->minor['var'],"'"),$this->yystack[$this->yyidx + 0]->minor['index']);} else { $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor['var'] .')->value'.$this->yystack[$this->yyidx + 0]->minor['index']; $this->nocache=$this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor['var'],"'"))->nocache;} } -#line 2017 "internal.templateparser.php" +#line 2018 "internal.templateparser.php" #line 300 "internal.templateparser.y" function yy_r63(){ $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor; $this->nocache=$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"))->nocache; } -#line 2020 "internal.templateparser.php" +#line 2021 "internal.templateparser.php" #line 304 "internal.templateparser.y" function yy_r65(){$this->_retvalue = '$_smarty_tpl->getConfigVariable(\''. $this->yystack[$this->yyidx + -1]->minor .'\')'; } -#line 2023 "internal.templateparser.php" -#line 312 "internal.templateparser.y" - function yy_r67(){return; } -#line 2026 "internal.templateparser.php" -#line 316 "internal.templateparser.y" - function yy_r68(){ $this->_retvalue = "['". $this->yystack[$this->yyidx + 0]->minor ."']"; } -#line 2029 "internal.templateparser.php" -#line 317 "internal.templateparser.y" - function yy_r69(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + 0]->minor ."]"; } -#line 2032 "internal.templateparser.php" +#line 2024 "internal.templateparser.php" +#line 306 "internal.templateparser.y" + function yy_r66(){$this->_retvalue = '$_smarty_tpl->getStreamVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'://'. $this->yystack[$this->yyidx + 0]->minor. '\')'; } +#line 2027 "internal.templateparser.php" +#line 314 "internal.templateparser.y" + function yy_r68(){return; } +#line 2030 "internal.templateparser.php" +#line 318 "internal.templateparser.y" + function yy_r69(){ $this->_retvalue = "['". $this->yystack[$this->yyidx + 0]->minor ."']"; } +#line 2033 "internal.templateparser.php" #line 319 "internal.templateparser.y" - function yy_r70(){ $this->_retvalue = "[".$this->yystack[$this->yyidx + 0]->minor."]"; } -#line 2035 "internal.templateparser.php" -#line 320 "internal.templateparser.y" - function yy_r71(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + -1]->minor ."]"; } -#line 2038 "internal.templateparser.php" + function yy_r70(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + 0]->minor ."]"; } +#line 2036 "internal.templateparser.php" +#line 321 "internal.templateparser.y" + function yy_r71(){ $this->_retvalue = "[".$this->yystack[$this->yyidx + 0]->minor."]"; } +#line 2039 "internal.templateparser.php" #line 322 "internal.templateparser.y" - function yy_r72(){ $this->_retvalue = '['.$this->compiler->compileTag('smarty','[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']'; } -#line 2041 "internal.templateparser.php" -#line 326 "internal.templateparser.y" - function yy_r74(){$this->_retvalue = ''; } -#line 2044 "internal.templateparser.php" -#line 334 "internal.templateparser.y" - function yy_r76(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2047 "internal.templateparser.php" + function yy_r72(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + -1]->minor ."]"; } +#line 2042 "internal.templateparser.php" +#line 324 "internal.templateparser.y" + function yy_r73(){ $this->_retvalue = '['.$this->compiler->compileTag('smarty','[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']'; } +#line 2045 "internal.templateparser.php" +#line 328 "internal.templateparser.y" + function yy_r75(){$this->_retvalue = ''; } +#line 2048 "internal.templateparser.php" #line 336 "internal.templateparser.y" - function yy_r77(){$this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; } -#line 2050 "internal.templateparser.php" + function yy_r77(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; } +#line 2051 "internal.templateparser.php" #line 338 "internal.templateparser.y" - function yy_r78(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')'; } -#line 2053 "internal.templateparser.php" -#line 343 "internal.templateparser.y" - function yy_r79(){ $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->value'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; $this->nocache=$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"))->nocache; } -#line 2056 "internal.templateparser.php" + function yy_r78(){$this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; } +#line 2054 "internal.templateparser.php" +#line 340 "internal.templateparser.y" + function yy_r79(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')'; } +#line 2057 "internal.templateparser.php" #line 345 "internal.templateparser.y" - function yy_r80(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 2059 "internal.templateparser.php" + function yy_r80(){ $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->value'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; $this->nocache=$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"))->nocache; } +#line 2060 "internal.templateparser.php" #line 347 "internal.templateparser.y" - function yy_r81(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2062 "internal.templateparser.php" + function yy_r81(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } +#line 2063 "internal.templateparser.php" #line 349 "internal.templateparser.y" - function yy_r82(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2065 "internal.templateparser.php" -#line 350 "internal.templateparser.y" - function yy_r83(){ $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } -#line 2068 "internal.templateparser.php" + function yy_r82(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } +#line 2066 "internal.templateparser.php" #line 351 "internal.templateparser.y" - function yy_r84(){ $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } -#line 2071 "internal.templateparser.php" + function yy_r83(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } +#line 2069 "internal.templateparser.php" #line 352 "internal.templateparser.y" - function yy_r85(){ $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } -#line 2074 "internal.templateparser.php" + function yy_r84(){ $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } +#line 2072 "internal.templateparser.php" +#line 353 "internal.templateparser.y" + function yy_r85(){ $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } +#line 2075 "internal.templateparser.php" #line 354 "internal.templateparser.y" - function yy_r86(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2077 "internal.templateparser.php" -#line 360 "internal.templateparser.y" - function yy_r87(){if (!$this->template->security || $this->smarty->security_handler->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler)) { + function yy_r86(){ $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } +#line 2078 "internal.templateparser.php" +#line 356 "internal.templateparser.y" + function yy_r87(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor; } +#line 2081 "internal.templateparser.php" +#line 362 "internal.templateparser.y" + function yy_r88(){if (!$this->template->security || $this->smarty->security_handler->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler)) { if ($this->yystack[$this->yyidx + -3]->minor == 'isset' || $this->yystack[$this->yyidx + -3]->minor == 'empty' || $this->yystack[$this->yyidx + -3]->minor == 'array' || is_callable($this->yystack[$this->yyidx + -3]->minor)) { $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $this->yystack[$this->yyidx + -1]->minor .")"; } else { $this->compiler->trigger_template_error ("unknown function \"" . $this->yystack[$this->yyidx + -3]->minor . "\""); } } } -#line 2086 "internal.templateparser.php" -#line 371 "internal.templateparser.y" - function yy_r88(){ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $this->yystack[$this->yyidx + -1]->minor .")"; } -#line 2089 "internal.templateparser.php" -#line 375 "internal.templateparser.y" - function yy_r89(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.",".$this->yystack[$this->yyidx + 0]->minor; } -#line 2092 "internal.templateparser.php" -#line 379 "internal.templateparser.y" - function yy_r91(){ return; } -#line 2095 "internal.templateparser.php" -#line 384 "internal.templateparser.y" - function yy_r92(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor,true); } -#line 2098 "internal.templateparser.php" -#line 385 "internal.templateparser.y" - function yy_r93(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor,false); } -#line 2101 "internal.templateparser.php" -#line 392 "internal.templateparser.y" - function yy_r94(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2104 "internal.templateparser.php" -#line 396 "internal.templateparser.y" - function yy_r96(){$this->_retvalue = ','.$this->yystack[$this->yyidx + 0]->minor; } -#line 2107 "internal.templateparser.php" -#line 397 "internal.templateparser.y" - function yy_r97(){$this->_retvalue = ',\''.$this->yystack[$this->yyidx + 0]->minor.'\''; } -#line 2110 "internal.templateparser.php" -#line 404 "internal.templateparser.y" - function yy_r99(){$this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2113 "internal.templateparser.php" -#line 409 "internal.templateparser.y" - function yy_r101(){$this->_retvalue =$this->yystack[$this->yyidx + 0]->minor; } -#line 2116 "internal.templateparser.php" -#line 410 "internal.templateparser.y" - function yy_r102(){$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2119 "internal.templateparser.php" +#line 2090 "internal.templateparser.php" +#line 373 "internal.templateparser.y" + function yy_r89(){ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $this->yystack[$this->yyidx + -1]->minor .")"; } +#line 2093 "internal.templateparser.php" +#line 377 "internal.templateparser.y" + function yy_r90(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.",".$this->yystack[$this->yyidx + 0]->minor; } +#line 2096 "internal.templateparser.php" +#line 381 "internal.templateparser.y" + function yy_r92(){ return; } +#line 2099 "internal.templateparser.php" +#line 386 "internal.templateparser.y" + function yy_r93(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor,true); } +#line 2102 "internal.templateparser.php" +#line 387 "internal.templateparser.y" + function yy_r94(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor,false); } +#line 2105 "internal.templateparser.php" +#line 394 "internal.templateparser.y" + function yy_r95(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } +#line 2108 "internal.templateparser.php" +#line 398 "internal.templateparser.y" + function yy_r97(){$this->_retvalue = ','.$this->yystack[$this->yyidx + 0]->minor; } +#line 2111 "internal.templateparser.php" +#line 399 "internal.templateparser.y" + function yy_r98(){$this->_retvalue = ',\''.$this->yystack[$this->yyidx + 0]->minor.'\''; } +#line 2114 "internal.templateparser.php" +#line 406 "internal.templateparser.y" + function yy_r100(){$this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor; } +#line 2117 "internal.templateparser.php" #line 411 "internal.templateparser.y" - function yy_r103(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')'; } -#line 2122 "internal.templateparser.php" + function yy_r102(){$this->_retvalue =$this->yystack[$this->yyidx + 0]->minor; } +#line 2120 "internal.templateparser.php" #line 412 "internal.templateparser.y" - function yy_r104(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')'; } -#line 2125 "internal.templateparser.php" + function yy_r103(){$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } +#line 2123 "internal.templateparser.php" +#line 413 "internal.templateparser.y" + function yy_r104(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')'; } +#line 2126 "internal.templateparser.php" #line 414 "internal.templateparser.y" - function yy_r106(){$this->_retvalue = '!('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; } -#line 2128 "internal.templateparser.php" -#line 415 "internal.templateparser.y" - function yy_r107(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; } -#line 2131 "internal.templateparser.php" + function yy_r105(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')'; } +#line 2129 "internal.templateparser.php" #line 416 "internal.templateparser.y" - function yy_r108(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; } -#line 2134 "internal.templateparser.php" + function yy_r107(){$this->_retvalue = '!('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; } +#line 2132 "internal.templateparser.php" #line 417 "internal.templateparser.y" - function yy_r109(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; } -#line 2137 "internal.templateparser.php" + function yy_r108(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; } +#line 2135 "internal.templateparser.php" #line 418 "internal.templateparser.y" - function yy_r110(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; } -#line 2140 "internal.templateparser.php" + function yy_r109(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; } +#line 2138 "internal.templateparser.php" #line 419 "internal.templateparser.y" - function yy_r111(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; } -#line 2143 "internal.templateparser.php" -#line 425 "internal.templateparser.y" - function yy_r116(){$this->_retvalue = '=='; } -#line 2146 "internal.templateparser.php" -#line 426 "internal.templateparser.y" - function yy_r117(){$this->_retvalue = '!='; } -#line 2149 "internal.templateparser.php" + function yy_r110(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; } +#line 2141 "internal.templateparser.php" +#line 420 "internal.templateparser.y" + function yy_r111(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; } +#line 2144 "internal.templateparser.php" +#line 421 "internal.templateparser.y" + function yy_r112(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; } +#line 2147 "internal.templateparser.php" #line 427 "internal.templateparser.y" - function yy_r118(){$this->_retvalue = '>'; } -#line 2152 "internal.templateparser.php" + function yy_r117(){$this->_retvalue = '=='; } +#line 2150 "internal.templateparser.php" #line 428 "internal.templateparser.y" - function yy_r119(){$this->_retvalue = '<'; } -#line 2155 "internal.templateparser.php" + function yy_r118(){$this->_retvalue = '!='; } +#line 2153 "internal.templateparser.php" #line 429 "internal.templateparser.y" - function yy_r120(){$this->_retvalue = '>='; } -#line 2158 "internal.templateparser.php" + function yy_r119(){$this->_retvalue = '>'; } +#line 2156 "internal.templateparser.php" #line 430 "internal.templateparser.y" - function yy_r121(){$this->_retvalue = '<='; } -#line 2161 "internal.templateparser.php" + function yy_r120(){$this->_retvalue = '<'; } +#line 2159 "internal.templateparser.php" #line 431 "internal.templateparser.y" - function yy_r122(){$this->_retvalue = '==='; } -#line 2164 "internal.templateparser.php" + function yy_r121(){$this->_retvalue = '>='; } +#line 2162 "internal.templateparser.php" #line 432 "internal.templateparser.y" - function yy_r123(){$this->_retvalue = '!=='; } -#line 2167 "internal.templateparser.php" + function yy_r122(){$this->_retvalue = '<='; } +#line 2165 "internal.templateparser.php" +#line 433 "internal.templateparser.y" + function yy_r123(){$this->_retvalue = '==='; } +#line 2168 "internal.templateparser.php" #line 434 "internal.templateparser.y" - function yy_r124(){$this->_retvalue = '&&'; } -#line 2170 "internal.templateparser.php" -#line 435 "internal.templateparser.y" - function yy_r125(){$this->_retvalue = '||'; } -#line 2173 "internal.templateparser.php" -#line 440 "internal.templateparser.y" - function yy_r126(){ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')'; } -#line 2176 "internal.templateparser.php" + function yy_r124(){$this->_retvalue = '!=='; } +#line 2171 "internal.templateparser.php" +#line 436 "internal.templateparser.y" + function yy_r125(){$this->_retvalue = '&&'; } +#line 2174 "internal.templateparser.php" +#line 437 "internal.templateparser.y" + function yy_r126(){$this->_retvalue = '||'; } +#line 2177 "internal.templateparser.php" #line 442 "internal.templateparser.y" - function yy_r128(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor; } -#line 2179 "internal.templateparser.php" -#line 443 "internal.templateparser.y" - function yy_r129(){ return; } -#line 2182 "internal.templateparser.php" + function yy_r127(){ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')'; } +#line 2180 "internal.templateparser.php" +#line 444 "internal.templateparser.y" + function yy_r129(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor; } +#line 2183 "internal.templateparser.php" #line 445 "internal.templateparser.y" - function yy_r131(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2185 "internal.templateparser.php" -#line 446 "internal.templateparser.y" - function yy_r132(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2188 "internal.templateparser.php" -#line 453 "internal.templateparser.y" - function yy_r135(){$this->_retvalue = "`".$this->yystack[$this->yyidx + -1]->minor."`"; } -#line 2191 "internal.templateparser.php" -#line 454 "internal.templateparser.y" - function yy_r136(){$this->_retvalue = "'.".$this->yystack[$this->yyidx + -1]->minor.".'"; } -#line 2194 "internal.templateparser.php" + function yy_r130(){ return; } +#line 2186 "internal.templateparser.php" +#line 447 "internal.templateparser.y" + function yy_r132(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor; } +#line 2189 "internal.templateparser.php" +#line 448 "internal.templateparser.y" + function yy_r133(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor; } +#line 2192 "internal.templateparser.php" #line 455 "internal.templateparser.y" - function yy_r137(){$this->_retvalue = "'.".$this->yystack[$this->yyidx + 0]->minor.".'"; } -#line 2197 "internal.templateparser.php" + function yy_r136(){$this->_retvalue = "`".$this->yystack[$this->yyidx + -1]->minor."`"; } +#line 2195 "internal.templateparser.php" #line 456 "internal.templateparser.y" - function yy_r138(){$this->_retvalue = "'.(".$this->yystack[$this->yyidx + -1]->minor.").'"; } -#line 2200 "internal.templateparser.php" + function yy_r137(){$this->_retvalue = "'.".$this->yystack[$this->yyidx + -1]->minor.".'"; } +#line 2198 "internal.templateparser.php" #line 457 "internal.templateparser.y" - function yy_r139(){$this->_retvalue = addcslashes($this->yystack[$this->yyidx + 0]->minor,"'"); } -#line 2203 "internal.templateparser.php" + function yy_r138(){$this->_retvalue = "'.".$this->yystack[$this->yyidx + 0]->minor.".'"; } +#line 2201 "internal.templateparser.php" +#line 458 "internal.templateparser.y" + function yy_r139(){$this->_retvalue = "'.(".$this->yystack[$this->yyidx + -1]->minor.").'"; } +#line 2204 "internal.templateparser.php" +#line 459 "internal.templateparser.y" + function yy_r140(){$this->_retvalue = addcslashes($this->yystack[$this->yyidx + 0]->minor,"'"); } +#line 2207 "internal.templateparser.php" /** * placeholder for the left hand side in a reduce operation. @@ -2312,7 +2316,7 @@ static public $yy_action = array( $this->internalError = true; $this->yymajor = $yymajor; $this->compiler->trigger_template_error(); -#line 2321 "internal.templateparser.php" +#line 2325 "internal.templateparser.php" } /** @@ -2336,7 +2340,7 @@ static public $yy_action = array( $this->internalError = false; $this->retvalue = $this->_retvalue; //echo $this->retvalue."\n\n"; -#line 2346 "internal.templateparser.php" +#line 2350 "internal.templateparser.php" } /**