/* (C) Copyright International Business Machines Corporation 23 January */
/* 1990.  All Rights Reserved. */
/*  */
/* See the file USERAGREEMENT distributed with this software for full */
/* terms and conditions of use. */
-- Typemark Macros
-- Andy Lowry, Apr 1989
-- SCCS Info: @(#)typemark.h	1.7 3/15/90

#ifndef typemark_included

-- Use the following macros in your Hermes programs to ease the
-- intrusiveness of the *!&' typemarks.  The "@TYPEMARK@" tags need to
-- be changed to poundsigns after this is run through cpp.  We
-- couldn't just use poundsigns here, because the new ANSI standard
-- for cpp makes embedded poundsigns significant in macro definitions.

#define ZERO (predefined!integer@TYPEMARK@0)
#define ONE (predefined!integer@TYPEMARK@1)
#define TRUE (predefined!boolean@TYPEMARK@'true')
#define FALSE (predefined!boolean@TYPEMARK@'false')
#define PRESENT (predefined!option@TYPEMARK@'present')
#define ABSENT (predefined!option@TYPEMARK@'absent')
#define NEG1 (predefined!integer@TYPEMARK@(-1))
#define I(x) (predefined!integer@TYPEMARK@(x))
#define B(x) (predefined!boolean@TYPEMARK@(x))
#define C(x) (predefined!char@TYPEMARK@(x))
#define S(x) (predefined!charstring@TYPEMARK@(x))
#define PROCESS(x) (create of predefined!program@TYPEMARK@(x))
#define PROCEDURE(x) (procedure of predefined!program@TYPEMARK@(x))

#endif
#define typemark_included
