157 lines
5.3 KiB
OCaml
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"
|
|
|