diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dmd2/macro.h	Tue Nov 11 01:38:48 2008 +0100
@@ -0,0 +1,44 @@
+
+// Compiler implementation of the D programming language
+// Copyright (c) 1999-2006 by Digital Mars
+// All Rights Reserved
+// written by Walter Bright
+// http://www.digitalmars.com
+// License for redistribution is by either the Artistic License
+// in artistic.txt, or the GNU General Public License in gnu.txt.
+// See the included readme.txt for details.
+
+#ifndef DMD_MACRO_H
+#define DMD_MACRO_H 1
+
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
+#include <ctype.h>
+
+#include "root.h"
+
+
+class Macro
+{
+    Macro *next;		// next in list
+
+    unsigned char *name;	// macro name
+    size_t namelen;		// length of macro name
+
+    unsigned char *text;	// macro replacement text
+    size_t textlen;		// length of replacement text
+
+    int inuse;			// macro is in use (don't expand)
+
+    Macro(unsigned char *name, size_t namelen, unsigned char *text, size_t textlen);
+    Macro *search(unsigned char *name, size_t namelen);
+
+  public:
+    static Macro *define(Macro **ptable, unsigned char *name, size_t namelen, unsigned char *text, size_t textlen);
+
+    void expand(OutBuffer *buf, unsigned start, unsigned *pend,
+	unsigned char *arg, unsigned arglen);
+};
+
+#endif