final public function compileDebug()
    {
        return (new DynamicExpressionWalker([
                ValueExpression::getType() =>
                        function (ValueExpression $expression) {
                            $value = $expression->getValue();

                            return !is_scalar($value) && $value !== null ?
                                    Expression::constant(
                                            '{' . Utilities::getTypeOrClass($expression->getValue()) . '}'
                                    ) : $expression;
                        }
        ]))
                ->walk($this)
                ->compile();
    }
final public function compileDebug()
    {
        return (new DynamicExpressionWalker([
                ValueExpression::getType() =>
                        function (ValueExpression $expression) {
                            $value = $expression->getValue();

                            return !is_scalar($value) && $value !== null ?
                                    Expression::constant(
                                            '{' . Utilities::getTypeOrClass($expression->getValue()) . '}'
                                    ) : $expression;
                        }
        ]))
                ->walk($this)
                ->compile();
    }
final public function compileDebug ( ) { return ( new DynamicExpressionWalker ( [ ValueExpression :: getType ( ) => function ( ValueExpression $ expression ) { $ value = $ expression -> getValue ( ) ; return ! is_scalar ( $ value ) && $ value !== null ? Expression :: constant ( '{' . Utilities :: getTypeOrClass ( $ expression -> getValue ( ) ) . '}' ) : $ expression ; } ] ) ) -> walk ( $ this ) -> compile ( ) ; }
Compiles the expression tree into debug code.

@return string
Compiles the expression tree into debug code .