2 // Compiler implementation of the D programming language
3 // Copyright (c) 1999-2006 by Digital Mars
5 // written by Walter Bright
6 // http://www.digitalmars.com
7 // License for redistribution is by either the Artistic License
8 // in artistic.txt, or the GNU General Public License in gnu.txt.
9 // See the included readme.txt for details.
24 Macro
*next
; // next in list
26 unsigned char *name
; // macro name
27 size_t namelen
; // length of macro name
29 unsigned char *text
; // macro replacement text
30 size_t textlen
; // length of replacement text
32 int inuse
; // macro is in use (don't expand)
34 Macro(unsigned char *name
, size_t namelen
, unsigned char *text
, size_t textlen
);
35 Macro
*search(unsigned char *name
, size_t namelen
);
38 static Macro
*define(Macro
**ptable
, unsigned char *name
, size_t namelen
, unsigned char *text
, size_t textlen
);
40 void expand(OutBuffer
*buf
, unsigned start
, unsigned *pend
,
41 unsigned char *arg
, unsigned arglen
);