coan 4.2.4
|
00001 #ifndef HASH_INCLUDE_H 00002 #define HASH_INCLUDE_H 00003 /*************************************************************************** 00004 * Copyright (C) 2007-2011 Mike Kinghan, imk@strudl.org * 00005 * All rights reserved. * 00006 * * 00007 * Contributed originally by Mike Kinghan, imk@strudl.org * 00008 * * 00009 * Redistribution and use in source and binary forms, with or without * 00010 * modification, are permitted provided that the following conditions * 00011 * are met: * 00012 * * 00013 * Redistributions of source code must retain the above copyright * 00014 * notice, this list of conditions and the following disclaimer. * 00015 * * 00016 * Redistributions in binary form must reproduce the above copyright * 00017 * notice, this list of conditions and the following disclaimer in the * 00018 * documentation and/or other materials provided with the distribution. * 00019 * * 00020 * Neither the name of Symbian Software Ltd. nor the names of its * 00021 * contributors may be used to endorse or promote products derived from * 00022 * this software without specific prior written permission. * 00023 * * 00024 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * 00025 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * 00026 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * 00027 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * 00028 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * 00029 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * 00030 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * 00031 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * 00032 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,* 00033 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF * 00034 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * 00035 * DAMAGE. * 00036 * * 00037 **************************************************************************/ 00038 #include "symbol.h" 00039 00047 00048 00054 typedef symbol_h hash_include_h; 00055 00057 typedef symbol_const_h hash_include_const_h; 00058 00063 extern hash_include_h 00064 hash_include_new(char const *arg, size_t arglen); 00065 00069 #define hash_include_dispose symbol_dispose 00070 00074 #define hash_include_copy symbol_copy 00075 00079 #define hash_include_swap symbol_swap 00080 00084 #define hash_include_assign symbol_assign 00085 00089 #define hash_include_definition symbol_definition 00090 00094 #define hash_include_undefine symbol_undefine 00095 00100 #define hash_include_str(inc_arg) symbol_name(inc_arg) 00101 00105 #define hash_include_seen symbol_seen 00106 00110 #define hash_include_memorise symbol_memorise 00111 00115 #define hash_include_forget symbol_forget 00116 00117 00122 extern void 00123 hash_include_define(hash_include_h hi, canonical_string_const_h def); 00124 00135 extern int 00136 hash_include_compare(hash_include_const_h lhs, void const * rhs, 00137 size_t namelen); 00138 00139 00158 extern char const * 00159 hash_include_parse( char const *cp, 00160 char const **pdiagnostic, 00161 canonical_string_h *presolved_val); 00162 00172 extern bool 00173 hash_include_changed(hash_include_const_h inc_arg); 00174 00183 extern void 00184 hash_include_commit_evaluation(hash_include_h inc_arg); 00185 00193 extern bool 00194 hash_include_valid(hash_include_const_h inc_arg); 00195 00199 #endif /* EOF*/ 00200