
% Specifies list of files that are compiled upon
% initial loading - plus the order for their 
% compilation.
%
% This list also determines what files are available 
% for recompilation from within the program main loop.

file_group([
            'utilities', 
            'read_basic', 
            'reload',
            'switches', 
            'print_predicates',
            'macro',
            'lexicon_compiler',
            'rule_compiler',
            'rule_interpreter',
            'incremental_analysis',
            'read_commands',
            'main_loop',

            'segment_defs',
            'phon_rules',
            'morphemes',
            'examples'
            ]). 



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Compiles all files specfied in the `file_group'

compile_all:- 
    nl, nl, 
    write('Loading files:'), nl, 
    file_group(Files), 
    compile_all(Files). 

compile_all([]).
compile_all([F|Fs]):- 
   compile(F), 
   write('   compiled: '), 
   write(F), nl, 
   compile_all(Fs).


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Compile the files:

:- compile_all.

% Compile the macros, rules, and lexicon.

:- nl, nl, write('setting up .....'), nl, 
   macro_set_up,  
   compile_twolevelrules, 
   compile_lexicon. 

% Start the program main loop

:- loop. 


