builderTemplate = $builderTemplate ?: new Builder(); } /** * @param string $abc * @return TuneCollection * @throws \Enzyme\Axiom\Exceptions\AtomException */ public function import(string $abc) : TuneCollection { $context = new Context(new StringAtom($abc)); $parser = $this->getBestParser($context); $result = $parser->execute($context); return $result; } /** * @param Context $context * @return Interpreter */ public function getBestParser(Context $context) : Interpreter { $builder = clone $this->builderTemplate; switch($context->getVersion()) { default: $interpreter = new DefaultInterpreter($builder); } return $interpreter; } }