00001 00002 /****************************************************************************** 00003 * MODULE : cpp_syntax.hpp 00004 * DESCRIPTION: C++ pretty printer 00005 * COPYRIGHT : (C) 2000 Joris van der Hoeven, 2007 Gregoire Lecerf 00006 ******************************************************************************* 00007 * This software falls under the GNU general public license and comes WITHOUT 00008 * ANY WARRANTY WHATSOEVER. See the file $TEXMACS_PATH/LICENSE for more details. 00009 * If you don't have this file, write to the Free Software Foundation, Inc., 00010 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00011 ******************************************************************************/ 00012 00013 #ifndef __CPP_SYNTAX_HPP 00014 #define __CPP_SYNTAX_HPP 00015 #include <basix/string.hpp> 00016 00018 00019 namespace mmx { 00020 00021 extern generic CPP_ACCESS; 00022 extern generic CPP_ALIAS; 00023 extern generic CPP_AND; 00024 extern generic CPP_APPLY; 00025 extern generic CPP_ARROW; 00026 extern generic CPP_ASSIGN; 00027 extern generic CPP_BEGIN; 00028 extern generic CPP_BITWISE_AND; 00029 extern generic CPP_BITWISE_OR; 00030 extern generic CPP_BITWISE_XOR; 00031 extern generic CPP_BOOL; 00032 extern generic CPP_BRACKETS; 00033 extern generic CPP_BREAK; 00034 extern generic CPP_CAST; 00035 extern generic CPP_CATCH; 00036 extern generic CPP_CLASS; 00037 extern generic CPP_COMPLEMENT; 00038 extern generic CPP_CONST; 00039 extern generic CPP_CONSTRUCT; 00040 extern generic CPP_CONSTRUCTOR; 00041 extern generic CPP_CONTINUE; 00042 extern generic CPP_DELETE; 00043 extern generic CPP_DESTRUCTOR; 00044 extern generic CPP_DIV; 00045 extern generic CPP_DO; 00046 extern generic CPP_DOT; 00047 extern generic CPP_ELSE; 00048 extern generic CPP_EQUAL; 00049 extern generic CPP_EXIT; 00050 extern generic CPP_EXTERN; 00051 extern generic CPP_FOR; 00052 extern generic CPP_GTR; 00053 extern generic CPP_GTREQ; 00054 extern generic CPP_GTRGTR; 00055 extern generic CPP_IF; 00056 extern generic CPP_INHERIT; 00057 extern generic CPP_INITIALIZE; 00058 extern generic CPP_INLINE; 00059 extern generic CPP_INT; 00060 extern generic CPP_LESS; 00061 extern generic CPP_LESSEQ; 00062 extern generic CPP_LESSLESS; 00063 extern generic CPP_MINUS; 00064 extern generic CPP_MINUS_ASSIGN; 00065 extern generic CPP_MOD; 00066 extern generic CPP_MOD_ASSIGN; 00067 extern generic CPP_NAMESPACE; 00068 extern generic CPP_NEW; 00069 extern generic CPP_NOT; 00070 extern generic CPP_OR; 00071 extern generic CPP_OSTREAM; 00072 extern generic CPP_OVER; 00073 extern generic CPP_OVER_ASSIGN; 00074 extern generic CPP_PLUS; 00075 extern generic CPP_PLUS_ASSIGN; 00076 extern generic CPP_POINTER; 00077 extern generic CPP_POSTDEC; 00078 extern generic CPP_POSTINC; 00079 extern generic CPP_PREDEC; 00080 extern generic CPP_PREINC; 00081 extern generic CPP_PUBLIC; 00082 extern generic CPP_RETURN; 00083 extern generic CPP_SCOPE; 00084 extern generic CPP_SPECIALIZE; 00085 extern generic CPP_STATIC; 00086 extern generic CPP_STRING; 00087 extern generic CPP_STRUCT; 00088 extern generic CPP_SWITCH; 00089 extern generic CPP_TEMPLATE; 00090 extern generic CPP_TIMES; 00091 extern generic CPP_TIMES_ASSIGN; 00092 extern generic CPP_THROW; 00093 extern generic CPP_TRY; 00094 extern generic CPP_TYPE; 00095 extern generic CPP_TYPEDEF; 00096 extern generic CPP_UNALIAS; 00097 extern generic CPP_UNEQUAL; 00098 extern generic CPP_UNFUNCTION; 00099 extern generic CPP_UNPOINTER; 00100 extern generic CPP_USING; 00101 extern generic CPP_VERBATIM; 00102 extern generic CPP_VIRTUAL; 00103 extern generic CPP_VOID; 00104 extern generic CPP_WHILE; 00105 extern generic CPP_XOR; 00106 00107 string as_cpp (const generic& g); 00108 string flatten_as_cpp (const generic& g); 00109 string cpp_identifier (const string& s); 00110 00111 } // namespace mmx 00112 #endif // __CPP_SYNTAX_HPP