public function acceptMagicFlagVisitor(FlagVisitor $visitor)
{
switch ($this->node->flags) {
case \ast\flags\MAGIC_CLASS:
return $visitor->visitMagicClass($this->node);
case \ast\flags\MAGIC_DIR:
return $visitor->visitMagicDir($this->node);
case \ast\flags\MAGIC_FILE:
return $visitor->visitMagicFile($this->node);
case \ast\flags\MAGIC_FUNCTION:
return $visitor->visitMagicFunction($this->node);
case \ast\flags\MAGIC_LINE:
return $visitor->visitMagicLine($this->node);
case \ast\flags\MAGIC_METHOD:
return $visitor->visitMagicMethod($this->node);
case \ast\flags\MAGIC_NAMESPACE:
return $visitor->visitMagicNamespace($this->node);
case \ast\flags\MAGIC_TRAIT:
return $visitor->visitMagicTrait($this->node);
default:
assert(false, "All flags must match. Found " . Debug::astFlagDescription($this->node->flags ?? 0));
break;
}
}