public function acceptBinaryFlagVisitor(FlagVisitor $visitor)
{
switch ($this->node->flags ?? 0) {
case \ast\flags\BINARY_ADD:
return $visitor->visitBinaryAdd($this->node);
case \ast\flags\BINARY_BITWISE_AND:
return $visitor->visitBinaryBitwiseAnd($this->node);
case \ast\flags\BINARY_BITWISE_OR:
return $visitor->visitBinaryBitwiseOr($this->node);
case \ast\flags\BINARY_BITWISE_XOR:
return $visitor->visitBinaryBitwiseXor($this->node);
case \ast\flags\BINARY_BOOL_XOR:
return $visitor->visitBinaryBoolXor($this->node);
case \ast\flags\BINARY_CONCAT:
return $visitor->visitBinaryConcat($this->node);
case \ast\flags\BINARY_DIV:
return $visitor->visitBinaryDiv($this->node);
case \ast\flags\BINARY_IS_EQUAL:
return $visitor->visitBinaryIsEqual($this->node);
case \ast\flags\BINARY_IS_IDENTICAL:
return $visitor->visitBinaryIsIdentical($this->node);
case \ast\flags\BINARY_IS_NOT_EQUAL:
return $visitor->visitBinaryIsNotEqual($this->node);
case \ast\flags\BINARY_IS_NOT_IDENTICAL:
return $visitor->visitBinaryIsNotIdentical($this->node);
case \ast\flags\BINARY_IS_SMALLER:
return $visitor->visitBinaryIsSmaller($this->node);
case \ast\flags\BINARY_IS_SMALLER_OR_EQUAL:
return $visitor->visitBinaryIsSmallerOrEqual($this->node);
case \ast\flags\BINARY_MOD:
return $visitor->visitBinaryMod($this->node);
case \ast\flags\BINARY_MUL:
return $visitor->visitBinaryMul($this->node);
case \ast\flags\BINARY_POW:
return $visitor->visitBinaryPow($this->node);
case \ast\flags\BINARY_SHIFT_LEFT:
return $visitor->visitBinaryShiftLeft($this->node);
case \ast\flags\BINARY_SHIFT_RIGHT:
return $visitor->visitBinaryShiftRight($this->node);
case \ast\flags\BINARY_SPACESHIP:
return $visitor->visitBinarySpaceship($this->node);
case \ast\flags\BINARY_SUB:
return $visitor->visitBinarySub($this->node);
case \ast\flags\BINARY_BOOL_AND:
return $visitor->visitBinaryBoolAnd($this->node);
case \ast\flags\BINARY_BOOL_OR:
return $visitor->visitBinaryBoolOr($this->node);
case \ast\flags\BINARY_IS_GREATER:
return $visitor->visitBinaryIsGreater($this->node);
case \ast\flags\BINARY_IS_GREATER_OR_EQUAL:
return $visitor->visitBinaryIsGreaterOrEqual($this->node);
default:
assert(false, "All flags must match. Found " . Debug::astFlagDescription($this->node->flags ?? 0));
break;
}
}