private function evaluate($source, $model) { $expressions = array(); $evaluations = array(); $xp = array(); // Evaluated expressions results and expression input if (!preg_match_all("/([#]\\{.+?\\})+/i", $source, $expressions)) { return $source; } for ($expression = 0; isset($expressions[0][$expression]); $expression++) { // Replace expressions with evaluations $PCE = new PostCompiledExpression(PostCompiledExpression::EnforceWhitespace($expressions[0][$expression]), $model); $evaluations[$expression] = $PCE->execute(); $xp[$expression] = $expressions[0][$expression]; } return str_replace($xp, $evaluations, $source); }
public function TestPCE($input) { $pce = PostCompiledExpression::EnforceWhitespace($input->expression); $answer = new PostCompiledExpression($pce, NULL); return array('answer' => $answer->execute()); }