$this->config =
$config;
// get config file source
$_content =
$config->source->content . "\n";
// on empty template just return
if ($_content == ''
) { return true;
} // init the lexer/parser to compile the config file
$lex =
new Smarty_Internal_Configfilelexer($_content,
$this->smarty
);
$parser =
new Smarty_Internal_Configfileparser($lex,
$this);
if ($this->smarty->_parserdebug
) $parser->
PrintTrace();
// get tokens from lexer and parse them
while ($lex->
yylex()) { if ($this->smarty->_parserdebug
) echo "<br>Parsing {
$parser->yyTokenName
[$lex->token
]} Token {
$lex->value
} Line {
$lex->line
} \n";
$parser->
doParse($lex->token,
$lex->value
);
} // finish parsing process
$parser->
doParse(0, 0
);
$config->compiled_config = '<?php $_config_vars = ' .
var_export($this->config_data, true
) . '; ?>';
} /**
* display compiler error messages without dying
*
* If parameter $args is empty it is a parser detected syntax error.
* In this case the parser is called to obtain information about exspected tokens.
*
* If parameter $args contains a string this is used as error message
*
* @param string $args individual error message or null
*/