comparison dmd/macro.h @ 1:c53b6e3fe49a trunk

[svn r5] Initial commit. Most things are very rough.
author lindquist
date Sat, 01 Sep 2007 21:43:27 +0200
parents
children
comparison
equal deleted inserted replaced
0:a9e71648e74d 1:c53b6e3fe49a
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