The VIATRA2 Model Transformation Framework

Users Guide and Transformation Language Specification

Release 3.0

Copyright notice

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 http://www.eclipse.org/legal/epl-v10.html


Table of Contents

2. Viatra Textual Command Language (VTCL) Specification
1. VTCL Files and Machines (Transformations)
1.1. VTCL Files
1.2. Machine Definition
2. Graph Patterns
2.1. Pattern Definition
2.2. Local Pattern Body Elements
3. Graph Transformation Rules
3.1. Definition of Graph Transformation Rules
3.2. Parameter passing at Graph Transformation Rules
3.3. Behavioural Specification of Graph Transformation Rules
3.4. Invocation of Graph Transformation Rules
4. ASM Rules
4.1. ASM Rule Definition and Invocation
4.2. Simple ASM Rules
4.3. Compound ASM Rules
4.4. Model Manipulation Rules
5. ASM Terms and ASM Functions
5.1. ASM Terms: An Overview
5.2. Logical Terms
5.3. Arithmetic Terms
5.4. Constants
5.5. ASM Functions
5.6. Predefined Functions
5.7. Naming and Variables
5.8. Parameters and Variable Lists
6. Tokens in the VTCL Language
6.1. VTCL tokens: An Overview
6.2. Tokens for names and strings
6.3. Tokens for numbers
Index

List of Figures

2.1. Recommended structure of namespaces
2.2. Relations of parameters of the parts of a GT rule

List of Tables

2.1. Behavior table for entity manipulation
2.2. Behavior table for relation manipulation (both the source A and target B are entities)
2.3. Logical operators (AND, OR, XOR)
2.4. Equal (==) and Not Equal (!=) operators
2.5. Other relational inequality operators (<, >, <=, >=) and Not Equal (!=) operators
2.6. Add (+) operator
2.7. Subtract (-) operator
2.8. Multiply (*) and Divide (/) operators
2.9. Remainder (%) operator
2.10. Negation (!) operator
2.11. Minus (-) operator
2.12. Escape sequences and special characters in string constants

List of Examples

2.1. Sample namespace import
2.2. Hello World Machine
2.3. Overview of pattern body contents
2.4. Different invocations of a choose rule
2.5. Quantification of variables passed to a choose rule
2.6. Different invocations of a forall rule
2.7. Counting with a forall rule
2.8. Quantification of unbound variables passed to a forall rule
2.9. Forall rule used in the context of ASM functions
2.10. Floating point constants