comparison dmd2/macro.h @ 758:f04dde6e882c

Added initial D2 support, D2 frontend and changes to codegen to make things compile.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Tue, 11 Nov 2008 01:38:48 +0100
parents
children
comparison
equal deleted inserted replaced
757:2c730d530c98 758:f04dde6e882c
1
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.
10
11 #ifndef DMD_MACRO_H
12 #define DMD_MACRO_H 1
13
14 #include <stdio.h>
15 #include <string.h>
16 #include <time.h>
17 #include <ctype.h>
18
19 #include "root.h"
20
21
22 class Macro
23 {
24 Macro *next; // next in list
25
26 unsigned char *name; // macro name
27 size_t namelen; // length of macro name
28
29 unsigned char *text; // macro replacement text
30 size_t textlen; // length of replacement text
31
32 int inuse; // macro is in use (don't expand)
33
34 Macro(unsigned char *name, size_t namelen, unsigned char *text, size_t textlen);
35 Macro *search(unsigned char *name, size_t namelen);
36
37 public:
38 static Macro *define(Macro **ptable, unsigned char *name, size_t namelen, unsigned char *text, size_t textlen);
39
40 void expand(OutBuffer *buf, unsigned start, unsigned *pend,
41 unsigned char *arg, unsigned arglen);
42 };
43
44 #endif