/* translation of file(s)
	"commonrep.k"
	"cr_uniq.k"
 */
/* generated by:
 *	@(#)$Author: Kimwitu version: V3_8P5 (c) 1990 University of Twente $
 */
#ifndef KC_TYPES_HEADER
#define KC_TYPES_HEADER
#define KIMW_TYPES_HEADER /* backwards compatibility */
#include <stdio.h>	/* eg. for FILE* */
#include <sys/types.h>	/* eg. for size_t */
typedef void *kc_voidptr_t;
typedef void (*kc_voidfnptr_t)();
#if defined(__STDC__)
  typedef const void* kc_constvoidptr_t;
#else
  typedef kc_voidptr_t kc_constvoidptr_t;
#endif
#ifndef KC_MALLOC_T
# if defined(__STDC__) && (!defined(sun) || defined(lint))
    typedef kc_voidptr_t kc_malloc_t;
# else
    typedef char *kc_malloc_t;
# endif
#else
 typedef KC_MALLOC_T kc_malloc_t;
#endif
#ifndef KC_REALLOC_ARG_T
# if defined(sun) && defined(__STDC__)
   typedef kc_voidptr_t kc_realloc_arg_t;
# else
   typedef kc_malloc_t kc_realloc_arg_t;
# endif
#else
  typedef KC_REALLOC_ARG_T kc_realloc_arg_t;
#endif
#ifndef KC_SIZE_T
# if defined(__STDC__)
   typedef size_t kc_size_t;
# else
   typedef unsigned kc_size_t;
# endif
#else
  typedef KC_SIZE_T kc_size_t;
#endif
#ifndef KC__P
# if defined(__STDC__) || defined(__cplusplus)
#  define KC__P(kc_p) kc_p
#  ifndef KC_USE_PROTOTYPES
#   define KC_USE_PROTOTYPES
#  endif
#  ifndef KC__C
#   define KC__C(kc_c) kc_c
#  endif
# else
#  define KC__P(kc_p) ()
#  undef KC_USE_PROTOTYPES
# endif
#endif
#ifndef KC__C
# define KC__C(kc_c)
#endif
#ifndef KC_DOTDOTDOT

/* KJT 18/05/02: removed "..." from definition */

#  define KC_DOTDOTDOT
/* #  define KC_DOTDOTDOT ... */

#endif

kc_voidfnptr_t kc_set_out_of_storage_handler KC__P(( kc_voidfnptr_t ));
kc_voidptr_t emalloc KC__P(( kc_size_t )), ecalloc KC__P(( kc_size_t, kc_size_t )), erealloc KC__P(( kc_voidptr_t, kc_size_t ));
kc_voidptr_t uniqmalloc KC__P(( kc_size_t, kc_voidptr_t ));
void uniqfreeelement KC__P(( kc_voidptr_t, kc_voidptr_t ));
void uniqfreeall KC__P(( kc_voidptr_t ));
void kc_print_memory_info_statistics KC__P(( FILE*, kc_voidptr_t ));
#if ! defined(__STDC__)
kc_malloc_t malloc KC__P(( kc_size_t )), calloc KC__P(( kc_size_t, kc_size_t )), realloc KC__P(( kc_realloc_arg_t, kc_size_t ));
#endif
void kc_bzero KC__P(( char*, int ));

typedef enum { kc_one_before_first_phylum = 0 ,
	kc_phylum_nocasestring = 1,
	kc_phylum_casestring = 2,
	kc_phylum_float = 3,
	kc_phylum_int = 4,
	kc_phylum_cr_specification = 5,
	kc_phylum_cr_specification_type = 6,
	kc_phylum_cr_boolean_indication = 7,
	kc_phylum_cr_definition_block = 8,
	kc_phylum_cr_process_definition_list = 9,
	kc_phylum_cr_process_definition = 10,
	kc_phylum_cr_functionality = 11,
	kc_phylum_cr_sort_identifier_list = 12,
	kc_phylum_cr_data_type_definition_list = 13,
	kc_phylum_cr_data_type_definition = 14,
	kc_phylum_cr_completeness_indication = 15,
	kc_phylum_cr_persistency_indication = 16,
	kc_phylum_cr_p_expression = 17,
	kc_phylum_cr_type_identifier_list = 18,
	kc_phylum_cr_replacement = 19,
	kc_phylum_cr_sort_replacement_list = 20,
	kc_phylum_cr_sort_replacement = 21,
	kc_phylum_cr_sort_declaration_list = 22,
	kc_phylum_cr_sort_declaration = 23,
	kc_phylum_cr_operation_replacement_list = 24,
	kc_phylum_cr_operation_replacement = 25,
	kc_phylum_cr_flattened_type_definition = 26,
	kc_phylum_cr_operation_list = 27,
	kc_phylum_cr_operation = 28,
	kc_phylum_cr_prefix_infix = 29,
	kc_phylum_cr_rewrite_strategy = 30,
	kc_phylum_cr_operator_class = 31,
	kc_phylum_cr_equations_option = 32,
	kc_phylum_cr_equation_structure_list = 33,
	kc_phylum_cr_equation_structure = 34,
	kc_phylum_cr_equation_list = 35,
	kc_phylum_cr_equation = 36,
	kc_phylum_cr_premiss_list = 37,
	kc_phylum_cr_equality = 38,
	kc_phylum_cr_identifier_declaration_list = 39,
	kc_phylum_cr_identifier_declaration = 40,
	kc_phylum_cr_value_identifier_list = 41,
	kc_phylum_cr_annotated_value_identifier = 42,
	kc_phylum_cr_behaviour_expression = 43,
	kc_phylum_cr_parallel_operator = 44,
	kc_phylum_cr_gate_declaration_list = 45,
	kc_phylum_cr_gate_declaration = 46,
	kc_phylum_cr_gate_identifier_list = 47,
	kc_phylum_cr_exit_entry_list = 48,
	kc_phylum_cr_exit_entry = 49,
	kc_phylum_cr_identifier_equation_list = 50,
	kc_phylum_cr_identifier_equation = 51,
	kc_phylum_cr_action_denotation = 52,
	kc_phylum_cr_experiment_option = 53,
	kc_phylum_cr_experiment_offer_list = 54,
	kc_phylum_cr_experiment_offer = 55,
	kc_phylum_cr_guard_option = 56,
	kc_phylum_cr_value_expression_list = 57,
	kc_phylum_cr_value_expression = 58,
	kc_phylum_cr_specification_identifier = 59,
	kc_phylum_cr_operation_identifier = 60,
	kc_phylum_cr_type_identifier = 61,
	kc_phylum_cr_sort_identifier = 62,
	kc_phylum_cr_gate_identifier = 63,
	kc_phylum_cr_value_identifier = 64,
	kc_phylum_cr_process_identifier = 65,
	kc_phylum_cr_identifier = 66,
	kc_phylum_cr_extension = 67,
	kc_phylum_cr_operation_name = 68,
	kc_phylum_cr_sort_name = 69,
	kc_phylum_cr_name = 70,
	kc_phylum_cr_comment_list = 71,
	kc_phylum_cr_annotation_list = 72,
	kc_phylum_cr_LABEL = 73,
	kc_last_phylum = 74
} kc_enum_phyla;

typedef enum { kc_one_before_first_operator = 0 ,
	sel_NoCaseStr = 1,
	sel__Str = 2,
	sel__Real = 3,
	sel__Int = 4,
	sel_CR_Spec = 5,
	sel_CR_IS8807 = 6,
	sel_CR_Basic_LOTOS = 7,
	sel_CR_Booleans_NotChecked = 8,
	sel_CR_Booleans_NotOk = 9,
	sel_CR_Booleans_Ok = 10,
	sel_CR_Definition_block = 11,
	sel_Nilcr_process_definition_list = 12,
	sel_Conscr_process_definition_list = 13,
	sel_CR_Process_definition = 14,
	sel_CR_Exit_part = 15,
	sel_CR_Noexit_part = 16,
	sel_Nilcr_sort_identifier_list = 17,
	sel_Conscr_sort_identifier_list = 18,
	sel_Nilcr_data_type_definition_list = 19,
	sel_Conscr_data_type_definition_list = 20,
	sel_CR_Data_type_definition = 21,
	sel_CR_Library_reference = 22,
	sel_CR_Completeness_NotChecked = 23,
	sel_CR_Complete = 24,
	sel_CR_Not_Complete = 25,
	sel_CR_Persistency_NotChecked = 26,
	sel_CR_Persistent = 27,
	sel_CR_Not_Persistent = 28,
	sel_CR_P_Spec = 29,
	sel_CR_Actualization = 30,
	sel_CR_Renaming = 31,
	sel_Nilcr_type_identifier_list = 32,
	sel_Conscr_type_identifier_list = 33,
	sel_CR_Replacement = 34,
	sel_Nilcr_sort_replacement_list = 35,
	sel_Conscr_sort_replacement_list = 36,
	sel_CR_Sort_replacement = 37,
	sel_Nilcr_sort_declaration_list = 38,
	sel_Conscr_sort_declaration_list = 39,
	sel_CR_Sort_declaration = 40,
	sel_Nilcr_operation_replacement_list = 41,
	sel_Conscr_operation_replacement_list = 42,
	sel_CR_Operation_replacement = 43,
	sel_CR_Formal_type = 44,
	sel_CR_Actual_type = 45,
	sel_Nilcr_operation_list = 46,
	sel_Conscr_operation_list = 47,
	sel_CR_Operation = 48,
	sel_CR_Infix = 49,
	sel_CR_Prefix = 50,
	sel_CR_Default = 51,
	sel_CR_Leftmost_innermost = 52,
	sel_CR_Leftmost_outermost = 53,
	sel_CR_If_then_else = 54,
	sel_CR_Projection = 55,
	sel_CR_Unknown = 56,
	sel_CR_Constructor = 57,
	sel_CR_Derived = 58,
	sel_CR_NoEquations = 59,
	sel_CR_YesEquations = 60,
	sel_Nilcr_equation_structure_list = 61,
	sel_Conscr_equation_structure_list = 62,
	sel_CR_Equation_structure = 63,
	sel_Nilcr_equation_list = 64,
	sel_Conscr_equation_list = 65,
	sel_CR_Equation = 66,
	sel_Nilcr_premiss_list = 67,
	sel_Conscr_premiss_list = 68,
	sel_CR_Equals = 69,
	sel_Nilcr_identifier_declaration_list = 70,
	sel_Conscr_identifier_declaration_list = 71,
	sel_CR_Identifier_declaration = 72,
	sel_Nilcr_value_identifier_list = 73,
	sel_Conscr_value_identifier_list = 74,
	sel_CR_annotated_val_id = 75,
	sel_CR_Stop_expression = 76,
	sel_CR_Exit_expression = 77,
	sel_CR_Process_instantiation = 78,
	sel_CR_Action_prefix_expression = 79,
	sel_CR_Local_definition_expression = 80,
	sel_CR_Sum_identifier_expression = 81,
	sel_CR_Sum_gate_expression = 82,
	sel_CR_Par_expression = 83,
	sel_CR_Hiding_expression = 84,
	sel_CR_Enable_expression = 85,
	sel_CR_Disable_expression = 86,
	sel_CR_Parallel_expression = 87,
	sel_CR_Choice_expression = 88,
	sel_CR_Guarded_expression = 89,
	sel_CR_Annotated_behaviour = 90,
	sel_CR_Synchronization_operator = 91,
	sel_CR_Interleave_operator = 92,
	sel_CR_General_parallel_operator = 93,
	sel_Nilcr_gate_declaration_list = 94,
	sel_Conscr_gate_declaration_list = 95,
	sel_CR_Gate_declaration = 96,
	sel_Nilcr_gate_identifier_list = 97,
	sel_Conscr_gate_identifier_list = 98,
	sel_Nilcr_exit_entry_list = 99,
	sel_Conscr_exit_entry_list = 100,
	sel_CR_Value_expression_exit_entry = 101,
	sel_CR_Sort_identifier_exit_entry = 102,
	sel_Nilcr_identifier_equation_list = 103,
	sel_Conscr_identifier_equation_list = 104,
	sel_CR_Identifier_equation = 105,
	sel_CR_Communication = 106,
	sel_CR_Internal_event = 107,
	sel_CR_NoExperiment = 108,
	sel_CR_YesExperiment = 109,
	sel_Nilcr_experiment_offer_list = 110,
	sel_Conscr_experiment_offer_list = 111,
	sel_CR_Query_offer = 112,
	sel_CR_Exclam_offer = 113,
	sel_CR_NoGuard = 114,
	sel_CR_YesGuard = 115,
	sel_Nilcr_value_expression_list = 116,
	sel_Conscr_value_expression_list = 117,
	sel_CR_Term = 118,
	sel_CR_Value = 119,
	sel_CR_Annotated_value_expression = 120,
	sel_CR_Specification_id = 121,
	sel_CR_Operation_id = 122,
	sel_CR_Type_id = 123,
	sel_CR_Sort_id = 124,
	sel_CR_Gate_id = 125,
	sel_CR_Value_id = 126,
	sel_CR_Process_id = 127,
	sel_CR_Identifier = 128,
	sel_CR_NullExtension = 129,
	sel_CR_DefExtension = 130,
	sel_CR_Operation_name = 131,
	sel_CR_Sort_name = 132,
	sel_CR_Name = 133,
	sel_Nilcr_comment_list = 134,
	sel_Conscr_comment_list = 135,
	sel_Nilcr_annotation_list = 136,
	sel_Conscr_annotation_list = 137,
	sel_CR_Label = 138,
	kc_last_operator = 139
} kc_enum_operators;

typedef union  kc_tag_YYSTYPE YYSTYPE;
typedef struct kc_tag_kc_hashnode_t *kc_hashnode_t;

typedef struct kc_tag_nocasestring *nocasestring;
typedef struct kc_tag_casestring *casestring;
typedef struct kc_tag_cr_specification *cr_specification;
typedef struct kc_tag_cr_specification_type *cr_specification_type;
typedef struct kc_tag_cr_boolean_indication *cr_boolean_indication;
typedef struct kc_tag_cr_definition_block *cr_definition_block;
typedef struct kc_tag_cr_process_definition_list *cr_process_definition_list;
typedef struct kc_tag_cr_process_definition *cr_process_definition;
typedef struct kc_tag_cr_functionality *cr_functionality;
typedef struct kc_tag_cr_sort_identifier_list *cr_sort_identifier_list;
typedef struct kc_tag_cr_data_type_definition_list *cr_data_type_definition_list;
typedef struct kc_tag_cr_data_type_definition *cr_data_type_definition;
typedef struct kc_tag_cr_completeness_indication *cr_completeness_indication;
typedef struct kc_tag_cr_persistency_indication *cr_persistency_indication;
typedef struct kc_tag_cr_p_expression *cr_p_expression;
typedef struct kc_tag_cr_type_identifier_list *cr_type_identifier_list;
typedef struct kc_tag_cr_replacement *cr_replacement;
typedef struct kc_tag_cr_sort_replacement_list *cr_sort_replacement_list;
typedef struct kc_tag_cr_sort_replacement *cr_sort_replacement;
typedef struct kc_tag_cr_sort_declaration_list *cr_sort_declaration_list;
typedef struct kc_tag_cr_sort_declaration *cr_sort_declaration;
typedef struct kc_tag_cr_operation_replacement_list *cr_operation_replacement_list;
typedef struct kc_tag_cr_operation_replacement *cr_operation_replacement;
typedef struct kc_tag_cr_flattened_type_definition *cr_flattened_type_definition;
typedef struct kc_tag_cr_operation_list *cr_operation_list;
typedef struct kc_tag_cr_operation *cr_operation;
typedef struct kc_tag_cr_prefix_infix *cr_prefix_infix;
typedef struct kc_tag_cr_rewrite_strategy *cr_rewrite_strategy;
typedef struct kc_tag_cr_operator_class *cr_operator_class;
typedef struct kc_tag_cr_equations_option *cr_equations_option;
typedef struct kc_tag_cr_equation_structure_list *cr_equation_structure_list;
typedef struct kc_tag_cr_equation_structure *cr_equation_structure;
typedef struct kc_tag_cr_equation_list *cr_equation_list;
typedef struct kc_tag_cr_equation *cr_equation;
typedef struct kc_tag_cr_premiss_list *cr_premiss_list;
typedef struct kc_tag_cr_equality *cr_equality;
typedef struct kc_tag_cr_identifier_declaration_list *cr_identifier_declaration_list;
typedef struct kc_tag_cr_identifier_declaration *cr_identifier_declaration;
typedef struct kc_tag_cr_value_identifier_list *cr_value_identifier_list;
typedef struct kc_tag_cr_annotated_value_identifier *cr_annotated_value_identifier;
typedef struct kc_tag_cr_behaviour_expression *cr_behaviour_expression;
typedef struct kc_tag_cr_parallel_operator *cr_parallel_operator;
typedef struct kc_tag_cr_gate_declaration_list *cr_gate_declaration_list;
typedef struct kc_tag_cr_gate_declaration *cr_gate_declaration;
typedef struct kc_tag_cr_gate_identifier_list *cr_gate_identifier_list;
typedef struct kc_tag_cr_exit_entry_list *cr_exit_entry_list;
typedef struct kc_tag_cr_exit_entry *cr_exit_entry;
typedef struct kc_tag_cr_identifier_equation_list *cr_identifier_equation_list;
typedef struct kc_tag_cr_identifier_equation *cr_identifier_equation;
typedef struct kc_tag_cr_action_denotation *cr_action_denotation;
typedef struct kc_tag_cr_experiment_option *cr_experiment_option;
typedef struct kc_tag_cr_experiment_offer_list *cr_experiment_offer_list;
typedef struct kc_tag_cr_experiment_offer *cr_experiment_offer;
typedef struct kc_tag_cr_guard_option *cr_guard_option;
typedef struct kc_tag_cr_value_expression_list *cr_value_expression_list;
typedef struct kc_tag_cr_value_expression *cr_value_expression;
typedef struct kc_tag_cr_specification_identifier *cr_specification_identifier;
typedef struct kc_tag_cr_operation_identifier *cr_operation_identifier;
typedef struct kc_tag_cr_type_identifier *cr_type_identifier;
typedef struct kc_tag_cr_sort_identifier *cr_sort_identifier;
typedef struct kc_tag_cr_gate_identifier *cr_gate_identifier;
typedef struct kc_tag_cr_value_identifier *cr_value_identifier;
typedef struct kc_tag_cr_process_identifier *cr_process_identifier;
typedef struct kc_tag_cr_identifier *cr_identifier;
typedef struct kc_tag_cr_extension *cr_extension;
typedef struct kc_tag_cr_operation_name *cr_operation_name;
typedef struct kc_tag_cr_sort_name *cr_sort_name;
typedef struct kc_tag_cr_name *cr_name;
typedef struct kc_tag_cr_comment_list *cr_comment_list;
typedef struct kc_tag_cr_annotation_list *cr_annotation_list;
typedef struct kc_tag_cr_LABEL *cr_LABEL;

typedef kc_enum_phyla *kc_enum_phyla_list;
typedef kc_size_t *kc_size_t_list; /* size_t is defined in ANSI C <stddef.h> */


typedef enum { /*kc_not_uniq = 0, kc_uniq_nullary_operator,*/ kc_not_uniq, kc_uniq_nullary_operator, uniq, kc_last_storageclass } kc_storageclass_t;



typedef struct {
	char *name;			/* name of the phylum */
	kc_size_t size;			/* size of the struct phylum record */
	kc_enum_operators first_operator;	/* index in kc_OperatorInfo[] */
	kc_enum_operators last_operator;	/* index in kc_OperatorInfo[] */
	kc_storageclass_t uniq_stored;	/* storage class */
	void (*copy_attributes) KC__P((kc_voidptr_t, kc_voidptr_t));	/* routine that copies attributes */
} KC_PHYLUM_INFO;

typedef struct {
	char *name;			/* name of the operator */
	int no_sons;			/* number of sons */
	int atomicity;			/* atomic type or not (used as a boolean) */
	kc_enum_phyla phylum;		/* index in kc_PhylumInfo[] */
	kc_enum_phyla_list subphylum;	/* indexes in kc_PhylumInfo[] */
	kc_size_t_list suboffset;	/* offsets of sub-phyla (pointers) in the phylum record */
	kc_storageclass_t uniq_stored;	/* storage class */
	kc_voidptr_t (*create_routine) KC__P((KC_DOTDOTDOT));	/* create routine */
} KC_OPERATOR_INFO;

typedef kc_enum_phyla_list KC_UNIQ_INFO;

extern KC_OPERATOR_INFO kc_OperatorInfo[];
extern KC_PHYLUM_INFO kc_PhylumInfo[];
extern KC_UNIQ_INFO kc_UniqInfo[];

#ifndef KC_SUBPHYLUM
# ifdef lint
#  define KC_SUBPHYLUM(kc_phylum, kc_offset) (kc_phylum,kc_offset,0)
# else
#  define KC_SUBPHYLUM(kc_phylum, kc_offset) (*((char**)(((char*)kc_phylum)+(kc_offset))))
# endif
#endif



union kc_tag_YYSTYPE {
	kc_hashnode_t yt_kc_hashnode_t;
	nocasestring	yt_nocasestring;
	casestring	yt_casestring;
	float	yt_float;
	int	yt_int;
	cr_specification	yt_cr_specification;
	cr_specification_type	yt_cr_specification_type;
	cr_boolean_indication	yt_cr_boolean_indication;
	cr_definition_block	yt_cr_definition_block;
	cr_process_definition_list	yt_cr_process_definition_list;
	cr_process_definition	yt_cr_process_definition;
	cr_functionality	yt_cr_functionality;
	cr_sort_identifier_list	yt_cr_sort_identifier_list;
	cr_data_type_definition_list	yt_cr_data_type_definition_list;
	cr_data_type_definition	yt_cr_data_type_definition;
	cr_completeness_indication	yt_cr_completeness_indication;
	cr_persistency_indication	yt_cr_persistency_indication;
	cr_p_expression	yt_cr_p_expression;
	cr_type_identifier_list	yt_cr_type_identifier_list;
	cr_replacement	yt_cr_replacement;
	cr_sort_replacement_list	yt_cr_sort_replacement_list;
	cr_sort_replacement	yt_cr_sort_replacement;
	cr_sort_declaration_list	yt_cr_sort_declaration_list;
	cr_sort_declaration	yt_cr_sort_declaration;
	cr_operation_replacement_list	yt_cr_operation_replacement_list;
	cr_operation_replacement	yt_cr_operation_replacement;
	cr_flattened_type_definition	yt_cr_flattened_type_definition;
	cr_operation_list	yt_cr_operation_list;
	cr_operation	yt_cr_operation;
	cr_prefix_infix	yt_cr_prefix_infix;
	cr_rewrite_strategy	yt_cr_rewrite_strategy;
	cr_operator_class	yt_cr_operator_class;
	cr_equations_option	yt_cr_equations_option;
	cr_equation_structure_list	yt_cr_equation_structure_list;
	cr_equation_structure	yt_cr_equation_structure;
	cr_equation_list	yt_cr_equation_list;
	cr_equation	yt_cr_equation;
	cr_premiss_list	yt_cr_premiss_list;
	cr_equality	yt_cr_equality;
	cr_identifier_declaration_list	yt_cr_identifier_declaration_list;
	cr_identifier_declaration	yt_cr_identifier_declaration;
	cr_value_identifier_list	yt_cr_value_identifier_list;
	cr_annotated_value_identifier	yt_cr_annotated_value_identifier;
	cr_behaviour_expression	yt_cr_behaviour_expression;
	cr_parallel_operator	yt_cr_parallel_operator;
	cr_gate_declaration_list	yt_cr_gate_declaration_list;
	cr_gate_declaration	yt_cr_gate_declaration;
	cr_gate_identifier_list	yt_cr_gate_identifier_list;
	cr_exit_entry_list	yt_cr_exit_entry_list;
	cr_exit_entry	yt_cr_exit_entry;
	cr_identifier_equation_list	yt_cr_identifier_equation_list;
	cr_identifier_equation	yt_cr_identifier_equation;
	cr_action_denotation	yt_cr_action_denotation;
	cr_experiment_option	yt_cr_experiment_option;
	cr_experiment_offer_list	yt_cr_experiment_offer_list;
	cr_experiment_offer	yt_cr_experiment_offer;
	cr_guard_option	yt_cr_guard_option;
	cr_value_expression_list	yt_cr_value_expression_list;
	cr_value_expression	yt_cr_value_expression;
	cr_specification_identifier	yt_cr_specification_identifier;
	cr_operation_identifier	yt_cr_operation_identifier;
	cr_type_identifier	yt_cr_type_identifier;
	cr_sort_identifier	yt_cr_sort_identifier;
	cr_gate_identifier	yt_cr_gate_identifier;
	cr_value_identifier	yt_cr_value_identifier;
	cr_process_identifier	yt_cr_process_identifier;
	cr_identifier	yt_cr_identifier;
	cr_extension	yt_cr_extension;
	cr_operation_name	yt_cr_operation_name;
	cr_sort_name	yt_cr_sort_name;
	cr_name	yt_cr_name;
	cr_comment_list	yt_cr_comment_list;
	cr_annotation_list	yt_cr_annotation_list;
	cr_LABEL	yt_cr_LABEL;
};
extern YYSTYPE yylval;

#define KC_NO_OF_OPERATORS 139

typedef enum { KC_False=0, KC_True=1 } kc_tp_boolean;
#if ! (defined(True) || defined(False))
# define True KC_True
# define False KC_False
# define boolean kc_tp_boolean
#else
# if ! defined(boolean)
#  define boolean int
# endif
#endif

#ifndef KC_NO_DEFAULT_IN_WITH
# define KC_NO_DEFAULT_IN_WITH "Internal Error: no default action defined in function %s at line %d of file %s\n"
#endif
void kc_no_default_in_with KC__P((char*, int, char*));
void kc_returnless_function KC__P((char *, int, char*));

#ifndef KC_SEPARATE_HASH_LEVELS
#  define KC_IS_HT_STORE_STATIC =kc_ht_store_static
#else
#  define KC_IS_HT_STORE_STATIC
#endif


#if (defined(lint) || defined(SABER))
#  define KC_LINTUSE(x) if(x)x=x
#else
#  define KC_LINTUSE(x)
#endif


#if defined(lint)
   extern int kc_zero_constant;
#else
# if defined(SABER)
   static int kc_zero_constant = 0;
# else
#  define kc_zero_constant 0
# endif
#endif

#ifndef NDEBUG
# define assert(t) do {if (!(t)) kc_assertionFailed(__FILE__,__LINE__);}while(kc_zero_constant)
# define _assert(t) do {if (!(t)) kc_assertionFailed(__FILE__,__LINE__);}while(kc_zero_constant)
# define assertReason(t,s) do {if (!(t)) kc_assertionReasonFailed(__FILE__,__LINE__,s);}while(kc_zero_constant)
# define assertNonNull(ptr,str) do {if (ptr == NULL) kc_assertionNonNullFailed(str,__FILE__,__LINE__);}while(kc_zero_constant)
# define assertOperatorInPhylumFn(op,str1,str2,phy,fn) do {if ((op<(int)kc_PhylumInfo[(int)phy].first_operator)||(op>(int)kc_PhylumInfo[(int)phy].last_operator)) fn(op,str1,str2,(int)phy,__FILE__,__LINE__);}while(kc_zero_constant)
# define assertOperatorInPhylum(op,str1,str2,phy) assertOperatorInPhylumFn(op,str1,str2,phy,kc_assertionOperatorInPhylumFailed)
# define assertPhylum(ptr,ptrstr,phy) do{if((phy!=kc_phylum_int)&&(phy!=kc_phylum_float)){assertNonNull(ptr,ptrstr);assertOperatorInPhylum((int)(ptr->prod_sel),ptrstr,"->prod_sel",phy);}}while(kc_zero_constant)
# define assertNonIntPhylum(ptr,ptrstr,phy) do{assertNonNull(ptr,ptrstr);assertOperatorInPhylum((int)(ptr->prod_sel),ptrstr,"->prod_sel",phy);}while(kc_zero_constant)
#else
# define assert(t)
# define _assert(t)
# define assertReason(t,s)
# define assertNonNull(ptr,str)
# define assertOperatorInPhylumFn(op,str1,str2,phy,fn)
# define assertOperatorInPhylum(op,str1,str2,phy)
# define assertPhylum(ptr,ptrstr,phy)
# define assertNonIntPhylum(ptr,ptrstr,phy)
#endif
void kc_assertionFailed KC__P((char*, int));
void kc_assertionReasonFailed KC__P((char*, int, char*));
void kc_assertionNonNullFailed KC__P((char*, char*, int));
void kc_assertionOperatorInPhylumFailed KC__P((int, char*, char*, int, char*, int));
/* void kc_invalid_operator KC__P((char*, kc_enum_phyla, int, char*, int)); */

#define assert_nocasestring(c, cstr) assertNonIntPhylum(c,cstr,(int)kc_phylum_nocasestring)
#define assert_casestring(c, cstr) assertNonIntPhylum(c,cstr,(int)kc_phylum_casestring)
#define assert_float(p,pstr)
#define assert_int(p,pstr)
#define assert_cr_specification(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_specification)
#define assert_cr_specification_type(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_specification_type)
#define assert_cr_boolean_indication(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_boolean_indication)
#define assert_cr_definition_block(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_definition_block)
#define assert_cr_process_definition_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_process_definition_list)
#define assert_cr_process_definition(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_process_definition)
#define assert_cr_functionality(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_functionality)
#define assert_cr_sort_identifier_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_sort_identifier_list)
#define assert_cr_data_type_definition_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_data_type_definition_list)
#define assert_cr_data_type_definition(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_data_type_definition)
#define assert_cr_completeness_indication(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_completeness_indication)
#define assert_cr_persistency_indication(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_persistency_indication)
#define assert_cr_p_expression(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_p_expression)
#define assert_cr_type_identifier_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_type_identifier_list)
#define assert_cr_replacement(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_replacement)
#define assert_cr_sort_replacement_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_sort_replacement_list)
#define assert_cr_sort_replacement(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_sort_replacement)
#define assert_cr_sort_declaration_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_sort_declaration_list)
#define assert_cr_sort_declaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_sort_declaration)
#define assert_cr_operation_replacement_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_operation_replacement_list)
#define assert_cr_operation_replacement(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_operation_replacement)
#define assert_cr_flattened_type_definition(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_flattened_type_definition)
#define assert_cr_operation_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_operation_list)
#define assert_cr_operation(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_operation)
#define assert_cr_prefix_infix(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_prefix_infix)
#define assert_cr_rewrite_strategy(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_rewrite_strategy)
#define assert_cr_operator_class(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_operator_class)
#define assert_cr_equations_option(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_equations_option)
#define assert_cr_equation_structure_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_equation_structure_list)
#define assert_cr_equation_structure(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_equation_structure)
#define assert_cr_equation_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_equation_list)
#define assert_cr_equation(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_equation)
#define assert_cr_premiss_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_premiss_list)
#define assert_cr_equality(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_equality)
#define assert_cr_identifier_declaration_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_identifier_declaration_list)
#define assert_cr_identifier_declaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_identifier_declaration)
#define assert_cr_value_identifier_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_value_identifier_list)
#define assert_cr_annotated_value_identifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_annotated_value_identifier)
#define assert_cr_behaviour_expression(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_behaviour_expression)
#define assert_cr_parallel_operator(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_parallel_operator)
#define assert_cr_gate_declaration_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_gate_declaration_list)
#define assert_cr_gate_declaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_gate_declaration)
#define assert_cr_gate_identifier_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_gate_identifier_list)
#define assert_cr_exit_entry_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_exit_entry_list)
#define assert_cr_exit_entry(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_exit_entry)
#define assert_cr_identifier_equation_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_identifier_equation_list)
#define assert_cr_identifier_equation(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_identifier_equation)
#define assert_cr_action_denotation(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_action_denotation)
#define assert_cr_experiment_option(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_experiment_option)
#define assert_cr_experiment_offer_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_experiment_offer_list)
#define assert_cr_experiment_offer(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_experiment_offer)
#define assert_cr_guard_option(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_guard_option)
#define assert_cr_value_expression_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_value_expression_list)
#define assert_cr_value_expression(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_value_expression)
#define assert_cr_specification_identifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_specification_identifier)
#define assert_cr_operation_identifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_operation_identifier)
#define assert_cr_type_identifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_type_identifier)
#define assert_cr_sort_identifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_sort_identifier)
#define assert_cr_gate_identifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_gate_identifier)
#define assert_cr_value_identifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_value_identifier)
#define assert_cr_process_identifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_process_identifier)
#define assert_cr_identifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_identifier)
#define assert_cr_extension(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_extension)
#define assert_cr_operation_name(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_operation_name)
#define assert_cr_sort_name(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_sort_name)
#define assert_cr_name(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_name)
#define assert_cr_comment_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_comment_list)
#define assert_cr_annotation_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_annotation_list)
#define assert_cr_LABEL(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_cr_LABEL)
typedef struct {
	int create;
	int existing_not_found;
	int free_called[2];
	int freed[2];
} KC_OPERATOR_STATISTICS;

#ifdef KC_STATISTICS
# define kc_print_operator_statistics(kc_f) kc_do_print_operator_statistics(kc_f)
  void	kc_do_print_operator_statistics KC__P(( FILE* ));
#else /*KC_STATISTICS*/
# define kc_print_operator_statistics(kc_f)
#endif /*KC_STATISTICS*/

typedef struct kc_tag_kc_hashtableentry_t {
	YYSTYPE *index; /* index[ibound] */
	int ibound; /* nr of slots; index of first nonexist */
	int nr; /* nr of occupied; index of first free */
} kc_hashtableentry_t;

typedef enum { kc_ht_store_static = 0, kc_ht_store_dynamic KC_IS_HT_STORE_STATIC, kc_last_storage_mode } kc_hastable_storage_mode_t;

typedef struct kc_tag_kc_hashtable_struct_t *kc_hashtable_t;
typedef struct kc_tag_kc_private_malloc_t {
	kc_voidptr_t malloc_private_data;
	struct kc_tag_kc_private_malloc_t *next;
	struct kc_tag_kc_private_malloc_t *prev;
} *kc_private_malloc_t;

typedef struct kc_tag_kc_hashtable_struct_t {
	/* general stuff */
	kc_hashtableentry_t (*hashtable)[kc_last_storage_mode]; /* hashtable[size][dynamic/static] */
	int size; /* nr of buckets in the hashtable; index of first nonexist */
	int kc_to_be_freed; /* should be True for dynamic, False for statically allocated structures */
	kc_hashtable_t next; /* to build a linked list of all hashtables created, ever */
	kc_hashtable_t prev; /* to build a linked list of all hashtables created, ever */
	/* node allocation */
	kc_voidptr_t (*malloc_initialise) KC__P(()); /* routine to initialise a new block(list/level), returns the malloc_private_data */
	kc_voidptr_t (*malloc) KC__P((kc_size_t, kc_voidptr_t)); /* routine to be used to create elements in the hashtable */
	void (*free_element) KC__P((kc_voidptr_t, kc_voidptr_t)); /* routine to be used to free one element allocated using malloc */
	void (*free_all_elements) KC__P((kc_voidptr_t)); /* routine to be used to free elements in a block(list/level) */
	boolean (*in_block) KC__P((kc_voidptr_t, kc_voidptr_t)); /* routine to test if an element is in a block */
	kc_voidptr_t malloc_private_data; /* private data for the malloc routine, for current block */
	kc_voidptr_t static_malloc_private_data; /* private data for the malloc routine */
	kc_private_malloc_t dynamic_malloc_private_data; /* private data for the malloc routine */
	kc_private_malloc_t dec_dynamic_malloc_private_data; /* dec-level-ed dynamic_malloc_private_data == dynamic_malloc_private_data->prev if defined */
	kc_hastable_storage_mode_t mode; /* either dynamic or static */
	void (*malloc_info) KC__P((FILE*, kc_voidptr_t)); /* routine to print info on malloc structure */
	/* bucket allocation */
	kc_voidptr_t (*bucket_alloc_initialise) KC__P(()); /* routine to initialise the bucket allocation stuff, returns the malloc_private_data */
	kc_voidptr_t (*bucket_calloc) KC__P((kc_size_t, kc_size_t, kc_voidptr_t)); /* routine to be used to create buckets in the hashtable */
	kc_voidptr_t (*bucket_realloc) KC__P((kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t)); /* routine to be used to realloc buckets in the hashtable */
	kc_voidptr_t bucket_alloc_private_data; /* private data for the bucket alloc routines */
	void (*free_bucket) KC__P((kc_voidptr_t, kc_size_t, kc_voidptr_t)); /* routine to be used to free one bucket */
	void (*free_buckets) KC__P((kc_voidptr_t)); /* routine to be used to free all buckets */
	int bucket_alloc_inc; /* size of increments in bucket alloced memory */ /* default: KC_BUCKET_INC */
	void (*bucket_alloc_info) KC__P((FILE*, kc_voidptr_t)); /* routine to print info on bucket alloc structure */
} kc_hashtable_struct_t;

void	kc_print_hash_statistics KC__P((FILE*));
void	kc_print_all_hashtable_statistics KC__P((FILE*));
void	kc_print_hashtable_statistics KC__P(( FILE*, kc_hashtable_t));
void	kc_ht_static KC__P((kc_storageclass_t));
void	kc_ht_dynamic KC__P((kc_storageclass_t));
void	kc_ht_inc_level KC__P((kc_storageclass_t));
void	kc_ht_dec_level KC__P((kc_storageclass_t));
void	kc_ht_free_level KC__P((kc_storageclass_t));
kc_hashtable_t	kc_ht_create_bucketmanagement KC__P((int,
 kc_voidptr_t (*)(),
 kc_voidptr_t (*)(kc_size_t, kc_voidptr_t),
 void (*)(kc_voidptr_t, kc_voidptr_t),
 void (*)(kc_voidptr_t),
 boolean (*)(kc_voidptr_t, kc_voidptr_t),
 void (*)(FILE*, kc_voidptr_t),
 kc_voidptr_t (*)(),
 kc_voidptr_t (*)(kc_size_t, kc_size_t, kc_voidptr_t),
 kc_voidptr_t (*)( kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t),
 void (*)(kc_voidptr_t, kc_size_t, kc_voidptr_t),
 void (*)(kc_voidptr_t),
 int,
 void (*)(FILE*, kc_voidptr_t)));
kc_hashtable_t	kc_ht_create KC__P((int, kc_voidptr_t(*)(), kc_voidptr_t(*)(kc_size_t, kc_voidptr_t), void (*)(kc_voidptr_t, kc_voidptr_t), void (*)(kc_voidptr_t), boolean (*)(kc_voidptr_t, kc_voidptr_t)));
kc_hashtable_t	kc_ht_create_simple KC__P((int));
kc_hashtable_t	kc_ht_assign KC__P((kc_hashtable_t, kc_storageclass_t));
kc_hashtable_t	kc_ht_assigned KC__P((kc_storageclass_t));
void	kc_ht_clear KC__P((kc_hashtable_t));
void	kc_ht_reuse KC__P((kc_hashtable_t));
void	kc_ht_delete KC__P((kc_hashtable_t));
int	kc_ci_strcmp KC__P(( char *, char * )); /* Maybe should be static? */
casestring	mkcasestring KC__P(( char * ));
nocasestring	mknocasestring KC__P(( char * ));
kc_hashnode_t	kc_mkhashnode KC__P(( kc_voidptr_t, kc_hashtable_t ));
kc_voidptr_t kc_do_copy_phylum KC__P(( kc_voidptr_t, boolean, kc_enum_phyla )); /* NOT static because we use it in csgiok.c */
cr_specification	CR_Spec KC__P((cr_LABEL, cr_comment_list, cr_specification_identifier, cr_gate_identifier_list, cr_identifier_declaration_list, cr_functionality, cr_data_type_definition_list, cr_comment_list, cr_definition_block, cr_boolean_indication, cr_annotation_list, cr_specification_type));
cr_specification_type	CR_IS8807 KC__P(()),
CR_Basic_LOTOS KC__P(());
cr_boolean_indication	CR_Booleans_NotChecked KC__P(()),
CR_Booleans_NotOk KC__P(()),
CR_Booleans_Ok KC__P(());
cr_definition_block	CR_Definition_block KC__P((cr_behaviour_expression, cr_data_type_definition_list, cr_process_definition_list));
cr_process_definition_list	Nilcr_process_definition_list KC__P(()),
Conscr_process_definition_list KC__P((cr_process_definition, cr_process_definition_list));
cr_process_definition	CR_Process_definition KC__P((cr_comment_list, cr_process_identifier, cr_gate_identifier_list, cr_identifier_declaration_list, cr_functionality, cr_definition_block, cr_LABEL));
cr_functionality	CR_Exit_part KC__P((cr_sort_identifier_list)),
CR_Noexit_part KC__P(());
cr_sort_identifier_list	Nilcr_sort_identifier_list KC__P(()),
Conscr_sort_identifier_list KC__P((cr_sort_identifier, cr_sort_identifier_list));
cr_data_type_definition_list	Nilcr_data_type_definition_list KC__P(()),
Conscr_data_type_definition_list KC__P((cr_data_type_definition, cr_data_type_definition_list));
cr_data_type_definition	CR_Data_type_definition KC__P((cr_comment_list, cr_type_identifier, cr_p_expression, cr_completeness_indication, cr_persistency_indication, cr_flattened_type_definition, cr_annotation_list)),
CR_Library_reference KC__P((cr_type_identifier, cr_flattened_type_definition, cr_annotation_list));
cr_completeness_indication	CR_Completeness_NotChecked KC__P(()),
CR_Complete KC__P(()),
CR_Not_Complete KC__P(());
cr_persistency_indication	CR_Persistency_NotChecked KC__P(()),
CR_Persistent KC__P(()),
CR_Not_Persistent KC__P(());
cr_p_expression	CR_P_Spec KC__P((cr_type_identifier_list, cr_sort_declaration_list, cr_operation_list, cr_equations_option, cr_sort_declaration_list, cr_operation_list, cr_equations_option, cr_LABEL)),
CR_Actualization KC__P((cr_type_identifier, cr_type_identifier_list, cr_replacement, cr_LABEL)),
CR_Renaming KC__P((cr_type_identifier, cr_replacement, cr_LABEL));
cr_type_identifier_list	Nilcr_type_identifier_list KC__P(()),
Conscr_type_identifier_list KC__P((cr_type_identifier, cr_type_identifier_list));
cr_replacement	CR_Replacement KC__P((cr_sort_replacement_list, cr_operation_replacement_list));
cr_sort_replacement_list	Nilcr_sort_replacement_list KC__P(()),
Conscr_sort_replacement_list KC__P((cr_sort_replacement, cr_sort_replacement_list));
cr_sort_replacement	CR_Sort_replacement KC__P((cr_sort_name, cr_sort_name, cr_LABEL));
cr_sort_declaration_list	Nilcr_sort_declaration_list KC__P(()),
Conscr_sort_declaration_list KC__P((cr_sort_declaration, cr_sort_declaration_list));
cr_sort_declaration	CR_Sort_declaration KC__P((cr_sort_identifier, cr_LABEL, cr_annotation_list));
cr_operation_replacement_list	Nilcr_operation_replacement_list KC__P(()),
Conscr_operation_replacement_list KC__P((cr_operation_replacement, cr_operation_replacement_list));
cr_operation_replacement	CR_Operation_replacement KC__P((cr_operation_name, cr_operation_name, cr_LABEL));
cr_flattened_type_definition	CR_Formal_type KC__P((cr_type_identifier_list, cr_sort_declaration_list, cr_operation_list, cr_equations_option, cr_sort_declaration_list, cr_operation_list, cr_equations_option)),
CR_Actual_type KC__P((cr_type_identifier_list, cr_sort_declaration_list, cr_operation_list, cr_equations_option));
cr_operation_list	Nilcr_operation_list KC__P(()),
Conscr_operation_list KC__P((cr_operation, cr_operation_list));
cr_operation	CR_Operation KC__P((cr_operation_identifier, cr_prefix_infix, cr_sort_identifier_list, cr_sort_identifier, cr_rewrite_strategy, cr_operator_class, cr_LABEL, cr_annotation_list));
cr_prefix_infix	CR_Infix KC__P(()),
CR_Prefix KC__P(());
cr_rewrite_strategy	CR_Default KC__P(()),
CR_Leftmost_innermost KC__P(()),
CR_Leftmost_outermost KC__P(()),
CR_If_then_else KC__P(()),
CR_Projection KC__P(());
cr_operator_class	CR_Unknown KC__P(()),
CR_Constructor KC__P(()),
CR_Derived KC__P(());
cr_equations_option	CR_NoEquations KC__P(()),
CR_YesEquations KC__P((cr_identifier_declaration_list, cr_equation_structure_list));
cr_equation_structure_list	Nilcr_equation_structure_list KC__P(()),
Conscr_equation_structure_list KC__P((cr_equation_structure, cr_equation_structure_list));
cr_equation_structure	CR_Equation_structure KC__P((cr_sort_identifier, cr_identifier_declaration_list, cr_equation_list));
cr_equation_list	Nilcr_equation_list KC__P(()),
Conscr_equation_list KC__P((cr_equation, cr_equation_list));
cr_equation	CR_Equation KC__P((cr_premiss_list, cr_equality, cr_LABEL));
cr_premiss_list	Nilcr_premiss_list KC__P(()),
Conscr_premiss_list KC__P((cr_equality, cr_premiss_list));
cr_equality	CR_Equals KC__P((cr_value_expression, cr_value_expression));
cr_identifier_declaration_list	Nilcr_identifier_declaration_list KC__P(()),
Conscr_identifier_declaration_list KC__P((cr_identifier_declaration, cr_identifier_declaration_list));
cr_identifier_declaration	CR_Identifier_declaration KC__P((cr_value_identifier_list, cr_sort_identifier));
cr_value_identifier_list	Nilcr_value_identifier_list KC__P(()),
Conscr_value_identifier_list KC__P((cr_annotated_value_identifier, cr_value_identifier_list));
cr_annotated_value_identifier	CR_annotated_val_id KC__P((cr_value_identifier, cr_annotation_list));
cr_behaviour_expression	CR_Stop_expression KC__P((cr_LABEL, cr_annotation_list)),
CR_Exit_expression KC__P((cr_exit_entry_list, cr_LABEL, cr_annotation_list)),
CR_Process_instantiation KC__P((cr_process_identifier, cr_gate_identifier_list, cr_value_expression_list, cr_LABEL, cr_annotation_list)),
CR_Action_prefix_expression KC__P((cr_action_denotation, cr_behaviour_expression, cr_LABEL, cr_annotation_list)),
CR_Local_definition_expression KC__P((cr_identifier_equation_list, cr_behaviour_expression)),
CR_Sum_identifier_expression KC__P((cr_identifier_declaration_list, cr_behaviour_expression)),
CR_Sum_gate_expression KC__P((cr_gate_declaration_list, cr_behaviour_expression)),
CR_Par_expression KC__P((cr_gate_declaration_list, cr_parallel_operator, cr_behaviour_expression, cr_LABEL)),
CR_Hiding_expression KC__P((cr_gate_identifier_list, cr_behaviour_expression)),
CR_Enable_expression KC__P((cr_behaviour_expression, cr_identifier_declaration_list, cr_behaviour_expression)),
CR_Disable_expression KC__P((cr_behaviour_expression, cr_behaviour_expression)),
CR_Parallel_expression KC__P((cr_behaviour_expression, cr_parallel_operator, cr_behaviour_expression, cr_LABEL)),
CR_Choice_expression KC__P((cr_behaviour_expression, cr_behaviour_expression)),
CR_Guarded_expression KC__P((cr_equality, cr_behaviour_expression)),
CR_Annotated_behaviour KC__P((cr_annotation_list, cr_behaviour_expression));
cr_parallel_operator	CR_Synchronization_operator KC__P(()),
CR_Interleave_operator KC__P(()),
CR_General_parallel_operator KC__P((cr_gate_identifier_list));
cr_gate_declaration_list	Nilcr_gate_declaration_list KC__P(()),
Conscr_gate_declaration_list KC__P((cr_gate_declaration, cr_gate_declaration_list));
cr_gate_declaration	CR_Gate_declaration KC__P((cr_gate_identifier_list, cr_gate_identifier_list));
cr_gate_identifier_list	Nilcr_gate_identifier_list KC__P(()),
Conscr_gate_identifier_list KC__P((cr_gate_identifier, cr_gate_identifier_list));
cr_exit_entry_list	Nilcr_exit_entry_list KC__P(()),
Conscr_exit_entry_list KC__P((cr_exit_entry, cr_exit_entry_list));
cr_exit_entry	CR_Value_expression_exit_entry KC__P((cr_value_expression)),
CR_Sort_identifier_exit_entry KC__P((cr_sort_identifier));
cr_identifier_equation_list	Nilcr_identifier_equation_list KC__P(()),
Conscr_identifier_equation_list KC__P((cr_identifier_equation, cr_identifier_equation_list));
cr_identifier_equation	CR_Identifier_equation KC__P((cr_identifier_declaration, cr_value_expression));
cr_action_denotation	CR_Communication KC__P((cr_gate_identifier, cr_experiment_option)),
CR_Internal_event KC__P(());
cr_experiment_option	CR_NoExperiment KC__P(()),
CR_YesExperiment KC__P((cr_experiment_offer_list, cr_guard_option));
cr_experiment_offer_list	Nilcr_experiment_offer_list KC__P(()),
Conscr_experiment_offer_list KC__P((cr_experiment_offer, cr_experiment_offer_list));
cr_experiment_offer	CR_Query_offer KC__P((cr_identifier_declaration)),
CR_Exclam_offer KC__P((cr_value_expression));
cr_guard_option	CR_NoGuard KC__P(()),
CR_YesGuard KC__P((cr_equality));
cr_value_expression_list	Nilcr_value_expression_list KC__P(()),
Conscr_value_expression_list KC__P((cr_value_expression, cr_value_expression_list));
cr_value_expression	CR_Term KC__P((cr_operation_identifier, cr_value_expression_list, cr_sort_identifier)),
CR_Value KC__P((cr_value_identifier, cr_sort_identifier)),
CR_Annotated_value_expression KC__P((cr_value_expression, cr_annotation_list));
cr_specification_identifier	CR_Specification_id KC__P((cr_identifier));
cr_operation_identifier	CR_Operation_id KC__P((cr_identifier));
cr_type_identifier	CR_Type_id KC__P((cr_identifier));
cr_sort_identifier	CR_Sort_id KC__P((cr_identifier));
cr_gate_identifier	CR_Gate_id KC__P((cr_identifier));
cr_value_identifier	CR_Value_id KC__P((cr_identifier));
cr_process_identifier	CR_Process_id KC__P((cr_identifier));
cr_identifier	CR_Identifier KC__P((nocasestring, cr_extension));
cr_extension	CR_NullExtension KC__P(()),
CR_DefExtension KC__P((nocasestring));
cr_operation_name	CR_Operation_name KC__P((cr_name));
cr_sort_name	CR_Sort_name KC__P((cr_name));
cr_name	CR_Name KC__P((nocasestring));
cr_comment_list	Nilcr_comment_list KC__P(()),
Conscr_comment_list KC__P((casestring, cr_comment_list));
cr_annotation_list	Nilcr_annotation_list KC__P(()),
Conscr_annotation_list KC__P((casestring, cr_annotation_list));
cr_LABEL	CR_Label KC__P((casestring));
char *kc_phylumname_or_error KC__P(( int ));
char *kc_operatorname_or_error KC__P(( int ));

struct kc_tag_kc_hashnode_t {
	kc_enum_operators prod_sel;
	kc_voidptr_t ptr;
	int number;
	boolean created;
};

struct kc_tag_nocasestring {
	kc_enum_operators prod_sel;
	char *name;
};

struct kc_tag_casestring {
	kc_enum_operators prod_sel;
	char *name;
};

struct kc_tag_cr_specification {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_LABEL cr_LABEL_1;
			cr_comment_list cr_comment_list_1;
			cr_specification_identifier cr_specification_identifier_1;
			cr_gate_identifier_list cr_gate_identifier_list_1;
			cr_identifier_declaration_list cr_identifier_declaration_list_1;
			cr_functionality cr_functionality_1;
			cr_data_type_definition_list cr_data_type_definition_list_1;
			cr_comment_list cr_comment_list_2;
			cr_definition_block cr_definition_block_1;
			cr_boolean_indication cr_boolean_indication_1;
			cr_annotation_list cr_annotation_list_1;
			cr_specification_type cr_specification_type_1;
		} CR_Spec;
	} u;
};

struct kc_tag_cr_specification_type {
	kc_enum_operators prod_sel;
};

struct kc_tag_cr_boolean_indication {
	kc_enum_operators prod_sel;
};

struct kc_tag_cr_definition_block {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_behaviour_expression cr_behaviour_expression_1;
			cr_data_type_definition_list cr_data_type_definition_list_1;
			cr_process_definition_list cr_process_definition_list_1;
		} CR_Definition_block;
	} u;
};

struct kc_tag_cr_process_definition_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_process_definition cr_process_definition_1;
			cr_process_definition_list cr_process_definition_list_1;
		} Conscr_process_definition_list;
	} u;
};

struct kc_tag_cr_process_definition {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_comment_list cr_comment_list_1;
			cr_process_identifier cr_process_identifier_1;
			cr_gate_identifier_list cr_gate_identifier_list_1;
			cr_identifier_declaration_list cr_identifier_declaration_list_1;
			cr_functionality cr_functionality_1;
			cr_definition_block cr_definition_block_1;
			cr_LABEL cr_LABEL_1;
		} CR_Process_definition;
	} u;
};

struct kc_tag_cr_functionality {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_sort_identifier_list cr_sort_identifier_list_1;
		} CR_Exit_part;
	} u;
};

struct kc_tag_cr_sort_identifier_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_sort_identifier cr_sort_identifier_1;
			cr_sort_identifier_list cr_sort_identifier_list_1;
		} Conscr_sort_identifier_list;
	} u;
};

struct kc_tag_cr_data_type_definition_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_data_type_definition cr_data_type_definition_1;
			cr_data_type_definition_list cr_data_type_definition_list_1;
		} Conscr_data_type_definition_list;
	} u;
};

struct kc_tag_cr_data_type_definition {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_comment_list cr_comment_list_1;
			cr_type_identifier cr_type_identifier_1;
			cr_p_expression cr_p_expression_1;
			cr_completeness_indication cr_completeness_indication_1;
			cr_persistency_indication cr_persistency_indication_1;
			cr_flattened_type_definition cr_flattened_type_definition_1;
			cr_annotation_list cr_annotation_list_1;
		} CR_Data_type_definition;
		struct {
			cr_type_identifier cr_type_identifier_1;
			cr_flattened_type_definition cr_flattened_type_definition_1;
			cr_annotation_list cr_annotation_list_1;
		} CR_Library_reference;
	} u;
};

struct kc_tag_cr_completeness_indication {
	kc_enum_operators prod_sel;
};

struct kc_tag_cr_persistency_indication {
	kc_enum_operators prod_sel;
};

struct kc_tag_cr_p_expression {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_type_identifier_list cr_type_identifier_list_1;
			cr_sort_declaration_list cr_sort_declaration_list_1;
			cr_operation_list cr_operation_list_1;
			cr_equations_option cr_equations_option_1;
			cr_sort_declaration_list cr_sort_declaration_list_2;
			cr_operation_list cr_operation_list_2;
			cr_equations_option cr_equations_option_2;
			cr_LABEL cr_LABEL_1;
		} CR_P_Spec;
		struct {
			cr_type_identifier cr_type_identifier_1;
			cr_type_identifier_list cr_type_identifier_list_1;
			cr_replacement cr_replacement_1;
			cr_LABEL cr_LABEL_1;
		} CR_Actualization;
		struct {
			cr_type_identifier cr_type_identifier_1;
			cr_replacement cr_replacement_1;
			cr_LABEL cr_LABEL_1;
		} CR_Renaming;
	} u;
};

struct kc_tag_cr_type_identifier_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_type_identifier cr_type_identifier_1;
			cr_type_identifier_list cr_type_identifier_list_1;
		} Conscr_type_identifier_list;
	} u;
};

struct kc_tag_cr_replacement {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_sort_replacement_list cr_sort_replacement_list_1;
			cr_operation_replacement_list cr_operation_replacement_list_1;
		} CR_Replacement;
	} u;
};

struct kc_tag_cr_sort_replacement_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_sort_replacement cr_sort_replacement_1;
			cr_sort_replacement_list cr_sort_replacement_list_1;
		} Conscr_sort_replacement_list;
	} u;
};

struct kc_tag_cr_sort_replacement {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_sort_name cr_sort_name_1;
			cr_sort_name cr_sort_name_2;
			cr_LABEL cr_LABEL_1;
		} CR_Sort_replacement;
	} u;
};

struct kc_tag_cr_sort_declaration_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_sort_declaration cr_sort_declaration_1;
			cr_sort_declaration_list cr_sort_declaration_list_1;
		} Conscr_sort_declaration_list;
	} u;
};

struct kc_tag_cr_sort_declaration {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_sort_identifier cr_sort_identifier_1;
			cr_LABEL cr_LABEL_1;
			cr_annotation_list cr_annotation_list_1;
		} CR_Sort_declaration;
	} u;
};

struct kc_tag_cr_operation_replacement_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_operation_replacement cr_operation_replacement_1;
			cr_operation_replacement_list cr_operation_replacement_list_1;
		} Conscr_operation_replacement_list;
	} u;
};

struct kc_tag_cr_operation_replacement {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_operation_name cr_operation_name_1;
			cr_operation_name cr_operation_name_2;
			cr_LABEL cr_LABEL_1;
		} CR_Operation_replacement;
	} u;
};

struct kc_tag_cr_flattened_type_definition {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_type_identifier_list cr_type_identifier_list_1;
			cr_sort_declaration_list cr_sort_declaration_list_1;
			cr_operation_list cr_operation_list_1;
			cr_equations_option cr_equations_option_1;
			cr_sort_declaration_list cr_sort_declaration_list_2;
			cr_operation_list cr_operation_list_2;
			cr_equations_option cr_equations_option_2;
		} CR_Formal_type;
		struct {
			cr_type_identifier_list cr_type_identifier_list_1;
			cr_sort_declaration_list cr_sort_declaration_list_1;
			cr_operation_list cr_operation_list_1;
			cr_equations_option cr_equations_option_1;
		} CR_Actual_type;
	} u;
};

struct kc_tag_cr_operation_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_operation cr_operation_1;
			cr_operation_list cr_operation_list_1;
		} Conscr_operation_list;
	} u;
};

struct kc_tag_cr_operation {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_operation_identifier cr_operation_identifier_1;
			cr_prefix_infix cr_prefix_infix_1;
			cr_sort_identifier_list cr_sort_identifier_list_1;
			cr_sort_identifier cr_sort_identifier_1;
			cr_rewrite_strategy cr_rewrite_strategy_1;
			cr_operator_class cr_operator_class_1;
			cr_LABEL cr_LABEL_1;
			cr_annotation_list cr_annotation_list_1;
		} CR_Operation;
	} u;
};

struct kc_tag_cr_prefix_infix {
	kc_enum_operators prod_sel;
};

struct kc_tag_cr_rewrite_strategy {
	kc_enum_operators prod_sel;
};

struct kc_tag_cr_operator_class {
	kc_enum_operators prod_sel;
};

struct kc_tag_cr_equations_option {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_identifier_declaration_list cr_identifier_declaration_list_1;
			cr_equation_structure_list cr_equation_structure_list_1;
		} CR_YesEquations;
	} u;
};

struct kc_tag_cr_equation_structure_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_equation_structure cr_equation_structure_1;
			cr_equation_structure_list cr_equation_structure_list_1;
		} Conscr_equation_structure_list;
	} u;
};

struct kc_tag_cr_equation_structure {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_sort_identifier cr_sort_identifier_1;
			cr_identifier_declaration_list cr_identifier_declaration_list_1;
			cr_equation_list cr_equation_list_1;
		} CR_Equation_structure;
	} u;
};

struct kc_tag_cr_equation_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_equation cr_equation_1;
			cr_equation_list cr_equation_list_1;
		} Conscr_equation_list;
	} u;
};

struct kc_tag_cr_equation {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_premiss_list cr_premiss_list_1;
			cr_equality cr_equality_1;
			cr_LABEL cr_LABEL_1;
		} CR_Equation;
	} u;
};

struct kc_tag_cr_premiss_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_equality cr_equality_1;
			cr_premiss_list cr_premiss_list_1;
		} Conscr_premiss_list;
	} u;
};

struct kc_tag_cr_equality {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_value_expression cr_value_expression_1;
			cr_value_expression cr_value_expression_2;
		} CR_Equals;
	} u;
};

struct kc_tag_cr_identifier_declaration_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_identifier_declaration cr_identifier_declaration_1;
			cr_identifier_declaration_list cr_identifier_declaration_list_1;
		} Conscr_identifier_declaration_list;
	} u;
};

struct kc_tag_cr_identifier_declaration {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_value_identifier_list cr_value_identifier_list_1;
			cr_sort_identifier cr_sort_identifier_1;
		} CR_Identifier_declaration;
	} u;
};

struct kc_tag_cr_value_identifier_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_annotated_value_identifier cr_annotated_value_identifier_1;
			cr_value_identifier_list cr_value_identifier_list_1;
		} Conscr_value_identifier_list;
	} u;
};

struct kc_tag_cr_annotated_value_identifier {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_value_identifier cr_value_identifier_1;
			cr_annotation_list cr_annotation_list_1;
		} CR_annotated_val_id;
	} u;
};

struct kc_tag_cr_behaviour_expression {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_LABEL cr_LABEL_1;
			cr_annotation_list cr_annotation_list_1;
		} CR_Stop_expression;
		struct {
			cr_exit_entry_list cr_exit_entry_list_1;
			cr_LABEL cr_LABEL_1;
			cr_annotation_list cr_annotation_list_1;
		} CR_Exit_expression;
		struct {
			cr_process_identifier cr_process_identifier_1;
			cr_gate_identifier_list cr_gate_identifier_list_1;
			cr_value_expression_list cr_value_expression_list_1;
			cr_LABEL cr_LABEL_1;
			cr_annotation_list cr_annotation_list_1;
		} CR_Process_instantiation;
		struct {
			cr_action_denotation cr_action_denotation_1;
			cr_behaviour_expression cr_behaviour_expression_1;
			cr_LABEL cr_LABEL_1;
			cr_annotation_list cr_annotation_list_1;
		} CR_Action_prefix_expression;
		struct {
			cr_identifier_equation_list cr_identifier_equation_list_1;
			cr_behaviour_expression cr_behaviour_expression_1;
		} CR_Local_definition_expression;
		struct {
			cr_identifier_declaration_list cr_identifier_declaration_list_1;
			cr_behaviour_expression cr_behaviour_expression_1;
		} CR_Sum_identifier_expression;
		struct {
			cr_gate_declaration_list cr_gate_declaration_list_1;
			cr_behaviour_expression cr_behaviour_expression_1;
		} CR_Sum_gate_expression;
		struct {
			cr_gate_declaration_list cr_gate_declaration_list_1;
			cr_parallel_operator cr_parallel_operator_1;
			cr_behaviour_expression cr_behaviour_expression_1;
			cr_LABEL cr_LABEL_1;
		} CR_Par_expression;
		struct {
			cr_gate_identifier_list cr_gate_identifier_list_1;
			cr_behaviour_expression cr_behaviour_expression_1;
		} CR_Hiding_expression;
		struct {
			cr_behaviour_expression cr_behaviour_expression_1;
			cr_identifier_declaration_list cr_identifier_declaration_list_1;
			cr_behaviour_expression cr_behaviour_expression_2;
		} CR_Enable_expression;
		struct {
			cr_behaviour_expression cr_behaviour_expression_1;
			cr_behaviour_expression cr_behaviour_expression_2;
		} CR_Disable_expression;
		struct {
			cr_behaviour_expression cr_behaviour_expression_1;
			cr_parallel_operator cr_parallel_operator_1;
			cr_behaviour_expression cr_behaviour_expression_2;
			cr_LABEL cr_LABEL_1;
		} CR_Parallel_expression;
		struct {
			cr_behaviour_expression cr_behaviour_expression_1;
			cr_behaviour_expression cr_behaviour_expression_2;
		} CR_Choice_expression;
		struct {
			cr_equality cr_equality_1;
			cr_behaviour_expression cr_behaviour_expression_1;
		} CR_Guarded_expression;
		struct {
			cr_annotation_list cr_annotation_list_1;
			cr_behaviour_expression cr_behaviour_expression_1;
		} CR_Annotated_behaviour;
	} u;
};

struct kc_tag_cr_parallel_operator {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_gate_identifier_list cr_gate_identifier_list_1;
		} CR_General_parallel_operator;
	} u;
};

struct kc_tag_cr_gate_declaration_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_gate_declaration cr_gate_declaration_1;
			cr_gate_declaration_list cr_gate_declaration_list_1;
		} Conscr_gate_declaration_list;
	} u;
};

struct kc_tag_cr_gate_declaration {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_gate_identifier_list cr_gate_identifier_list_1;
			cr_gate_identifier_list cr_gate_identifier_list_2;
		} CR_Gate_declaration;
	} u;
};

struct kc_tag_cr_gate_identifier_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_gate_identifier cr_gate_identifier_1;
			cr_gate_identifier_list cr_gate_identifier_list_1;
		} Conscr_gate_identifier_list;
	} u;
};

struct kc_tag_cr_exit_entry_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_exit_entry cr_exit_entry_1;
			cr_exit_entry_list cr_exit_entry_list_1;
		} Conscr_exit_entry_list;
	} u;
};

struct kc_tag_cr_exit_entry {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_value_expression cr_value_expression_1;
		} CR_Value_expression_exit_entry;
		struct {
			cr_sort_identifier cr_sort_identifier_1;
		} CR_Sort_identifier_exit_entry;
	} u;
};

struct kc_tag_cr_identifier_equation_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_identifier_equation cr_identifier_equation_1;
			cr_identifier_equation_list cr_identifier_equation_list_1;
		} Conscr_identifier_equation_list;
	} u;
};

struct kc_tag_cr_identifier_equation {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_identifier_declaration cr_identifier_declaration_1;
			cr_value_expression cr_value_expression_1;
		} CR_Identifier_equation;
	} u;
};

struct kc_tag_cr_action_denotation {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_gate_identifier cr_gate_identifier_1;
			cr_experiment_option cr_experiment_option_1;
		} CR_Communication;
	} u;
};

struct kc_tag_cr_experiment_option {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_experiment_offer_list cr_experiment_offer_list_1;
			cr_guard_option cr_guard_option_1;
		} CR_YesExperiment;
	} u;
};

struct kc_tag_cr_experiment_offer_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_experiment_offer cr_experiment_offer_1;
			cr_experiment_offer_list cr_experiment_offer_list_1;
		} Conscr_experiment_offer_list;
	} u;
};

struct kc_tag_cr_experiment_offer {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_identifier_declaration cr_identifier_declaration_1;
		} CR_Query_offer;
		struct {
			cr_value_expression cr_value_expression_1;
		} CR_Exclam_offer;
	} u;
};

struct kc_tag_cr_guard_option {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_equality cr_equality_1;
		} CR_YesGuard;
	} u;
};

struct kc_tag_cr_value_expression_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_value_expression cr_value_expression_1;
			cr_value_expression_list cr_value_expression_list_1;
		} Conscr_value_expression_list;
	} u;
};

struct kc_tag_cr_value_expression {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_operation_identifier cr_operation_identifier_1;
			cr_value_expression_list cr_value_expression_list_1;
			cr_sort_identifier cr_sort_identifier_1;
		} CR_Term;
		struct {
			cr_value_identifier cr_value_identifier_1;
			cr_sort_identifier cr_sort_identifier_1;
		} CR_Value;
		struct {
			cr_value_expression cr_value_expression_1;
			cr_annotation_list cr_annotation_list_1;
		} CR_Annotated_value_expression;
	} u;
};

struct kc_tag_cr_specification_identifier {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_identifier cr_identifier_1;
		} CR_Specification_id;
	} u;
};

struct kc_tag_cr_operation_identifier {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_identifier cr_identifier_1;
		} CR_Operation_id;
	} u;
};

struct kc_tag_cr_type_identifier {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_identifier cr_identifier_1;
		} CR_Type_id;
	} u;
};

struct kc_tag_cr_sort_identifier {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_identifier cr_identifier_1;
		} CR_Sort_id;
	} u;
};

struct kc_tag_cr_gate_identifier {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_identifier cr_identifier_1;
		} CR_Gate_id;
	} u;
};

struct kc_tag_cr_value_identifier {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_identifier cr_identifier_1;
		} CR_Value_id;
	} u;
};

struct kc_tag_cr_process_identifier {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_identifier cr_identifier_1;
		} CR_Process_id;
	} u;
};

struct kc_tag_cr_identifier {
	kc_enum_operators prod_sel;
	union {
		struct {
			nocasestring nocasestring_1;
			cr_extension cr_extension_1;
		} CR_Identifier;
	} u;
};

struct kc_tag_cr_extension {
	kc_enum_operators prod_sel;
	union {
		struct {
			nocasestring nocasestring_1;
		} CR_DefExtension;
	} u;
};

struct kc_tag_cr_operation_name {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_name cr_name_1;
		} CR_Operation_name;
	} u;
};

struct kc_tag_cr_sort_name {
	kc_enum_operators prod_sel;
	union {
		struct {
			cr_name cr_name_1;
		} CR_Sort_name;
	} u;
};

struct kc_tag_cr_name {
	kc_enum_operators prod_sel;
	union {
		struct {
			nocasestring nocasestring_1;
		} CR_Name;
	} u;
};

struct kc_tag_cr_comment_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			casestring casestring_1;
			cr_comment_list cr_comment_list_1;
		} Conscr_comment_list;
	} u;
};

struct kc_tag_cr_annotation_list {
	kc_enum_operators prod_sel;
	union {
		struct {
			casestring casestring_1;
			cr_annotation_list cr_annotation_list_1;
		} Conscr_annotation_list;
	} u;
};

struct kc_tag_cr_LABEL {
	kc_enum_operators prod_sel;
	union {
		struct {
			casestring casestring_1;
		} CR_Label;
	} u;
};

void free_nocasestring KC__P(( nocasestring, boolean ));
void free_casestring KC__P(( casestring, boolean ));
void free_float KC__P(( float, boolean ));
void free_int KC__P(( int, boolean ));
void free_cr_specification KC__P(( cr_specification, boolean ));
void free_cr_specification_type KC__P(( cr_specification_type, boolean ));
void free_cr_boolean_indication KC__P(( cr_boolean_indication, boolean ));
void free_cr_definition_block KC__P(( cr_definition_block, boolean ));
void free_cr_process_definition_list KC__P(( cr_process_definition_list, boolean ));
void free_cr_process_definition KC__P(( cr_process_definition, boolean ));
void free_cr_functionality KC__P(( cr_functionality, boolean ));
void free_cr_sort_identifier_list KC__P(( cr_sort_identifier_list, boolean ));
void free_cr_data_type_definition_list KC__P(( cr_data_type_definition_list, boolean ));
void free_cr_data_type_definition KC__P(( cr_data_type_definition, boolean ));
void free_cr_completeness_indication KC__P(( cr_completeness_indication, boolean ));
void free_cr_persistency_indication KC__P(( cr_persistency_indication, boolean ));
void free_cr_p_expression KC__P(( cr_p_expression, boolean ));
void free_cr_type_identifier_list KC__P(( cr_type_identifier_list, boolean ));
void free_cr_replacement KC__P(( cr_replacement, boolean ));
void free_cr_sort_replacement_list KC__P(( cr_sort_replacement_list, boolean ));
void free_cr_sort_replacement KC__P(( cr_sort_replacement, boolean ));
void free_cr_sort_declaration_list KC__P(( cr_sort_declaration_list, boolean ));
void free_cr_sort_declaration KC__P(( cr_sort_declaration, boolean ));
void free_cr_operation_replacement_list KC__P(( cr_operation_replacement_list, boolean ));
void free_cr_operation_replacement KC__P(( cr_operation_replacement, boolean ));
void free_cr_flattened_type_definition KC__P(( cr_flattened_type_definition, boolean ));
void free_cr_operation_list KC__P(( cr_operation_list, boolean ));
void free_cr_operation KC__P(( cr_operation, boolean ));
void free_cr_prefix_infix KC__P(( cr_prefix_infix, boolean ));
void free_cr_rewrite_strategy KC__P(( cr_rewrite_strategy, boolean ));
void free_cr_operator_class KC__P(( cr_operator_class, boolean ));
void free_cr_equations_option KC__P(( cr_equations_option, boolean ));
void free_cr_equation_structure_list KC__P(( cr_equation_structure_list, boolean ));
void free_cr_equation_structure KC__P(( cr_equation_structure, boolean ));
void free_cr_equation_list KC__P(( cr_equation_list, boolean ));
void free_cr_equation KC__P(( cr_equation, boolean ));
void free_cr_premiss_list KC__P(( cr_premiss_list, boolean ));
void free_cr_equality KC__P(( cr_equality, boolean ));
void free_cr_identifier_declaration_list KC__P(( cr_identifier_declaration_list, boolean ));
void free_cr_identifier_declaration KC__P(( cr_identifier_declaration, boolean ));
void free_cr_value_identifier_list KC__P(( cr_value_identifier_list, boolean ));
void free_cr_annotated_value_identifier KC__P(( cr_annotated_value_identifier, boolean ));
void free_cr_behaviour_expression KC__P(( cr_behaviour_expression, boolean ));
void free_cr_parallel_operator KC__P(( cr_parallel_operator, boolean ));
void free_cr_gate_declaration_list KC__P(( cr_gate_declaration_list, boolean ));
void free_cr_gate_declaration KC__P(( cr_gate_declaration, boolean ));
void free_cr_gate_identifier_list KC__P(( cr_gate_identifier_list, boolean ));
void free_cr_exit_entry_list KC__P(( cr_exit_entry_list, boolean ));
void free_cr_exit_entry KC__P(( cr_exit_entry, boolean ));
void free_cr_identifier_equation_list KC__P(( cr_identifier_equation_list, boolean ));
void free_cr_identifier_equation KC__P(( cr_identifier_equation, boolean ));
void free_cr_action_denotation KC__P(( cr_action_denotation, boolean ));
void free_cr_experiment_option KC__P(( cr_experiment_option, boolean ));
void free_cr_experiment_offer_list KC__P(( cr_experiment_offer_list, boolean ));
void free_cr_experiment_offer KC__P(( cr_experiment_offer, boolean ));
void free_cr_guard_option KC__P(( cr_guard_option, boolean ));
void free_cr_value_expression_list KC__P(( cr_value_expression_list, boolean ));
void free_cr_value_expression KC__P(( cr_value_expression, boolean ));
void free_cr_specification_identifier KC__P(( cr_specification_identifier, boolean ));
void free_cr_operation_identifier KC__P(( cr_operation_identifier, boolean ));
void free_cr_type_identifier KC__P(( cr_type_identifier, boolean ));
void free_cr_sort_identifier KC__P(( cr_sort_identifier, boolean ));
void free_cr_gate_identifier KC__P(( cr_gate_identifier, boolean ));
void free_cr_value_identifier KC__P(( cr_value_identifier, boolean ));
void free_cr_process_identifier KC__P(( cr_process_identifier, boolean ));
void free_cr_identifier KC__P(( cr_identifier, boolean ));
void free_cr_extension KC__P(( cr_extension, boolean ));
void free_cr_operation_name KC__P(( cr_operation_name, boolean ));
void free_cr_sort_name KC__P(( cr_sort_name, boolean ));
void free_cr_name KC__P(( cr_name, boolean ));
void free_cr_comment_list KC__P(( cr_comment_list, boolean ));
void free_cr_annotation_list KC__P(( cr_annotation_list, boolean ));
void free_cr_LABEL KC__P(( cr_LABEL, boolean ));
boolean eq_nocasestring KC__P(( nocasestring, nocasestring ));
boolean eq_casestring KC__P(( casestring, casestring ));
boolean eq_float KC__P(( float, float ));
boolean eq_int KC__P(( int, int ));
boolean eq_cr_specification KC__P(( cr_specification, cr_specification ));
boolean eq_cr_specification_type KC__P(( cr_specification_type, cr_specification_type ));
boolean eq_cr_boolean_indication KC__P(( cr_boolean_indication, cr_boolean_indication ));
boolean eq_cr_definition_block KC__P(( cr_definition_block, cr_definition_block ));
boolean eq_cr_process_definition_list KC__P(( cr_process_definition_list, cr_process_definition_list ));
boolean eq_cr_process_definition KC__P(( cr_process_definition, cr_process_definition ));
boolean eq_cr_functionality KC__P(( cr_functionality, cr_functionality ));
boolean eq_cr_sort_identifier_list KC__P(( cr_sort_identifier_list, cr_sort_identifier_list ));
boolean eq_cr_data_type_definition_list KC__P(( cr_data_type_definition_list, cr_data_type_definition_list ));
boolean eq_cr_data_type_definition KC__P(( cr_data_type_definition, cr_data_type_definition ));
boolean eq_cr_completeness_indication KC__P(( cr_completeness_indication, cr_completeness_indication ));
boolean eq_cr_persistency_indication KC__P(( cr_persistency_indication, cr_persistency_indication ));
boolean eq_cr_p_expression KC__P(( cr_p_expression, cr_p_expression ));
boolean eq_cr_type_identifier_list KC__P(( cr_type_identifier_list, cr_type_identifier_list ));
boolean eq_cr_replacement KC__P(( cr_replacement, cr_replacement ));
boolean eq_cr_sort_replacement_list KC__P(( cr_sort_replacement_list, cr_sort_replacement_list ));
boolean eq_cr_sort_replacement KC__P(( cr_sort_replacement, cr_sort_replacement ));
boolean eq_cr_sort_declaration_list KC__P(( cr_sort_declaration_list, cr_sort_declaration_list ));
boolean eq_cr_sort_declaration KC__P(( cr_sort_declaration, cr_sort_declaration ));
boolean eq_cr_operation_replacement_list KC__P(( cr_operation_replacement_list, cr_operation_replacement_list ));
boolean eq_cr_operation_replacement KC__P(( cr_operation_replacement, cr_operation_replacement ));
boolean eq_cr_flattened_type_definition KC__P(( cr_flattened_type_definition, cr_flattened_type_definition ));
boolean eq_cr_operation_list KC__P(( cr_operation_list, cr_operation_list ));
boolean eq_cr_operation KC__P(( cr_operation, cr_operation ));
boolean eq_cr_prefix_infix KC__P(( cr_prefix_infix, cr_prefix_infix ));
boolean eq_cr_rewrite_strategy KC__P(( cr_rewrite_strategy, cr_rewrite_strategy ));
boolean eq_cr_operator_class KC__P(( cr_operator_class, cr_operator_class ));
boolean eq_cr_equations_option KC__P(( cr_equations_option, cr_equations_option ));
boolean eq_cr_equation_structure_list KC__P(( cr_equation_structure_list, cr_equation_structure_list ));
boolean eq_cr_equation_structure KC__P(( cr_equation_structure, cr_equation_structure ));
boolean eq_cr_equation_list KC__P(( cr_equation_list, cr_equation_list ));
boolean eq_cr_equation KC__P(( cr_equation, cr_equation ));
boolean eq_cr_premiss_list KC__P(( cr_premiss_list, cr_premiss_list ));
boolean eq_cr_equality KC__P(( cr_equality, cr_equality ));
boolean eq_cr_identifier_declaration_list KC__P(( cr_identifier_declaration_list, cr_identifier_declaration_list ));
boolean eq_cr_identifier_declaration KC__P(( cr_identifier_declaration, cr_identifier_declaration ));
boolean eq_cr_value_identifier_list KC__P(( cr_value_identifier_list, cr_value_identifier_list ));
boolean eq_cr_annotated_value_identifier KC__P(( cr_annotated_value_identifier, cr_annotated_value_identifier ));
boolean eq_cr_behaviour_expression KC__P(( cr_behaviour_expression, cr_behaviour_expression ));
boolean eq_cr_parallel_operator KC__P(( cr_parallel_operator, cr_parallel_operator ));
boolean eq_cr_gate_declaration_list KC__P(( cr_gate_declaration_list, cr_gate_declaration_list ));
boolean eq_cr_gate_declaration KC__P(( cr_gate_declaration, cr_gate_declaration ));
boolean eq_cr_gate_identifier_list KC__P(( cr_gate_identifier_list, cr_gate_identifier_list ));
boolean eq_cr_exit_entry_list KC__P(( cr_exit_entry_list, cr_exit_entry_list ));
boolean eq_cr_exit_entry KC__P(( cr_exit_entry, cr_exit_entry ));
boolean eq_cr_identifier_equation_list KC__P(( cr_identifier_equation_list, cr_identifier_equation_list ));
boolean eq_cr_identifier_equation KC__P(( cr_identifier_equation, cr_identifier_equation ));
boolean eq_cr_action_denotation KC__P(( cr_action_denotation, cr_action_denotation ));
boolean eq_cr_experiment_option KC__P(( cr_experiment_option, cr_experiment_option ));
boolean eq_cr_experiment_offer_list KC__P(( cr_experiment_offer_list, cr_experiment_offer_list ));
boolean eq_cr_experiment_offer KC__P(( cr_experiment_offer, cr_experiment_offer ));
boolean eq_cr_guard_option KC__P(( cr_guard_option, cr_guard_option ));
boolean eq_cr_value_expression_list KC__P(( cr_value_expression_list, cr_value_expression_list ));
boolean eq_cr_value_expression KC__P(( cr_value_expression, cr_value_expression ));
boolean eq_cr_specification_identifier KC__P(( cr_specification_identifier, cr_specification_identifier ));
boolean eq_cr_operation_identifier KC__P(( cr_operation_identifier, cr_operation_identifier ));
boolean eq_cr_type_identifier KC__P(( cr_type_identifier, cr_type_identifier ));
boolean eq_cr_sort_identifier KC__P(( cr_sort_identifier, cr_sort_identifier ));
boolean eq_cr_gate_identifier KC__P(( cr_gate_identifier, cr_gate_identifier ));
boolean eq_cr_value_identifier KC__P(( cr_value_identifier, cr_value_identifier ));
boolean eq_cr_process_identifier KC__P(( cr_process_identifier, cr_process_identifier ));
boolean eq_cr_identifier KC__P(( cr_identifier, cr_identifier ));
boolean eq_cr_extension KC__P(( cr_extension, cr_extension ));
boolean eq_cr_operation_name KC__P(( cr_operation_name, cr_operation_name ));
boolean eq_cr_sort_name KC__P(( cr_sort_name, cr_sort_name ));
boolean eq_cr_name KC__P(( cr_name, cr_name ));
boolean eq_cr_comment_list KC__P(( cr_comment_list, cr_comment_list ));
boolean eq_cr_annotation_list KC__P(( cr_annotation_list, cr_annotation_list ));
boolean eq_cr_LABEL KC__P(( cr_LABEL, cr_LABEL ));
void print_nocasestring KC__P(( nocasestring ));
void print_casestring KC__P(( casestring ));
void print_float KC__P(( float ));
void print_int KC__P(( int ));
void print_cr_specification KC__P(( cr_specification ));
void print_cr_specification_type KC__P(( cr_specification_type ));
void print_cr_boolean_indication KC__P(( cr_boolean_indication ));
void print_cr_definition_block KC__P(( cr_definition_block ));
void print_cr_process_definition_list KC__P(( cr_process_definition_list ));
void print_cr_process_definition KC__P(( cr_process_definition ));
void print_cr_functionality KC__P(( cr_functionality ));
void print_cr_sort_identifier_list KC__P(( cr_sort_identifier_list ));
void print_cr_data_type_definition_list KC__P(( cr_data_type_definition_list ));
void print_cr_data_type_definition KC__P(( cr_data_type_definition ));
void print_cr_completeness_indication KC__P(( cr_completeness_indication ));
void print_cr_persistency_indication KC__P(( cr_persistency_indication ));
void print_cr_p_expression KC__P(( cr_p_expression ));
void print_cr_type_identifier_list KC__P(( cr_type_identifier_list ));
void print_cr_replacement KC__P(( cr_replacement ));
void print_cr_sort_replacement_list KC__P(( cr_sort_replacement_list ));
void print_cr_sort_replacement KC__P(( cr_sort_replacement ));
void print_cr_sort_declaration_list KC__P(( cr_sort_declaration_list ));
void print_cr_sort_declaration KC__P(( cr_sort_declaration ));
void print_cr_operation_replacement_list KC__P(( cr_operation_replacement_list ));
void print_cr_operation_replacement KC__P(( cr_operation_replacement ));
void print_cr_flattened_type_definition KC__P(( cr_flattened_type_definition ));
void print_cr_operation_list KC__P(( cr_operation_list ));
void print_cr_operation KC__P(( cr_operation ));
void print_cr_prefix_infix KC__P(( cr_prefix_infix ));
void print_cr_rewrite_strategy KC__P(( cr_rewrite_strategy ));
void print_cr_operator_class KC__P(( cr_operator_class ));
void print_cr_equations_option KC__P(( cr_equations_option ));
void print_cr_equation_structure_list KC__P(( cr_equation_structure_list ));
void print_cr_equation_structure KC__P(( cr_equation_structure ));
void print_cr_equation_list KC__P(( cr_equation_list ));
void print_cr_equation KC__P(( cr_equation ));
void print_cr_premiss_list KC__P(( cr_premiss_list ));
void print_cr_equality KC__P(( cr_equality ));
void print_cr_identifier_declaration_list KC__P(( cr_identifier_declaration_list ));
void print_cr_identifier_declaration KC__P(( cr_identifier_declaration ));
void print_cr_value_identifier_list KC__P(( cr_value_identifier_list ));
void print_cr_annotated_value_identifier KC__P(( cr_annotated_value_identifier ));
void print_cr_behaviour_expression KC__P(( cr_behaviour_expression ));
void print_cr_parallel_operator KC__P(( cr_parallel_operator ));
void print_cr_gate_declaration_list KC__P(( cr_gate_declaration_list ));
void print_cr_gate_declaration KC__P(( cr_gate_declaration ));
void print_cr_gate_identifier_list KC__P(( cr_gate_identifier_list ));
void print_cr_exit_entry_list KC__P(( cr_exit_entry_list ));
void print_cr_exit_entry KC__P(( cr_exit_entry ));
void print_cr_identifier_equation_list KC__P(( cr_identifier_equation_list ));
void print_cr_identifier_equation KC__P(( cr_identifier_equation ));
void print_cr_action_denotation KC__P(( cr_action_denotation ));
void print_cr_experiment_option KC__P(( cr_experiment_option ));
void print_cr_experiment_offer_list KC__P(( cr_experiment_offer_list ));
void print_cr_experiment_offer KC__P(( cr_experiment_offer ));
void print_cr_guard_option KC__P(( cr_guard_option ));
void print_cr_value_expression_list KC__P(( cr_value_expression_list ));
void print_cr_value_expression KC__P(( cr_value_expression ));
void print_cr_specification_identifier KC__P(( cr_specification_identifier ));
void print_cr_operation_identifier KC__P(( cr_operation_identifier ));
void print_cr_type_identifier KC__P(( cr_type_identifier ));
void print_cr_sort_identifier KC__P(( cr_sort_identifier ));
void print_cr_gate_identifier KC__P(( cr_gate_identifier ));
void print_cr_value_identifier KC__P(( cr_value_identifier ));
void print_cr_process_identifier KC__P(( cr_process_identifier ));
void print_cr_identifier KC__P(( cr_identifier ));
void print_cr_extension KC__P(( cr_extension ));
void print_cr_operation_name KC__P(( cr_operation_name ));
void print_cr_sort_name KC__P(( cr_sort_name ));
void print_cr_name KC__P(( cr_name ));
void print_cr_comment_list KC__P(( cr_comment_list ));
void print_cr_annotation_list KC__P(( cr_annotation_list ));
void print_cr_LABEL KC__P(( cr_LABEL ));
cr_process_definition_list concat_cr_process_definition_list KC__P(( cr_process_definition_list, cr_process_definition_list ));
cr_process_definition_list reverse_cr_process_definition_list KC__P(( cr_process_definition_list ));
int length_cr_process_definition_list KC__P(( cr_process_definition_list ));
cr_process_definition last_cr_process_definition_list KC__P(( cr_process_definition_list ));
cr_process_definition_list map_cr_process_definition_list KC__P(( cr_process_definition_list, cr_process_definition (*)(cr_process_definition)));
cr_process_definition_list filter_cr_process_definition_list KC__P(( cr_process_definition_list, boolean (*)(cr_process_definition)));
void freelist_cr_process_definition_list KC__P(( cr_process_definition_list ));
cr_sort_identifier_list concat_cr_sort_identifier_list KC__P(( cr_sort_identifier_list, cr_sort_identifier_list ));
cr_sort_identifier_list reverse_cr_sort_identifier_list KC__P(( cr_sort_identifier_list ));
int length_cr_sort_identifier_list KC__P(( cr_sort_identifier_list ));
cr_sort_identifier last_cr_sort_identifier_list KC__P(( cr_sort_identifier_list ));
cr_sort_identifier_list map_cr_sort_identifier_list KC__P(( cr_sort_identifier_list, cr_sort_identifier (*)(cr_sort_identifier)));
cr_sort_identifier_list filter_cr_sort_identifier_list KC__P(( cr_sort_identifier_list, boolean (*)(cr_sort_identifier)));
void freelist_cr_sort_identifier_list KC__P(( cr_sort_identifier_list ));
cr_data_type_definition_list concat_cr_data_type_definition_list KC__P(( cr_data_type_definition_list, cr_data_type_definition_list ));
cr_data_type_definition_list reverse_cr_data_type_definition_list KC__P(( cr_data_type_definition_list ));
int length_cr_data_type_definition_list KC__P(( cr_data_type_definition_list ));
cr_data_type_definition last_cr_data_type_definition_list KC__P(( cr_data_type_definition_list ));
cr_data_type_definition_list map_cr_data_type_definition_list KC__P(( cr_data_type_definition_list, cr_data_type_definition (*)(cr_data_type_definition)));
cr_data_type_definition_list filter_cr_data_type_definition_list KC__P(( cr_data_type_definition_list, boolean (*)(cr_data_type_definition)));
void freelist_cr_data_type_definition_list KC__P(( cr_data_type_definition_list ));
cr_type_identifier_list concat_cr_type_identifier_list KC__P(( cr_type_identifier_list, cr_type_identifier_list ));
cr_type_identifier_list reverse_cr_type_identifier_list KC__P(( cr_type_identifier_list ));
int length_cr_type_identifier_list KC__P(( cr_type_identifier_list ));
cr_type_identifier last_cr_type_identifier_list KC__P(( cr_type_identifier_list ));
cr_type_identifier_list map_cr_type_identifier_list KC__P(( cr_type_identifier_list, cr_type_identifier (*)(cr_type_identifier)));
cr_type_identifier_list filter_cr_type_identifier_list KC__P(( cr_type_identifier_list, boolean (*)(cr_type_identifier)));
void freelist_cr_type_identifier_list KC__P(( cr_type_identifier_list ));
cr_sort_replacement_list concat_cr_sort_replacement_list KC__P(( cr_sort_replacement_list, cr_sort_replacement_list ));
cr_sort_replacement_list reverse_cr_sort_replacement_list KC__P(( cr_sort_replacement_list ));
int length_cr_sort_replacement_list KC__P(( cr_sort_replacement_list ));
cr_sort_replacement last_cr_sort_replacement_list KC__P(( cr_sort_replacement_list ));
cr_sort_replacement_list map_cr_sort_replacement_list KC__P(( cr_sort_replacement_list, cr_sort_replacement (*)(cr_sort_replacement)));
cr_sort_replacement_list filter_cr_sort_replacement_list KC__P(( cr_sort_replacement_list, boolean (*)(cr_sort_replacement)));
void freelist_cr_sort_replacement_list KC__P(( cr_sort_replacement_list ));
cr_sort_declaration_list concat_cr_sort_declaration_list KC__P(( cr_sort_declaration_list, cr_sort_declaration_list ));
cr_sort_declaration_list reverse_cr_sort_declaration_list KC__P(( cr_sort_declaration_list ));
int length_cr_sort_declaration_list KC__P(( cr_sort_declaration_list ));
cr_sort_declaration last_cr_sort_declaration_list KC__P(( cr_sort_declaration_list ));
cr_sort_declaration_list map_cr_sort_declaration_list KC__P(( cr_sort_declaration_list, cr_sort_declaration (*)(cr_sort_declaration)));
cr_sort_declaration_list filter_cr_sort_declaration_list KC__P(( cr_sort_declaration_list, boolean (*)(cr_sort_declaration)));
void freelist_cr_sort_declaration_list KC__P(( cr_sort_declaration_list ));
cr_operation_replacement_list concat_cr_operation_replacement_list KC__P(( cr_operation_replacement_list, cr_operation_replacement_list ));
cr_operation_replacement_list reverse_cr_operation_replacement_list KC__P(( cr_operation_replacement_list ));
int length_cr_operation_replacement_list KC__P(( cr_operation_replacement_list ));
cr_operation_replacement last_cr_operation_replacement_list KC__P(( cr_operation_replacement_list ));
cr_operation_replacement_list map_cr_operation_replacement_list KC__P(( cr_operation_replacement_list, cr_operation_replacement (*)(cr_operation_replacement)));
cr_operation_replacement_list filter_cr_operation_replacement_list KC__P(( cr_operation_replacement_list, boolean (*)(cr_operation_replacement)));
void freelist_cr_operation_replacement_list KC__P(( cr_operation_replacement_list ));
cr_operation_list concat_cr_operation_list KC__P(( cr_operation_list, cr_operation_list ));
cr_operation_list reverse_cr_operation_list KC__P(( cr_operation_list ));
int length_cr_operation_list KC__P(( cr_operation_list ));
cr_operation last_cr_operation_list KC__P(( cr_operation_list ));
cr_operation_list map_cr_operation_list KC__P(( cr_operation_list, cr_operation (*)(cr_operation)));
cr_operation_list filter_cr_operation_list KC__P(( cr_operation_list, boolean (*)(cr_operation)));
void freelist_cr_operation_list KC__P(( cr_operation_list ));
cr_equation_structure_list concat_cr_equation_structure_list KC__P(( cr_equation_structure_list, cr_equation_structure_list ));
cr_equation_structure_list reverse_cr_equation_structure_list KC__P(( cr_equation_structure_list ));
int length_cr_equation_structure_list KC__P(( cr_equation_structure_list ));
cr_equation_structure last_cr_equation_structure_list KC__P(( cr_equation_structure_list ));
cr_equation_structure_list map_cr_equation_structure_list KC__P(( cr_equation_structure_list, cr_equation_structure (*)(cr_equation_structure)));
cr_equation_structure_list filter_cr_equation_structure_list KC__P(( cr_equation_structure_list, boolean (*)(cr_equation_structure)));
void freelist_cr_equation_structure_list KC__P(( cr_equation_structure_list ));
cr_equation_list concat_cr_equation_list KC__P(( cr_equation_list, cr_equation_list ));
cr_equation_list reverse_cr_equation_list KC__P(( cr_equation_list ));
int length_cr_equation_list KC__P(( cr_equation_list ));
cr_equation last_cr_equation_list KC__P(( cr_equation_list ));
cr_equation_list map_cr_equation_list KC__P(( cr_equation_list, cr_equation (*)(cr_equation)));
cr_equation_list filter_cr_equation_list KC__P(( cr_equation_list, boolean (*)(cr_equation)));
void freelist_cr_equation_list KC__P(( cr_equation_list ));
cr_premiss_list concat_cr_premiss_list KC__P(( cr_premiss_list, cr_premiss_list ));
cr_premiss_list reverse_cr_premiss_list KC__P(( cr_premiss_list ));
int length_cr_premiss_list KC__P(( cr_premiss_list ));
cr_equality last_cr_premiss_list KC__P(( cr_premiss_list ));
cr_premiss_list map_cr_premiss_list KC__P(( cr_premiss_list, cr_equality (*)(cr_equality)));
cr_premiss_list filter_cr_premiss_list KC__P(( cr_premiss_list, boolean (*)(cr_equality)));
void freelist_cr_premiss_list KC__P(( cr_premiss_list ));
cr_identifier_declaration_list concat_cr_identifier_declaration_list KC__P(( cr_identifier_declaration_list, cr_identifier_declaration_list ));
cr_identifier_declaration_list reverse_cr_identifier_declaration_list KC__P(( cr_identifier_declaration_list ));
int length_cr_identifier_declaration_list KC__P(( cr_identifier_declaration_list ));
cr_identifier_declaration last_cr_identifier_declaration_list KC__P(( cr_identifier_declaration_list ));
cr_identifier_declaration_list map_cr_identifier_declaration_list KC__P(( cr_identifier_declaration_list, cr_identifier_declaration (*)(cr_identifier_declaration)));
cr_identifier_declaration_list filter_cr_identifier_declaration_list KC__P(( cr_identifier_declaration_list, boolean (*)(cr_identifier_declaration)));
void freelist_cr_identifier_declaration_list KC__P(( cr_identifier_declaration_list ));
cr_value_identifier_list concat_cr_value_identifier_list KC__P(( cr_value_identifier_list, cr_value_identifier_list ));
cr_value_identifier_list reverse_cr_value_identifier_list KC__P(( cr_value_identifier_list ));
int length_cr_value_identifier_list KC__P(( cr_value_identifier_list ));
cr_annotated_value_identifier last_cr_value_identifier_list KC__P(( cr_value_identifier_list ));
cr_value_identifier_list map_cr_value_identifier_list KC__P(( cr_value_identifier_list, cr_annotated_value_identifier (*)(cr_annotated_value_identifier)));
cr_value_identifier_list filter_cr_value_identifier_list KC__P(( cr_value_identifier_list, boolean (*)(cr_annotated_value_identifier)));
void freelist_cr_value_identifier_list KC__P(( cr_value_identifier_list ));
cr_gate_declaration_list concat_cr_gate_declaration_list KC__P(( cr_gate_declaration_list, cr_gate_declaration_list ));
cr_gate_declaration_list reverse_cr_gate_declaration_list KC__P(( cr_gate_declaration_list ));
int length_cr_gate_declaration_list KC__P(( cr_gate_declaration_list ));
cr_gate_declaration last_cr_gate_declaration_list KC__P(( cr_gate_declaration_list ));
cr_gate_declaration_list map_cr_gate_declaration_list KC__P(( cr_gate_declaration_list, cr_gate_declaration (*)(cr_gate_declaration)));
cr_gate_declaration_list filter_cr_gate_declaration_list KC__P(( cr_gate_declaration_list, boolean (*)(cr_gate_declaration)));
void freelist_cr_gate_declaration_list KC__P(( cr_gate_declaration_list ));
cr_gate_identifier_list concat_cr_gate_identifier_list KC__P(( cr_gate_identifier_list, cr_gate_identifier_list ));
cr_gate_identifier_list reverse_cr_gate_identifier_list KC__P(( cr_gate_identifier_list ));
int length_cr_gate_identifier_list KC__P(( cr_gate_identifier_list ));
cr_gate_identifier last_cr_gate_identifier_list KC__P(( cr_gate_identifier_list ));
cr_gate_identifier_list map_cr_gate_identifier_list KC__P(( cr_gate_identifier_list, cr_gate_identifier (*)(cr_gate_identifier)));
cr_gate_identifier_list filter_cr_gate_identifier_list KC__P(( cr_gate_identifier_list, boolean (*)(cr_gate_identifier)));
void freelist_cr_gate_identifier_list KC__P(( cr_gate_identifier_list ));
cr_exit_entry_list concat_cr_exit_entry_list KC__P(( cr_exit_entry_list, cr_exit_entry_list ));
cr_exit_entry_list reverse_cr_exit_entry_list KC__P(( cr_exit_entry_list ));
int length_cr_exit_entry_list KC__P(( cr_exit_entry_list ));
cr_exit_entry last_cr_exit_entry_list KC__P(( cr_exit_entry_list ));
cr_exit_entry_list map_cr_exit_entry_list KC__P(( cr_exit_entry_list, cr_exit_entry (*)(cr_exit_entry)));
cr_exit_entry_list filter_cr_exit_entry_list KC__P(( cr_exit_entry_list, boolean (*)(cr_exit_entry)));
void freelist_cr_exit_entry_list KC__P(( cr_exit_entry_list ));
cr_identifier_equation_list concat_cr_identifier_equation_list KC__P(( cr_identifier_equation_list, cr_identifier_equation_list ));
cr_identifier_equation_list reverse_cr_identifier_equation_list KC__P(( cr_identifier_equation_list ));
int length_cr_identifier_equation_list KC__P(( cr_identifier_equation_list ));
cr_identifier_equation last_cr_identifier_equation_list KC__P(( cr_identifier_equation_list ));
cr_identifier_equation_list map_cr_identifier_equation_list KC__P(( cr_identifier_equation_list, cr_identifier_equation (*)(cr_identifier_equation)));
cr_identifier_equation_list filter_cr_identifier_equation_list KC__P(( cr_identifier_equation_list, boolean (*)(cr_identifier_equation)));
void freelist_cr_identifier_equation_list KC__P(( cr_identifier_equation_list ));
cr_experiment_offer_list concat_cr_experiment_offer_list KC__P(( cr_experiment_offer_list, cr_experiment_offer_list ));
cr_experiment_offer_list reverse_cr_experiment_offer_list KC__P(( cr_experiment_offer_list ));
int length_cr_experiment_offer_list KC__P(( cr_experiment_offer_list ));
cr_experiment_offer last_cr_experiment_offer_list KC__P(( cr_experiment_offer_list ));
cr_experiment_offer_list map_cr_experiment_offer_list KC__P(( cr_experiment_offer_list, cr_experiment_offer (*)(cr_experiment_offer)));
cr_experiment_offer_list filter_cr_experiment_offer_list KC__P(( cr_experiment_offer_list, boolean (*)(cr_experiment_offer)));
void freelist_cr_experiment_offer_list KC__P(( cr_experiment_offer_list ));
cr_value_expression_list concat_cr_value_expression_list KC__P(( cr_value_expression_list, cr_value_expression_list ));
cr_value_expression_list reverse_cr_value_expression_list KC__P(( cr_value_expression_list ));
int length_cr_value_expression_list KC__P(( cr_value_expression_list ));
cr_value_expression last_cr_value_expression_list KC__P(( cr_value_expression_list ));
cr_value_expression_list map_cr_value_expression_list KC__P(( cr_value_expression_list, cr_value_expression (*)(cr_value_expression)));
cr_value_expression_list filter_cr_value_expression_list KC__P(( cr_value_expression_list, boolean (*)(cr_value_expression)));
void freelist_cr_value_expression_list KC__P(( cr_value_expression_list ));
cr_comment_list concat_cr_comment_list KC__P(( cr_comment_list, cr_comment_list ));
cr_comment_list reverse_cr_comment_list KC__P(( cr_comment_list ));
int length_cr_comment_list KC__P(( cr_comment_list ));
casestring last_cr_comment_list KC__P(( cr_comment_list ));
cr_comment_list map_cr_comment_list KC__P(( cr_comment_list, casestring (*)(casestring)));
cr_comment_list filter_cr_comment_list KC__P(( cr_comment_list, boolean (*)(casestring)));
void freelist_cr_comment_list KC__P(( cr_comment_list ));
cr_annotation_list concat_cr_annotation_list KC__P(( cr_annotation_list, cr_annotation_list ));
cr_annotation_list reverse_cr_annotation_list KC__P(( cr_annotation_list ));
int length_cr_annotation_list KC__P(( cr_annotation_list ));
casestring last_cr_annotation_list KC__P(( cr_annotation_list ));
cr_annotation_list map_cr_annotation_list KC__P(( cr_annotation_list, casestring (*)(casestring)));
cr_annotation_list filter_cr_annotation_list KC__P(( cr_annotation_list, boolean (*)(casestring)));
void freelist_cr_annotation_list KC__P(( cr_annotation_list ));
nocasestring copy_nocasestring KC__P(( nocasestring, boolean ));
casestring copy_casestring KC__P(( casestring, boolean ));
float copy_float KC__P(( float, boolean ));
int copy_int KC__P(( int, boolean ));
cr_specification copy_cr_specification KC__P(( cr_specification, boolean ));
cr_specification_type copy_cr_specification_type KC__P(( cr_specification_type, boolean ));
cr_boolean_indication copy_cr_boolean_indication KC__P(( cr_boolean_indication, boolean ));
cr_definition_block copy_cr_definition_block KC__P(( cr_definition_block, boolean ));
cr_process_definition_list copy_cr_process_definition_list KC__P(( cr_process_definition_list, boolean ));
cr_process_definition copy_cr_process_definition KC__P(( cr_process_definition, boolean ));
cr_functionality copy_cr_functionality KC__P(( cr_functionality, boolean ));
cr_sort_identifier_list copy_cr_sort_identifier_list KC__P(( cr_sort_identifier_list, boolean ));
cr_data_type_definition_list copy_cr_data_type_definition_list KC__P(( cr_data_type_definition_list, boolean ));
cr_data_type_definition copy_cr_data_type_definition KC__P(( cr_data_type_definition, boolean ));
cr_completeness_indication copy_cr_completeness_indication KC__P(( cr_completeness_indication, boolean ));
cr_persistency_indication copy_cr_persistency_indication KC__P(( cr_persistency_indication, boolean ));
cr_p_expression copy_cr_p_expression KC__P(( cr_p_expression, boolean ));
cr_type_identifier_list copy_cr_type_identifier_list KC__P(( cr_type_identifier_list, boolean ));
cr_replacement copy_cr_replacement KC__P(( cr_replacement, boolean ));
cr_sort_replacement_list copy_cr_sort_replacement_list KC__P(( cr_sort_replacement_list, boolean ));
cr_sort_replacement copy_cr_sort_replacement KC__P(( cr_sort_replacement, boolean ));
cr_sort_declaration_list copy_cr_sort_declaration_list KC__P(( cr_sort_declaration_list, boolean ));
cr_sort_declaration copy_cr_sort_declaration KC__P(( cr_sort_declaration, boolean ));
cr_operation_replacement_list copy_cr_operation_replacement_list KC__P(( cr_operation_replacement_list, boolean ));
cr_operation_replacement copy_cr_operation_replacement KC__P(( cr_operation_replacement, boolean ));
cr_flattened_type_definition copy_cr_flattened_type_definition KC__P(( cr_flattened_type_definition, boolean ));
cr_operation_list copy_cr_operation_list KC__P(( cr_operation_list, boolean ));
cr_operation copy_cr_operation KC__P(( cr_operation, boolean ));
cr_prefix_infix copy_cr_prefix_infix KC__P(( cr_prefix_infix, boolean ));
cr_rewrite_strategy copy_cr_rewrite_strategy KC__P(( cr_rewrite_strategy, boolean ));
cr_operator_class copy_cr_operator_class KC__P(( cr_operator_class, boolean ));
cr_equations_option copy_cr_equations_option KC__P(( cr_equations_option, boolean ));
cr_equation_structure_list copy_cr_equation_structure_list KC__P(( cr_equation_structure_list, boolean ));
cr_equation_structure copy_cr_equation_structure KC__P(( cr_equation_structure, boolean ));
cr_equation_list copy_cr_equation_list KC__P(( cr_equation_list, boolean ));
cr_equation copy_cr_equation KC__P(( cr_equation, boolean ));
cr_premiss_list copy_cr_premiss_list KC__P(( cr_premiss_list, boolean ));
cr_equality copy_cr_equality KC__P(( cr_equality, boolean ));
cr_identifier_declaration_list copy_cr_identifier_declaration_list KC__P(( cr_identifier_declaration_list, boolean ));
cr_identifier_declaration copy_cr_identifier_declaration KC__P(( cr_identifier_declaration, boolean ));
cr_value_identifier_list copy_cr_value_identifier_list KC__P(( cr_value_identifier_list, boolean ));
cr_annotated_value_identifier copy_cr_annotated_value_identifier KC__P(( cr_annotated_value_identifier, boolean ));
cr_behaviour_expression copy_cr_behaviour_expression KC__P(( cr_behaviour_expression, boolean ));
cr_parallel_operator copy_cr_parallel_operator KC__P(( cr_parallel_operator, boolean ));
cr_gate_declaration_list copy_cr_gate_declaration_list KC__P(( cr_gate_declaration_list, boolean ));
cr_gate_declaration copy_cr_gate_declaration KC__P(( cr_gate_declaration, boolean ));
cr_gate_identifier_list copy_cr_gate_identifier_list KC__P(( cr_gate_identifier_list, boolean ));
cr_exit_entry_list copy_cr_exit_entry_list KC__P(( cr_exit_entry_list, boolean ));
cr_exit_entry copy_cr_exit_entry KC__P(( cr_exit_entry, boolean ));
cr_identifier_equation_list copy_cr_identifier_equation_list KC__P(( cr_identifier_equation_list, boolean ));
cr_identifier_equation copy_cr_identifier_equation KC__P(( cr_identifier_equation, boolean ));
cr_action_denotation copy_cr_action_denotation KC__P(( cr_action_denotation, boolean ));
cr_experiment_option copy_cr_experiment_option KC__P(( cr_experiment_option, boolean ));
cr_experiment_offer_list copy_cr_experiment_offer_list KC__P(( cr_experiment_offer_list, boolean ));
cr_experiment_offer copy_cr_experiment_offer KC__P(( cr_experiment_offer, boolean ));
cr_guard_option copy_cr_guard_option KC__P(( cr_guard_option, boolean ));
cr_value_expression_list copy_cr_value_expression_list KC__P(( cr_value_expression_list, boolean ));
cr_value_expression copy_cr_value_expression KC__P(( cr_value_expression, boolean ));
cr_specification_identifier copy_cr_specification_identifier KC__P(( cr_specification_identifier, boolean ));
cr_operation_identifier copy_cr_operation_identifier KC__P(( cr_operation_identifier, boolean ));
cr_type_identifier copy_cr_type_identifier KC__P(( cr_type_identifier, boolean ));
cr_sort_identifier copy_cr_sort_identifier KC__P(( cr_sort_identifier, boolean ));
cr_gate_identifier copy_cr_gate_identifier KC__P(( cr_gate_identifier, boolean ));
cr_value_identifier copy_cr_value_identifier KC__P(( cr_value_identifier, boolean ));
cr_process_identifier copy_cr_process_identifier KC__P(( cr_process_identifier, boolean ));
cr_identifier copy_cr_identifier KC__P(( cr_identifier, boolean ));
cr_extension copy_cr_extension KC__P(( cr_extension, boolean ));
cr_operation_name copy_cr_operation_name KC__P(( cr_operation_name, boolean ));
cr_sort_name copy_cr_sort_name KC__P(( cr_sort_name, boolean ));
cr_name copy_cr_name KC__P(( cr_name, boolean ));
cr_comment_list copy_cr_comment_list KC__P(( cr_comment_list, boolean ));
cr_annotation_list copy_cr_annotation_list KC__P(( cr_annotation_list, boolean ));
cr_LABEL copy_cr_LABEL KC__P(( cr_LABEL, boolean ));

#endif /* KC_TYPES_HEADER */
