/*=============================================================================
 Copyright 2020 Siemens Digital Industries Software
 ==================================================
 Copyright 2015
 Siemens Product Lifecycle Management Software Inc.
 All Rights Reserved.
 ==================================================
 Copyright 2020 Siemens Digital Industries Software
 ===============================================================================*/


/** 
    @file 

    This file contains the published identifiers of error codes that can be
    generated by this module. Obtaining and using the numeric values of these
    manifest constants is not supported. We reserve the right to change the
    actual values as necessary.

*/


#ifndef CLIPS_ERRORS_H
#define CLIPS_ERRORS_H

#include <common/emh_const.h>

/**
    @defgroup CLIPS_ERRORS CLIPS Errors
    @ingroup CLIPS
    @{
*/

#define CLIPS_ERROR_BASE                       EMH_CLIPS_error_base

/**
The ascii version of the rules file provided does not exist.
*/
#define CLIPS_rulefile_not_found_error         (CLIPS_ERROR_BASE + 1)

/**
The rules engine could not be initialized.
*/
#define CLIPS_rules_engine_not_started_error   (CLIPS_ERROR_BASE + 2)

/**
The current rules engine environment could not be destroyed before reinitializing
*/
#define CLIPS_rules_engine_not_restarted_error (CLIPS_ERROR_BASE + 3)

/**
The binary version of the rules file was not writable.
*/
#define CLIPS_binary_rules_file_not_writable_error (CLIPS_ERROR_BASE + 4)

/**
The rules file could not be loaded for rules engine initialization.
*/
#define CLIPS_could_not_open_rules_file_error  (CLIPS_ERROR_BASE + 5)

/**
The rules file being loaded for rules engine initialization contains syntax error(s).
*/
#define CLIPS_rules_file_syntax_error          (CLIPS_ERROR_BASE + 6)

/**
The "CLIPS Rules" dataset (containing the rules file for the rules engine) cannot be found in the database.
*/
#define CLIPS_dataset_missing_error            (CLIPS_ERROR_BASE + 7)

/**
The specified function does not exist.
*/
#define CLIPS_function_not_exist_error         (CLIPS_ERROR_BASE + 8)

/**
The Divide by zero error.
*/
#define CLIPS_divide_by_zero_error             (CLIPS_ERROR_BASE + 9)

/**
The NULL argument error.
*/
#define CLIPS_null_args_error                  (CLIPS_ERROR_BASE + 10)

/**
The CLIPS function call error.
*/
#define CLIPS_function_call_error              (CLIPS_ERROR_BASE + 11)

/**
The CLIPS unexpected output error.
*/
#define CLIPS_unexpected_output_error          (CLIPS_ERROR_BASE + 12)

/**
The CLIPS invalid expression error.
*/
#define CLIPS_invalid_expression_error         (CLIPS_ERROR_BASE + 13)

/** @} */

#endif
