require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&__SGI_STL_INTERNAL_ROPE_H)) {
    eval 'sub __SGI_STL_INTERNAL_ROPE_H () {1;}' unless defined(&__SGI_STL_INTERNAL_ROPE_H);
    if(defined(&__GC)) {
	eval 'sub __GC_CONST () { &const;}' unless defined(&__GC_CONST);
    } else {
	require 'bits/stl_threads.ph';
	eval 'sub __GC_CONST () {1;}' unless defined(&__GC_CONST);
    }
    require 'ext/memory';
    eval 'sub __ROPE_DEFINE_ALLOCS {
        my($__a) = @_;
	    eval q( &__ROPE_DEFINE_ALLOC( &_CharT, &_Data)  &typedef  &_Rope_RopeConcatenation< &_CharT,$__a>  &__C;  &__ROPE_DEFINE_ALLOC( &__C, &_C)  &typedef  &_Rope_RopeLeaf< &_CharT,$__a>  &__L;  &__ROPE_DEFINE_ALLOC( &__L, &_L)  &typedef  &_Rope_RopeFunction< &_CharT,$__a>  &__F;  &__ROPE_DEFINE_ALLOC( &__F, &_F)  &typedef  &_Rope_RopeSubstring< &_CharT,$__a>  &__S;  &__ROPE_DEFINE_ALLOC( &__S, &_S));
    }' unless defined(&__ROPE_DEFINE_ALLOCS);
    eval 'sub __STATIC_IF_SGI_ALLOC () {1;}' unless defined(&__STATIC_IF_SGI_ALLOC);
    eval 'sub __ROPE_DEFINE_ALLOC {
        my($_Tp, $__name) = @_;
	    eval q( &typedef  &typename  &_Alloc_traits<$_Tp, &_Allocator>:: &allocator_type $__name &Allocator; $_Tp * $__name &_allocate(\'size_t\'  &__n) {  &return $__name &Allocator( &_M_data_allocator). &allocate( &__n); }  &void $__name &_deallocate($_Tp*  &__p, \'size_t\'  &__n) { $__name &Allocator( &_M_data_allocator). &deallocate( &__p,  &__n); });
    }' unless defined(&__ROPE_DEFINE_ALLOC);
    undef(&__ROPE_DEFINE_ALLOC) if defined(&__ROPE_DEFINE_ALLOC);
    eval 'sub __ROPE_DEFINE_ALLOC {
        my($_Tp, $__name) = @_;
	    eval q( &typedef  &typename  &_Alloc_traits<$_Tp, &_Allocator>:: &_Alloc_type $__name &Alloc;  &typedef  &typename  &_Alloc_traits<$_Tp, &_Allocator>:: &allocator_type $__name &Allocator;  &static $_Tp* $__name &_allocate(\'size_t\'  &__n) {  &return $__name &Alloc:: &allocate( &__n); }  &void $__name &_deallocate($_Tp * &__p, \'size_t\'  &__n) { $__name &Alloc:: &deallocate( &__p,  &__n); });
    }' unless defined(&__ROPE_DEFINE_ALLOC);
    undef(&__ROPE_DEFINE_ALLOC) if defined(&__ROPE_DEFINE_ALLOC);
    unless(defined(&__GC)) {
    }
    eval("sub _S_max_rope_depth () { 45; }") unless defined(&_S_max_rope_depth);
    eval("sub _S_leaf () { 0; }") unless defined(&_S_leaf);
    eval("sub _S_concat () { 1; }") unless defined(&_S_concat);
    eval("sub _S_substringfn () { 2; }") unless defined(&_S_substringfn);
    eval("sub _S_function () { 3; }") unless defined(&_S_function);
    unless(defined(&__GC)) {
    }
    if(defined(&__GC)) {
    }
    eval 'sub __STL_FREE_STRING {
        my($__s, $__l, $__a) = @_;
	    eval q( &_S_free_string($__s, $__l, $__a););
    }' unless defined(&__STL_FREE_STRING);
    unless(defined(&__GC)) {
    } else {
    }
    eval("sub _S_alloc_granularity () { 8; }") unless defined(&_S_alloc_granularity);
    if(defined(&__GC)) {
    } else {
    }
    unless(defined(&__GC)) {
    }
    unless(defined(&__GC)) {
    }
    unless(defined(&__GC)) {
    } else {
    }
    unless(defined(&__GC)) {
    }
    if(defined(&__GC)) {
    }
    unless(defined(&__GC)) {
    }
    unless(defined(&__GC)) {
    }
    unless(defined(&__GC)) {
    }
    unless(defined(&__GC)) {
	if(defined(&__EXCEPTIONS)) {
	} else {
	}
    }
    if(defined(&__GC)) {
    } else {
    }
    eval("sub _S_path_cache_len () { 4; }") unless defined(&_S_path_cache_len);
    eval("sub _S_iterator_buf_len () { 15; }") unless defined(&_S_iterator_buf_len);
    eval 'sub __ROPE_DEFINE_ALLOC {
        my($_Tp, $__name) = @_;
	    eval q( &typedef  &typename  &_Alloc_traits<$_Tp, &_Allocator>:: &allocator_type $__name &Allocator; $_Tp* $__name &_allocate(\'size_t\'  &__n)  &const {  &return $__name &Allocator( &_M_data_allocator). &allocate( &__n); }  &void $__name &_deallocate($_Tp * &__p, \'size_t\'  &__n)  &const { $__name &Allocator( &_M_data_allocator). &deallocate( &__p,  &__n); });
    }' unless defined(&__ROPE_DEFINE_ALLOC);
    undef(&__ROPE_DEFINE_ALLOC) if defined(&__ROPE_DEFINE_ALLOC);
    eval 'sub __ROPE_DEFINE_ALLOC {
        my($_Tp, $__name) = @_;
	    eval q( &typedef  &typename  &_Alloc_traits<$_Tp, &_Allocator>:: &_Alloc_type $__name &Alloc;  &typedef  &typename  &_Alloc_traits<$_Tp, &_Allocator>:: &allocator_type $__name &Allocator;  &static $_Tp* $__name &_allocate(\'size_t\'  &__n) {  &return $__name &Alloc:: &allocate( &__n); }  &static  &void $__name &_deallocate($_Tp * &__p, \'size_t\'  &__n) { $__name &Alloc:: &deallocate( &__p,  &__n); });
    }' unless defined(&__ROPE_DEFINE_ALLOC);
    undef(&__ROPE_DEFINE_ALLOC) if defined(&__ROPE_DEFINE_ALLOC);
    eval("sub _S_copy_max () { 23; }") unless defined(&_S_copy_max);
    unless(defined(&__GC)) {
    }
    unless(defined(&__GC)) {
    } else {
    }
    if(defined(&__GC)) {
    } else {
    }
    if(defined(&__GC)) {
    } else {
    }
    eval 'sub __STL_ROPE_FROM_UNOWNED_CHAR_PTR {
        my($__s, $__size, $__a) = @_;
	    eval q( &_S_RopeLeaf_from_unowned_char_ptr($__s, $__size, $__a));
    }' unless defined(&__STL_ROPE_FROM_UNOWNED_CHAR_PTR);
    unless(defined(&__GC)) {
    }
    unless(defined(&__GC)) {
    }
    unless(defined(&__STL_OLD_ROPE_SEMANTICS)) {
    }
    if(defined(&__STD_STUFF)) {
    } else {
    }
    require 'ext/ropeimpl.ph';
}
1;
