#ifdef ALLOC
#	define ALLOC_CLS /* empty */
#else
#	define ALLOC_CLS extern
#endif

typedef enum {
	NO_ERROR,
	UNDEFINED_EXPRESSION,
	IS_NOT_TYPE_GROUP,
	IS_NOT_TYPE_PCGROUP,
	IS_NOT_TYPE_GROUPRING,
	IS_NOT_TYPE_GROUPEL,
	IS_NOT_TYPE_INT,
	IS_NOT_TYPE_GRELEMENT,
	IS_NOT_TYPE_VECTORSPACE,
	IS_NOT_TYPE_DLIST,
	IS_NOT_TYPE_HOMREC,
	INCOMPATIBLE_TYPES,
	INCOMPATIBLE_SPACES,
	INVREL_WRONG_GENERATOR,
	INVREL_UNEXP_CHAR,
	NO_GEN_DECL,
	NO_REL_DECL,
	MISSING_LPAR,
	INVALID_GENERATOR,
	INVALID_SEPARATOR,
	INVREL,
	INV_PC_REL,
	MEMORY_EXHAUSTED,
	TMEMORY_EXHAUSTED,
	NO_AUTOMORPHISMS,
	STRING_EXPECTED,
	WRONG_TYPE,
	FILE_OPEN_ERR,
	SYNTAX_ERROR,
	GEN_MAY_NOT_BE_REASSIGNED,
	IS_NOT_UNIT,
	DIVISION_BY_ZERO,
	NO_WEIGHTS,
	NO_INNER_AUTOMORPHISMS
} ERR_MSG;

ALLOC_CLS ERR_MSG error_no;
ALLOC_CLS ERR_MSG warning_no;

void proc_error		_(( void ));
void set_error			_(( ERR_MSG error_num ));
void set_warning		_(( ERR_MSG error_num ));

