1 /* 2 * Copyright (C) 2018 Alexander Borisov 3 * 4 * Author: Alexander Borisov <borisov@lexbor.com> 5 */ 6 7 #ifndef LEXBOR_UTILS_H 8 #define LEXBOR_UTILS_H 9 10 #ifdef __cplusplus 11 extern "C" { 12 #endif 13 14 #include "lexbor/core/base.h" 15 16 17 #define lexbor_utils_whitespace(onechar, action, logic) \ 18 (onechar action ' ' logic \ 19 onechar action '\t' logic \ 20 onechar action '\n' logic \ 21 onechar action '\f' logic \ 22 onechar action '\r') 23 24 25 LXB_API size_t 26 lexbor_utils_power(size_t t, size_t k); 27 28 LXB_API size_t 29 lexbor_utils_hash_hash(const lxb_char_t *key, size_t key_size); 30 31 32 #ifdef __cplusplus 33 } /* extern "C" */ 34 #endif 35 36 #endif /* LEXBOR_UTILS_H */ 37