# File   : /home/cvs/cvsroot/projects/visualstate/scope/Dependencies,v
# Comment: Dependencies file for modules in this directory
#          This dependencies file uses Mosmake
# Release: scope-0-15_final
#
#    Copyright (C) 2003 Andrzej Wasowski
#    
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#    
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#    
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Dependencies,v 1.53 2004/05/05 22:41:40 wasowski Exp

# Main level stuff

set-fn      : lib/ord-set-sig 
SymbolEnv   : util/{Symbol,env-fn} %STRUCTURE
types       : util/{Err,Haskellish} 
Prim        : %STRUCTURE
Exp         : Prim types util/Symbol 
vsr         : types Prim util/Symbol %STRUCTURE
Set         : lib/binary-set-fn util/Symbol set-fn

common      : types Exp util/{Symbol,Err} Set SymbolEnv
Absyn       : common Set 
		util/{Err,Say,Haskellish,Symbol} SymbolEnv %STRUCTURE
AbsynPrint  : Absyn util/{Symbol,Typeset} CodGenC %STRUCTURE
AbsynDot    : Absyn util/{Symbol,Dot,Cppish} codgen-sig 
AbsynLogic  : Set AbsynPrint WuddySys util/{Symbol,Typeset} %STRUCTURE

Hsm         : %STRUCTURE
HsmPrint    : Hsm util/Typeset CodGen
HsmAbsyn    : Hsm Absyn convin-sig util/{Symbol,Typeset,Err,Say}
parsehsm    : Hsm lib/Parsercomb 

convin-sig  : Absyn
VsrAbsyn    : Set Absyn convin-sig vsr util/Symbol 
lexer       : util/Err parser %MOSMLLEX
parse       : parser lexer util/{Err,Say,Symbol} %STRUCTURE
Unparse     : util/{Say,Symbol,Typeset} types vsr CodGenC %STRUCTURE 

Simplifier  : Absyn util/{Err,Symbol} %STRUCTURE
Normalise   : Set Absyn util/Symbol %STRUCTURE 
JoinTran    : Absyn %STRUCTURE # not used
StaticScope : AbsynLogic WuddySys Simplifier util/{Symbol,Typeset} %STRUCTURE
Stat        : Absyn Normalise StaticScope Set %STRUCTURE
Interpr	    : Set Absyn set-fn lib/{Fifo,binary-set-fn} util/Symbol %STRUCTURE 
codgen-sig  : Absyn
CodGen      : util/Cppish %STRUCTURE

CodGenCstubs: Absyn CodGenC codgen-sig util/Symbol
CodGenCdrv  : Absyn CodGenC codgen-sig util/Symbol
CodGenHsm   : Absyn util/{Symbol,Cppish,Err,Say,Typeset} Hsm HsmPrint codgen-sig SymbolEnv
CodGenDot   : Absyn AbsynPrint util/{Symbol,Dot,Cppish} codgen-sig
CodGenScope : codgen-sig
parser      : types vsr lib/Parsercomb util/{Err,Symbol} %MOSMLYAC
Semant      : Absyn %STRUCTURE
WuddySys    : Set wuddy/wuddy-fn util/{Haskellish,Symbol,Err} SymbolEnv Absyn %STRUCTURE

Main        : parse parserl CodGenC Absyn 
		Stat util/{Say,Err,Haskellish,Symbol,env-fn} Optimize Specialize
		flatten VsrAbsyn Unparse BuildACFG CodGenC1 CodGenCF CodGenCstubs 
		CodGenCdrv CodGenScope AbsynDot parsehsm HsmAbsyn CodGenHsm 
		CodGenDot Interpr lib/getopt WuddySys 
MainRun     : <l:-standalone> Main %PROGRAM
MainTest    : Main

# common units of C code generators

lr                : util/{Symbol,UList,Err} types Exp CodGen
CodGenC           : util/{Haskellish,Typeset} types Exp CodGen SymbolEnv %STRUCTURE
CodGenC_front     : lr common util/{Symbol,UList}
CodGenC_schedule  : common lr
CodGenC_back      : lr util/{Symbol,UList,Say}
CodGenC_back_types: CodGen %STRUCTURE
CodGenC_dump      : util/{Err,Cppish} CodGenC CodGenC_back_types %STRUCTURE

# CodGenC1 units

CodGenC1_LR          : lr types Exp CodGen SymbolEnv util/{UList,Symbol}
			StaticScope %STRUCTURE
CodGenC1_front       : CodGenC1_LR Absyn Stat util/{UList,Symbol} types 
                       CodGenC_front  %STRUCTURE
CodGenC1_schedule    : util/{Err,Say,Haskellish} CodGenC1_LR SymbolEnv 
			CodGenC_schedule %STRUCTURE
CodGenC1_back        : CodGenC_back util/{Err,Say,UList,Symbol} CodGenC1_LR 
			CodGenC_back_types CodGenC SymbolEnv %STRUCTURE
CodGenC1             : CodGenC1_front CodGenC1_schedule CodGenC1_back types
			WuddySys CodGenC_dump codgen-sig util/{Err,Say,Haskellish}

# CodGenCF units

CodGenCF	     : types flatten flat codgen-sig util/{Err,Say}
		       CodGenCF_front CodGenCF_schedule CodGenCF_back
		       CodGenC_dump
CodGenCF_LR	     : flat lr
CodGenCF_front       : CodGenCF_LR flat util/{UList,Symbol} CodGenC_front
		       types
CodGenCF_schedule    : CodGenC_schedule CodGenCF_LR util/{Err,Symbol,Say,UList}
CodGenCF_back        : CodGenC_back CodGenCF_LR CodGenC_back_types 
			util/{Err,Say,Symbol,UList}

# CodGenC2 units (ACFG approach)

BuildACFG: Absyn CodGen acfg/{ACFT,acfg-builder-fn,acfg-vis-fn,ACFT} codgen-sig WuddySys
	   util/{Err,Symbol,Cppish,Dot,Typeset} types

# Model specialization units

RL        : util/{Err,Symbol} Set SymbolEnv types %STRUCTURE
parserl   : lib/Parsercomb RL types util/Err
Specialize: trans-sig RL SymbolEnv util/{Err,Symbol} Set
Optimize  : trans-sig Absyn Set SymbolEnv util/{Err,Symbol}
trans-sig : Absyn

# Flattener

flat    : common
flatten : flat util/{Err,Haskellish,Say,listpartial} AbsynLogic Set WuddySys


