su4sml/src/ROOT.ML

157 lines
5.3 KiB
OCaml

(*****************************************************************************
* su4sml --- an SML repository for managing (Secure)UML/OCL models
* http://projects.brucker.ch/su4sml/
*
* ROOT.ML ---
* This file is part of su4sml.
*
* Copyright (c) 2005-2007, ETH Zurich, Switzerland
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
*
* * Neither the name of the copyright holders nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
******************************************************************************)
(* $Id$ *)
use "config.sml";
use "rep_helper.sml";
use "rep_logger.sml";
use "stringHandling.sml";
(* ****************************************************** *)
(* Load the (foreign) fxp-module providing
an elemantary library in processing xml documents. *)
OS.FileSys.chDir "../lib/fxp/src";
use "ROOT.ML";
OS.FileSys.chDir "../../../src";
OS.FileSys.chDir "compiler";
use "compiler_ext.sig";
val ml_system = getOpt (OS.Process.getEnv "ML_SYSTEM", "polyml-5.2")
val use_wrapper = if (String.isSubstring "poly" ml_system)
then if (String.isSubstring "polyml-5.0" ml_system)
orelse (String.isSubstring "polyml-5.1" ml_system)
then (use "../contrib/HashTable.sml"; "polyml.sml")
else (use "../contrib/HashTable.sml"; "polyml-5.2.sml")
else "smlnj.sml";
use use_wrapper; (* or "smlnj.sml", "polyml.sml" or "mlton.sml" *)
OS.FileSys.chDir "..";
(* ****************************************************** *)
(* Abstract Representation of an XMI File of a UML Model.
- References kept
- only "interesting" parts were represented
- structural simplifications whereever needed for
our applications.
- Layout Information skippedi
- the structure is oriented towards UML 1.5
(although the supported Poseidon is apparantly based
on Version 1.4 or something ...). *)
use "xmi_ocl.sml";
use "xmi_datatypes.sml";
use "xmi_extension_mechanisms.sml";
use "xmi_state_machines.sml";
use "xmi_activity_graphs.sml";
use "xmi_core.sml";
use "xmi.sml";
(* ****************************************************** *)
(* Abstract Representation ("The Repository") of a UML model.
- References resolved
- only supported parts were represented
- structural simplifications whereever needed for
our applications. *)
use "rep_ocl.sml";
use "rep_state_machines.sml";
use "rep_activity_graphs.sml";
use "rep_core.sml";
use "ocl_library.sml";
(* use "rep_secureuml.sig"; *)
(* use "rep_secureuml.sml"; *)
use "rep.sml";
(* support functions *)
use "ocl2string.sml";
use "ocl2dresdenjava.sml";
(* ****************************************************** *)
(* Main Conversion Processes *)
use "config.sml";
use "xmltree.sml";
use "xmltree_helper.sml";
use "xmltree_hooks.sml";
use "xmltree_writer.sml";
use "xmltree_parser.sml"; (* provides explicit xml-tree data structure,
abstracts away fxp package. *)
use "xmi_parser.sml"; (* conversion XML to XMI *);
use "xmi_idtable.sml"; (* auxiliary table to store and dereference xmi.id's *)
use "rep_parser.sml"; (* conversion XMI to Rep *)
use "transform_library.sml";
use "rep_transform.sml";
use "listeq.sml";
use "mds.sig";
use "component_uml.sml";
use "secure_uml.sml";
use "rep_secure.sml";
use "rep_su2holocl.sml";
(* ******************************************************** *)
(* OCL parser and type-checker *)
OS.FileSys.chDir "ocl_parser";
use "ROOT.ML";
OS.FileSys.chDir "..";
(* ******************************************************** *)
(* codegen-module *)
OS.FileSys.chDir "codegen";
use "ROOT.ML";
OS.FileSys.chDir "..";
(* ******************************************************** *)
(* wfcpog-module *)
OS.FileSys.chDir "wfcpog";
use "ROOT.ML";
OS.FileSys.chDir "..";
val _ = print "successfully compiled su4sml\n"