+/* pass2.h */
+
+/*
+ * $Header: /f/osi/pepsy/RCS/pass2.h,v 7.7 91/02/22 09:49:23 mrose Interim $
+ *
+ *
+ * $Log: pass2.h,v $
+ * Revision 7.7 91/02/22 09:49:23 mrose
+ * Interim 6.8
+ *
+ * Revision 7.6 90/12/23 17:24:56 mrose
+ * patches
+ *
+ * Revision 7.5 90/11/11 10:54:03 mrose
+ * update
+ *
+ * Revision 7.4 90/11/04 19:19:01 mrose
+ * update
+ *
+ * Revision 7.3 90/07/27 08:49:28 mrose
+ * update
+ *
+ * Revision 7.2 90/07/09 14:52:47 mrose
+ * sync
+ *
+ * Revision 7.1 90/07/01 20:01:13 mrose
+ * update
+ *
+ * Revision 7.0 90/07/01 19:54:43 mrose
+ * *** empty log message ***
+ *
+ */
+
+/*
+ * NOTICE
+ *
+ * Acquisition, use, and distribution of this module and related
+ * materials are subject to the restrictions of a license agreement.
+ * Consult the Preface in the User's Manual for the full terms of
+ * this agreement.
+ *
+ */
+
+
+/* Change the version number only important features change - so people can
+ * #ifdef on the version number. Also used to provide backwards compatible
+ * macro definitions for posy/pepy.
+ */
+#define PEPSY_VERSION_NUMBER 2
+#define NBPC 8 /* Number of Bits per character - machine dependant */
+#define NBPI sizeof (int)*NBPC /* Number of bits per integer */
+
+#define PSAP_DOT_H "\"psap.h\""
+#define I_PSAP_DOT_H "<isode/psap.h>"
+#define UNIV_TYPES_DOT_H "\"UNIV-types.h\""
+#define I_UNIV_TYPES_DOT_H "<isode/pepsy/UNIV-types.h>"
+#define HFILE1 "_defs.h"
+#define HFILE2 "_pre_defs.h"
+#define ACTIONDEFS "_action.h"
+
+#define GENTYPES "-types.h"
+#define INCFILE1 "pepsy.h"
+/* #define INCFILE2 "pepdefs.h" - not used any more */
+
+#define ACT1 "_act1"
+#define ACT2 "_act2"
+#define ACT3 "_act3"
+#define ACT4 "_act4"
+#define ACT05 "_act05"
+
+#define PREFIX "_Z"
+
+#define ETABLE "et_"
+#define DTABLE "dt_"
+#define PTABLE "pt_"
+
+#define ENCFNCNAME "enc_f"
+#define DECFNCNAME "dec_f"
+#define PRNTFNCNAME "prnt_f"
+
+#define ENC_FNCNAME "enc_f_"
+#define DEC_FNCNAME "dec_f_"
+#define PRNT_FNCNAME "prnt_f_"
+
+#define ENCFILENAME "_enc.c"
+#define DECFILENAME "_dec.c"
+#define PRNTFILENAME "_prnt.c"
+
+#define TBLNAME "_tables.c"
+#define MODTYP_SUFFIX "_mod"
+
+#define MAXPTRS 200 /* maximum number of pointers in pointer table */
+
+#define PTR_TABNAME "ptrtab"
+extern int p_debug;
+
+#define DEB 1
+
+#ifdef DEB
+#define Printf(x, y) if (x <= p_debug) printf y
+#else
+#define Printf(x, y)
+#endif
+
+/*
+ * info for handling a Universal type
+ */
+struct univ_typ {
+ char *univ_name; /* Name of this Universal type */
+ char *univ_data; /* type to generate for it */
+ char *univ_tab; /* type of table entry it needs */
+ int univ_id; /* tag of the type */
+ int univ_class; /* class - probably Universal primative */
+ char *univ_mod; /* Name of its module if it has one */
+ int univ_flags; /* Information about entry */
+ int univ_type; /* Type we can use for its contents */
+#define UNF_EXTMOD 1 /* Use an external module reference */
+#define UNF_HASDATA 2 /* Has data structure - allocate data for it */
+ };
+
+extern struct univ_typ *univtyp();
+
+/* How many entries in an array */
+#define NENTRIES(x) (sizeof (x)/sizeof ((x)[0]))
+
+/* used to specify which tables a routine is to generate */
+#define G_ENC 0 /* encoding */
+#define G_DEC 1 /* decoding */
+#define G_PNT 2 /* printing */
+
+#define hflag (options[0])
+#define Hflag (options[1])
+#define h2flag (options[2])
+#define NOPTIONS 3
+extern int options[];
+
+#define STRSIZE 128 /* general buffer size */
+
+extern char *proc_name();
+
+extern char *getfield(), *getfldbit();
+extern char *class2str();
+
+extern int gen_ventry(); /* generate a Value Passing Entry */
+extern int gen_fnentry(); /* generate a function calling entry */
+/* extern Action start_action, final_action; */
+extern char *int2tstr(); /* integer to temporary string */
+
+extern char *getfield(), *getfldbit();
+extern char *class2str();
+
+extern int gen_ventry(); /* generate a Value Passing Entry */
+extern int gen_fnentry(); /* generate a function calling entry */
+/* extern Action start_action, final_action; */