Allow returning something of type void in a function that returns void
[delight/core.git] / dmd2 / macro.h
blobdcb6780066b0829a408cc0836a75474718b8afea
2 // Compiler implementation of the D programming language
3 // Copyright (c) 1999-2006 by Digital Mars
4 // All Rights Reserved
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.
11 #ifndef DMD_MACRO_H
12 #define DMD_MACRO_H 1
14 #include <stdio.h>
15 #include <string.h>
16 #include <time.h>
17 #include <ctype.h>
19 #include "root.h"
22 class Macro
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);
37 public:
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);
44 #endif