2005-08-17 15:45:10 +00:00
|
|
|
(*****************************************************************************
|
2016-10-23 23:35:11 +00:00
|
|
|
* su4sml --- an SML repository for managing (Secure)UML/OCL models
|
2007-07-04 06:41:30 +00:00
|
|
|
* http://projects.brucker.ch/su4sml/
|
2005-08-17 15:45:10 +00:00
|
|
|
*
|
2007-07-04 06:41:30 +00:00
|
|
|
* 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.
|
2005-08-17 15:45:10 +00:00
|
|
|
******************************************************************************)
|
2007-07-04 06:41:30 +00:00
|
|
|
(* $Id$ *)
|
2005-08-17 15:45:10 +00:00
|
|
|
|
2009-01-03 21:18:36 +00:00
|
|
|
use "config.sml";
|
2008-03-27 19:45:27 +00:00
|
|
|
use "rep_helper.sml";
|
2008-03-30 16:37:42 +00:00
|
|
|
use "rep_logger.sml";
|
2007-11-22 21:37:10 +00:00
|
|
|
use "stringHandling.sml";
|
2005-09-08 09:43:47 +00:00
|
|
|
|
|
|
|
(* ****************************************************** *)
|
|
|
|
(* Load the (foreign) fxp-module providing
|
|
|
|
an elemantary library in processing xml documents. *)
|
2005-09-15 13:51:27 +00:00
|
|
|
OS.FileSys.chDir "../lib/fxp/src";
|
2005-08-17 15:45:10 +00:00
|
|
|
use "ROOT.ML";
|
2005-09-15 13:51:27 +00:00
|
|
|
OS.FileSys.chDir "../../../src";
|
2005-08-17 15:45:10 +00:00
|
|
|
|
2007-01-25 16:26:11 +00:00
|
|
|
OS.FileSys.chDir "compiler";
|
|
|
|
|
|
|
|
use "compiler_ext.sig";
|
|
|
|
|
2008-07-13 10:28:58 +00:00
|
|
|
val ml_system = getOpt (OS.Process.getEnv "ML_SYSTEM", "polyml-5.2")
|
2007-03-01 12:34:02 +00:00
|
|
|
|
2007-11-22 21:37:10 +00:00
|
|
|
val use_wrapper = if (String.isSubstring "poly" ml_system)
|
2008-07-13 10:28:58 +00:00
|
|
|
then if (String.isSubstring "polyml-5.0" ml_system)
|
|
|
|
orelse (String.isSubstring "polyml-5.1" ml_system)
|
2008-07-12 18:23:24 +00:00
|
|
|
then (use "../contrib/HashTable.sml"; "polyml.sml")
|
|
|
|
else (use "../contrib/HashTable.sml"; "polyml-5.2.sml")
|
2007-01-25 16:26:11 +00:00
|
|
|
else "smlnj.sml";
|
|
|
|
|
|
|
|
|
|
|
|
use use_wrapper; (* or "smlnj.sml", "polyml.sml" or "mlton.sml" *)
|
|
|
|
|
|
|
|
OS.FileSys.chDir "..";
|
|
|
|
|
2005-09-08 09:43:47 +00:00
|
|
|
|
2005-10-20 13:08:17 +00:00
|
|
|
(* ****************************************************** *)
|
|
|
|
(* 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";
|
2005-10-28 14:39:09 +00:00
|
|
|
use "xmi_datatypes.sml";
|
|
|
|
use "xmi_extension_mechanisms.sml";
|
2005-10-20 13:08:17 +00:00
|
|
|
use "xmi_state_machines.sml";
|
|
|
|
use "xmi_activity_graphs.sml";
|
2005-10-28 14:39:09 +00:00
|
|
|
use "xmi_core.sml";
|
2005-10-20 13:08:17 +00:00
|
|
|
use "xmi.sml";
|
|
|
|
|
|
|
|
|
2005-09-08 09:43:47 +00:00
|
|
|
|
|
|
|
(* ****************************************************** *)
|
|
|
|
(* Abstract Representation ("The Repository") of a UML model.
|
|
|
|
- References resolved
|
|
|
|
- only supported parts were represented
|
|
|
|
- structural simplifications whereever needed for
|
|
|
|
our applications. *)
|
2005-09-07 17:02:47 +00:00
|
|
|
use "rep_ocl.sml";
|
2005-09-08 09:26:32 +00:00
|
|
|
use "rep_state_machines.sml";
|
2005-09-07 17:02:47 +00:00
|
|
|
use "rep_activity_graphs.sml";
|
|
|
|
use "rep_core.sml";
|
2006-10-04 08:03:29 +00:00
|
|
|
use "ocl_library.sml";
|
2005-10-28 14:39:09 +00:00
|
|
|
(* use "rep_secureuml.sig"; *)
|
|
|
|
(* use "rep_secureuml.sml"; *)
|
2005-09-07 17:44:26 +00:00
|
|
|
use "rep.sml";
|
2005-09-07 17:49:13 +00:00
|
|
|
|
2005-09-08 09:43:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2005-10-20 14:35:46 +00:00
|
|
|
(* support functions *)
|
2005-10-30 19:15:00 +00:00
|
|
|
use "ocl2string.sml";
|
2007-02-09 11:14:53 +00:00
|
|
|
use "ocl2dresdenjava.sml";
|
2005-09-08 17:00:46 +00:00
|
|
|
|
2005-09-08 09:43:47 +00:00
|
|
|
(* ****************************************************** *)
|
|
|
|
(* Main Conversion Processes *)
|
2009-03-25 17:13:38 +00:00
|
|
|
use "config.sml";
|
2006-10-18 17:38:47 +00:00
|
|
|
use "xmltree.sml";
|
|
|
|
use "xmltree_helper.sml";
|
|
|
|
use "xmltree_hooks.sml";
|
|
|
|
use "xmltree_writer.sml";
|
2005-09-08 09:43:47 +00:00
|
|
|
use "xmltree_parser.sml"; (* provides explicit xml-tree data structure,
|
|
|
|
abstracts away fxp package. *)
|
2006-10-18 17:38:47 +00:00
|
|
|
use "xmi_parser.sml"; (* conversion XML to XMI *);
|
2005-09-08 17:00:46 +00:00
|
|
|
|
2005-09-14 16:51:46 +00:00
|
|
|
use "xmi_idtable.sml"; (* auxiliary table to store and dereference xmi.id's *)
|
2006-10-18 17:38:47 +00:00
|
|
|
use "rep_parser.sml"; (* conversion XMI to Rep *)
|
2005-08-17 15:45:10 +00:00
|
|
|
|
2008-02-01 14:18:41 +00:00
|
|
|
use "transform_library.sml";
|
2007-09-29 16:36:07 +00:00
|
|
|
use "rep_transform.sml";
|
2006-05-17 17:23:26 +00:00
|
|
|
use "listeq.sml";
|
2005-11-01 16:35:23 +00:00
|
|
|
use "mds.sig";
|
2005-10-28 14:39:09 +00:00
|
|
|
use "component_uml.sml";
|
|
|
|
use "secure_uml.sml";
|
|
|
|
use "rep_secure.sml";
|
2006-10-26 15:31:46 +00:00
|
|
|
use "rep_su2holocl.sml";
|
2005-11-01 16:35:23 +00:00
|
|
|
|
2006-03-21 14:14:11 +00:00
|
|
|
(* ******************************************************** *)
|
2007-06-13 05:55:41 +00:00
|
|
|
(* OCL parser and type-checker *)
|
|
|
|
OS.FileSys.chDir "ocl_parser";
|
|
|
|
use "ROOT.ML";
|
|
|
|
OS.FileSys.chDir "..";
|
|
|
|
|
|
|
|
(* ******************************************************** *)
|
|
|
|
(* codegen-module *)
|
2006-03-21 14:14:11 +00:00
|
|
|
OS.FileSys.chDir "codegen";
|
|
|
|
use "ROOT.ML";
|
|
|
|
OS.FileSys.chDir "..";
|
2008-03-24 12:32:16 +00:00
|
|
|
(* ******************************************************** *)
|
|
|
|
(* wfcpog-module *)
|
2008-04-02 22:11:24 +00:00
|
|
|
OS.FileSys.chDir "wfcpog";
|
2008-03-24 12:32:16 +00:00
|
|
|
use "ROOT.ML";
|
|
|
|
OS.FileSys.chDir "..";
|
|
|
|
|
2006-05-29 10:18:26 +00:00
|
|
|
val _ = print "successfully compiled su4sml\n"
|
|
|
|
|