require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_EXCEPTION_DEFINES_H)) {
    eval 'sub _EXCEPTION_DEFINES_H () {1;}' unless defined(&_EXCEPTION_DEFINES_H);
    if(! (defined(&__cpp_exceptions) ? &__cpp_exceptions : undef)) {
	eval 'sub __try () { &if ( &true);}' unless defined(&__try);
	eval 'sub __catch {
	    my($X) = @_;
    	    eval q( &if ( &false));
	}' unless defined(&__catch);
	eval 'sub __throw_exception_again () {1;}' unless defined(&__throw_exception_again);
    } else {
	eval 'sub __try () { &try;}' unless defined(&__try);
	eval 'sub __catch {
	    my($X) = @_;
    	    eval q( &catch($X));
	}' unless defined(&__catch);
	eval 'sub __throw_exception_again () { &throw;}' unless defined(&__throw_exception_again);
    }
}
1;
