Abstract Composition Definition
XT -- A Bundle of Program Transformation Tools
Description
An abstract composition definition is a definition of a composition that is independent of the type of components. It describes the components in the composition, the relation between components, the structure of the composition, and it contains URLs to locations where different component types are stored.
Types of components can be
build-level components,
source files, petri nets, etc.
Example
Below is an example of an abstract composition definition for the composition described at
KoalaCompiler.
component koala-bundle (BUNDLE)
{
path = koala-bundle
}
{
}
component asfix-tools (ASFIX-TOOLS)
{
path = koala-bundle/asfix-tools
url = file:///home/mdejonge/pkgs
}
{
IbinASFIX-TOOLS : asfix-tools -> koala-bundle/asfix-tools/asfix-tools-1_0
IlibATERM : aterm -> koala-bundle/aterm
IlibXTC : xtc -> koala-bundle/stratego
IlibSRTS : srts -> koala-bundle/stratego
}
module asfix-tools-1_0
{
path = koala-bundle/asfix-tools/asfix-tools-1_0
url = file:///home/mdejonge/pkgs
}
{
IlibATERM : aterm -> koala-bundle/asfix-tools
IlibXTC : xtc -> koala-bundle/asfix-tools
IlibSRTS : srts -> koala-bundle/asfix-tools
}
component aterm (ATerm)
{
path = koala-bundle/aterm
url = file:///home/mdejonge/pkgs
}
{
IlibATERM : aterm -> koala-bundle/aterm/aterm-1_0
}
module aterm-1_0
{
path = koala-bundle/aterm/aterm-1_0
url = file:///home/mdejonge/pkgs
}
{
}
component gpp (GPP)
{
path = koala-bundle/gpp
url = file:///home/mdejonge/pkgs
}
{
IbinGPP : gpp -> koala-bundle/gpp/gpp-1_0
IlibATERM : aterm -> koala-bundle/aterm
IbinASFIX-TOOLS : asfix-tools -> koala-bundle/asfix-tools
IbinSGLR : sglr -> koala-bundle/sglr
IbinGRAPH-TOOLS : graph-tools -> koala-bundle/graph-tools
IlibSRTS : srts -> koala-bundle/stratego
IlibXTC : xtc -> koala-bundle/stratego
}
module gpp-1_0
{
path = koala-bundle/gpp/gpp-1_0
url = file:///home/mdejonge/pkgs
}
{
IlibATERM : aterm -> koala-bundle/gpp
IbinASFIX-TOOLS : asfix-tools -> koala-bundle/gpp
IbinSGLR : sglr -> koala-bundle/gpp
IbinGRAPH-TOOLS : graph-tools -> koala-bundle/gpp
IlibSRTS : srts -> koala-bundle/gpp
IlibXTC : xtc -> koala-bundle/gpp
}
component graph-tools (GRAPH-TOOLS)
{
path = koala-bundle/graph-tools
url = file:///home/mdejonge/pkgs
}
{
IbinGRAPH-TOOLS : graph-tools -> koala-bundle/graph-tools/graph-tools-1_0
IlibATERM : aterm -> koala-bundle/aterm
IlibSRTS : srts -> koala-bundle/stratego
IlibXTC : xtc -> koala-bundle/stratego
}
module graph-tools-1_0
{
path = koala-bundle/graph-tools/graph-tools-1_0
url = file:///home/mdejonge/pkgs
}
{
IlibATERM : aterm -> koala-bundle/graph-tools
IlibXTC : xtc -> koala-bundle/graph-tools
IlibSRTS : srts -> koala-bundle/graph-tools
}
component sglr (mySGLR)
{
path = koala-bundle/sglr
url = file:///home/mdejonge/pkgs
}
{
IbinSGLR : sglr -> koala-bundle/sglr/sglr-1_0
IlibPT-SUPPORT : pt-support -> koala-bundle/sglr/pt-support-1_0
IlibTOOLBUS-LIB : toolbus-lib -> koala-bundle/sglr/toolbus-lib-1_0
IlibATERM : aterm -> koala-bundle/aterm
}
module sglr-1_0
{
path = koala-bundle/sglr/sglr-1_0
url = file:///home/mdejonge/pkgs
}
{
IlibPT-SUPPORT : pt-support -> koala-bundle/sglr
IlibTOOLBUS-LIB : toolbus-lib -> koala-bundle/sglr
IlibATERM : aterm -> koala-bundle/sglr
}
module pt-support-1_0
{
path = koala-bundle/sglr/pt-support-1_0
url = file:///home/mdejonge/pkgs
}
{
IlibTOOLBUS-LIB : toolbus-lib -> koala-bundle/sglr
IlibATERM : aterm -> koala-bundle/sglr
}
module toolbus-lib-1_0
{
path = koala-bundle/sglr/toolbus-lib-1_0
url = file:///home/mdejonge/pkgs
}
{
IlibATERM : aterm -> koala-bundle/sglr
}
component stratego (Stratego)
{
path = koala-bundle/stratego
}
{
IlibSRTS : srts -> koala-bundle/stratego/my_srts
IlibXTC : xtc -> koala-bundle/stratego/my_xtc
IlibATERM : aterm -> koala-bundle/aterm
}
component my_xtc (XTC)
{
path = koala-bundle/stratego/my_xtc
url = file:///home/mdejonge/pkgs
}
{
IlibXTC : xtc -> koala-bundle/stratego/my_xtc/xtc-1_0
IlibATERM : aterm -> koala-bundle/stratego
IlibSRTS : srts -> koala-bundle/stratego
}
module xtc-1_0
{
path = koala-bundle/stratego/my_xtc/xtc-1_0
url = file:///home/mdejonge/pkgs
}
{
IlibATERM : aterm -> koala-bundle/stratego/my_xtc
IlibSRTS : srts -> koala-bundle/stratego/my_xtc
}
component my_srts (SRTS)
{
path = koala-bundle/stratego/my_srts
url = file:///home/mdejonge/pkgs
}
{
IlibSRTS : srts -> koala-bundle/stratego/my_srts/srts-1_0
IlibATERM : aterm -> koala-bundle/stratego
}
module srts-1_0
{
path = koala-bundle/stratego/my_srts/srts-1_0
url = file:///home/mdejonge/pkgs
}
{
IlibATERM : aterm -> koala-bundle/stratego/my_srts
}
component koala (KOALA)
{
path = koala-bundle/koala
url = file:///home/mdejonge/pkgs
}
{
IbinKOALA : koala -> koala-bundle/koala/koala-1_0
IbinGPP : gpp -> koala-bundle/gpp
IbinSGLR : sglr -> koala-bundle/sglr
IlibSRTS : srts -> koala-bundle/stratego
IlibXTC : xtc -> koala-bundle/stratego
IlibATERM : aterm -> koala-bundle/aterm
}
module koala-1_0
{
path = koala-bundle/koala/koala-1_0
url = file:///home/mdejonge/pkgs
}
{
IbinGPP : gpp -> koala-bundle/koala
IbinSGLR : sglr -> koala-bundle/koala
IlibSRTS : srts -> koala-bundle/koala
IlibXTC : xtc -> koala-bundle/koala
IlibATERM : aterm -> koala-bundle/koala
}
--
MerijnDeJonge - 18 Feb 2004