Esempio n. 1
0
 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);
 }