00001 /* 00002 * finflect - Algorithms and tools for inflecting Finnish nouns 00003 * Copyright (C) 2004, 2005 The FinFlect Team 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Lesser General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2.1 of the License, or (at your option) any later version. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public 00016 * License along with this library; if not, write to the Free Software 00017 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 * 00019 * 00020 * For the complete legal text of the GNU Lesser General Public License, 00021 * see the file LICENSE. For a complete list of authors and copyright 00022 * holders, see the file AUTHORS. 00023 */ 00024 00025 /** 00026 * @file ffregex.h Declares regex wrappers for the ffstring data type. 00027 * They are implemented in ffregex.c. 00028 */ 00029 00030 #ifndef __FFREGEX_H 00031 #define __FFREGEX_H 00032 00033 #ifdef __cplusplus 00034 extern "C" { 00035 #endif 00036 00037 #include "fftypes.h" 00038 #include "ffstring.h" 00039 00040 /** 00041 * Matches the given haystack against the given needle regex. 00042 * @return 1 on match; 0 on no match. 00043 */ 00044 ffbool ffregex_match(const ffchar* needle, const ffstring* haystack); 00045 00046 /** 00047 * Case-insensitively matches the given haystack against the given needle regex. 00048 * @return 1 on match; 0 on no match. 00049 */ 00050 ffbool ffregex_match_ci(const ffchar* needle, const ffstring* haystack); 00051 00052 /** 00053 * Does regex substitution. 00054 * @return 1 if the new string differs from the haystack (and haystack has thus been changed); 0 otherwise. 00055 */ 00056 ffbool ffregex_replace(const ffchar* needle, const ffchar* replace, ffstring* haystack); 00057 00058 /** 00059 * Does regex substitution case-insensitively. 00060 * @return 1 if the new string differs from the haystack (and haystack has thus been changed); 0 otherwise. 00061 */ 00062 ffbool ffregex_replace_ci(const ffchar* needle, const ffchar* replace, ffstring* haystack); 00063 00064 #ifdef __cplusplus 00065 } 00066 #endif 00067 00068 #endif