public function parse($string) { $result = $this->parser->parse($string); if ($result === null) { return null; } $result = $this->result_rewriter->reverseRewriteExpressionResult($result); return $result; }
public function reverseRewriteExpressionResult(ExpressionResultInterface $result) { /** @var AlternativeExpressionResult $result */ if ($result->getKey() === 1) { //empty return new JoinedExpressionResult(array(), array()); } /** @var \PeterVanDommelen\Parser\Expression\Concatenated\ConcatenatedExpressionResult $maybe_part */ $maybe_part = $result->getResult(); /** @var \PeterVanDommelen\Parser\Expression\Repeater\RepeaterExpressionResult $repeater_part */ $repeater_part = $maybe_part->getPart(1); $results = array($this->inner_result_rewriter->reverseRewriteExpressionResult($maybe_part->getPart(0))); $seperators = array(); foreach ($repeater_part->getResults() as $repeater_part_part) { /** @var \PeterVanDommelen\Parser\Expression\Concatenated\ConcatenatedExpressionResult $repeater_part_part */ $seperators[] = $this->seperator_result_rewriter->reverseRewriteExpressionResult($repeater_part_part->getPart(0)); $results[] = $this->inner_result_rewriter->reverseRewriteExpressionResult($repeater_part_part->getPart(1)); } return new JoinedExpressionResult($results, $seperators); }
public function reverseRewriteExpressionResult(ExpressionResultInterface $result) { return new AlternativeExpressionResult($this->alternative_rewriter->reverseRewriteExpressionResult($result), $this->key); }
public function reverseRewriteExpressionResult(ExpressionResultInterface $result) { $part_results = array(); $part_results[$this->key] = $this->part_rewriter->reverseRewriteExpressionResult($result); return new ConcatenatedExpressionResult($part_results); }