/******************************************************************************/
/*                                 Start of as.h                              */
/******************************************************************************/
/*

This assertions package is a stripped down version of the one I usually
use. It was stripped down for distribution in support of the exceptions
package.

Hot assertions are used for assertions in program hot spots. Cold assertions
are used in places where speed is unaffected by assertion code.

This file is distributed without warranty and was placed in the public
domain by its author Ross Williams on 29 September 1993.

*/
/******************************************************************************/

/* Ensure that the body of this header file is included at most once.         */
#ifndef DONE_AS
#define DONE_AS

#include "style.h"

#define AS_DOHOT 1
EXPORT void as_bomb P_((char *));
#define as_cold(e,s) {if (!(e)) as_bomb(s);}

#if AS_DOHOT
#define as_hot(e,s)    {if (!(e)) as_bomb(s);}
#define AS_HCODE(CODE) {CODE}
#else
#define as_hot(e,s)    {}
#define AS_HCODE(CODE) {}
#endif

#define AS_CCODE(CODE) {CODE}

EXPORT void as_wr P_((string)); /* Write string without terminating EOL. */
EXPORT void as_wl P_((string)); /* Write string with    terminating EOL. */

#endif

/******************************************************************************/
/*                                End of as.h                                 */
/******************************************************************************/
