00001 /* 00002 * File: cw_re_node_builder.h 00003 * $Id: cw_re_node_builder.h,v 1.2 2002/04/29 17:55:41 alec Exp $ 00004 * 00005 * Author: Alec Panoviciu (alecu@email.com) 00006 * 00007 * Comments: this is the "C" layer between the YACC generated code and the 00008 * IReNodeBuilder class. 00009 * 00010 * Revision history: 00011 * 00012 * $Log: cw_re_node_builder.h,v $ 00013 * Revision 1.2 2002/04/29 17:55:41 alec 00014 * regexps almost done 00015 * 00016 * Revision 1.1 2002/04/29 09:40:01 alec 00017 * *** empty log message *** 00018 * 00019 */ 00020 00021 00022 /* 00023 Copyright (C) 2002 Alexandru Panoviciu (alecu@email.com) 00024 00025 This program is free software; you can redistribute it and/or modify 00026 it under the terms of the GNU General Public License as published by 00027 the Free Software Foundation; either version 2 of the License, or 00028 (at your option) any later version. 00029 00030 This program is distributed in the hope that it will be useful, 00031 but WITHOUT ANY WARRANTY; without even the implied warranty of 00032 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00033 GNU General Public License for more details. 00034 00035 You should have received a copy of the GNU General Public License 00036 along with this program; if not, write to the Free Software 00037 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00038 00039 */ 00040 00041 #ifndef __CW_RE_NODE_BUILDER_H__ 00042 #define __CW_RE_NODE_BUILDER_H__ 00043 00044 00045 #if defined __cplusplus 00046 00047 class IReNodeBuilder; 00048 00056 extern IReNodeBuilder *cw_reNodeBuilder; 00057 00058 #define CLINK extern "C" 00059 00060 #else 00061 00062 #define CLINK 00063 00064 #endif 00065 00066 #include "cw_misc.h" 00067 00078 CLINK void* IReNodeBuilder_createOrNode (void *pre, void *post); 00079 00080 CLINK void* IReNodeBuilder_createCatNode (void *pre, void *post); 00081 00082 CLINK void* IReNodeBuilder_createPlusNode (void *in); 00083 00084 CLINK void* IReNodeBuilder_createOptionalNode (void *in); 00085 00086 CLINK void* IReNodeBuilder_createStarNode (void *in); 00087 00088 CLINK void* IReNodeBuilder_createStringLiteralNode (char *s); 00089 00090 CLINK void* IReNodeBuilder_createCharListNode (int negated, CwCharClassList chars); 00091 00092 /* @} */ 00093 00094 #endif /* #ifndef __CW_RE_NODE_BUILDER_H__ */