Mercurial > projects > ldc
view dmd/macro.h @ 797:340acf1535d0
Removed KDevelop3 project files, CMake can generate them just fine!
Fixed function literals in static initializers.
Changed alignment of delegates from 2*PTRSIZE to just PTRSIZE.
Changed errors to go to stderr instead of stdout.
Fairly major rewriting of struct/union/class handling, STILL A BIT BUGGY !!!
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Sat, 29 Nov 2008 21:25:43 +0100 |
parents | c53b6e3fe49a |
children |
line wrap: on
line source
// 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