<commit_before>/** @file
    @brief Header defining basic macros, etc. required for libfunctionality.

    Header is "C-safe"

    @date 2014

    @author
    <NAME>
    <<EMAIL>>
    <http://sensics.com>

*/

/*
Copyright 2014 Sensics, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

#ifndef INCLUDED_Common_h_GUID_E153463F_0E07_43BE_DDDA_C141EA9B186D
#define INCLUDED_Common_h_GUID_E153463F_0E07_43BE_DDDA_C141EA9B186D

/* Internal Includes */
/* - none */

/* Library/third-party includes */
/* - none */

/* Standard includes */
/* - none */

/** @brief Utility macro used in concatenation.
 *  @internal
 */
#define LIBFUNC_DETAIL_CAT_IMPL(X) X

/** @brief Utility macro for token pasting aka concatenation
 *  @internal
 */
#define LIBFUNC_DETAIL_CAT(A, B) LIBFUNC_DETAIL_CAT_IMPL(A##B)

/** @brief Macro to generate the unique entry point name for each module.
 *  @internal
 */
#define LIBFUNC_DETAIL_EP_NAME(MODNAME) LIBFUNC_DETAIL_CAT(libfunc_ep_, MODNAME)

/** @brief The canonical name of the single opaque pointer argument to the entry
 * point.
 *  @internal
 */
#define LIBFUNC_DETAIL_PARAM_NAME opaque

/** @brief Macro to generate a function declaration of the entry point type.
 *  @internal
 */
#define LIBFUNC_DETAIL_EP_FUNCTYPE(FUNCNAME)                                   \
    char FUNCNAME(void *LIBFUNC_DETAIL_PARAM_NAME)

/** @brief The name of the common entry point used in dynamic loading mode.
 *  @internal
 */
#define LIBFUNC_DETAIL_EP_COMMON_NAME libfunc_entry_point

/** @brief The declaration of the common entry point used in dynamic loading
 * mode.
 *  @internal<commit_msg>Add string form of entry point name to Common.h<commit_after>/** @file
    @brief Header defining basic macros, etc. required for libfunctionality.

    Header is "C-safe"

    @date 2014

    @author
    <NAME>
    <<EMAIL>>
    <http://sensics.com>

*/

/*
Copyright 2014 Sensics, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

#ifndef INCLUDED_Common_h_GUID_E153463F_0E07_43BE_DDDA_C141EA9B186D
#define INCLUDED_Common_h_GUID_E153463F_0E07_43BE_DDDA_C141EA9B186D

/* Internal Includes */
/* - none */

/* Library/third-party includes */
/* - none */

/* Standard includes */
/* - none */

/** @brief Utility macro used in concatenation.
 *  @internal
 */
#define LIBFUNC_DETAIL_CAT_IMPL(X) X

/** @brief Utility macro for token pasting aka concatenation
 *  @internal
 */
#define LIBFUNC_DETAIL_CAT(A, B) LIBFUNC_DETAIL_CAT_IMPL(A##B)

/** @brief Macro to generate the unique entry point name for each module.
 *  @internal
 */
#define LIBFUNC_DETAIL_EP_NAME(MODNAME) LIBFUNC_DETAIL_CAT(libfunc_ep_, MODNAME)

/** @brief The canonical name of the single opaque pointer argument to the entry
 * point.
 *  @internal
 */
#define LIBFUNC_DETAIL_PARAM_NAME opaque

/** @brief Macro to generate a function declaration of the entry point type.
 *  @internal
 */
#define LIBFUNC_DETAIL_EP_FUNCTYPE(FUNCNAME)                                   \
    char FUNCNAME(void *LIBFUNC_DETAIL_PARAM_NAME)

/** @brief The name of the common entry point used in dynamic loading mode.
 *  @internal
 */
#define LIBFUNC_DETAIL_EP_COMMON_NAME libfunc_entry_point

/** @brief The string name of the common entry point.
 *  @todo make this use c preproc stringize while dodging portability problems.
 *  @internal
 */
#define LIBFUNC_DETAIL_EP_COMMON_NAME_STRING "libfunc_entry_point"

/** @brief The declaration of the common entry point used in dynamic loading
 * mode.
 *  @internal
{'fraction_non_alphanumeric': 0.08408273381294964, 'fraction_numerical': 0.02158273381294964, 'mean_word_length': 3.8676148796498904, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '900711', 'n_tokens_mistral': 1486, 'n_tokens_neox': 1353, 'n_words': 475}