Phan\AST\Visitor\Element::acceptBinaryFlagVisitor PHP Method

acceptBinaryFlagVisitor() public method

Accepts a visitor that differentiates on the flag value of the AST node.
public acceptBinaryFlagVisitor ( Phan\AST\Visitor\FlagVisitor $visitor )
$visitor Phan\AST\Visitor\FlagVisitor
    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;
        }
    }