123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*
- * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
- * See the copyright notice in the ACK home directory, in the file "Copyright".
- */
- /* $Id$ */
- /* PREPROCESSOR: DEFINITION OF MACRO DESCRIPTOR */
- #include "nopp.h"
- #ifndef NOPP
- /* The flags of the mc_flag field of the macro structure. Note that
- these flags can be set simultaneously.
- */
- #define NOFLAG 0 /* no special flags */
- #define FUNC 01 /* function attached */
- #define NOREPLACE 02 /* don't replace */
- #define FORMALP 0200 /* mask for creating macro formal parameter */
- /* The macro descriptor is very simple, except the fact that the
- mc_text, which points to the replacement text, contains the
- non-ascii characters \201, \202, etc, indicating the position of a
- formal parameter in this text.
- */
- struct macro {
- struct macro *next;
- char * mc_text; /* the replacement text */
- int mc_nps; /* number of formal parameters */
- int mc_length; /* length of replacement text */
- int mc_count; /* # of "concurrent" invocations*/
- char mc_flag; /* marking this macro */
- };
- /* ALLOCDEF "macro" 20 */
- struct mlist {
- struct mlist *next;
- struct macro *m_mac;
- char *m_repl;
- int m_level;
- };
- /* ALLOCDEF "mlist" 20 */
- /* `token' numbers of keywords of command-line processor
- */
- #define K_UNKNOWN 0
- #define K_DEFINE 1
- #define K_ELIF 2
- #define K_ELSE 3
- #define K_ENDIF 4
- #define K_IF 5
- #define K_IFDEF 6
- #define K_IFNDEF 7
- #define K_INCLUDE 8
- #define K_LINE 9
- #define K_UNDEF 10
- #define K_PRAGMA 11
- #define K_FILE 100 /* for dependency generator */
- #endif /* NOPP */
|