00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00039 #ifndef __NUSMV_CORE_COMPILE_TYPE_CHECKING_CHECKERS_CHECKER_PSL_PRIVATE_H__
00040 #define __NUSMV_CORE_COMPILE_TYPE_CHECKING_CHECKERS_CHECKER_PSL_PRIVATE_H__
00041
00042
00043 #include "nusmv/core/compile/type_checking/checkers/CheckerPsl.h"
00044
00045 #include "nusmv/core/compile/type_checking/checkers/CheckerBase.h"
00046 #include "nusmv/core/compile/type_checking/checkers/CheckerBase_private.h"
00047
00048 #include "nusmv/core/utils/utils.h"
00049
00050
00051
00061 typedef struct CheckerPsl_TAG
00062 {
00063
00064 INHERITS_FROM(CheckerBase);
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 } CheckerPsl;
00075
00076
00077
00086 #undef _THROW
00087 #define _THROW(exp, ctx) \
00088 (NodeWalker_can_handle(NODE_WALKER(self), exp) ? \
00089 CHECKER_BASE(self)->check_expr(self, exp, ctx) : \
00090 type_checker_check_expression(TYPE_CHECKER(NODE_WALKER(self)->master), \
00091 PslNode_convert_to_node_ptr(exp), \
00092 PslNode_convert_to_node_ptr(ctx)))
00093
00094
00103 #define _SET_TYPE(expr, type) \
00104 tc_set_expression_type(TYPE_CHECKER(NODE_WALKER(self)->master), \
00105 PslNode_convert_to_node_ptr(expr), type)
00106
00107
00116 #define _GET_TYPE(expr) \
00117 tc_lookup_expr_type(TYPE_CHECKER(NODE_WALKER(self)->master), \
00118 PslNode_convert_to_node_ptr(expr))
00119
00120
00129 #define _VIOLATION(viol_id, expr) \
00130 checker_base_manage_violation(CHECKER_BASE(self), viol_id, \
00131 PslNode_convert_to_node_ptr(expr))
00132
00133
00134
00143 #define _PRINT_ERROR_MSG(exp, is_error) \
00144 type_checker_print_error_message(TYPE_CHECKER(NODE_WALKER(self)->master), \
00145 PslNode_convert_to_node_ptr(exp), \
00146 is_error)
00147
00148
00149
00150
00151
00152
00153
00162 void checker_psl_init(CheckerPsl_ptr self, const NuSMVEnv_ptr env);
00163
00172 void checker_psl_deinit(CheckerPsl_ptr self);
00173
00174
00175
00176 #endif