00001 //================================================================================================== 00002 // Copyright (C) 2010 Brian Tietz sdbtietz at yahoo dot com 00003 // 00004 // This program is free software; you can redistribute it and/or modify it under the terms of the 00005 // GNU General Public License as published by the Free Software Foundation, version 2.0 of the 00006 // License. 00007 // 00008 // This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 00009 // even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00010 // General Public License for more details. 00011 // 00012 // You should have received a copy of the GNU General Public License along with this program; if 00013 // not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 00014 // 02110-1301, USA. 00015 // 00016 // For commercial software, the copyright holder (Brian Tietz, email sdbtietz at yahoo dot com) 00017 // reserves the right and is willing to waive the proprietary source code disclosure aspects of that 00018 // license as applied to the UT library in exchange for either substantial contributions to the 00019 // development of the UT library or other forms of compensation. Any such waiver must be 00020 // established in writing between the copyright holder and the commercial entity obtaining such a 00021 // waiver. 00022 //================================================================================================== 00023 00024 00025 #ifndef _UT_REG_EXP_H_ 00026 #define _UT_REG_EXP_H_ 00027 00028 00029 //================================================================================================== 00030 //=== Project headers 00031 //================================================================================================== 00032 #include "UT.h" 00033 00034 00035 //================================================================================================== 00036 //=== Regular expression function prototypes 00037 //================================================================================================== 00038 00039 //-------------------------------------------------------------------------------------------------- 00040 // evaluate_reg_exp(...) 00041 //-------------------------------------------------------------------------------------------------- 00177 extern UT_EXPORT Status_t evaluate_reg_exp( const utf8* expression, 00178 const utf8* match, 00179 bool force_start_match, 00180 out String_t* pre, 00181 out String_t** substring_array, 00182 int substring_count, 00183 bool force_end_match, 00184 out String_t* post ); 00185 00186 00188 extern UT_EXPORT Status_t evaluate_reg_exp( const utf8* expression, 00189 const utf8* match, 00190 bool force_start_match = true, 00191 out String_t* pre = NULL, 00192 bool force_end_match = true, 00193 out String_t* post = NULL, 00194 ... ); 00195 00198 extern UT_EXPORT Status_t evaluate_reg_exp( stringliteral* expression, 00199 const utf8* match, 00200 bool force_start_match = true, 00201 out String_t* pre = NULL, 00202 bool force_end_match = true, 00203 out String_t* post = NULL, 00204 ... ); 00205 00206 00207 //-------------------------------------------------------------------------------------------------- 00208 // validate_reg_exp(...) 00209 //-------------------------------------------------------------------------------------------------- 00214 extern UT_EXPORT Status_t validate_reg_exp( const utf8* expression, 00215 out int* expression_fail_point_chars, 00216 const utf8* match, 00217 out int* match_fail_pos_chars, 00218 bool force_start_match = true, 00219 out String_t* pre = NULL, 00220 bool force_end_match = true, 00221 out String_t* post = NULL, 00222 out String_t** substring_array = NULL, 00223 int substring_count = 0 ); 00224 00225 00226 #endif // _UT_REG_EXP_H_ 00227