gf-3.4: src/runtime/c/teyjus/simulator/simdispatch.c
/***************************************************************************/
/* */
/* File simdispatch.c. The instruction dispatch table used by the */
/* simulator is defined here as an array of function pointers, each of */
/* which refers to a function realizing a corresponding instruction. */
/* These functions are defined in the file ./siminstr.c. */
/***************************************************************************/
#include "../tables/instructions.h" //to be modified
#include "siminstr.h"
#include "simdispatch.h"
SDP_InstrFunctionPtr SDP_dispatchTable[INSTR_NUM_INSTRS] = {
SINSTR_put_variable_t,
SINSTR_put_variable_p,
SINSTR_put_value_t,
SINSTR_put_value_p,
SINSTR_put_unsafe_value,
SINSTR_copy_value,
SINSTR_put_m_const,
SINSTR_put_p_const,
SINSTR_put_nil,
SINSTR_put_integer,
SINSTR_put_float,
SINSTR_put_string,
SINSTR_put_index,
SINSTR_put_app,
SINSTR_put_list,
SINSTR_put_lambda,
SINSTR_set_variable_t,
SINSTR_set_variable_te,
SINSTR_set_variable_p,
SINSTR_set_value_t,
SINSTR_set_value_p,
SINSTR_globalize_pt,
SINSTR_globalize_t,
SINSTR_set_m_const,
SINSTR_set_p_const,
SINSTR_set_nil,
SINSTR_set_integer,
SINSTR_set_float,
SINSTR_set_string,
SINSTR_set_index,
SINSTR_set_void,
SINSTR_deref,
SINSTR_set_lambda,
SINSTR_get_variable_t,
SINSTR_get_variable_p,
SINSTR_init_variable_t,
SINSTR_init_variable_p,
SINSTR_get_m_constant,
SINSTR_get_p_constant,
SINSTR_get_integer,
SINSTR_get_float,
SINSTR_get_string,
SINSTR_get_nil,
SINSTR_get_m_structure,
SINSTR_get_p_structure,
SINSTR_get_list,
SINSTR_unify_variable_t,
SINSTR_unify_variable_p,
SINSTR_unify_value_t,
SINSTR_unify_value_p,
SINSTR_unify_local_value_t,
SINSTR_unify_local_value_p,
SINSTR_unify_m_constant,
SINSTR_unify_p_constant,
SINSTR_unify_integer,
SINSTR_unify_float,
SINSTR_unify_string,
SINSTR_unify_nil,
SINSTR_unify_void,
SINSTR_put_type_variable_t,
SINSTR_put_type_variable_p,
SINSTR_put_type_value_t,
SINSTR_put_type_value_p,
SINSTR_put_type_unsafe_value,
SINSTR_put_type_const,
SINSTR_put_type_structure,
SINSTR_put_type_arrow,
SINSTR_set_type_variable_t,
SINSTR_set_type_variable_p,
SINSTR_set_type_value_t,
SINSTR_set_type_value_p,
SINSTR_set_type_local_value_t,
SINSTR_set_type_local_value_p,
SINSTR_set_type_constant,
SINSTR_get_type_variable_t,
SINSTR_get_type_variable_p,
SINSTR_init_type_variable_t,
SINSTR_init_type_variable_p,
SINSTR_get_type_value_t,
SINSTR_get_type_value_p,
SINSTR_get_type_constant,
SINSTR_get_type_structure,
SINSTR_get_type_arrow,
SINSTR_unify_type_variable_t,
SINSTR_unify_type_variable_p,
SINSTR_unify_type_value_t,
SINSTR_unify_type_value_p,
SINSTR_unify_envty_value_t,
SINSTR_unify_envty_value_p,
SINSTR_unify_type_local_value_t,
SINSTR_unify_type_local_value_p,
SINSTR_unify_envty_local_value_t,
SINSTR_unify_envty_local_value_p,
SINSTR_unify_type_constant,
SINSTR_pattern_unify_t,
SINSTR_pattern_unify_p,
SINSTR_finish_unify,
SINSTR_head_normalize_t,
SINSTR_head_normalize_p,
SINSTR_incr_universe,
SINSTR_decr_universe,
SINSTR_set_univ_tag,
SINSTR_tag_exists_t,
SINSTR_tag_exists_p,
SINSTR_tag_variable,
SINSTR_push_impl_point,
SINSTR_pop_impl_point,
SINSTR_add_imports,
SINSTR_remove_imports,
SINSTR_push_import,
SINSTR_pop_imports,
SINSTR_allocate,
SINSTR_deallocate,
SINSTR_call,
SINSTR_call_name,
SINSTR_execute,
SINSTR_execute_name,
SINSTR_proceed,
SINSTR_try_me_else,
SINSTR_retry_me_else,
SINSTR_trust_me,
SINSTR_try,
SINSTR_retry,
SINSTR_trust,
SINSTR_trust_ext,
SINSTR_try_else,
SINSTR_retry_else,
SINSTR_branch,
SINSTR_switch_on_term,
SINSTR_switch_on_constant,
SINSTR_switch_on_bvar,
SINSTR_switch_on_reg,
SINSTR_neck_cut,
SINSTR_get_level,
SINSTR_put_level,
SINSTR_cut,
SINSTR_call_builtin,
SINSTR_builtin,
SINSTR_stop,
SINSTR_halt,
SINSTR_fail,
SINSTR_create_type_variable,
SINSTR_execute_link_only,
SINSTR_call_link_only,
SINSTR_put_variable_te
};