home *** CD-ROM | disk | FTP | other *** search
- #line 1 "#5_VER2.cxx"
- void *_new(long);
- void _delete(void*);
- void *_vec_new(void*,int,int,void*(*)(void*));
- void _vec_delete(void*,int,int,void(*)(void*,int),...);
- void exit(int);
- static void cdecl _STI();
- static void cdecl _STD();
-
- typedef unsigned int size_t ;
- typedef char *va_list ;
- struct _iobuf {
- char *__iobuf__ptr ;
- int __iobuf__cnt ;
- char *__iobuf__base ;
- char __iobuf__flag ;
- char __iobuf__file ;} ;
- extern struct _iobuf _iob [];
- int _filbuf (struct _iobuf *);
- int _flsbuf (int , struct _iobuf *);
- void clearerr (struct _iobuf *);
- int fclose (struct _iobuf *);
- int fcloseall (void );
- struct _iobuf *fdopen (int , char *);
- int fflush (struct _iobuf *);
- int fgetc (struct _iobuf *);
- int fgetchar (void );
- int fgetpos (struct _iobuf *, long *);
- char *fgets (char *, int , struct _iobuf *);
- int flushall (void );
- struct _iobuf *fopen (char *, char *);
- int fprintf (struct _iobuf *, char *, ... );
- int fputc (int , struct _iobuf *);
- int fputchar (int );
- int fputs (char *, struct _iobuf *);
- size_t fread (void *, size_t , size_t , struct _iobuf *);
- struct _iobuf *freopen (char *, char *, struct _iobuf *);
- int fscanf (struct _iobuf *, char *, ... );
- int fsetpos (struct _iobuf *, long *);
- int fseek (struct _iobuf *, long , int );
- long ftell (struct _iobuf *);
- size_t fwrite (void *, size_t , size_t , struct _iobuf *);
- char *gets (char *);
- int getw (struct _iobuf *);
- void perror (char *);
- int printf (char *, ... );
- int puts (char *);
- int putw (int , struct _iobuf *);
- int remove (char *);
- int rename (char *, char *);
- void rewind (struct _iobuf *);
- int rmtmp (void );
- int scanf (char *, ... );
- void setbuf (struct _iobuf *, char *);
- int setvbuf (struct _iobuf *, char *, int , size_t );
- int sprintf (char *, char *, ... );
- int sscanf (char *, char *, ... );
- char *tempnam (char *, char *);
- struct _iobuf *tmpfile (void );
- char *tmpnam (char *);
- int ungetc (int , struct _iobuf *);
- int unlink (char *);
- int vfprintf (struct _iobuf *, char *, va_list );
- int vprintf (char *, va_list );
- int vsprintf (char *, char *, va_list );
-
-
- struct animal {
- int (pascal **_animal__vptr_PN )(void );
- } ;
- static void pascal _animal_identify (struct animal* );
- static int (pascal *animal__vtbl_PN[])() = {
- (int(pascal *)()) _animal_identify ,
- (int(pascal *)()) 0
- };
-
- struct mammal {
- int (pascal **_animal__vptr_PN )(void );
- } ;
- static void pascal _mammal_identify (struct mammal* );
- static int (pascal *mammal__vtbl_PN[])() = {
- (int(pascal *)()) _mammal_identify ,
- (int(pascal *)()) 0
- };
-
- struct bird {
- int (pascal **_animal__vptr_PN )(void );
- } ;
- static void pascal _bird_identify (struct bird* );
- static int (pascal *bird__vtbl_PN[])() = {
- (int(pascal *)()) _bird_identify ,
- (int(pascal *)()) 0
- };
-
- struct dog {
- int (pascal **_animal__vptr_PN )(void );
- } ;
- static void pascal _dog_identify (struct dog* );
- static int (pascal *dog__vtbl_PN[])() = {
- (int(pascal *)()) _dog_identify ,
- (int(pascal *)()) 0
- };
-
- struct eagle {
- int (pascal **_animal__vptr_PN )(void );
- } ;
- static void pascal _eagle_identify (struct eagle* );
- static int (pascal *eagle__vtbl_PN[])() = {
- (int(pascal *)()) _eagle_identify ,
- (int(pascal *)()) 0
- };
-
- void print1 (void );
- void print2 (void );
- void print3 (void );
-
- int main ()
- {
- {
- print1 ( ) ;
- print2 ( ) ;
- print3 ( ) ;
- }
- exit ( 0 );
- }
-
- extern void print1 ()
- {
- struct animal *_au1_ap = 0 ;
- struct mammal *_au1_mp = 0 ;
- struct bird *_au1_bp = 0 ;
- struct dog *_au1_dp = 0 ;
- struct eagle *_au1_ep = 0 ;
- register struct mammal *_au0__Xthis__ctor_mammal = 0 ;
- register struct bird *_au0__Xthis__ctor_bird = 0 ;
- register struct dog *_au0__Xthis__ctor_dog = 0 ;
- register struct eagle *_au0__Xthis__ctor_eagle = 0 ;
- register struct animal *_au0__Xthis__ctor_animal = 0 ;
-
- _au1_ap = (struct animal *)( (_au0__Xthis__ctor_animal = 0 ),
- ( ( (_au0__Xthis__ctor_animal = (struct animal *)_new (
- (long )(sizeof (struct animal))) ), 0 ) ,
- ( (_au0__Xthis__ctor_animal -> _animal__vptr_PN
- = animal__vtbl_PN), ((_au0__Xthis__ctor_animal ))) ) ) ;
-
- (*(((void (pascal *)())(*_au1_ap -> _animal__vptr_PN ))))( _au1_ap ) ;
-
- _au1_mp = (struct mammal *)( (_au0__Xthis__ctor_mammal = 0 ),
- ( ( (_au0__Xthis__ctor_mammal = (struct mammal *)_new (
- (long )(sizeof (struct mammal))) ), 0 ) ,
- ( ( (_au0__Xthis__ctor_mammal
- = (struct mammal *)( ( ((((struct animal *)
- _au0__Xthis__ctor_mammal ))-> _animal__vptr_PN
- = animal__vtbl_PN),
- (((((struct animal *)_au0__Xthis__ctor_mammal ))))) ) ),
- (_au0__Xthis__ctor_mammal -> _animal__vptr_PN
- = mammal__vtbl_PN)) , ((_au0__Xthis__ctor_mammal ))) ) ) ;
-
- (*(((void (pascal *)())(*_au1_mp -> _animal__vptr_PN ))))( _au1_mp ) ;
-
- _au1_bp = (struct bird *)( (_au0__Xthis__ctor_bird = 0 ),
- ( ( (_au0__Xthis__ctor_bird = (struct bird *)_new (
- (long )(sizeof (struct bird))) ), 0 ) ,
- ( ( (_au0__Xthis__ctor_bird = (struct bird *)
- ( ( ((((struct animal *)_au0__Xthis__ctor_bird ))->
- _animal__vptr_PN = animal__vtbl_PN),
- (((((struct animal *)_au0__Xthis__ctor_bird ))))) ) ),
- (_au0__Xthis__ctor_bird -> _animal__vptr_PN
- = bird__vtbl_PN)) , ((_au0__Xthis__ctor_bird ))) ) ) ;
-
- (*(((void (pascal *)())(*_au1_bp -> _animal__vptr_PN ))))( _au1_bp ) ;
-
- _au1_dp = (struct dog *)( (_au0__Xthis__ctor_dog = 0 ),
- ( ( (_au0__Xthis__ctor_dog = (struct dog *)_new (
- (long )(sizeof (struct dog))) ), 0 ) ,
- ( ( (_au0__Xthis__ctor_dog = (struct dog *)
- ( ( ( (( ( ((((struct animal *)(((struct mammal *)
- _au0__Xthis__ctor_dog ))))-> _animal__vptr_PN
- = animal__vtbl_PN),
- (((((struct animal *)(((struct mammal *)
- _au0__Xthis__ctor_dog ))))))) ) ),
- ((((struct mammal *)_au0__Xthis__ctor_dog ))-> _animal__vptr_PN
- = mammal__vtbl_PN)) ,
- (((((struct mammal *)_au0__Xthis__ctor_dog ))))) ) ),
- (_au0__Xthis__ctor_dog -> _animal__vptr_PN
- = dog__vtbl_PN)) , ((_au0__Xthis__ctor_dog ))) ) ) ;
-
- (*(((void (pascal *)())(*_au1_dp -> _animal__vptr_PN ))))( _au1_dp ) ;
-
- _au1_ep = (struct eagle *)( (_au0__Xthis__ctor_eagle = 0 ),
- ( ( (_au0__Xthis__ctor_eagle = (struct eagle *)_new (
- (long )(sizeof (struct eagle))) ), 0 ) ,
- ( ( (_au0__Xthis__ctor_eagle = (struct eagle *)
- ( ( ( (( ( ((((struct animal *)(((struct bird *)
- _au0__Xthis__ctor_eagle ))))-> _animal__vptr_PN
- = animal__vtbl_PN), (((((struct animal *)
- (((struct bird *)_au0__Xthis__ctor_eagle ))))))) ) ),
- ((((struct bird *)_au0__Xthis__ctor_eagle ))-> _animal__vptr_PN
- = bird__vtbl_PN)) ,
- (((((struct bird *)_au0__Xthis__ctor_eagle ))))) ) ),
- (_au0__Xthis__ctor_eagle -> _animal__vptr_PN = eagle__vtbl_PN)) ,
- ((_au0__Xthis__ctor_eagle ))) ) ) ;
-
- (*(((void (pascal *)())(*_au1_ep -> _animal__vptr_PN ))))( _au1_ep ) ;
-
- printf ( (char *)"\n") ;
- }
-
- extern void print2 ()
- {
- struct animal *_au1_ap = 0 ;
- struct mammal *_au1_mp = 0 ;
- struct mammal *_au0__K1 = 0 ;
-
- register struct animal *_au0__Xthis__ctor_animal = 0 ;
-
- _au1_ap = (struct animal *)( (_au0__Xthis__ctor_animal = 0 ),
- ( ( (_au0__Xthis__ctor_animal = (struct animal *)_new (
- (long )(sizeof (struct animal))) ), 0 ) ,
- ( (_au0__Xthis__ctor_animal -> _animal__vptr_PN
- = animal__vtbl_PN), ((_au0__Xthis__ctor_animal ))) ) ) ;
-
- (*(((void (pascal *)())(*_au1_ap -> _animal__vptr_PN ))))( _au1_ap ) ;
-
- ( (_au0__K1 = (((struct mammal *)_au1_ap ))), (*(((void (pascal *)())
- (*_au0__K1 -> _animal__vptr_PN ))))( _au0__K1 ) ) ;
-
- _au1_mp = (((struct mammal *)_au1_ap ));
- (*(((void (pascal *)())(*_au1_mp -> _animal__vptr_PN ))))( _au1_mp ) ;
-
- printf ( (char *)"\n") ;}
-
- extern void print3 ()
- {
- struct animal _au1_a ;
- struct animal *_au1_ap = 0 ;
- struct mammal _au1_m ;
- struct eagle _au1_e ;
-
- ( ( ((& _au1_a )-> _animal__vptr_PN = animal__vtbl_PN),
- (((& _au1_a )))) ) ;
-
- _au1_ap = (& _au1_a );
-
- ( ( ( (( ( ((((struct animal *)(& _au1_m )))-> _animal__vptr_PN
- = animal__vtbl_PN), (((((struct animal *)(& _au1_m )))))) ) ),
- ((& _au1_m )-> _animal__vptr_PN = mammal__vtbl_PN)) ,
- (((& _au1_m )))) ) ;
-
- ( ( ( (( ( ( (( ( ((((struct animal *)
- (((struct bird *)(& _au1_e )))))-> _animal__vptr_PN
- = animal__vtbl_PN),
- (((((struct animal *)(((struct bird *)(& _au1_e )))))))) ) ),
- ((((struct bird *)(& _au1_e )))-> _animal__vptr_PN
- = bird__vtbl_PN)) , (((((struct bird *)(& _au1_e )))))) ) ),
- ((& _au1_e )-> _animal__vptr_PN = eagle__vtbl_PN)) ,
- (((& _au1_e )))) ) ;
-
- (*(((void (pascal *)())(*_au1_ap -> _animal__vptr_PN ))))( _au1_ap ) ;
-
- _au1_ap = (struct animal *)(& _au1_m );
-
- (*(((void (pascal *)())(*_au1_ap -> _animal__vptr_PN ))))( _au1_ap ) ;
-
- printf ( (char *)"\n") ;}
-
- static void pascal _eagle_identify (register struct eagle *this )
- {
- printf ( (char *)"%s\n", "eagle") ;
- }
-
- static void pascal _dog_identify (register struct dog *this )
- {
- printf ( (char *)"%s\n", "dog") ;
- }
-
- static void pascal _bird_identify (register struct bird *this )
- {
- printf ( (char *)"%s\n", "bird") ;
- }
-
- static void pascal _mammal_identify (register struct mammal *this )
- {
- printf ( (char *)"%s\n", "mammal") ;
- }
-
- static void pascal _animal_identify (register struct animal *this )
- {
- printf ( (char *)"%s\n", "animal") ;
- }
-