소스 검색

fixed build. Added contract lang model code as dependency (this is ugly, but better than depending on xtext).

Claudio Gomes 6 년 전
부모
커밋
db407069b3
100개의 변경된 파일12959개의 추가작업 그리고 69개의 파일을 삭제
  1. 1 1
      .gitignore
  2. 1 1
      HintCO/META-INF/MANIFEST.MF
  3. 7 46
      HintCO/pom.xml
  4. 14 10
      HintCO/src/ua/ansymo/hintco/Main.xtend
  5. 0 10
      HintCO/src/ua/ansymo/hintco/Runner.xtend
  6. 1 1
      be.uantwerpen.cosys.ContractLang/.classpath
  7. 27 0
      be.uantwerpen.cosys.ContractLang/pom.xml
  8. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/AbsencePattern.java
  9. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/AbsoluteValue.java
  10. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Action.java
  11. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/AfterScope.java
  12. 77 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/AfterUntilScope.java
  13. 77 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/AndExpression.java
  14. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/AssignAction.java
  15. 77 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Average.java
  16. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/BeforeScope.java
  17. 77 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/BetweenScope.java
  18. 77 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/BoundedExistencePattern.java
  19. 51 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Constraint.java
  20. 178 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Contract.java
  21. 835 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ContractLangFactory.java
  22. 6907 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ContractLangPackage.java
  23. 51 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ContractRef.java
  24. 70 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ContractSet.java
  25. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Derivative.java
  26. 77 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Difference.java
  27. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/DomainValue.java
  28. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Equality.java
  29. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Event.java
  30. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ExistencePattern.java
  31. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Expression.java
  32. 51 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/FMUInstance.java
  33. 80 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/FMUProperty.java
  34. 215 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/FMUPropertyEnum.java
  35. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/FMUSignal.java
  36. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/False.java
  37. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/FloatValue.java
  38. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Frequency.java
  39. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/GloballyScope.java
  40. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/GreaterThan.java
  41. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Infinity.java
  42. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/IntValue.java
  43. 158 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Interval.java
  44. 269 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/LOW_MED_HIGH.java
  45. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/LessThan.java
  46. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/LowerTimeBound.java
  47. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/MaxDurationPattern.java
  48. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/MetaStatement.java
  49. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Meters.java
  50. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/MetersPerSecond.java
  51. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Milliseconds.java
  52. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/MinDurationPattern.java
  53. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/NumValue.java
  54. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Occurrence.java
  55. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Operator.java
  56. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Order.java
  57. 51 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Pattern.java
  58. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Percentage.java
  59. 105 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/PrecStatement.java
  60. 149 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/PrecedenceChain1NPattern.java
  61. 104 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/PrecedencePattern.java
  62. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ProbGreater.java
  63. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ProbGreaterEq.java
  64. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ProbLess.java
  65. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ProbLessEq.java
  66. 51 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Probability.java
  67. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Property.java
  68. 53 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/QualValue.java
  69. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Recurrence.java
  70. 149 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ResponseChain1NPattern.java
  71. 149 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ResponseChainN1Pattern.java
  72. 104 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ResponseInvariancePattern.java
  73. 131 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ResponsePattern.java
  74. 78 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Root.java
  75. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Scope.java
  76. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Seconds.java
  77. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/SingleTime.java
  78. 132 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Statement.java
  79. 77 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/StatementAnd.java
  80. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/StatementNot.java
  81. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/StatementOp.java
  82. 77 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/StatementOr.java
  83. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/StatementRef.java
  84. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/SteadyStatePattern.java
  85. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/SteadyStateSuggestion.java
  86. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/StringValue.java
  87. 51 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Time.java
  88. 131 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/TimeInterval.java
  89. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/TimeUnit.java
  90. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/TransientStatePattern.java
  91. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/True.java
  92. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Unit.java
  93. 18 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Unitless.java
  94. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/UniversalityPattern.java
  95. 104 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/UntilPattern.java
  96. 50 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/UpperTimeBound.java
  97. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Value.java
  98. 77 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ValueWithUnit.java
  99. 19 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/VarOrVarOp.java
  100. 0 0
      be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Variable.java

+ 1 - 1
.gitignore

@@ -10,4 +10,4 @@
 #/HintCO/src-gen/
 
 /HintCO/output/
-/be.uantwerpen.cosys.ContractLang/src-gen/
+/be.uantwerpen.cosys.ContractLang/target

+ 1 - 1
HintCO/META-INF/MANIFEST.MF

@@ -18,7 +18,7 @@ Bundle-ClassPath: .,
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Automatic-Module-Name: ua.ansymo.HintCO
-Main-Class: ua.ansymo.hintco.Runner
+Main-Class: ua.ansymo.hintco.Main
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: ua.ansymo.hintco,
  ua.ansymo.hintco.impl,

+ 7 - 46
HintCO/pom.xml

@@ -80,51 +80,6 @@
 			<version>${xtext-version}</version>
 		</dependency>
 
-		<!-- https://mvnrepository.com/artifact/org.eclipse.emf/org.eclipse.emf.common -->
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.common</artifactId>
-			<version>2.15.0</version>
-		</dependency>
-		<!-- https://mvnrepository.com/artifact/org.eclipse.emf/org.eclipse.emf.ecore -->
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.ecore</artifactId>
-			<version>2.15.0</version>
-		</dependency>
-
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.ecore.xmi</artifactId>
-			<version>2.15.0</version>
-		</dependency>
-		<!-- https://mvnrepository.com/artifact/org.eclipse.emf/org.eclipse.emf.codegen -->
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.codegen</artifactId>
-			<version>2.14.0</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.codegen.ecore</artifactId>
-			<version>2.15.0</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.ecore.xcore</artifactId>
-			<version>1.7.0</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.ecore.xcore.lib</artifactId>
-			<version>1.3.0</version>
-		</dependency>
-		<!-- https://mvnrepository.com/artifact/org.eclipse.emf/ecore -->
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>ecore</artifactId>
-			<version>2.2.3</version>
-		</dependency>
 		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
@@ -154,6 +109,12 @@
 			<type>maven-plugin</type>
 		</dependency>
 
+		<dependency>
+			<groupId>be.uantwerpen.cosys</groupId>
+			<artifactId>be.uantwerpen.cosys.ContractLang</artifactId>
+			<version>0.0.1-0</version>
+		</dependency>
+
 	</dependencies>
 
 
@@ -251,4 +212,4 @@
 
 		</plugins>
 	</build>
-</project>
+</project>

+ 14 - 10
HintCO/src/ua/ansymo/hintco/Main.xtend

@@ -15,15 +15,13 @@ import java.io.File
 
 class Main implements IApplication {
 	
-	def private showHelp(Options options)
+	def static showHelp(Options options)
 	{
 		val formatter = new HelpFormatter();
 		formatter.printHelp("app", options);
 	}
 	
-	override start(IApplicationContext context) throws Exception {
-		val args = context.getArguments().get("application.args") as String[]
-		
+	def static void main(String[] args) {
 		val helpOpt = Option.builder("h").longOpt("help").desc("Show this description").build();
 		val scenarioOpt = Option.builder("s").longOpt("scenario").desc("Path to scenario file").hasArg().numberOfArgs(1).argName("path").build();
 		val contractOpt = Option.builder("c").longOpt("contract").desc("Path to contracts file").hasArg().numberOfArgs(1).argName("path").build();
@@ -48,13 +46,13 @@ class Main implements IApplication {
 		{
 			System.err.println("Parsing failed. Reason: " + e.getMessage());
 			showHelp(options);
-			return IApplication.EXIT_OK
+			return
 		}
 
 		if(cmd.hasOption(helpOpt.getOpt()))
 		{
 			showHelp(options);
-			return IApplication.EXIT_OK
+			return
 		}
 		
 		run_diagnostics()
@@ -72,7 +70,7 @@ class Main implements IApplication {
 			spaceGenerator.createDefaultCandidateSpace(src)
 		} else if (hintsPath !== null) {
 			val hints = loader.loadContractSet(hintsPath)
-			spaceGenerator.createCandidateSpace(hints, src)
+			spaceGenerator.createCandidateSpace(hints, src)
 		}
 		
 		val runner = new CosimRunner(new OutputProcessor(outDir), new FmuLoader)
@@ -88,11 +86,17 @@ class Main implements IApplication {
 		}
 		
 		runner.close()
+	}
+	
+	override start(IApplicationContext context) throws Exception {
+		val args = context.getArguments().get("application.args") as String[]
+		
+		main(args)
 		
 		return IApplication.EXIT_OK
 	}
 	
-	def private String getString(Option opt, CommandLine cmd)
+	def private static String getString(Option opt, CommandLine cmd)
 	{
 		if (cmd.hasOption(opt.getOpt()))
 		{
@@ -103,7 +107,7 @@ class Main implements IApplication {
 		}
 	}
 	
-	def private String getOptString(Option opt, CommandLine cmd, String d)
+	def private static String getOptString(Option opt, CommandLine cmd, String d)
 	{
 		if (cmd.hasOption(opt.getOpt()))
 		{
@@ -114,7 +118,7 @@ class Main implements IApplication {
 		}
 	}
 	
-	def run_diagnostics(){
+	def static run_diagnostics(){
 		val ms = new ModelStorage()
 		val f = new FileWriter("storage_test.xmi")
 		f.write('''

+ 0 - 10
HintCO/src/ua/ansymo/hintco/Runner.xtend

@@ -1,10 +0,0 @@
-package ua.ansymo.hintco
-
-class Runner {
-	def static void main(String[] args) {
-		println("Starting Main class!")
-		
-		var m = new Main()
-		m.run_diagnostics()
-	}
-}

+ 1 - 1
be.uantwerpen.cosys.ContractLang/.classpath

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
+	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>

+ 27 - 0
be.uantwerpen.cosys.ContractLang/pom.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<relativePath>../pom.xml</relativePath>
+		<groupId>HintCOProject</groupId>
+		<artifactId>HintCOProject</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>be.uantwerpen.cosys.ContractLang</artifactId>
+	<groupId>be.uantwerpen.cosys</groupId>
+  <version>0.0.1-0</version>
+  <packaging>jar</packaging>
+
+	<name>be.uantwerpen.cosys.ContractLang Language Core</name>
+
+  <properties>
+    <main.basedir>${project.parent.basedir}</main.basedir>
+  </properties>
+
+  <build>
+		<sourceDirectory>src</sourceDirectory>
+	</build>
+
+</project>

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/AbsencePattern.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Absence Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.AbsencePattern#getTime <em>Time</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAbsencePattern()
+ * @model
+ * @generated
+ */
+public interface AbsencePattern extends Occurrence {
+	/**
+	 * Returns the value of the '<em><b>Time</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time</em>' containment reference.
+	 * @see #setTime(Time)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAbsencePattern_Time()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Time getTime();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.AbsencePattern#getTime <em>Time</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time</em>' containment reference.
+	 * @see #getTime()
+	 * @generated
+	 */
+	void setTime(Time value);
+
+} // AbsencePattern

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/AbsoluteValue.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Absolute Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.AbsoluteValue#getVar <em>Var</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAbsoluteValue()
+ * @model
+ * @generated
+ */
+public interface AbsoluteValue extends VarOrVarOp {
+	/**
+	 * Returns the value of the '<em><b>Var</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Var</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Var</em>' containment reference.
+	 * @see #setVar(VarOrVarOp)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAbsoluteValue_Var()
+	 * @model containment="true"
+	 * @generated
+	 */
+	VarOrVarOp getVar();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.AbsoluteValue#getVar <em>Var</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Var</em>' containment reference.
+	 * @see #getVar()
+	 * @generated
+	 */
+	void setVar(VarOrVarOp value);
+
+} // AbsoluteValue

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Action.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAction()
+ * @model
+ * @generated
+ */
+public interface Action extends EObject {
+} // Action

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/AfterScope.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>After Scope</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.AfterScope#getEvent <em>Event</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAfterScope()
+ * @model
+ * @generated
+ */
+public interface AfterScope extends Scope {
+	/**
+	 * Returns the value of the '<em><b>Event</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Event</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Event</em>' reference.
+	 * @see #setEvent(Event)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAfterScope_Event()
+	 * @model
+	 * @generated
+	 */
+	Event getEvent();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.AfterScope#getEvent <em>Event</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Event</em>' reference.
+	 * @see #getEvent()
+	 * @generated
+	 */
+	void setEvent(Event value);
+
+} // AfterScope

+ 77 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/AfterUntilScope.java

@@ -0,0 +1,77 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>After Until Scope</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.AfterUntilScope#getFirst <em>First</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.AfterUntilScope#getSecond <em>Second</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAfterUntilScope()
+ * @model
+ * @generated
+ */
+public interface AfterUntilScope extends Scope {
+	/**
+	 * Returns the value of the '<em><b>First</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>First</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>First</em>' reference.
+	 * @see #setFirst(Event)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAfterUntilScope_First()
+	 * @model
+	 * @generated
+	 */
+	Event getFirst();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.AfterUntilScope#getFirst <em>First</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>First</em>' reference.
+	 * @see #getFirst()
+	 * @generated
+	 */
+	void setFirst(Event value);
+
+	/**
+	 * Returns the value of the '<em><b>Second</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Second</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Second</em>' reference.
+	 * @see #setSecond(Event)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAfterUntilScope_Second()
+	 * @model
+	 * @generated
+	 */
+	Event getSecond();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.AfterUntilScope#getSecond <em>Second</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Second</em>' reference.
+	 * @see #getSecond()
+	 * @generated
+	 */
+	void setSecond(Event value);
+
+} // AfterUntilScope

+ 77 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/AndExpression.java

@@ -0,0 +1,77 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>And Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.AndExpression#getArg0 <em>Arg0</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.AndExpression#getArg1 <em>Arg1</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAndExpression()
+ * @model
+ * @generated
+ */
+public interface AndExpression extends Expression {
+	/**
+	 * Returns the value of the '<em><b>Arg0</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Arg0</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Arg0</em>' containment reference.
+	 * @see #setArg0(Expression)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAndExpression_Arg0()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Expression getArg0();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.AndExpression#getArg0 <em>Arg0</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Arg0</em>' containment reference.
+	 * @see #getArg0()
+	 * @generated
+	 */
+	void setArg0(Expression value);
+
+	/**
+	 * Returns the value of the '<em><b>Arg1</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Arg1</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Arg1</em>' containment reference.
+	 * @see #setArg1(Expression)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAndExpression_Arg1()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Expression getArg1();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.AndExpression#getArg1 <em>Arg1</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Arg1</em>' containment reference.
+	 * @see #getArg1()
+	 * @generated
+	 */
+	void setArg1(Expression value);
+
+} // AndExpression

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/AssignAction.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Assign Action</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.AssignAction#getVar <em>Var</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAssignAction()
+ * @model
+ * @generated
+ */
+public interface AssignAction extends Action {
+	/**
+	 * Returns the value of the '<em><b>Var</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Var</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Var</em>' containment reference.
+	 * @see #setVar(VarOrVarOp)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAssignAction_Var()
+	 * @model containment="true"
+	 * @generated
+	 */
+	VarOrVarOp getVar();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.AssignAction#getVar <em>Var</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Var</em>' containment reference.
+	 * @see #getVar()
+	 * @generated
+	 */
+	void setVar(VarOrVarOp value);
+
+} // AssignAction

+ 77 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Average.java

@@ -0,0 +1,77 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Average</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Average#getVar <em>Var</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Average#getDuration <em>Duration</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAverage()
+ * @model
+ * @generated
+ */
+public interface Average extends VarOrVarOp {
+	/**
+	 * Returns the value of the '<em><b>Var</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Var</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Var</em>' containment reference.
+	 * @see #setVar(VarOrVarOp)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAverage_Var()
+	 * @model containment="true"
+	 * @generated
+	 */
+	VarOrVarOp getVar();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Average#getVar <em>Var</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Var</em>' containment reference.
+	 * @see #getVar()
+	 * @generated
+	 */
+	void setVar(VarOrVarOp value);
+
+	/**
+	 * Returns the value of the '<em><b>Duration</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Duration</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Duration</em>' containment reference.
+	 * @see #setDuration(SingleTime)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getAverage_Duration()
+	 * @model containment="true"
+	 * @generated
+	 */
+	SingleTime getDuration();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Average#getDuration <em>Duration</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Duration</em>' containment reference.
+	 * @see #getDuration()
+	 * @generated
+	 */
+	void setDuration(SingleTime value);
+
+} // Average

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/BeforeScope.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Before Scope</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.BeforeScope#getEvent <em>Event</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getBeforeScope()
+ * @model
+ * @generated
+ */
+public interface BeforeScope extends Scope {
+	/**
+	 * Returns the value of the '<em><b>Event</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Event</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Event</em>' reference.
+	 * @see #setEvent(Event)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getBeforeScope_Event()
+	 * @model
+	 * @generated
+	 */
+	Event getEvent();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.BeforeScope#getEvent <em>Event</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Event</em>' reference.
+	 * @see #getEvent()
+	 * @generated
+	 */
+	void setEvent(Event value);
+
+} // BeforeScope

+ 77 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/BetweenScope.java

@@ -0,0 +1,77 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Between Scope</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.BetweenScope#getFirst <em>First</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.BetweenScope#getSecond <em>Second</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getBetweenScope()
+ * @model
+ * @generated
+ */
+public interface BetweenScope extends Scope {
+	/**
+	 * Returns the value of the '<em><b>First</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>First</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>First</em>' reference.
+	 * @see #setFirst(Event)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getBetweenScope_First()
+	 * @model
+	 * @generated
+	 */
+	Event getFirst();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.BetweenScope#getFirst <em>First</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>First</em>' reference.
+	 * @see #getFirst()
+	 * @generated
+	 */
+	void setFirst(Event value);
+
+	/**
+	 * Returns the value of the '<em><b>Second</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Second</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Second</em>' reference.
+	 * @see #setSecond(Event)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getBetweenScope_Second()
+	 * @model
+	 * @generated
+	 */
+	Event getSecond();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.BetweenScope#getSecond <em>Second</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Second</em>' reference.
+	 * @see #getSecond()
+	 * @generated
+	 */
+	void setSecond(Event value);
+
+} // BetweenScope

+ 77 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/BoundedExistencePattern.java

@@ -0,0 +1,77 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Bounded Existence Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.BoundedExistencePattern#getN <em>N</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.BoundedExistencePattern#getTime <em>Time</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getBoundedExistencePattern()
+ * @model
+ * @generated
+ */
+public interface BoundedExistencePattern extends Occurrence {
+	/**
+	 * Returns the value of the '<em><b>N</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>N</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>N</em>' attribute.
+	 * @see #setN(int)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getBoundedExistencePattern_N()
+	 * @model
+	 * @generated
+	 */
+	int getN();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.BoundedExistencePattern#getN <em>N</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>N</em>' attribute.
+	 * @see #getN()
+	 * @generated
+	 */
+	void setN(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Time</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time</em>' containment reference.
+	 * @see #setTime(Time)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getBoundedExistencePattern_Time()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Time getTime();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.BoundedExistencePattern#getTime <em>Time</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time</em>' containment reference.
+	 * @see #getTime()
+	 * @generated
+	 */
+	void setTime(Time value);
+
+} // BoundedExistencePattern

+ 51 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Constraint.java

@@ -0,0 +1,51 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Constraint#getStatement <em>Statement</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getConstraint()
+ * @model
+ * @generated
+ */
+public interface Constraint extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Statement</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statement</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statement</em>' reference.
+	 * @see #setStatement(Statement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getConstraint_Statement()
+	 * @model
+	 * @generated
+	 */
+	Statement getStatement();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Constraint#getStatement <em>Statement</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Statement</em>' reference.
+	 * @see #getStatement()
+	 * @generated
+	 */
+	void setStatement(Statement value);
+
+} // Constraint

+ 178 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Contract.java

@@ -0,0 +1,178 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Contract</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Contract#getName <em>Name</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Contract#getDescription <em>Description</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Contract#getStatements <em>Statements</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Contract#getScope <em>Scope</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Contract#getPattern <em>Pattern</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Contract#getAction <em>Action</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getContract()
+ * @model
+ * @generated
+ */
+public interface Contract extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getContract_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Contract#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(String)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getContract_Description()
+	 * @model
+	 * @generated
+	 */
+	String getDescription();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Contract#getDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #getDescription()
+	 * @generated
+	 */
+	void setDescription(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Statements</b></em>' containment reference list.
+	 * The list contents are of type {@link be.uantwerpen.cosys.contractLang.Statement}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statements</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statements</em>' containment reference list.
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getContract_Statements()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Statement> getStatements();
+
+	/**
+	 * Returns the value of the '<em><b>Scope</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scope</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Scope</em>' containment reference.
+	 * @see #setScope(Scope)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getContract_Scope()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Scope getScope();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Contract#getScope <em>Scope</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scope</em>' containment reference.
+	 * @see #getScope()
+	 * @generated
+	 */
+	void setScope(Scope value);
+
+	/**
+	 * Returns the value of the '<em><b>Pattern</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Pattern</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Pattern</em>' containment reference.
+	 * @see #setPattern(Pattern)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getContract_Pattern()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Pattern getPattern();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Contract#getPattern <em>Pattern</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Pattern</em>' containment reference.
+	 * @see #getPattern()
+	 * @generated
+	 */
+	void setPattern(Pattern value);
+
+	/**
+	 * Returns the value of the '<em><b>Action</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action</em>' containment reference.
+	 * @see #setAction(Action)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getContract_Action()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Action getAction();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Contract#getAction <em>Action</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action</em>' containment reference.
+	 * @see #getAction()
+	 * @generated
+	 */
+	void setAction(Action value);
+
+} // Contract

+ 835 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ContractLangFactory.java

@@ -0,0 +1,835 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage
+ * @generated
+ */
+public interface ContractLangFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ContractLangFactory eINSTANCE = be.uantwerpen.cosys.contractLang.impl.ContractLangFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Root</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Root</em>'.
+	 * @generated
+	 */
+	Root createRoot();
+
+	/**
+	 * Returns a new object of class '<em>Contract Set</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Contract Set</em>'.
+	 * @generated
+	 */
+	ContractSet createContractSet();
+
+	/**
+	 * Returns a new object of class '<em>Contract Ref</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Contract Ref</em>'.
+	 * @generated
+	 */
+	ContractRef createContractRef();
+
+	/**
+	 * Returns a new object of class '<em>Contract</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Contract</em>'.
+	 * @generated
+	 */
+	Contract createContract();
+
+	/**
+	 * Returns a new object of class '<em>Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Event</em>'.
+	 * @generated
+	 */
+	Event createEvent();
+
+	/**
+	 * Returns a new object of class '<em>Property</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Property</em>'.
+	 * @generated
+	 */
+	Property createProperty();
+
+	/**
+	 * Returns a new object of class '<em>Meta Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Meta Statement</em>'.
+	 * @generated
+	 */
+	MetaStatement createMetaStatement();
+
+	/**
+	 * Returns a new object of class '<em>Statement Ref</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Statement Ref</em>'.
+	 * @generated
+	 */
+	StatementRef createStatementRef();
+
+	/**
+	 * Returns a new object of class '<em>Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Statement</em>'.
+	 * @generated
+	 */
+	Statement createStatement();
+
+	/**
+	 * Returns a new object of class '<em>Statement Op</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Statement Op</em>'.
+	 * @generated
+	 */
+	StatementOp createStatementOp();
+
+	/**
+	 * Returns a new object of class '<em>Statement And</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Statement And</em>'.
+	 * @generated
+	 */
+	StatementAnd createStatementAnd();
+
+	/**
+	 * Returns a new object of class '<em>Statement Or</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Statement Or</em>'.
+	 * @generated
+	 */
+	StatementOr createStatementOr();
+
+	/**
+	 * Returns a new object of class '<em>Statement Not</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Statement Not</em>'.
+	 * @generated
+	 */
+	StatementNot createStatementNot();
+
+	/**
+	 * Returns a new object of class '<em>Scope</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Scope</em>'.
+	 * @generated
+	 */
+	Scope createScope();
+
+	/**
+	 * Returns a new object of class '<em>Globally Scope</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Globally Scope</em>'.
+	 * @generated
+	 */
+	GloballyScope createGloballyScope();
+
+	/**
+	 * Returns a new object of class '<em>Before Scope</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Before Scope</em>'.
+	 * @generated
+	 */
+	BeforeScope createBeforeScope();
+
+	/**
+	 * Returns a new object of class '<em>After Scope</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>After Scope</em>'.
+	 * @generated
+	 */
+	AfterScope createAfterScope();
+
+	/**
+	 * Returns a new object of class '<em>Between Scope</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Between Scope</em>'.
+	 * @generated
+	 */
+	BetweenScope createBetweenScope();
+
+	/**
+	 * Returns a new object of class '<em>After Until Scope</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>After Until Scope</em>'.
+	 * @generated
+	 */
+	AfterUntilScope createAfterUntilScope();
+
+	/**
+	 * Returns a new object of class '<em>Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Pattern</em>'.
+	 * @generated
+	 */
+	Pattern createPattern();
+
+	/**
+	 * Returns a new object of class '<em>Occurrence</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Occurrence</em>'.
+	 * @generated
+	 */
+	Occurrence createOccurrence();
+
+	/**
+	 * Returns a new object of class '<em>Universality Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Universality Pattern</em>'.
+	 * @generated
+	 */
+	UniversalityPattern createUniversalityPattern();
+
+	/**
+	 * Returns a new object of class '<em>Absence Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Absence Pattern</em>'.
+	 * @generated
+	 */
+	AbsencePattern createAbsencePattern();
+
+	/**
+	 * Returns a new object of class '<em>Existence Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Existence Pattern</em>'.
+	 * @generated
+	 */
+	ExistencePattern createExistencePattern();
+
+	/**
+	 * Returns a new object of class '<em>Bounded Existence Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Bounded Existence Pattern</em>'.
+	 * @generated
+	 */
+	BoundedExistencePattern createBoundedExistencePattern();
+
+	/**
+	 * Returns a new object of class '<em>Transient State Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Transient State Pattern</em>'.
+	 * @generated
+	 */
+	TransientStatePattern createTransientStatePattern();
+
+	/**
+	 * Returns a new object of class '<em>Steady State Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Steady State Pattern</em>'.
+	 * @generated
+	 */
+	SteadyStatePattern createSteadyStatePattern();
+
+	/**
+	 * Returns a new object of class '<em>Min Duration Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Min Duration Pattern</em>'.
+	 * @generated
+	 */
+	MinDurationPattern createMinDurationPattern();
+
+	/**
+	 * Returns a new object of class '<em>Max Duration Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Max Duration Pattern</em>'.
+	 * @generated
+	 */
+	MaxDurationPattern createMaxDurationPattern();
+
+	/**
+	 * Returns a new object of class '<em>Recurrence</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Recurrence</em>'.
+	 * @generated
+	 */
+	Recurrence createRecurrence();
+
+	/**
+	 * Returns a new object of class '<em>Prec Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Prec Statement</em>'.
+	 * @generated
+	 */
+	PrecStatement createPrecStatement();
+
+	/**
+	 * Returns a new object of class '<em>Order</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Order</em>'.
+	 * @generated
+	 */
+	Order createOrder();
+
+	/**
+	 * Returns a new object of class '<em>Precedence Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Precedence Pattern</em>'.
+	 * @generated
+	 */
+	PrecedencePattern createPrecedencePattern();
+
+	/**
+	 * Returns a new object of class '<em>Precedence Chain1 NPattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Precedence Chain1 NPattern</em>'.
+	 * @generated
+	 */
+	PrecedenceChain1NPattern createPrecedenceChain1NPattern();
+
+	/**
+	 * Returns a new object of class '<em>Until Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Until Pattern</em>'.
+	 * @generated
+	 */
+	UntilPattern createUntilPattern();
+
+	/**
+	 * Returns a new object of class '<em>Response Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Response Pattern</em>'.
+	 * @generated
+	 */
+	ResponsePattern createResponsePattern();
+
+	/**
+	 * Returns a new object of class '<em>Response Chain1 NPattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Response Chain1 NPattern</em>'.
+	 * @generated
+	 */
+	ResponseChain1NPattern createResponseChain1NPattern();
+
+	/**
+	 * Returns a new object of class '<em>Response Chain N1 Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Response Chain N1 Pattern</em>'.
+	 * @generated
+	 */
+	ResponseChainN1Pattern createResponseChainN1Pattern();
+
+	/**
+	 * Returns a new object of class '<em>Response Invariance Pattern</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Response Invariance Pattern</em>'.
+	 * @generated
+	 */
+	ResponseInvariancePattern createResponseInvariancePattern();
+
+	/**
+	 * Returns a new object of class '<em>Constraint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Constraint</em>'.
+	 * @generated
+	 */
+	Constraint createConstraint();
+
+	/**
+	 * Returns a new object of class '<em>Time</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Time</em>'.
+	 * @generated
+	 */
+	Time createTime();
+
+	/**
+	 * Returns a new object of class '<em>Time Interval</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Time Interval</em>'.
+	 * @generated
+	 */
+	TimeInterval createTimeInterval();
+
+	/**
+	 * Returns a new object of class '<em>Upper Time Bound</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Upper Time Bound</em>'.
+	 * @generated
+	 */
+	UpperTimeBound createUpperTimeBound();
+
+	/**
+	 * Returns a new object of class '<em>Lower Time Bound</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Lower Time Bound</em>'.
+	 * @generated
+	 */
+	LowerTimeBound createLowerTimeBound();
+
+	/**
+	 * Returns a new object of class '<em>Single Time</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Single Time</em>'.
+	 * @generated
+	 */
+	SingleTime createSingleTime();
+
+	/**
+	 * Returns a new object of class '<em>Time Unit</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Time Unit</em>'.
+	 * @generated
+	 */
+	TimeUnit createTimeUnit();
+
+	/**
+	 * Returns a new object of class '<em>Milliseconds</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Milliseconds</em>'.
+	 * @generated
+	 */
+	Milliseconds createMilliseconds();
+
+	/**
+	 * Returns a new object of class '<em>Seconds</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Seconds</em>'.
+	 * @generated
+	 */
+	Seconds createSeconds();
+
+	/**
+	 * Returns a new object of class '<em>Probability</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Probability</em>'.
+	 * @generated
+	 */
+	Probability createProbability();
+
+	/**
+	 * Returns a new object of class '<em>Prob Less</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Prob Less</em>'.
+	 * @generated
+	 */
+	ProbLess createProbLess();
+
+	/**
+	 * Returns a new object of class '<em>Prob Less Eq</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Prob Less Eq</em>'.
+	 * @generated
+	 */
+	ProbLessEq createProbLessEq();
+
+	/**
+	 * Returns a new object of class '<em>Prob Greater</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Prob Greater</em>'.
+	 * @generated
+	 */
+	ProbGreater createProbGreater();
+
+	/**
+	 * Returns a new object of class '<em>Prob Greater Eq</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Prob Greater Eq</em>'.
+	 * @generated
+	 */
+	ProbGreaterEq createProbGreaterEq();
+
+	/**
+	 * Returns a new object of class '<em>Action</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action</em>'.
+	 * @generated
+	 */
+	Action createAction();
+
+	/**
+	 * Returns a new object of class '<em>Var Or Var Op</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Var Or Var Op</em>'.
+	 * @generated
+	 */
+	VarOrVarOp createVarOrVarOp();
+
+	/**
+	 * Returns a new object of class '<em>Operator</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Operator</em>'.
+	 * @generated
+	 */
+	Operator createOperator();
+
+	/**
+	 * Returns a new object of class '<em>Expression</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Expression</em>'.
+	 * @generated
+	 */
+	Expression createExpression();
+
+	/**
+	 * Returns a new object of class '<em>Num Value</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Num Value</em>'.
+	 * @generated
+	 */
+	NumValue createNumValue();
+
+	/**
+	 * Returns a new object of class '<em>Unit</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Unit</em>'.
+	 * @generated
+	 */
+	Unit createUnit();
+
+	/**
+	 * Returns a new object of class '<em>Derivative</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Derivative</em>'.
+	 * @generated
+	 */
+	Derivative createDerivative();
+
+	/**
+	 * Returns a new object of class '<em>Absolute Value</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Absolute Value</em>'.
+	 * @generated
+	 */
+	AbsoluteValue createAbsoluteValue();
+
+	/**
+	 * Returns a new object of class '<em>Difference</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Difference</em>'.
+	 * @generated
+	 */
+	Difference createDifference();
+
+	/**
+	 * Returns a new object of class '<em>Average</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Average</em>'.
+	 * @generated
+	 */
+	Average createAverage();
+
+	/**
+	 * Returns a new object of class '<em>Infinity</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Infinity</em>'.
+	 * @generated
+	 */
+	Infinity createInfinity();
+
+	/**
+	 * Returns a new object of class '<em>Int Value</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Int Value</em>'.
+	 * @generated
+	 */
+	IntValue createIntValue();
+
+	/**
+	 * Returns a new object of class '<em>Float Value</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Float Value</em>'.
+	 * @generated
+	 */
+	FloatValue createFloatValue();
+
+	/**
+	 * Returns a new object of class '<em>Equality</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Equality</em>'.
+	 * @generated
+	 */
+	Equality createEquality();
+
+	/**
+	 * Returns a new object of class '<em>Greater Than</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Greater Than</em>'.
+	 * @generated
+	 */
+	GreaterThan createGreaterThan();
+
+	/**
+	 * Returns a new object of class '<em>Less Than</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Less Than</em>'.
+	 * @generated
+	 */
+	LessThan createLessThan();
+
+	/**
+	 * Returns a new object of class '<em>And Expression</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>And Expression</em>'.
+	 * @generated
+	 */
+	AndExpression createAndExpression();
+
+	/**
+	 * Returns a new object of class '<em>True</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>True</em>'.
+	 * @generated
+	 */
+	True createTrue();
+
+	/**
+	 * Returns a new object of class '<em>False</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>False</em>'.
+	 * @generated
+	 */
+	False createFalse();
+
+	/**
+	 * Returns a new object of class '<em>String Value</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>String Value</em>'.
+	 * @generated
+	 */
+	StringValue createStringValue();
+
+	/**
+	 * Returns a new object of class '<em>Qual Value</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Qual Value</em>'.
+	 * @generated
+	 */
+	QualValue createQualValue();
+
+	/**
+	 * Returns a new object of class '<em>Interval</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Interval</em>'.
+	 * @generated
+	 */
+	Interval createInterval();
+
+	/**
+	 * Returns a new object of class '<em>Value With Unit</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Value With Unit</em>'.
+	 * @generated
+	 */
+	ValueWithUnit createValueWithUnit();
+
+	/**
+	 * Returns a new object of class '<em>Unitless</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Unitless</em>'.
+	 * @generated
+	 */
+	Unitless createUnitless();
+
+	/**
+	 * Returns a new object of class '<em>Percentage</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Percentage</em>'.
+	 * @generated
+	 */
+	Percentage createPercentage();
+
+	/**
+	 * Returns a new object of class '<em>Assign Action</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Assign Action</em>'.
+	 * @generated
+	 */
+	AssignAction createAssignAction();
+
+	/**
+	 * Returns a new object of class '<em>Value</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Value</em>'.
+	 * @generated
+	 */
+	Value createValue();
+
+	/**
+	 * Returns a new object of class '<em>Domain Value</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Domain Value</em>'.
+	 * @generated
+	 */
+	DomainValue createDomainValue();
+
+	/**
+	 * Returns a new object of class '<em>Variable</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Variable</em>'.
+	 * @generated
+	 */
+	Variable createVariable();
+
+	/**
+	 * Returns a new object of class '<em>Frequency</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Frequency</em>'.
+	 * @generated
+	 */
+	Frequency createFrequency();
+
+	/**
+	 * Returns a new object of class '<em>FMU Property</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>FMU Property</em>'.
+	 * @generated
+	 */
+	FMUProperty createFMUProperty();
+
+	/**
+	 * Returns a new object of class '<em>FMU Instance</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>FMU Instance</em>'.
+	 * @generated
+	 */
+	FMUInstance createFMUInstance();
+
+	/**
+	 * Returns a new object of class '<em>FMU Signal</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>FMU Signal</em>'.
+	 * @generated
+	 */
+	FMUSignal createFMUSignal();
+
+	/**
+	 * Returns a new object of class '<em>Steady State Suggestion</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Steady State Suggestion</em>'.
+	 * @generated
+	 */
+	SteadyStateSuggestion createSteadyStateSuggestion();
+
+	/**
+	 * Returns a new object of class '<em>Meters Per Second</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Meters Per Second</em>'.
+	 * @generated
+	 */
+	MetersPerSecond createMetersPerSecond();
+
+	/**
+	 * Returns a new object of class '<em>Meters</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Meters</em>'.
+	 * @generated
+	 */
+	Meters createMeters();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	ContractLangPackage getContractLangPackage();
+
+} //ContractLangFactory

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 6907 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ContractLangPackage.java


+ 51 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ContractRef.java

@@ -0,0 +1,51 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Contract Ref</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ContractRef#getContract <em>Contract</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getContractRef()
+ * @model
+ * @generated
+ */
+public interface ContractRef extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Contract</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Contract</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Contract</em>' reference.
+	 * @see #setContract(Contract)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getContractRef_Contract()
+	 * @model
+	 * @generated
+	 */
+	Contract getContract();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ContractRef#getContract <em>Contract</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Contract</em>' reference.
+	 * @see #getContract()
+	 * @generated
+	 */
+	void setContract(Contract value);
+
+} // ContractRef

+ 70 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ContractSet.java

@@ -0,0 +1,70 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Contract Set</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ContractSet#getName <em>Name</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ContractSet#getContracts <em>Contracts</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getContractSet()
+ * @model
+ * @generated
+ */
+public interface ContractSet extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getContractSet_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ContractSet#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Contracts</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.emf.ecore.EObject}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Contracts</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Contracts</em>' containment reference list.
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getContractSet_Contracts()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<EObject> getContracts();
+
+} // ContractSet

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Derivative.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Derivative</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Derivative#getVar <em>Var</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getDerivative()
+ * @model
+ * @generated
+ */
+public interface Derivative extends VarOrVarOp {
+	/**
+	 * Returns the value of the '<em><b>Var</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Var</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Var</em>' containment reference.
+	 * @see #setVar(VarOrVarOp)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getDerivative_Var()
+	 * @model containment="true"
+	 * @generated
+	 */
+	VarOrVarOp getVar();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Derivative#getVar <em>Var</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Var</em>' containment reference.
+	 * @see #getVar()
+	 * @generated
+	 */
+	void setVar(VarOrVarOp value);
+
+} // Derivative

+ 77 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Difference.java

@@ -0,0 +1,77 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Difference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Difference#getVar <em>Var</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Difference#getVar2 <em>Var2</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getDifference()
+ * @model
+ * @generated
+ */
+public interface Difference extends VarOrVarOp {
+	/**
+	 * Returns the value of the '<em><b>Var</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Var</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Var</em>' containment reference.
+	 * @see #setVar(VarOrVarOp)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getDifference_Var()
+	 * @model containment="true"
+	 * @generated
+	 */
+	VarOrVarOp getVar();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Difference#getVar <em>Var</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Var</em>' containment reference.
+	 * @see #getVar()
+	 * @generated
+	 */
+	void setVar(VarOrVarOp value);
+
+	/**
+	 * Returns the value of the '<em><b>Var2</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Var2</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Var2</em>' containment reference.
+	 * @see #setVar2(VarOrVarOp)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getDifference_Var2()
+	 * @model containment="true"
+	 * @generated
+	 */
+	VarOrVarOp getVar2();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Difference#getVar2 <em>Var2</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Var2</em>' containment reference.
+	 * @see #getVar2()
+	 * @generated
+	 */
+	void setVar2(VarOrVarOp value);
+
+} // Difference

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/DomainValue.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Domain Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getDomainValue()
+ * @model
+ * @generated
+ */
+public interface DomainValue extends Expression {
+} // DomainValue

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Equality.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Equality</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getEquality()
+ * @model
+ * @generated
+ */
+public interface Equality extends Operator {
+} // Equality

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Event.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getEvent()
+ * @model
+ * @generated
+ */
+public interface Event extends Statement {
+} // Event

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ExistencePattern.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Existence Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ExistencePattern#getTime <em>Time</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getExistencePattern()
+ * @model
+ * @generated
+ */
+public interface ExistencePattern extends Occurrence {
+	/**
+	 * Returns the value of the '<em><b>Time</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time</em>' containment reference.
+	 * @see #setTime(Time)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getExistencePattern_Time()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Time getTime();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ExistencePattern#getTime <em>Time</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time</em>' containment reference.
+	 * @see #getTime()
+	 * @generated
+	 */
+	void setTime(Time value);
+
+} // ExistencePattern

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Expression.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getExpression()
+ * @model
+ * @generated
+ */
+public interface Expression extends EObject {
+} // Expression

+ 51 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/FMUInstance.java

@@ -0,0 +1,51 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>FMU Instance</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.FMUInstance#getSignal <em>Signal</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getFMUInstance()
+ * @model
+ * @generated
+ */
+public interface FMUInstance extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Signal</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Signal</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Signal</em>' attribute.
+	 * @see #setSignal(String)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getFMUInstance_Signal()
+	 * @model
+	 * @generated
+	 */
+	String getSignal();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.FMUInstance#getSignal <em>Signal</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Signal</em>' attribute.
+	 * @see #getSignal()
+	 * @generated
+	 */
+	void setSignal(String value);
+
+} // FMUInstance

+ 80 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/FMUProperty.java

@@ -0,0 +1,80 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>FMU Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.FMUProperty#getFmu <em>Fmu</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.FMUProperty#getProperty <em>Property</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getFMUProperty()
+ * @model
+ * @generated
+ */
+public interface FMUProperty extends Variable {
+	/**
+	 * Returns the value of the '<em><b>Fmu</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Fmu</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Fmu</em>' containment reference.
+	 * @see #setFmu(FMUInstance)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getFMUProperty_Fmu()
+	 * @model containment="true"
+	 * @generated
+	 */
+	FMUInstance getFmu();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.FMUProperty#getFmu <em>Fmu</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Fmu</em>' containment reference.
+	 * @see #getFmu()
+	 * @generated
+	 */
+	void setFmu(FMUInstance value);
+
+	/**
+	 * Returns the value of the '<em><b>Property</b></em>' attribute.
+	 * The literals are from the enumeration {@link be.uantwerpen.cosys.contractLang.FMUPropertyEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property</em>' attribute.
+	 * @see be.uantwerpen.cosys.contractLang.FMUPropertyEnum
+	 * @see #setProperty(FMUPropertyEnum)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getFMUProperty_Property()
+	 * @model
+	 * @generated
+	 */
+	FMUPropertyEnum getProperty();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.FMUProperty#getProperty <em>Property</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property</em>' attribute.
+	 * @see be.uantwerpen.cosys.contractLang.FMUPropertyEnum
+	 * @see #getProperty()
+	 * @generated
+	 */
+	void setProperty(FMUPropertyEnum value);
+
+} // FMUProperty

+ 215 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/FMUPropertyEnum.java

@@ -0,0 +1,215 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>FMU Property Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getFMUPropertyEnum()
+ * @model
+ * @generated
+ */
+public enum FMUPropertyEnum implements Enumerator {
+	/**
+	 * The '<em><b>EXEC RATE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EXEC_RATE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	EXEC_RATE(0, "EXEC_RATE", "exec_rate"),
+
+	/**
+	 * The '<em><b>IS PHYSICAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #IS_PHYSICAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	IS_PHYSICAL(1, "IS_PHYSICAL", "is_physical");
+
+	/**
+	 * The '<em><b>EXEC RATE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>EXEC RATE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #EXEC_RATE
+	 * @model literal="exec_rate"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int EXEC_RATE_VALUE = 0;
+
+	/**
+	 * The '<em><b>IS PHYSICAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>IS PHYSICAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #IS_PHYSICAL
+	 * @model literal="is_physical"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int IS_PHYSICAL_VALUE = 1;
+
+	/**
+	 * An array of all the '<em><b>FMU Property Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final FMUPropertyEnum[] VALUES_ARRAY =
+		new FMUPropertyEnum[] {
+			EXEC_RATE,
+			IS_PHYSICAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>FMU Property Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<FMUPropertyEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>FMU Property Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static FMUPropertyEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			FMUPropertyEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>FMU Property Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static FMUPropertyEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			FMUPropertyEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>FMU Property Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static FMUPropertyEnum get(int value) {
+		switch (value) {
+			case EXEC_RATE_VALUE: return EXEC_RATE;
+			case IS_PHYSICAL_VALUE: return IS_PHYSICAL;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private FMUPropertyEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //FMUPropertyEnum

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/FMUSignal.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>FMU Signal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.FMUSignal#getSignal <em>Signal</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getFMUSignal()
+ * @model
+ * @generated
+ */
+public interface FMUSignal extends Variable {
+	/**
+	 * Returns the value of the '<em><b>Signal</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Signal</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Signal</em>' attribute.
+	 * @see #setSignal(String)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getFMUSignal_Signal()
+	 * @model
+	 * @generated
+	 */
+	String getSignal();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.FMUSignal#getSignal <em>Signal</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Signal</em>' attribute.
+	 * @see #getSignal()
+	 * @generated
+	 */
+	void setSignal(String value);
+
+} // FMUSignal

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/False.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>False</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getFalse()
+ * @model
+ * @generated
+ */
+public interface False extends Expression, Value {
+} // False

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/FloatValue.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Float Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.FloatValue#getVal <em>Val</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getFloatValue()
+ * @model
+ * @generated
+ */
+public interface FloatValue extends Expression, NumValue, Value {
+	/**
+	 * Returns the value of the '<em><b>Val</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Val</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Val</em>' attribute.
+	 * @see #setVal(double)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getFloatValue_Val()
+	 * @model
+	 * @generated
+	 */
+	double getVal();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.FloatValue#getVal <em>Val</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Val</em>' attribute.
+	 * @see #getVal()
+	 * @generated
+	 */
+	void setVal(double value);
+
+} // FloatValue

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Frequency.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Frequency</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getFrequency()
+ * @model
+ * @generated
+ */
+public interface Frequency extends Unit {
+} // Frequency

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/GloballyScope.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Globally Scope</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getGloballyScope()
+ * @model
+ * @generated
+ */
+public interface GloballyScope extends Scope {
+} // GloballyScope

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/GreaterThan.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Greater Than</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.GreaterThan#isEqualTo <em>Equal To</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getGreaterThan()
+ * @model
+ * @generated
+ */
+public interface GreaterThan extends Operator {
+	/**
+	 * Returns the value of the '<em><b>Equal To</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Equal To</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Equal To</em>' attribute.
+	 * @see #setEqualTo(boolean)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getGreaterThan_EqualTo()
+	 * @model
+	 * @generated
+	 */
+	boolean isEqualTo();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.GreaterThan#isEqualTo <em>Equal To</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Equal To</em>' attribute.
+	 * @see #isEqualTo()
+	 * @generated
+	 */
+	void setEqualTo(boolean value);
+
+} // GreaterThan

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Infinity.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Infinity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getInfinity()
+ * @model
+ * @generated
+ */
+public interface Infinity extends Expression, NumValue, Value {
+} // Infinity

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/IntValue.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Int Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.IntValue#getVal <em>Val</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getIntValue()
+ * @model
+ * @generated
+ */
+public interface IntValue extends Expression, NumValue, Value {
+	/**
+	 * Returns the value of the '<em><b>Val</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Val</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Val</em>' attribute.
+	 * @see #setVal(int)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getIntValue_Val()
+	 * @model
+	 * @generated
+	 */
+	int getVal();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.IntValue#getVal <em>Val</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Val</em>' attribute.
+	 * @see #getVal()
+	 * @generated
+	 */
+	void setVal(int value);
+
+} // IntValue

+ 158 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Interval.java

@@ -0,0 +1,158 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Interval</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Interval#isClosed_min <em>Closed min</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Interval#isClosed_max <em>Closed max</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Interval#getMin <em>Min</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Interval#getMax <em>Max</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Interval#getUnit <em>Unit</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getInterval()
+ * @model
+ * @generated
+ */
+public interface Interval extends Expression {
+	/**
+	 * Returns the value of the '<em><b>Closed min</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Closed min</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Closed min</em>' attribute.
+	 * @see #setClosed_min(boolean)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getInterval_Closed_min()
+	 * @model
+	 * @generated
+	 */
+	boolean isClosed_min();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Interval#isClosed_min <em>Closed min</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Closed min</em>' attribute.
+	 * @see #isClosed_min()
+	 * @generated
+	 */
+	void setClosed_min(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Closed max</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Closed max</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Closed max</em>' attribute.
+	 * @see #setClosed_max(boolean)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getInterval_Closed_max()
+	 * @model
+	 * @generated
+	 */
+	boolean isClosed_max();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Interval#isClosed_max <em>Closed max</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Closed max</em>' attribute.
+	 * @see #isClosed_max()
+	 * @generated
+	 */
+	void setClosed_max(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Min</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Min</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Min</em>' containment reference.
+	 * @see #setMin(Value)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getInterval_Min()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Value getMin();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Interval#getMin <em>Min</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Min</em>' containment reference.
+	 * @see #getMin()
+	 * @generated
+	 */
+	void setMin(Value value);
+
+	/**
+	 * Returns the value of the '<em><b>Max</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Max</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Max</em>' containment reference.
+	 * @see #setMax(Value)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getInterval_Max()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Value getMax();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Interval#getMax <em>Max</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Max</em>' containment reference.
+	 * @see #getMax()
+	 * @generated
+	 */
+	void setMax(Value value);
+
+	/**
+	 * Returns the value of the '<em><b>Unit</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Unit</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Unit</em>' containment reference.
+	 * @see #setUnit(Unit)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getInterval_Unit()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Unit getUnit();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Interval#getUnit <em>Unit</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Unit</em>' containment reference.
+	 * @see #getUnit()
+	 * @generated
+	 */
+	void setUnit(Unit value);
+
+} // Interval

+ 269 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/LOW_MED_HIGH.java

@@ -0,0 +1,269 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>LOW MED HIGH</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getLOW_MED_HIGH()
+ * @model
+ * @generated
+ */
+public enum LOW_MED_HIGH implements Enumerator {
+	/**
+	 * The '<em><b>NONE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NONE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NONE(0, "NONE", "NONE"),
+
+	/**
+	 * The '<em><b>LOW</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LOW_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LOW(1, "LOW", "LOW"),
+
+	/**
+	 * The '<em><b>MED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MED(2, "MED", "MED"),
+
+	/**
+	 * The '<em><b>HIGH</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #HIGH_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	HIGH(3, "HIGH", "HIGH");
+
+	/**
+	 * The '<em><b>NONE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NONE
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NONE_VALUE = 0;
+
+	/**
+	 * The '<em><b>LOW</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LOW</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #LOW
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LOW_VALUE = 1;
+
+	/**
+	 * The '<em><b>MED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MED
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MED_VALUE = 2;
+
+	/**
+	 * The '<em><b>HIGH</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>HIGH</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #HIGH
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int HIGH_VALUE = 3;
+
+	/**
+	 * An array of all the '<em><b>LOW MED HIGH</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final LOW_MED_HIGH[] VALUES_ARRAY =
+		new LOW_MED_HIGH[] {
+			NONE,
+			LOW,
+			MED,
+			HIGH,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>LOW MED HIGH</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<LOW_MED_HIGH> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>LOW MED HIGH</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static LOW_MED_HIGH get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			LOW_MED_HIGH result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>LOW MED HIGH</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static LOW_MED_HIGH getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			LOW_MED_HIGH result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>LOW MED HIGH</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static LOW_MED_HIGH get(int value) {
+		switch (value) {
+			case NONE_VALUE: return NONE;
+			case LOW_VALUE: return LOW;
+			case MED_VALUE: return MED;
+			case HIGH_VALUE: return HIGH;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private LOW_MED_HIGH(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //LOW_MED_HIGH

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/LessThan.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Less Than</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.LessThan#isEqualTo <em>Equal To</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getLessThan()
+ * @model
+ * @generated
+ */
+public interface LessThan extends Operator {
+	/**
+	 * Returns the value of the '<em><b>Equal To</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Equal To</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Equal To</em>' attribute.
+	 * @see #setEqualTo(boolean)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getLessThan_EqualTo()
+	 * @model
+	 * @generated
+	 */
+	boolean isEqualTo();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.LessThan#isEqualTo <em>Equal To</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Equal To</em>' attribute.
+	 * @see #isEqualTo()
+	 * @generated
+	 */
+	void setEqualTo(boolean value);
+
+} // LessThan

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/LowerTimeBound.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lower Time Bound</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.LowerTimeBound#getVal <em>Val</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getLowerTimeBound()
+ * @model
+ * @generated
+ */
+public interface LowerTimeBound extends Time {
+	/**
+	 * Returns the value of the '<em><b>Val</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Val</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Val</em>' containment reference.
+	 * @see #setVal(NumValue)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getLowerTimeBound_Val()
+	 * @model containment="true"
+	 * @generated
+	 */
+	NumValue getVal();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.LowerTimeBound#getVal <em>Val</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Val</em>' containment reference.
+	 * @see #getVal()
+	 * @generated
+	 */
+	void setVal(NumValue value);
+
+} // LowerTimeBound

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/MaxDurationPattern.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Max Duration Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.MaxDurationPattern#getDuration <em>Duration</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getMaxDurationPattern()
+ * @model
+ * @generated
+ */
+public interface MaxDurationPattern extends Occurrence {
+	/**
+	 * Returns the value of the '<em><b>Duration</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Duration</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Duration</em>' containment reference.
+	 * @see #setDuration(SingleTime)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getMaxDurationPattern_Duration()
+	 * @model containment="true"
+	 * @generated
+	 */
+	SingleTime getDuration();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.MaxDurationPattern#getDuration <em>Duration</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Duration</em>' containment reference.
+	 * @see #getDuration()
+	 * @generated
+	 */
+	void setDuration(SingleTime value);
+
+} // MaxDurationPattern

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/MetaStatement.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Meta Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getMetaStatement()
+ * @model
+ * @generated
+ */
+public interface MetaStatement extends EObject {
+} // MetaStatement

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Meters.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Meters</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getMeters()
+ * @model
+ * @generated
+ */
+public interface Meters extends Unit {
+} // Meters

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/MetersPerSecond.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Meters Per Second</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getMetersPerSecond()
+ * @model
+ * @generated
+ */
+public interface MetersPerSecond extends Unit {
+} // MetersPerSecond

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Milliseconds.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Milliseconds</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getMilliseconds()
+ * @model
+ * @generated
+ */
+public interface Milliseconds extends TimeUnit, Unit {
+} // Milliseconds

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/MinDurationPattern.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Min Duration Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.MinDurationPattern#getDuration <em>Duration</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getMinDurationPattern()
+ * @model
+ * @generated
+ */
+public interface MinDurationPattern extends Occurrence {
+	/**
+	 * Returns the value of the '<em><b>Duration</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Duration</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Duration</em>' containment reference.
+	 * @see #setDuration(SingleTime)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getMinDurationPattern_Duration()
+	 * @model containment="true"
+	 * @generated
+	 */
+	SingleTime getDuration();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.MinDurationPattern#getDuration <em>Duration</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Duration</em>' containment reference.
+	 * @see #getDuration()
+	 * @generated
+	 */
+	void setDuration(SingleTime value);
+
+} // MinDurationPattern

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/NumValue.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Num Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getNumValue()
+ * @model
+ * @generated
+ */
+public interface NumValue extends EObject {
+} // NumValue

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Occurrence.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Occurrence</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Occurrence#getStatement <em>Statement</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getOccurrence()
+ * @model
+ * @generated
+ */
+public interface Occurrence extends Pattern {
+	/**
+	 * Returns the value of the '<em><b>Statement</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statement</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statement</em>' reference.
+	 * @see #setStatement(Statement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getOccurrence_Statement()
+	 * @model
+	 * @generated
+	 */
+	Statement getStatement();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Occurrence#getStatement <em>Statement</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Statement</em>' reference.
+	 * @see #getStatement()
+	 * @generated
+	 */
+	void setStatement(Statement value);
+
+} // Occurrence

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Operator.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Operator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getOperator()
+ * @model
+ * @generated
+ */
+public interface Operator extends EObject {
+} // Operator

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Order.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Order</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getOrder()
+ * @model
+ * @generated
+ */
+public interface Order extends Pattern {
+} // Order

+ 51 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Pattern.java

@@ -0,0 +1,51 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Pattern#getProb <em>Prob</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPattern()
+ * @model
+ * @generated
+ */
+public interface Pattern extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Prob</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Prob</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Prob</em>' containment reference.
+	 * @see #setProb(Probability)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPattern_Prob()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Probability getProb();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Pattern#getProb <em>Prob</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Prob</em>' containment reference.
+	 * @see #getProb()
+	 * @generated
+	 */
+	void setProb(Probability value);
+
+} // Pattern

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Percentage.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Percentage</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPercentage()
+ * @model
+ * @generated
+ */
+public interface Percentage extends Unit {
+} // Percentage

+ 105 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/PrecStatement.java

@@ -0,0 +1,105 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Prec Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.PrecStatement#getStatement <em>Statement</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.PrecStatement#getTime <em>Time</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.PrecStatement#getConstraint <em>Constraint</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecStatement()
+ * @model
+ * @generated
+ */
+public interface PrecStatement extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Statement</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statement</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statement</em>' containment reference.
+	 * @see #setStatement(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecStatement_Statement()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getStatement();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.PrecStatement#getStatement <em>Statement</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Statement</em>' containment reference.
+	 * @see #getStatement()
+	 * @generated
+	 */
+	void setStatement(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Time</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time</em>' containment reference.
+	 * @see #setTime(Time)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecStatement_Time()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Time getTime();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.PrecStatement#getTime <em>Time</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time</em>' containment reference.
+	 * @see #getTime()
+	 * @generated
+	 */
+	void setTime(Time value);
+
+	/**
+	 * Returns the value of the '<em><b>Constraint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constraint</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constraint</em>' containment reference.
+	 * @see #setConstraint(Constraint)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecStatement_Constraint()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Constraint getConstraint();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.PrecStatement#getConstraint <em>Constraint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Constraint</em>' containment reference.
+	 * @see #getConstraint()
+	 * @generated
+	 */
+	void setConstraint(Constraint value);
+
+} // PrecStatement

+ 149 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/PrecedenceChain1NPattern.java

@@ -0,0 +1,149 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Precedence Chain1 NPattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.PrecedenceChain1NPattern#getSecond <em>Second</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.PrecedenceChain1NPattern#getStatements <em>Statements</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.PrecedenceChain1NPattern#getFirst <em>First</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.PrecedenceChain1NPattern#getInterval <em>Interval</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.PrecedenceChain1NPattern#getConstraint <em>Constraint</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecedenceChain1NPattern()
+ * @model
+ * @generated
+ */
+public interface PrecedenceChain1NPattern extends Order {
+	/**
+	 * Returns the value of the '<em><b>Second</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Second</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Second</em>' reference.
+	 * @see #setSecond(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecedenceChain1NPattern_Second()
+	 * @model
+	 * @generated
+	 */
+	MetaStatement getSecond();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.PrecedenceChain1NPattern#getSecond <em>Second</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Second</em>' reference.
+	 * @see #getSecond()
+	 * @generated
+	 */
+	void setSecond(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Statements</b></em>' reference list.
+	 * The list contents are of type {@link be.uantwerpen.cosys.contractLang.PrecStatement}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statements</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statements</em>' reference list.
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecedenceChain1NPattern_Statements()
+	 * @model
+	 * @generated
+	 */
+	EList<PrecStatement> getStatements();
+
+	/**
+	 * Returns the value of the '<em><b>First</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>First</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>First</em>' reference.
+	 * @see #setFirst(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecedenceChain1NPattern_First()
+	 * @model
+	 * @generated
+	 */
+	MetaStatement getFirst();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.PrecedenceChain1NPattern#getFirst <em>First</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>First</em>' reference.
+	 * @see #getFirst()
+	 * @generated
+	 */
+	void setFirst(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Interval</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Interval</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Interval</em>' containment reference.
+	 * @see #setInterval(Interval)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecedenceChain1NPattern_Interval()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Interval getInterval();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.PrecedenceChain1NPattern#getInterval <em>Interval</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Interval</em>' containment reference.
+	 * @see #getInterval()
+	 * @generated
+	 */
+	void setInterval(Interval value);
+
+	/**
+	 * Returns the value of the '<em><b>Constraint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constraint</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constraint</em>' containment reference.
+	 * @see #setConstraint(Constraint)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecedenceChain1NPattern_Constraint()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Constraint getConstraint();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.PrecedenceChain1NPattern#getConstraint <em>Constraint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Constraint</em>' containment reference.
+	 * @see #getConstraint()
+	 * @generated
+	 */
+	void setConstraint(Constraint value);
+
+} // PrecedenceChain1NPattern

+ 104 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/PrecedencePattern.java

@@ -0,0 +1,104 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Precedence Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.PrecedencePattern#getFirst <em>First</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.PrecedencePattern#getSecond <em>Second</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.PrecedencePattern#getInterval <em>Interval</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecedencePattern()
+ * @model
+ * @generated
+ */
+public interface PrecedencePattern extends Order {
+	/**
+	 * Returns the value of the '<em><b>First</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>First</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>First</em>' reference.
+	 * @see #setFirst(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecedencePattern_First()
+	 * @model
+	 * @generated
+	 */
+	MetaStatement getFirst();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.PrecedencePattern#getFirst <em>First</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>First</em>' reference.
+	 * @see #getFirst()
+	 * @generated
+	 */
+	void setFirst(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Second</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Second</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Second</em>' reference.
+	 * @see #setSecond(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecedencePattern_Second()
+	 * @model
+	 * @generated
+	 */
+	MetaStatement getSecond();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.PrecedencePattern#getSecond <em>Second</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Second</em>' reference.
+	 * @see #getSecond()
+	 * @generated
+	 */
+	void setSecond(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Interval</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Interval</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Interval</em>' containment reference.
+	 * @see #setInterval(Interval)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getPrecedencePattern_Interval()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Interval getInterval();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.PrecedencePattern#getInterval <em>Interval</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Interval</em>' containment reference.
+	 * @see #getInterval()
+	 * @generated
+	 */
+	void setInterval(Interval value);
+
+} // PrecedencePattern

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ProbGreater.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Prob Greater</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getProbGreater()
+ * @model
+ * @generated
+ */
+public interface ProbGreater extends EObject {
+} // ProbGreater

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ProbGreaterEq.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Prob Greater Eq</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getProbGreaterEq()
+ * @model
+ * @generated
+ */
+public interface ProbGreaterEq extends EObject {
+} // ProbGreaterEq

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ProbLess.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Prob Less</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getProbLess()
+ * @model
+ * @generated
+ */
+public interface ProbLess extends EObject {
+} // ProbLess

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ProbLessEq.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Prob Less Eq</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getProbLessEq()
+ * @model
+ * @generated
+ */
+public interface ProbLessEq extends EObject {
+} // ProbLessEq

+ 51 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Probability.java

@@ -0,0 +1,51 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Probability</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Probability#getProb <em>Prob</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getProbability()
+ * @model
+ * @generated
+ */
+public interface Probability extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Prob</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Prob</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Prob</em>' containment reference.
+	 * @see #setProb(EObject)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getProbability_Prob()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EObject getProb();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Probability#getProb <em>Prob</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Prob</em>' containment reference.
+	 * @see #getProb()
+	 * @generated
+	 */
+	void setProb(EObject value);
+
+} // Probability

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Property.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getProperty()
+ * @model
+ * @generated
+ */
+public interface Property extends Statement {
+} // Property

+ 53 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/QualValue.java

@@ -0,0 +1,53 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Qual Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.QualValue#getVal <em>Val</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getQualValue()
+ * @model
+ * @generated
+ */
+public interface QualValue extends Expression, Value {
+	/**
+	 * Returns the value of the '<em><b>Val</b></em>' attribute.
+	 * The literals are from the enumeration {@link be.uantwerpen.cosys.contractLang.LOW_MED_HIGH}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Val</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Val</em>' attribute.
+	 * @see be.uantwerpen.cosys.contractLang.LOW_MED_HIGH
+	 * @see #setVal(LOW_MED_HIGH)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getQualValue_Val()
+	 * @model
+	 * @generated
+	 */
+	LOW_MED_HIGH getVal();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.QualValue#getVal <em>Val</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Val</em>' attribute.
+	 * @see be.uantwerpen.cosys.contractLang.LOW_MED_HIGH
+	 * @see #getVal()
+	 * @generated
+	 */
+	void setVal(LOW_MED_HIGH value);
+
+} // QualValue

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Recurrence.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Recurrence</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Recurrence#getTime <em>Time</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getRecurrence()
+ * @model
+ * @generated
+ */
+public interface Recurrence extends Occurrence {
+	/**
+	 * Returns the value of the '<em><b>Time</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time</em>' containment reference.
+	 * @see #setTime(SingleTime)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getRecurrence_Time()
+	 * @model containment="true"
+	 * @generated
+	 */
+	SingleTime getTime();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Recurrence#getTime <em>Time</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time</em>' containment reference.
+	 * @see #getTime()
+	 * @generated
+	 */
+	void setTime(SingleTime value);
+
+} // Recurrence

+ 149 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ResponseChain1NPattern.java

@@ -0,0 +1,149 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Response Chain1 NPattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseChain1NPattern#getFirst <em>First</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseChain1NPattern#getSecond <em>Second</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseChain1NPattern#getTime <em>Time</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseChain1NPattern#getConstraint <em>Constraint</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseChain1NPattern#getStatements <em>Statements</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseChain1NPattern()
+ * @model
+ * @generated
+ */
+public interface ResponseChain1NPattern extends Order {
+	/**
+	 * Returns the value of the '<em><b>First</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>First</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>First</em>' containment reference.
+	 * @see #setFirst(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseChain1NPattern_First()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getFirst();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponseChain1NPattern#getFirst <em>First</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>First</em>' containment reference.
+	 * @see #getFirst()
+	 * @generated
+	 */
+	void setFirst(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Second</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Second</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Second</em>' containment reference.
+	 * @see #setSecond(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseChain1NPattern_Second()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getSecond();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponseChain1NPattern#getSecond <em>Second</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Second</em>' containment reference.
+	 * @see #getSecond()
+	 * @generated
+	 */
+	void setSecond(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Time</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time</em>' containment reference.
+	 * @see #setTime(Time)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseChain1NPattern_Time()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Time getTime();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponseChain1NPattern#getTime <em>Time</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time</em>' containment reference.
+	 * @see #getTime()
+	 * @generated
+	 */
+	void setTime(Time value);
+
+	/**
+	 * Returns the value of the '<em><b>Constraint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constraint</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constraint</em>' containment reference.
+	 * @see #setConstraint(Constraint)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseChain1NPattern_Constraint()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Constraint getConstraint();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponseChain1NPattern#getConstraint <em>Constraint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Constraint</em>' containment reference.
+	 * @see #getConstraint()
+	 * @generated
+	 */
+	void setConstraint(Constraint value);
+
+	/**
+	 * Returns the value of the '<em><b>Statements</b></em>' reference list.
+	 * The list contents are of type {@link be.uantwerpen.cosys.contractLang.PrecStatement}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statements</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statements</em>' reference list.
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseChain1NPattern_Statements()
+	 * @model
+	 * @generated
+	 */
+	EList<PrecStatement> getStatements();
+
+} // ResponseChain1NPattern

+ 149 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ResponseChainN1Pattern.java

@@ -0,0 +1,149 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Response Chain N1 Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseChainN1Pattern#getSecond <em>Second</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseChainN1Pattern#getStatements <em>Statements</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseChainN1Pattern#getFirst <em>First</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseChainN1Pattern#getTime <em>Time</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseChainN1Pattern#getConstraint <em>Constraint</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseChainN1Pattern()
+ * @model
+ * @generated
+ */
+public interface ResponseChainN1Pattern extends Order {
+	/**
+	 * Returns the value of the '<em><b>Second</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Second</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Second</em>' containment reference.
+	 * @see #setSecond(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseChainN1Pattern_Second()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getSecond();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponseChainN1Pattern#getSecond <em>Second</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Second</em>' containment reference.
+	 * @see #getSecond()
+	 * @generated
+	 */
+	void setSecond(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Statements</b></em>' reference list.
+	 * The list contents are of type {@link be.uantwerpen.cosys.contractLang.PrecStatement}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statements</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statements</em>' reference list.
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseChainN1Pattern_Statements()
+	 * @model
+	 * @generated
+	 */
+	EList<PrecStatement> getStatements();
+
+	/**
+	 * Returns the value of the '<em><b>First</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>First</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>First</em>' containment reference.
+	 * @see #setFirst(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseChainN1Pattern_First()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getFirst();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponseChainN1Pattern#getFirst <em>First</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>First</em>' containment reference.
+	 * @see #getFirst()
+	 * @generated
+	 */
+	void setFirst(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Time</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time</em>' containment reference.
+	 * @see #setTime(Time)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseChainN1Pattern_Time()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Time getTime();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponseChainN1Pattern#getTime <em>Time</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time</em>' containment reference.
+	 * @see #getTime()
+	 * @generated
+	 */
+	void setTime(Time value);
+
+	/**
+	 * Returns the value of the '<em><b>Constraint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constraint</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constraint</em>' containment reference.
+	 * @see #setConstraint(Constraint)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseChainN1Pattern_Constraint()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Constraint getConstraint();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponseChainN1Pattern#getConstraint <em>Constraint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Constraint</em>' containment reference.
+	 * @see #getConstraint()
+	 * @generated
+	 */
+	void setConstraint(Constraint value);
+
+} // ResponseChainN1Pattern

+ 104 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ResponseInvariancePattern.java

@@ -0,0 +1,104 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Response Invariance Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseInvariancePattern#getFirst <em>First</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseInvariancePattern#getSecond <em>Second</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponseInvariancePattern#getTime <em>Time</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseInvariancePattern()
+ * @model
+ * @generated
+ */
+public interface ResponseInvariancePattern extends Order {
+	/**
+	 * Returns the value of the '<em><b>First</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>First</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>First</em>' containment reference.
+	 * @see #setFirst(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseInvariancePattern_First()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getFirst();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponseInvariancePattern#getFirst <em>First</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>First</em>' containment reference.
+	 * @see #getFirst()
+	 * @generated
+	 */
+	void setFirst(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Second</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Second</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Second</em>' containment reference.
+	 * @see #setSecond(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseInvariancePattern_Second()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getSecond();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponseInvariancePattern#getSecond <em>Second</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Second</em>' containment reference.
+	 * @see #getSecond()
+	 * @generated
+	 */
+	void setSecond(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Time</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time</em>' containment reference.
+	 * @see #setTime(Time)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponseInvariancePattern_Time()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Time getTime();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponseInvariancePattern#getTime <em>Time</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time</em>' containment reference.
+	 * @see #getTime()
+	 * @generated
+	 */
+	void setTime(Time value);
+
+} // ResponseInvariancePattern

+ 131 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ResponsePattern.java

@@ -0,0 +1,131 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Response Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponsePattern#getFirst <em>First</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponsePattern#getSecond <em>Second</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponsePattern#getTime <em>Time</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ResponsePattern#getConstraint <em>Constraint</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponsePattern()
+ * @model
+ * @generated
+ */
+public interface ResponsePattern extends Order {
+	/**
+	 * Returns the value of the '<em><b>First</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>First</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>First</em>' containment reference.
+	 * @see #setFirst(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponsePattern_First()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getFirst();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponsePattern#getFirst <em>First</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>First</em>' containment reference.
+	 * @see #getFirst()
+	 * @generated
+	 */
+	void setFirst(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Second</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Second</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Second</em>' containment reference.
+	 * @see #setSecond(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponsePattern_Second()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getSecond();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponsePattern#getSecond <em>Second</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Second</em>' containment reference.
+	 * @see #getSecond()
+	 * @generated
+	 */
+	void setSecond(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Time</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time</em>' containment reference.
+	 * @see #setTime(Time)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponsePattern_Time()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Time getTime();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponsePattern#getTime <em>Time</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time</em>' containment reference.
+	 * @see #getTime()
+	 * @generated
+	 */
+	void setTime(Time value);
+
+	/**
+	 * Returns the value of the '<em><b>Constraint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constraint</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constraint</em>' containment reference.
+	 * @see #setConstraint(Constraint)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getResponsePattern_Constraint()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Constraint getConstraint();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ResponsePattern#getConstraint <em>Constraint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Constraint</em>' containment reference.
+	 * @see #getConstraint()
+	 * @generated
+	 */
+	void setConstraint(Constraint value);
+
+} // ResponsePattern

+ 78 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Root.java

@@ -0,0 +1,78 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Root</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Root#getContract <em>Contract</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Root#getContractSet <em>Contract Set</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getRoot()
+ * @model
+ * @generated
+ */
+public interface Root extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Contract</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Contract</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Contract</em>' containment reference.
+	 * @see #setContract(Contract)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getRoot_Contract()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Contract getContract();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Root#getContract <em>Contract</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Contract</em>' containment reference.
+	 * @see #getContract()
+	 * @generated
+	 */
+	void setContract(Contract value);
+
+	/**
+	 * Returns the value of the '<em><b>Contract Set</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Contract Set</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Contract Set</em>' containment reference.
+	 * @see #setContractSet(ContractSet)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getRoot_ContractSet()
+	 * @model containment="true"
+	 * @generated
+	 */
+	ContractSet getContractSet();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Root#getContractSet <em>Contract Set</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Contract Set</em>' containment reference.
+	 * @see #getContractSet()
+	 * @generated
+	 */
+	void setContractSet(ContractSet value);
+
+} // Root

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Scope.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Scope</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getScope()
+ * @model
+ * @generated
+ */
+public interface Scope extends EObject {
+} // Scope

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Seconds.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Seconds</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getSeconds()
+ * @model
+ * @generated
+ */
+public interface Seconds extends TimeUnit, Unit {
+} // Seconds

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/SingleTime.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Single Time</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.SingleTime#getVal <em>Val</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getSingleTime()
+ * @model
+ * @generated
+ */
+public interface SingleTime extends Time {
+	/**
+	 * Returns the value of the '<em><b>Val</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Val</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Val</em>' containment reference.
+	 * @see #setVal(NumValue)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getSingleTime_Val()
+	 * @model containment="true"
+	 * @generated
+	 */
+	NumValue getVal();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.SingleTime#getVal <em>Val</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Val</em>' containment reference.
+	 * @see #getVal()
+	 * @generated
+	 */
+	void setVal(NumValue value);
+
+} // SingleTime

+ 132 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Statement.java

@@ -0,0 +1,132 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Statement#getName <em>Name</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Statement#getVar <em>Var</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Statement#getOper <em>Oper</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Statement#getExpr <em>Expr</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatement()
+ * @model
+ * @generated
+ */
+public interface Statement extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatement_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Statement#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Var</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Var</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Var</em>' containment reference.
+	 * @see #setVar(VarOrVarOp)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatement_Var()
+	 * @model containment="true"
+	 * @generated
+	 */
+	VarOrVarOp getVar();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Statement#getVar <em>Var</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Var</em>' containment reference.
+	 * @see #getVar()
+	 * @generated
+	 */
+	void setVar(VarOrVarOp value);
+
+	/**
+	 * Returns the value of the '<em><b>Oper</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Oper</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Oper</em>' containment reference.
+	 * @see #setOper(Operator)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatement_Oper()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Operator getOper();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Statement#getOper <em>Oper</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Oper</em>' containment reference.
+	 * @see #getOper()
+	 * @generated
+	 */
+	void setOper(Operator value);
+
+	/**
+	 * Returns the value of the '<em><b>Expr</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Expr</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Expr</em>' containment reference.
+	 * @see #setExpr(Expression)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatement_Expr()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Expression getExpr();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Statement#getExpr <em>Expr</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Expr</em>' containment reference.
+	 * @see #getExpr()
+	 * @generated
+	 */
+	void setExpr(Expression value);
+
+} // Statement

+ 77 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/StatementAnd.java

@@ -0,0 +1,77 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Statement And</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.StatementAnd#getStatement1 <em>Statement1</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.StatementAnd#getStatement2 <em>Statement2</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatementAnd()
+ * @model
+ * @generated
+ */
+public interface StatementAnd extends StatementOp {
+	/**
+	 * Returns the value of the '<em><b>Statement1</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statement1</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statement1</em>' containment reference.
+	 * @see #setStatement1(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatementAnd_Statement1()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getStatement1();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.StatementAnd#getStatement1 <em>Statement1</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Statement1</em>' containment reference.
+	 * @see #getStatement1()
+	 * @generated
+	 */
+	void setStatement1(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Statement2</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statement2</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statement2</em>' containment reference.
+	 * @see #setStatement2(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatementAnd_Statement2()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getStatement2();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.StatementAnd#getStatement2 <em>Statement2</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Statement2</em>' containment reference.
+	 * @see #getStatement2()
+	 * @generated
+	 */
+	void setStatement2(MetaStatement value);
+
+} // StatementAnd

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/StatementNot.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Statement Not</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.StatementNot#getStatement <em>Statement</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatementNot()
+ * @model
+ * @generated
+ */
+public interface StatementNot extends StatementOp {
+	/**
+	 * Returns the value of the '<em><b>Statement</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statement</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statement</em>' containment reference.
+	 * @see #setStatement(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatementNot_Statement()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getStatement();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.StatementNot#getStatement <em>Statement</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Statement</em>' containment reference.
+	 * @see #getStatement()
+	 * @generated
+	 */
+	void setStatement(MetaStatement value);
+
+} // StatementNot

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/StatementOp.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Statement Op</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatementOp()
+ * @model
+ * @generated
+ */
+public interface StatementOp extends MetaStatement {
+} // StatementOp

+ 77 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/StatementOr.java

@@ -0,0 +1,77 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Statement Or</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.StatementOr#getStatement1 <em>Statement1</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.StatementOr#getStatement2 <em>Statement2</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatementOr()
+ * @model
+ * @generated
+ */
+public interface StatementOr extends StatementOp {
+	/**
+	 * Returns the value of the '<em><b>Statement1</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statement1</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statement1</em>' containment reference.
+	 * @see #setStatement1(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatementOr_Statement1()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getStatement1();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.StatementOr#getStatement1 <em>Statement1</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Statement1</em>' containment reference.
+	 * @see #getStatement1()
+	 * @generated
+	 */
+	void setStatement1(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Statement2</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statement2</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statement2</em>' containment reference.
+	 * @see #setStatement2(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatementOr_Statement2()
+	 * @model containment="true"
+	 * @generated
+	 */
+	MetaStatement getStatement2();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.StatementOr#getStatement2 <em>Statement2</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Statement2</em>' containment reference.
+	 * @see #getStatement2()
+	 * @generated
+	 */
+	void setStatement2(MetaStatement value);
+
+} // StatementOr

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/StatementRef.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Statement Ref</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.StatementRef#getStatement <em>Statement</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatementRef()
+ * @model
+ * @generated
+ */
+public interface StatementRef extends MetaStatement {
+	/**
+	 * Returns the value of the '<em><b>Statement</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Statement</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statement</em>' reference.
+	 * @see #setStatement(Statement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStatementRef_Statement()
+	 * @model
+	 * @generated
+	 */
+	Statement getStatement();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.StatementRef#getStatement <em>Statement</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Statement</em>' reference.
+	 * @see #getStatement()
+	 * @generated
+	 */
+	void setStatement(Statement value);
+
+} // StatementRef

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/SteadyStatePattern.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Steady State Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getSteadyStatePattern()
+ * @model
+ * @generated
+ */
+public interface SteadyStatePattern extends Occurrence {
+} // SteadyStatePattern

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/SteadyStateSuggestion.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Steady State Suggestion</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getSteadyStateSuggestion()
+ * @model
+ * @generated
+ */
+public interface SteadyStateSuggestion extends DomainValue {
+} // SteadyStateSuggestion

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/StringValue.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>String Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.StringValue#getVal <em>Val</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStringValue()
+ * @model
+ * @generated
+ */
+public interface StringValue extends Expression, Value {
+	/**
+	 * Returns the value of the '<em><b>Val</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Val</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Val</em>' attribute.
+	 * @see #setVal(String)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getStringValue_Val()
+	 * @model
+	 * @generated
+	 */
+	String getVal();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.StringValue#getVal <em>Val</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Val</em>' attribute.
+	 * @see #getVal()
+	 * @generated
+	 */
+	void setVal(String value);
+
+} // StringValue

+ 51 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Time.java

@@ -0,0 +1,51 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Time</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.Time#getUnit <em>Unit</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getTime()
+ * @model
+ * @generated
+ */
+public interface Time extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Unit</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Unit</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Unit</em>' containment reference.
+	 * @see #setUnit(TimeUnit)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getTime_Unit()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TimeUnit getUnit();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.Time#getUnit <em>Unit</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Unit</em>' containment reference.
+	 * @see #getUnit()
+	 * @generated
+	 */
+	void setUnit(TimeUnit value);
+
+} // Time

+ 131 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/TimeInterval.java

@@ -0,0 +1,131 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Time Interval</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.TimeInterval#getMin <em>Min</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.TimeInterval#getMax <em>Max</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.TimeInterval#isClosed_min <em>Closed min</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.TimeInterval#isClosed_max <em>Closed max</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getTimeInterval()
+ * @model
+ * @generated
+ */
+public interface TimeInterval extends Time {
+	/**
+	 * Returns the value of the '<em><b>Min</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Min</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Min</em>' containment reference.
+	 * @see #setMin(NumValue)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getTimeInterval_Min()
+	 * @model containment="true"
+	 * @generated
+	 */
+	NumValue getMin();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.TimeInterval#getMin <em>Min</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Min</em>' containment reference.
+	 * @see #getMin()
+	 * @generated
+	 */
+	void setMin(NumValue value);
+
+	/**
+	 * Returns the value of the '<em><b>Max</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Max</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Max</em>' containment reference.
+	 * @see #setMax(NumValue)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getTimeInterval_Max()
+	 * @model containment="true"
+	 * @generated
+	 */
+	NumValue getMax();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.TimeInterval#getMax <em>Max</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Max</em>' containment reference.
+	 * @see #getMax()
+	 * @generated
+	 */
+	void setMax(NumValue value);
+
+	/**
+	 * Returns the value of the '<em><b>Closed min</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Closed min</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Closed min</em>' attribute.
+	 * @see #setClosed_min(boolean)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getTimeInterval_Closed_min()
+	 * @model
+	 * @generated
+	 */
+	boolean isClosed_min();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.TimeInterval#isClosed_min <em>Closed min</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Closed min</em>' attribute.
+	 * @see #isClosed_min()
+	 * @generated
+	 */
+	void setClosed_min(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Closed max</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Closed max</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Closed max</em>' attribute.
+	 * @see #setClosed_max(boolean)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getTimeInterval_Closed_max()
+	 * @model
+	 * @generated
+	 */
+	boolean isClosed_max();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.TimeInterval#isClosed_max <em>Closed max</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Closed max</em>' attribute.
+	 * @see #isClosed_max()
+	 * @generated
+	 */
+	void setClosed_max(boolean value);
+
+} // TimeInterval

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/TimeUnit.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Time Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getTimeUnit()
+ * @model
+ * @generated
+ */
+public interface TimeUnit extends EObject {
+} // TimeUnit

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/TransientStatePattern.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transient State Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.TransientStatePattern#getTime <em>Time</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getTransientStatePattern()
+ * @model
+ * @generated
+ */
+public interface TransientStatePattern extends Occurrence {
+	/**
+	 * Returns the value of the '<em><b>Time</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time</em>' containment reference.
+	 * @see #setTime(SingleTime)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getTransientStatePattern_Time()
+	 * @model containment="true"
+	 * @generated
+	 */
+	SingleTime getTime();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.TransientStatePattern#getTime <em>Time</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time</em>' containment reference.
+	 * @see #getTime()
+	 * @generated
+	 */
+	void setTime(SingleTime value);
+
+} // TransientStatePattern

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/True.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>True</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getTrue()
+ * @model
+ * @generated
+ */
+public interface True extends Expression, Value {
+} // True

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Unit.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getUnit()
+ * @model
+ * @generated
+ */
+public interface Unit extends EObject {
+} // Unit

+ 18 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Unitless.java

@@ -0,0 +1,18 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Unitless</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getUnitless()
+ * @model
+ * @generated
+ */
+public interface Unitless extends Unit {
+} // Unitless

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/UniversalityPattern.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Universality Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.UniversalityPattern#getTime <em>Time</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getUniversalityPattern()
+ * @model
+ * @generated
+ */
+public interface UniversalityPattern extends Occurrence {
+	/**
+	 * Returns the value of the '<em><b>Time</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time</em>' containment reference.
+	 * @see #setTime(Time)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getUniversalityPattern_Time()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Time getTime();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.UniversalityPattern#getTime <em>Time</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time</em>' containment reference.
+	 * @see #getTime()
+	 * @generated
+	 */
+	void setTime(Time value);
+
+} // UniversalityPattern

+ 104 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/UntilPattern.java

@@ -0,0 +1,104 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Until Pattern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.UntilPattern#getFirst <em>First</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.UntilPattern#getSecond <em>Second</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.UntilPattern#getTime <em>Time</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getUntilPattern()
+ * @model
+ * @generated
+ */
+public interface UntilPattern extends Order {
+	/**
+	 * Returns the value of the '<em><b>First</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>First</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>First</em>' reference.
+	 * @see #setFirst(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getUntilPattern_First()
+	 * @model
+	 * @generated
+	 */
+	MetaStatement getFirst();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.UntilPattern#getFirst <em>First</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>First</em>' reference.
+	 * @see #getFirst()
+	 * @generated
+	 */
+	void setFirst(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Second</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Second</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Second</em>' reference.
+	 * @see #setSecond(MetaStatement)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getUntilPattern_Second()
+	 * @model
+	 * @generated
+	 */
+	MetaStatement getSecond();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.UntilPattern#getSecond <em>Second</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Second</em>' reference.
+	 * @see #getSecond()
+	 * @generated
+	 */
+	void setSecond(MetaStatement value);
+
+	/**
+	 * Returns the value of the '<em><b>Time</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time</em>' containment reference.
+	 * @see #setTime(Time)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getUntilPattern_Time()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Time getTime();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.UntilPattern#getTime <em>Time</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time</em>' containment reference.
+	 * @see #getTime()
+	 * @generated
+	 */
+	void setTime(Time value);
+
+} // UntilPattern

+ 50 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/UpperTimeBound.java

@@ -0,0 +1,50 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Upper Time Bound</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.UpperTimeBound#getVal <em>Val</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getUpperTimeBound()
+ * @model
+ * @generated
+ */
+public interface UpperTimeBound extends Time {
+	/**
+	 * Returns the value of the '<em><b>Val</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Val</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Val</em>' containment reference.
+	 * @see #setVal(NumValue)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getUpperTimeBound_Val()
+	 * @model containment="true"
+	 * @generated
+	 */
+	NumValue getVal();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.UpperTimeBound#getVal <em>Val</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Val</em>' containment reference.
+	 * @see #getVal()
+	 * @generated
+	 */
+	void setVal(NumValue value);
+
+} // UpperTimeBound

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Value.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getValue()
+ * @model
+ * @generated
+ */
+public interface Value extends EObject {
+} // Value

+ 77 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/ValueWithUnit.java

@@ -0,0 +1,77 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Value With Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ValueWithUnit#getVal <em>Val</em>}</li>
+ *   <li>{@link be.uantwerpen.cosys.contractLang.ValueWithUnit#getUnit <em>Unit</em>}</li>
+ * </ul>
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getValueWithUnit()
+ * @model
+ * @generated
+ */
+public interface ValueWithUnit extends Expression, Value {
+	/**
+	 * Returns the value of the '<em><b>Val</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Val</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Val</em>' containment reference.
+	 * @see #setVal(NumValue)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getValueWithUnit_Val()
+	 * @model containment="true"
+	 * @generated
+	 */
+	NumValue getVal();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ValueWithUnit#getVal <em>Val</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Val</em>' containment reference.
+	 * @see #getVal()
+	 * @generated
+	 */
+	void setVal(NumValue value);
+
+	/**
+	 * Returns the value of the '<em><b>Unit</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Unit</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Unit</em>' containment reference.
+	 * @see #setUnit(Unit)
+	 * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getValueWithUnit_Unit()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Unit getUnit();
+
+	/**
+	 * Sets the value of the '{@link be.uantwerpen.cosys.contractLang.ValueWithUnit#getUnit <em>Unit</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Unit</em>' containment reference.
+	 * @see #getUnit()
+	 * @generated
+	 */
+	void setUnit(Unit value);
+
+} // ValueWithUnit

+ 19 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/VarOrVarOp.java

@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.16.0
+ */
+package be.uantwerpen.cosys.contractLang;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Var Or Var Op</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see be.uantwerpen.cosys.contractLang.ContractLangPackage#getVarOrVarOp()
+ * @model
+ * @generated
+ */
+public interface VarOrVarOp extends EObject {
+} // VarOrVarOp

+ 0 - 0
be.uantwerpen.cosys.ContractLang/src/be/uantwerpen/cosys/contractLang/Variable.java


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.