P99
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
p99_paste.h
Go to the documentation of this file.
00001 /* This may look like nonsense, but it really is -*- mode: C -*-             */
00002 /*                                                                           */
00003 /* Except of parts copied from previous work and as explicitly stated below, */
00004 /* the author and copyright holder for this work is                          */
00005 /* (C) copyright  2010-2011 Jens Gustedt, INRIA, France                      */
00006 /*                                                                           */
00007 /* This file is free software; it is part of the P99 project.                */
00008 /* You can redistribute it and/or modify it under the terms of the QPL as    */
00009 /* given in the file LICENSE. It is distributed without any warranty;        */
00010 /* without even the implied warranty of merchantability or fitness for a     */
00011 /* particular purpose.                                                       */
00012 /*                                                                           */
00013 #ifndef     P99_PASTE_H_
00014 # define    P99_PASTE_H_
00015 
00022 #include "p99_generated.h"
00023 
00029 /* This was inspired by BOOST's PP_CAT macro. Using such a thing avoids
00030    to define multiple levels of expansion for each macro. */
00031 #define P99_PASTE0()
00032 #define P99_PASTE1(_1) _1
00033 
00052 #define P99_CAT2(_1, _2) _1 ## _2
00053 
00073 #define P99_PASTE2(_1, _2) P99_CAT2(_1, _2)
00074 #define P99_PASTE3(_1,  _2, _3)                                \
00075   P99_PASTE2(P99_PASTE2(_1, _2), _3)
00076 #define P99_PASTE4(_1,  _2, _3, _4)                            \
00077   P99_PASTE2(P99_PASTE3(_1, _2, _3), _4)
00078 #define P99_PASTE5(_1,  _2, _3, _4, _5)                        \
00079   P99_PASTE2(P99_PASTE4(_1, _2, _3, _4), _5)
00080 #define P99_PASTE6(_1,  _2, _3, _4, _5, _6)                    \
00081   P99_PASTE2(P99_PASTE5(_1, _2, _3, _4, _5), _6)
00082 
00083 #ifndef P00_DOCUMENT_MULTIPLE_ARGUMENT
00084 #define P00_DOCUMENT_TYPE_ARGUMENT(MACRO, N) 
00085 #define P00_DOCUMENT_TYPE_IDENTIFIER_ARGUMENT(MACRO, N) 
00086 #define P00_DOCUMENT_MULTIPLE_ARGUMENT(MACRO, N) 
00087 #define P00_DOCUMENT_WARN_VLA_ARGUMENT(MACRO, N) 
00088 #define P00_DOCUMENT_IDENTIFIER_ARGUMENT(MACRO, N) 
00089 #define P00_DOCUMENT_PERMITTED_ARGUMENT(MACRO, N) 
00090 #define P00_DOCUMENT_STATEMENT_ARGUMENT(MACRO, N)  
00091 #define P00_DOCUMENT_DECLARATION_ARGUMENT(MACRO, N)
00092 #define P00_DOCUMENT_MACRO_ARGUMENT(MACRO, N) 
00093 #define P00_DOCUMENT_NUMBER_ARGUMENT(MACRO, N) 
00094 #define P00_DOCUMENT_DESIGNATOR_ARGUMENT(MACRO, N) 
00095 #endif
00096 
00102 #endif      /* !P99_PASTE_H_ */
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines