public function accept(Ast\Visitor $visitor) { if ($this->parameter instanceof Ast) { if ($visitor->visitEnter($this)) { $this->parameter->accept($visitor); $visitor->visitLeave($this); } } else { $visitor->visit($this); } }