#ifndef _H_LOWLEVEL_
#define _H_LOWLEVEL_
#if defined(_NO_PROTO_) || !(defined(__STDC__) || defined(__cplusplus))
#define _ANSI_PROTO_(x) ()
#else
#define _ANSI_PROTO_(x) x
#endif
extern void fatal _ANSI_PROTO_((char*,int,char*,...));
extern void error _ANSI_PROTO_((char*,int,char*,...));
extern void warning _ANSI_PROTO_((char*,int,char*,...));
extern void inform _ANSI_PROTO_((char*,int,char*,...));
extern void assert_failed _ANSI_PROTO_((char*,int,char*));
extern void syserr _ANSI_PROTO_((char*,int));
#undef assert
#ifdef NDEBUG
#define assert(EX) ((void)0)
#else
#ifdef __ANSI_CPP__
#define assert(EX) ((EX)?((void)0):assert_failed(__FILE__, __LINE__, # EX ))
#else
#define assert(EX) ((EX)?((void)0):assert_failed(__FILE__, __LINE__, "EX"))
#endif
#endif
#endif /* _H_LOWLEVEL_ */
syntax highlighted by Code2HTML, v. 0.9.1