/*

rcsid('$Author: pleuk $',
	'$Date: 1993/05/04 09:43:45 $',
	'$Revision: 1.60 $',
	'$Source: /usr/export/home/projects/ltg2/Pleuk/Distribution/Pleuk/SLE/RCS/configure,v $',
	'$State: Exp $').

$Log: configure,v $
# Revision 1.60  1993/05/04  09:43:45  pleuk
# Version 1.00beta from Jo
#
# Revision 1.5  1992/04/16  13:43:35  pleuk
# revisions from SLE - April 1992
#
# Revision 1.1.1.2  1992/01/28  11:56:01  chrisbr
# Jo Calders changes
#
# Revision 1.3  1991/10/21  12:51:29  pleuk
# revisions up to SLE visit 10 October 1991
#
# Revision 1.2  1991/09/25  13:11:10  pleuk
# revisions up to SLE tape 27 September 1991
#
# Revision 1.1  1991/09/16  19:23:19  pleuk
# Initial revision
#
# Revision 0.1  1991/03/06  13:14:49  pleuk
# *** empty log message ***
#

*/



/*

Definitions for the SLE system

*/

:- eccs_major_module('SLE', 
		    "term representations for grammar objects; version 0, May 15 1990", 
		    '../SLE', 'slemain.pl', 
		    [dictionary, lexical_rules, grammar_rules, 
		     templates, typing]).

:- eccs_new_file_type(dictionary, ".lex", eccs_sle_unif_reader, eccs_generic_sle_compiler, [lexical_entry], 
				true, true, local, many).
:- eccs_new_file_type(lexical_rules, ".lr", eccs_sle_unif_reader, eccs_generic_sle_compiler, [lexical_rule], 
				true, true, local, many).
:- eccs_new_file_type(grammar_rules, ".gram", eccs_sle_unif_reader, eccs_grammar_rule, [grammar_rule], 
				true, eccs_compile_rules, local, many).
:- eccs_new_file_type(templates, ".tem", eccs_sle_unif_reader, eccs_generic_sle_compiler, [template, control], 
				true, true, local, many).
:- eccs_new_file_type(typing, ".type", eccs_sle_unif_reader, eccs_sle_type_compiler, [enumerated_type, closed_type, restricted_feature], 
				true, true, global, many).


:- eccs_new_object_type(lexical_entry, multiple, eccs_print_lexical_entry).
:- eccs_new_object_type(template,  multiple, eccs_print_template).
:- eccs_new_object_type(lexical_rule,  multiple, eccs_print_lexical_rule).
:- eccs_new_object_type(grammar_rule,  multiple, eccs_print_grammar_rule).
:- eccs_new_object_type(enumerated_type, single, eccs_print_type).
:- eccs_new_object_type(closed_type, single, eccs_print_type).
:- eccs_new_object_type(restricted_feature, single, eccs_print_type).
:- eccs_new_object_type(control, single, eccs_print_control).

:- eccs_profuse_definition([lexical_entry, template]).

/*

The sort module

*/


:- eccs_new_module(sort, "Bit representations for sorts; version 0, May 15 1990",
    			 '../Sort', 'sortmodule.pl',
			 [axioms, sorts]).

:- eccs_new_file_type(axioms, ".axiom", eccs_axiom_file_reader, eccs_axiom, [properties, axiom], 
				true, true, global, unique).

:- eccs_new_file_type(sorts, ".sort", eccs_sort_definition_reader, eccs_sort, [sort_definition, dm_test, model],
				true, (eccs_encode_sort_system, eccs_compile_sorts, eccs_compile_dm_test), global, unique).

:- eccs_new_object_type(axiom, single).
:- eccs_new_object_type(sort_definition, single).
:- eccs_new_object_type(dm_test, single).
:- eccs_new_object_type(properties, single).

/*

Those things we don't want to see

*/

:- eccs_hidden_types([model]).


/*

The Protolexicon

*/

/*

:- eccs_new_module(protolexicon, 
		"High level lexical representation; version 0, Mon May 28 10:19:39 1990", 
		'../Protolexicon', 'protolexicon.pl',
		[morph_tables, network, protolexical_rules, protolexical_entries]).

:- eccs_new_file_type(morph_tables, ".mt", eccs_read_morph_tables, eccs_compile_tables, 
			[table, top_table, table_ids, subsumes, subs, suc, pre, equiv, ctable, cclass], true, eccs_q_compile_tables, global, unique).
:- eccs_new_file_type(network, ".net", eccs_read_network, eccs_compile_network, 
			[requires, fulfils, default], true, eccs_q_check_net, global, unique).
:- eccs_new_file_type(protolexical_entries, ".plex", eccs_read_plex, eccs_compile_plex_entry, 
			[plexical_entry, pderived_entry], true, eccs_close_lexicons, local, many).
:- eccs_new_file_type(protolexical_rules, ".plr", eccs_read_plexrules, eccs_compile_plex_rule, 
			[plexical_rule], true, true, local, many).


:- eccs_new_object_type(table, many).	% ?
:- eccs_new_object_type(cclass, single). % ??
:- eccs_new_object_type(requires, single).
:- eccs_new_object_type(fulfils, single).
:- eccs_new_object_type(default, single).
:- eccs_new_object_type(plexical_entry, single, eccs_print_plexical_entry).
:- eccs_new_object_type(pderived_entry, many, eccs_print_plexical_entry).
:- eccs_new_object_type(plexical_rule, many).

:- eccs_profuse_definition([plexical_entry, pderived_entry]).
*/
/*

Those things we don't want to see

*/

:- eccs_hidden_types([top_table, ctable, subs, suc, pre, equiv]).


/*

Dependencies between objects and modules

*/


:- eccs_module_dependency(sort < 'SLE').


:- eccs_module_dependency(axioms < sorts).

/*


:- eccs_module_dependency(termunif < protolexicon).

:- eccs_module_dependency(term_structures < path_abbreviations).
:- eccs_module_dependency(path_abbreviations < templates).
:- eccs_module_dependency(templates < grammar_rules).
:- eccs_module_dependency(templates < lexical_rules).
:- eccs_module_dependency(lexical_rules < dictionary).


:- eccs_module_dependency(protolexical_rules < morph_tables).
:- eccs_module_dependency(morph_tables < protolexical_entries).



*/
