blob: 9aa8e1b305c7a272b53490285bdc0b8fe1b20fa7 [file] [log] [blame]
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>The VIATRA2 Model Transformation Framework</title>
<link href="style.css" rel="stylesheet" type="text/css">
<meta content="DocBook XSL Stylesheets V1.72.0" name="generator">
<link rel="start" href="index.html"
title="The VIATRA2 Model Transformation Framework">
<link rel="next" href="sec_UsersGuide.html"
title="Chapter&nbsp;1.&nbsp;VIATRA Users Guide">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084"
alink="#0000FF">
<div class="navheader">
<table summary="Navigation header" width="100%">
<tr>
<th align="center" colspan="3">The VIATRA2 Model Transformation
Framework</th>
</tr>
<tr>
<td align="left" width="20%">&nbsp;</td>
<th align="center" width="60%">&nbsp;</th>
<td align="right" width="20%">&nbsp;<a accesskey="n"
href="sec_UsersGuide.html">Next</a></td>
</tr>
</table>
<hr>
</div>
<div class="book" lang="en">
<div class="titlepage">
<div>
<div>
<h1 class="title"><a name="N10001"></a>The VIATRA2 Model
Transformation Framework</h1>
</div>
<div>
<h2 class="subtitle">Users Guide and Transformation Language
Specification</h2>
</div>
<div>
<p class="releaseinfo">Release 3.0</p>
</div>
<div>
<p class="copyright">Copyright &copy; 2008 OptXware Ltd.</p>
</div>
<div>
<div class="legalnotice"><a name="N10024"></a>
<p class="legalnotice-title"><b>Copyright notice</b></p>
<p>All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at <a href="">http://www.eclipse.org/legal/epl-v10.html</a>
</p>
</div>
</div>
</div>
<hr>
</div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
<dt><span class="chapter"><a href="sec_VTCLSpec.html">2.
Viatra Textual Command Language (VTCL) Specification</a></span></dt>
<dd>
<dl>
<dt><span class="sect1"><a
href="sec_MainVtclConcepts.html">1. VTCL Files and Machines
(Transformations)</a></span></dt>
<dd>
<dl>
<dt><span class="sect2"><a href="sec_VtclFile.html">1.1.
VTCL Files</a></span></dt>
<dt><span class="sect2"><a
href="sec_MachineDefinition.html">1.2. Machine Definition</a></span></dt>
</dl>
</dd>
<dt><span class="sect1"><a href="sec_GraphPatterns.html">2.
Graph Patterns</a></span></dt>
<dd>
<dl>
<dt><span class="sect2"><a
href="sec_PatternDefinition.html">2.1. Pattern Definition</a></span></dt>
<dt><span class="sect2"><a
href="sec_LocalPatternlElementDescription.html">2.2. Local
Pattern Body Elements</a></span></dt>
</dl>
</dd>
<dt><span class="sect1"><a
href="sec_GraphTransformations.html">3. Graph Transformation
Rules</a></span></dt>
<dd>
<dl>
<dt><span class="sect2"><a href="sec_DefGTRule.html">3.1.
Definition of Graph Transformation Rules</a></span></dt>
<dt><span class="sect2"><a href="sec_GTParamPass.html">3.2.
Parameter passing at Graph Transformation Rules</a></span></dt>
<dt><span class="sect2"><a
href="sec_GTRuleBehaviour.html">3.3. Behavioural Specification
of Graph Transformation Rules</a></span></dt>
<dt><span class="sect2"><a href="sec_InvokeGTRule.html">3.4.
Invocation of Graph Transformation Rules</a></span></dt>
</dl>
</dd>
<dt><span class="sect1"><a href="sec_ASMRules.html">4.
ASM Rules</a></span></dt>
<dd>
<dl>
<dt><span class="sect2"><a href="sec_DefASMRule.html">4.1.
ASM Rule Definition and Invocation</a></span></dt>
<dt><span class="sect2"><a href="sec_ASMSimpleRules.html">4.2.
Simple ASM Rules</a></span></dt>
<dt><span class="sect2"><a
href="sec_ASMCompoundRules.html">4.3. Compound ASM Rules</a></span></dt>
<dt><span class="sect2"><a
href="sec_ASMModelManipulationRules.html">4.4. Model
Manipulation Rules</a></span></dt>
</dl>
</dd>
<dt><span class="sect1"><a
href="sec_ASMTermsFormulas.html">5. ASM Terms and ASM Functions</a></span></dt>
<dd>
<dl>
<dt><span class="sect2"><a href="sec_ASMTerms.html">5.1.
ASM Terms: An Overview</a></span></dt>
<dt><span class="sect2"><a
href="sec_ASMLogicalTerms.html">5.2. Logical Terms</a></span></dt>
<dt><span class="sect2"><a
href="sec_ASMArithmeticTerms.html">5.3. Arithmetic Terms</a></span></dt>
<dt><span class="sect2"><a href="sec_ASMConstants.html">5.4.
Constants</a></span></dt>
<dt><span class="sect2"><a href="sec_ASMFunctions.html">5.5.
ASM Functions</a></span></dt>
<dt><span class="sect2"><a
href="sec_PredefinedFunctions.html">5.6. Predefined Functions</a></span></dt>
<dt><span class="sect2"><a
href="sec_NamingVariables.html">5.7. Naming and Variables</a></span></dt>
<dt><span class="sect2"><a href="sec_Parameters.html">5.8.
Parameters and Variable Lists</a></span></dt>
</dl>
</dd>
<dt><span class="sect1"><a href="sec_VTCLTokens.html">6.
Tokens in the VTCL Language</a></span></dt>
<dd>
<dl>
<dt><span class="sect2"><a href="sec_TokensOverview.html">6.1.
VTCL tokens: An Overview</a></span></dt>
<dt><span class="sect2"><a href="sec_NameTokens.html">6.2.
Tokens for names and strings</a></span></dt>
<dt><span class="sect2"><a href="sec_NumberTokens.html">6.3.
Tokens for numbers</a></span></dt>
</dl>
</dd>
</dl>
</dd>
<dt><span class="index"><a href="sec_index.html">Index</a></span></dt>
</dl>
</div>
<div class="list-of-figures">
<p><b>List of Figures</b></p>
<dl>
<dt>2.1. <a
href="def_NamespaceDefinition.html#fig:NamespaceStruct">Recommended
structure of namespaces</a></dt>
<dt>2.2. <a href="sec_GTParamPass.html#fig:VTCL_ParamRelations">Relations
of parameters of the parts of a GT rule</a></dt>
</dl>
</div>
<div class="list-of-tables">
<p><b>List of Tables</b></p>
<dl>
<dt>2.1. <a
href="sec_ConflictHandling.html#tab:VTCL_EntManipBehav">Behavior
table for entity manipulation</a></dt>
<dt>2.2. <a
href="sec_ConflictHandling.html#tab:VTCL_RelManipBehav">Behavior
table for relation manipulation (both the source A and target B are
entities)</a></dt>
<dt>2.3. <a href="def_LogicalTerm.html#tab_LogicalOp">Logical
operators (AND, OR, XOR)</a></dt>
<dt>2.4. <a href="def_BaseLogicalTerm.html#tab_EqualNotEqual">Equal
(<code class="computeroutput">==</code>) and Not Equal (<code
class="computeroutput">!=</code>) operators </a></dt>
<dt>2.5. <a href="def_BaseLogicalTerm.html#tab_Inequality">Other
relational inequality operators (<code class="computeroutput">&lt;,
&gt;, &lt;=, &gt;=</code>) and Not Equal (<code class="computeroutput">!=</code>)
operators </a></dt>
<dt>2.6. <a href="def_ArithmeticTerm.html#tab_AddOp">Add (<code
class="computeroutput">+</code>) operator </a></dt>
<dt>2.7. <a href="def_ArithmeticTerm.html#tab_SubtractOp">Subtract
(<code class="computeroutput">-</code>) operator </a></dt>
<dt>2.8. <a href="def_MultArithmeticTerm.html#tab_MultDivOp">Multiply
(<code class="computeroutput">*</code>) and Divide (<code
class="computeroutput">/</code>) operators </a></dt>
<dt>2.9. <a href="def_MultArithmeticTerm.html#tab_RemainderOp">Remainder
(<code class="computeroutput">%</code>) operator </a></dt>
<dt>2.10. <a href="def_UnaryArithmeticTerm.html#tab_NegOp">Negation
(<code class="computeroutput">!</code>) operator </a></dt>
<dt>2.11. <a href="def_UnaryArithmeticTerm.html#tab_MinusOp">Minus
(<code class="computeroutput">-</code>) operator </a></dt>
<dt>2.12. <a href="def_StringConstant.html#tab_EscapeSequences">Escape
sequences and special characters in string constants</a></dt>
</dl>
</div>
<div class="list-of-examples">
<p><b>List of Examples</b></p>
<dl>
<dt>2.1. <a
href="def_NamespaceImport.html#def_NamespaceImport_Example">Sample
namespace import</a></dt>
<dt>2.2. <a href="def_Machine.html#def_Machine_Example">Hello
World Machine</a></dt>
<dt>2.3. <a href="def_PatternBody.html#def_PatternBody_Example">Overview
of pattern body contents</a></dt>
<dt>2.4. <a href="def_ChooseRule.html#def_ChooseRule_Example1">Different
invocations of a choose rule</a></dt>
<dt>2.5. <a href="def_ChooseRule.html#def_ChooseRule_Example2">Quantification
of variables passed to a choose rule</a></dt>
<dt>2.6. <a href="def_ForallRule.html#def_ForallRule_Example1">Different
invocations of a forall rule</a></dt>
<dt>2.7. <a href="def_ForallRule.html#def_ForallRule_Example2">Counting
with a forall rule</a></dt>
<dt>2.8. <a href="def_ForallRule.html#def_ForallRule_Example3">Quantification
of unbound variables passed to a forall rule</a></dt>
<dt>2.9. <a href="def_ForallRule.html#def_ForallRule_Example4">Forall
rule used in the context of ASM functions</a></dt>
<dt>2.10. <a
href="def_FloatConstant.html#def_FloatConstant_Example">Floating
point constants</a></dt>
</dl>
</div>
</div>
<div class="navfooter">
<hr>
<table summary="Navigation footer" width="100%">
<tr>
<td align="left" width="40%">&nbsp;</td>
<td align="center" width="20%">&nbsp;</td>
<td align="right" width="40%">&nbsp;<a accesskey="n"
href="sec_UsersGuide.html">Next</a></td>
</tr>
<tr>
<td valign="top" align="left" width="40%">&nbsp;</td>
<td align="center" width="20%">&nbsp;</td>
<td valign="top" align="right" width="40%">&nbsp;Chapter&nbsp;1.&nbsp;VIATRA
Users Guide</td>
</tr>
</table>
</div>
</body>
</html>