home *** CD-ROM | disk | FTP | other *** search
- #pragma info( none )
- #ifndef __CHKHDR__
- #pragma info( none )
- #endif
- #pragma info( restore )
-
- #ifndef __generic_h
- #define __generic_h
-
- /********************************************************************/
- /* <generic.h> header file */
- /* */
- /* VisualAge for C++ for Windows, Version 3.5 */
- /* Licensed Material - Property of IBM */
- /* */
- /* 5801-ARR and Other Materials */
- /* */
- /* (c) Copyright IBM Corp 1991, 1996. All rights reserved. */
- /* */
- /* */
- /* */
- /* Licensed Materials - Property of USL */
- /* */
- /* Standard Class Library Version 3.0 */
- /* Copyright (C) Unix System Laboratories Inc. 1991. */
- /* All rights reserved */
- /* */
- /********************************************************************/
-
- /**************************************************************************/
- /* C++ source for the C++ Language System, Release 3.0. This product */
- /* is a new release of the original cfront developed in the computer */
- /* science research center of AT&T Bell Laboratories. */
- /* */
- /* Copyright (c) 1991 AT&T and UNIX System Laboratories, Inc. */
- /* Copyright (c) 1984, 1989, 1990 AT&T. All Rights Reserved. */
- /* */
- /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE of AT&T and UNIX System */
- /* Laboratories, Inc. The copyright notice above does not evidence */
- /* any actual or intended publication of such source code. */
- /* */
- /* UNIX is a registered trademark of UNIX System Laboratories, Inc. */
- /* */
- /* ident "@(#)C++env:incl-master/proto-headers/generic.h 1.1" */
- /**************************************************************************/
-
- /* macros to paste tokens together to form new names */
-
- /* ANSI C preprocessors will not expand the arguments to a macro;
- * so we need to add a level of indirection to allow macro expansion of
- * arguments. (Reiser preprocessors allowed the first arg to be expanded;
- * this method will allow both to be expanded, which is better than none.)
- */
- #define name2(a,b) _name2_aux(a,b)
- #define _name2_aux(a,b) a##b
- #define name3(a,b,c) _name3_aux(a,b,c)
- #define _name3_aux(a,b,c) a##b##c
- #define name4(a,b,c,d) _name4_aux(a,b,c,d)
- #define _name4_aux(a,b,c,d) a##b##c##d
-
- #define declare(a,t) name2(a,declare)(t)
- #define implement(a,t) name2(a,implement)(t)
- #define declare2(a,t1,t2) name2(a,declare2)(t1,t2)
- #define implement2(a,t1,t2) name2(a,implement2)(t1,t2)
-
- extern int genericerror(int,char*);
- typedef int (* GPT)(int,char*);
- #define set_handler(generic,type,x) name4(set_,type,generic,_handler)(x)
- #define errorhandler(generic,type) name3(type,generic,handler)
- #define callerror(generic,type,a,b) (*errorhandler(generic,type))(a,b)
-
- #endif
-
- #pragma info( none )
- #ifndef __CHKHDR__
- #pragma info( restore )
- #endif
- #pragma info( restore )
-