pp-macro.h
62 lines
| 1.2 KiB
| text/x-c
|
CLexer
florianlink
|
r10 | /**************************************************************************** | ||
** | ||||
** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. | ||||
** Copyright 2005 Roberto Raggi <roberto@kdevelop.org> | ||||
** | ||||
** This file is part of $PRODUCT$. | ||||
** | ||||
** $CPP_LICENSE$ | ||||
** | ||||
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | ||||
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | ||||
** | ||||
****************************************************************************/ | ||||
#ifndef PP_MACRO_H | ||||
#define PP_MACRO_H | ||||
namespace rpp { | ||||
struct pp_macro | ||||
{ | ||||
#if defined (PP_WITH_MACRO_POSITION) | ||||
pp_fast_string const *file; | ||||
#endif | ||||
pp_fast_string const *name; | ||||
pp_fast_string const *definition; | ||||
std::vector<pp_fast_string const *> formals; | ||||
union | ||||
{ | ||||
int unsigned state; | ||||
struct | ||||
{ | ||||
int unsigned hidden: 1; | ||||
int unsigned function_like: 1; | ||||
int unsigned variadics: 1; | ||||
}; | ||||
}; | ||||
int lines; | ||||
pp_macro *next; | ||||
std::size_t hash_code; | ||||
inline pp_macro(): | ||||
#if defined (PP_WITH_MACRO_POSITION) | ||||
file (0), | ||||
#endif | ||||
name (0), | ||||
definition (0), | ||||
state (0), | ||||
lines (0), | ||||
next (0), | ||||
hash_code (0) | ||||
{} | ||||
}; | ||||
} // namespace rpp | ||||
#endif // PP_MACRO_H | ||||
// kate: space-indent on; indent-width 2; replace-tabs on; | ||||