catch up with branch daily

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
index c98f857..0770d2f 100644
--- a/jenkins.build.config.xml
+++ b/jenkins.build.config.xml
@@ -25,6 +25,7 @@
                 <jenkins.build.dependency>org.eclipse.osbp.vaaclipse</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.addons</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.datainterchange</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.functionlibrary</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.i18n</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.oxtype</jenkins.build.dependency>
         </jenkins.build.dependencies>
diff --git a/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/SignalDSLParser.java b/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/SignalDSLParser.java
index 21ea18e..97aab24 100644
--- a/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/SignalDSLParser.java
+++ b/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/SignalDSLParser.java
@@ -47,8 +47,10 @@
 				private static final long serialVersionUID = 1L;
 				{
 					put(grammarAccess.getSignalDefinitionAccess().getAlternatives(), "rule__SignalDefinition__Alternatives");
-					put(grammarAccess.getWatcherDefinitionAccess().getAlternatives(), "rule__WatcherDefinition__Alternatives");
+					put(grammarAccess.getSignalWatcherAccess().getAlternatives_3(), "rule__SignalWatcher__Alternatives_3");
 					put(grammarAccess.getSchedulerTypeAccess().getAlternatives(), "rule__SchedulerType__Alternatives");
+					put(grammarAccess.getSignalTaskAccess().getAlternatives(), "rule__SignalTask__Alternatives");
+					put(grammarAccess.getSignalFunctionAccess().getAlternatives_2(), "rule__SignalFunction__Alternatives_2");
 					put(grammarAccess.getXImportDeclarationAccess().getAlternatives_2(), "rule__XImportDeclaration__Alternatives_2");
 					put(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3(), "rule__XImportDeclaration__Alternatives_2_0_3");
 					put(grammarAccess.getXAnnotationAccess().getAlternatives_3_1(), "rule__XAnnotation__Alternatives_3_1");
@@ -92,15 +94,14 @@
 					put(grammarAccess.getJvmTypeReferenceAccess().getAlternatives(), "rule__JvmTypeReference__Alternatives");
 					put(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives(), "rule__JvmArgumentTypeReference__Alternatives");
 					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2(), "rule__JvmWildcardTypeReference__Alternatives_2");
-					put(grammarAccess.getSignalActionEnumAccess().getAlternatives(), "rule__SignalActionEnum__Alternatives");
+					put(grammarAccess.getSignalActionTypeEnumAccess().getAlternatives(), "rule__SignalActionTypeEnum__Alternatives");
 					put(grammarAccess.getSignalExecutionTypeEnumAccess().getAlternatives(), "rule__SignalExecutionTypeEnum__Alternatives");
 					put(grammarAccess.getDayOfWeekEnumAccess().getAlternatives(), "rule__DayOfWeekEnum__Alternatives");
 					put(grammarAccess.getSignalModelAccess().getGroup(), "rule__SignalModel__Group__0");
 					put(grammarAccess.getSignalPackageAccess().getGroup(), "rule__SignalPackage__Group__0");
 					put(grammarAccess.getSignalPackageAccess().getGroup_3(), "rule__SignalPackage__Group_3__0");
 					put(grammarAccess.getSignalWatcherAccess().getGroup(), "rule__SignalWatcher__Group__0");
-					put(grammarAccess.getWatcherWithFileMaskAccess().getGroup(), "rule__WatcherWithFileMask__Group__0");
-					put(grammarAccess.getWatcherWithFileNameAccess().getGroup(), "rule__WatcherWithFileName__Group__0");
+					put(grammarAccess.getSignalWatcherAccess().getGroup_9(), "rule__SignalWatcher__Group_9__0");
 					put(grammarAccess.getSignalSchedulerAccess().getGroup(), "rule__SignalScheduler__Group__0");
 					put(grammarAccess.getCronSchedulerAccess().getGroup(), "rule__CronScheduler__Group__0");
 					put(grammarAccess.getHourlySchedulerAccess().getGroup(), "rule__HourlyScheduler__Group__0");
@@ -108,6 +109,10 @@
 					put(grammarAccess.getWeeklySchedulerAccess().getGroup(), "rule__WeeklyScheduler__Group__0");
 					put(grammarAccess.getMonthlySchedulerAccess().getGroup(), "rule__MonthlyScheduler__Group__0");
 					put(grammarAccess.getSignalDatainterchangeAccess().getGroup(), "rule__SignalDatainterchange__Group__0");
+					put(grammarAccess.getSignalFunctionAccess().getGroup(), "rule__SignalFunction__Group__0");
+					put(grammarAccess.getSignalFunctionAccess().getGroup_2_0(), "rule__SignalFunction__Group_2_0__0");
+					put(grammarAccess.getSignalFunctionAccess().getGroup_2_1(), "rule__SignalFunction__Group_2_1__0");
+					put(grammarAccess.getSignalFunctionAccess().getGroup_2_2(), "rule__SignalFunction__Group_2_2__0");
 					put(grammarAccess.getXImportDeclarationAccess().getGroup(), "rule__XImportDeclaration__Group__0");
 					put(grammarAccess.getXImportDeclarationAccess().getGroup_2_0(), "rule__XImportDeclaration__Group_2_0__0");
 					put(grammarAccess.getXImportDeclarationAccess().getGroup_2_3(), "rule__XImportDeclaration__Group_2_3__0");
@@ -313,20 +318,17 @@
 					put(grammarAccess.getSignalPackageAccess().getNameAssignment_2(), "rule__SignalPackage__NameAssignment_2");
 					put(grammarAccess.getSignalPackageAccess().getSignalsAssignment_3_1(), "rule__SignalPackage__SignalsAssignment_3_1");
 					put(grammarAccess.getSignalWatcherAccess().getNameAssignment_2(), "rule__SignalWatcher__NameAssignment_2");
-					put(grammarAccess.getSignalWatcherAccess().getDefinitionAssignment_3(), "rule__SignalWatcher__DefinitionAssignment_3");
-					put(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskAssignment_2(), "rule__WatcherWithFileMask__FilemaskAssignment_2");
-					put(grammarAccess.getWatcherWithFileMaskAccess().getExecutiontypeAssignment_3(), "rule__WatcherWithFileMask__ExecutiontypeAssignment_3");
-					put(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupAssignment_5(), "rule__WatcherWithFileMask__InterchangegroupAssignment_5");
-					put(grammarAccess.getWatcherWithFileMaskAccess().getInterchangeAssignment_7(), "rule__WatcherWithFileMask__InterchangeAssignment_7");
-					put(grammarAccess.getWatcherWithFileNameAccess().getFilenameAssignment_2(), "rule__WatcherWithFileName__FilenameAssignment_2");
-					put(grammarAccess.getWatcherWithFileNameAccess().getExecutiontypeAssignment_3(), "rule__WatcherWithFileName__ExecutiontypeAssignment_3");
-					put(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupAssignment_5(), "rule__WatcherWithFileName__InterchangegroupAssignment_5");
-					put(grammarAccess.getWatcherWithFileNameAccess().getInterchangesAssignment_7(), "rule__WatcherWithFileName__InterchangesAssignment_7");
+					put(grammarAccess.getSignalWatcherAccess().getHasFileMaskAssignment_3_0(), "rule__SignalWatcher__HasFileMaskAssignment_3_0");
+					put(grammarAccess.getSignalWatcherAccess().getIdentifierAssignment_4(), "rule__SignalWatcher__IdentifierAssignment_4");
+					put(grammarAccess.getSignalWatcherAccess().getExecutiontypeAssignment_5(), "rule__SignalWatcher__ExecutiontypeAssignment_5");
+					put(grammarAccess.getSignalWatcherAccess().getInterchangegroupAssignment_7(), "rule__SignalWatcher__InterchangegroupAssignment_7");
+					put(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeAssignment_9_1(), "rule__SignalWatcher__DefaultInterchangeAssignment_9_1");
+					put(grammarAccess.getSignalWatcherAccess().getTasksAssignment_10(), "rule__SignalWatcher__TasksAssignment_10");
 					put(grammarAccess.getSignalSchedulerAccess().getNameAssignment_2(), "rule__SignalScheduler__NameAssignment_2");
 					put(grammarAccess.getSignalSchedulerAccess().getSchedulertypeAssignment_3(), "rule__SignalScheduler__SchedulertypeAssignment_3");
 					put(grammarAccess.getSignalSchedulerAccess().getExecutiontypeAssignment_4(), "rule__SignalScheduler__ExecutiontypeAssignment_4");
 					put(grammarAccess.getSignalSchedulerAccess().getInterchangegroupAssignment_6(), "rule__SignalScheduler__InterchangegroupAssignment_6");
-					put(grammarAccess.getSignalSchedulerAccess().getInterchangesAssignment_8(), "rule__SignalScheduler__InterchangesAssignment_8");
+					put(grammarAccess.getSignalSchedulerAccess().getTasksAssignment_8(), "rule__SignalScheduler__TasksAssignment_8");
 					put(grammarAccess.getCronSchedulerAccess().getExpressionAssignment_1(), "rule__CronScheduler__ExpressionAssignment_1");
 					put(grammarAccess.getHourlySchedulerAccess().getMinuteAssignment_1(), "rule__HourlyScheduler__MinuteAssignment_1");
 					put(grammarAccess.getDailySchedulerAccess().getHourAssignment_1(), "rule__DailyScheduler__HourAssignment_1");
@@ -337,9 +339,17 @@
 					put(grammarAccess.getMonthlySchedulerAccess().getDayofmonthAssignment_1(), "rule__MonthlyScheduler__DayofmonthAssignment_1");
 					put(grammarAccess.getMonthlySchedulerAccess().getHourAssignment_3(), "rule__MonthlyScheduler__HourAssignment_3");
 					put(grammarAccess.getMonthlySchedulerAccess().getMinuteAssignment_5(), "rule__MonthlyScheduler__MinuteAssignment_5");
-					put(grammarAccess.getSignalDatainterchangeAccess().getDataActionAssignment_0(), "rule__SignalDatainterchange__DataActionAssignment_0");
+					put(grammarAccess.getSignalDatainterchangeAccess().getActionTypeAssignment_0(), "rule__SignalDatainterchange__ActionTypeAssignment_0");
 					put(grammarAccess.getSignalDatainterchangeAccess().getDataRefAssignment_1(), "rule__SignalDatainterchange__DataRefAssignment_1");
 					put(grammarAccess.getSignalDatainterchangeAccess().getBaseinterchangeAssignment_2(), "rule__SignalDatainterchange__BaseinterchangeAssignment_2");
+					put(grammarAccess.getSignalFunctionAccess().getGroupAssignment_1(), "rule__SignalFunction__GroupAssignment_1");
+					put(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_0_1(), "rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1");
+					put(grammarAccess.getSignalFunctionAccess().getOnImportFileAssignment_2_1_0(), "rule__SignalFunction__OnImportFileAssignment_2_1_0");
+					put(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_1_1(), "rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1");
+					put(grammarAccess.getSignalFunctionAccess().getSupportInterchangeAssignment_2_1_3(), "rule__SignalFunction__SupportInterchangeAssignment_2_1_3");
+					put(grammarAccess.getSignalFunctionAccess().getOnExportFileAssignment_2_2_0(), "rule__SignalFunction__OnExportFileAssignment_2_2_0");
+					put(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_2_1(), "rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1");
+					put(grammarAccess.getSignalFunctionAccess().getSupportInterchangeAssignment_2_2_3(), "rule__SignalFunction__SupportInterchangeAssignment_2_2_3");
 					put(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0(), "rule__XImportDeclaration__StaticAssignment_2_0_0");
 					put(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1(), "rule__XImportDeclaration__ExtensionAssignment_2_0_1");
 					put(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2(), "rule__XImportDeclaration__ImportedTypeAssignment_2_0_2");
diff --git a/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSL.g b/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSL.g
index a8a9774..c273813 100644
--- a/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSL.g
+++ b/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSL.g
@@ -165,81 +165,6 @@
 	restoreStackSize(stackSize);
 }
 
-// Entry rule entryRuleWatcherDefinition
-entryRuleWatcherDefinition
-:
-{ before(grammarAccess.getWatcherDefinitionRule()); }
-	 ruleWatcherDefinition
-{ after(grammarAccess.getWatcherDefinitionRule()); } 
-	 EOF 
-;
-
-// Rule WatcherDefinition
-ruleWatcherDefinition 
-	@init {
-		int stackSize = keepStackSize();
-	}
-	:
-	(
-		{ before(grammarAccess.getWatcherDefinitionAccess().getAlternatives()); }
-		(rule__WatcherDefinition__Alternatives)
-		{ after(grammarAccess.getWatcherDefinitionAccess().getAlternatives()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-// Entry rule entryRuleWatcherWithFileMask
-entryRuleWatcherWithFileMask
-:
-{ before(grammarAccess.getWatcherWithFileMaskRule()); }
-	 ruleWatcherWithFileMask
-{ after(grammarAccess.getWatcherWithFileMaskRule()); } 
-	 EOF 
-;
-
-// Rule WatcherWithFileMask
-ruleWatcherWithFileMask 
-	@init {
-		int stackSize = keepStackSize();
-	}
-	:
-	(
-		{ before(grammarAccess.getWatcherWithFileMaskAccess().getGroup()); }
-		(rule__WatcherWithFileMask__Group__0)
-		{ after(grammarAccess.getWatcherWithFileMaskAccess().getGroup()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-// Entry rule entryRuleWatcherWithFileName
-entryRuleWatcherWithFileName
-:
-{ before(grammarAccess.getWatcherWithFileNameRule()); }
-	 ruleWatcherWithFileName
-{ after(grammarAccess.getWatcherWithFileNameRule()); } 
-	 EOF 
-;
-
-// Rule WatcherWithFileName
-ruleWatcherWithFileName 
-	@init {
-		int stackSize = keepStackSize();
-	}
-	:
-	(
-		{ before(grammarAccess.getWatcherWithFileNameAccess().getGroup()); }
-		(rule__WatcherWithFileName__Group__0)
-		{ after(grammarAccess.getWatcherWithFileNameAccess().getGroup()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 // Entry rule entryRuleSignalScheduler
 entryRuleSignalScheduler
 :
@@ -415,6 +340,31 @@
 	restoreStackSize(stackSize);
 }
 
+// Entry rule entryRuleSignalTask
+entryRuleSignalTask
+:
+{ before(grammarAccess.getSignalTaskRule()); }
+	 ruleSignalTask
+{ after(grammarAccess.getSignalTaskRule()); } 
+	 EOF 
+;
+
+// Rule SignalTask
+ruleSignalTask 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getSignalTaskAccess().getAlternatives()); }
+		(rule__SignalTask__Alternatives)
+		{ after(grammarAccess.getSignalTaskAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Entry rule entryRuleSignalDatainterchange
 entryRuleSignalDatainterchange
 :
@@ -440,6 +390,31 @@
 	restoreStackSize(stackSize);
 }
 
+// Entry rule entryRuleSignalFunction
+entryRuleSignalFunction
+:
+{ before(grammarAccess.getSignalFunctionRule()); }
+	 ruleSignalFunction
+{ after(grammarAccess.getSignalFunctionRule()); } 
+	 EOF 
+;
+
+// Rule SignalFunction
+ruleSignalFunction 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getSignalFunctionAccess().getGroup()); }
+		(rule__SignalFunction__Group__0)
+		{ after(grammarAccess.getSignalFunctionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Entry rule entryRuleTRANSLATABLEID
 entryRuleTRANSLATABLEID
 :
@@ -2512,16 +2487,16 @@
 	restoreStackSize(stackSize);
 }
 
-// Rule SignalActionEnum
-ruleSignalActionEnum
+// Rule SignalActionTypeEnum
+ruleSignalActionTypeEnum
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getSignalActionEnumAccess().getAlternatives()); }
-		(rule__SignalActionEnum__Alternatives)
-		{ after(grammarAccess.getSignalActionEnumAccess().getAlternatives()); }
+		{ before(grammarAccess.getSignalActionTypeEnumAccess().getAlternatives()); }
+		(rule__SignalActionTypeEnum__Alternatives)
+		{ after(grammarAccess.getSignalActionTypeEnumAccess().getAlternatives()); }
 	)
 ;
 finally {
@@ -2581,21 +2556,21 @@
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherDefinition__Alternatives
+rule__SignalWatcher__Alternatives_3
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getWatcherDefinitionAccess().getWatcherWithFileMaskParserRuleCall_0()); }
-		ruleWatcherWithFileMask
-		{ after(grammarAccess.getWatcherDefinitionAccess().getWatcherWithFileMaskParserRuleCall_0()); }
+		{ before(grammarAccess.getSignalWatcherAccess().getHasFileMaskAssignment_3_0()); }
+		(rule__SignalWatcher__HasFileMaskAssignment_3_0)
+		{ after(grammarAccess.getSignalWatcherAccess().getHasFileMaskAssignment_3_0()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getWatcherDefinitionAccess().getWatcherWithFileNameParserRuleCall_1()); }
-		ruleWatcherWithFileName
-		{ after(grammarAccess.getWatcherDefinitionAccess().getWatcherWithFileNameParserRuleCall_1()); }
+		{ before(grammarAccess.getSignalWatcherAccess().getFilenameKeyword_3_1()); }
+		'filename'
+		{ after(grammarAccess.getSignalWatcherAccess().getFilenameKeyword_3_1()); }
 	)
 ;
 finally {
@@ -2641,6 +2616,54 @@
 	restoreStackSize(stackSize);
 }
 
+rule__SignalTask__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalTaskAccess().getSignalDatainterchangeParserRuleCall_0()); }
+		ruleSignalDatainterchange
+		{ after(grammarAccess.getSignalTaskAccess().getSignalDatainterchangeParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSignalTaskAccess().getSignalFunctionParserRuleCall_1()); }
+		ruleSignalFunction
+		{ after(grammarAccess.getSignalTaskAccess().getSignalFunctionParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Alternatives_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalFunctionAccess().getGroup_2_0()); }
+		(rule__SignalFunction__Group_2_0__0)
+		{ after(grammarAccess.getSignalFunctionAccess().getGroup_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSignalFunctionAccess().getGroup_2_1()); }
+		(rule__SignalFunction__Group_2_1__0)
+		{ after(grammarAccess.getSignalFunctionAccess().getGroup_2_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getSignalFunctionAccess().getGroup_2_2()); }
+		(rule__SignalFunction__Group_2_2__0)
+		{ after(grammarAccess.getSignalFunctionAccess().getGroup_2_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__XImportDeclaration__Alternatives_2
 	@init {
 		int stackSize = keepStackSize();
@@ -3808,21 +3831,21 @@
 	restoreStackSize(stackSize);
 }
 
-rule__SignalActionEnum__Alternatives
+rule__SignalActionTypeEnum__Alternatives
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0()); }
+		{ before(grammarAccess.getSignalActionTypeEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0()); }
 		('import')
-		{ after(grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0()); }
+		{ after(grammarAccess.getSignalActionTypeEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1()); }
+		{ before(grammarAccess.getSignalActionTypeEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1()); }
 		('export')
-		{ after(grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1()); }
+		{ after(grammarAccess.getSignalActionTypeEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1()); }
 	)
 ;
 finally {
@@ -4231,6 +4254,7 @@
 	}
 :
 	rule__SignalWatcher__Group__3__Impl
+	rule__SignalWatcher__Group__4
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -4242,252 +4266,224 @@
 	}
 :
 (
-	{ before(grammarAccess.getSignalWatcherAccess().getDefinitionAssignment_3()); }
-	(rule__SignalWatcher__DefinitionAssignment_3)
-	{ after(grammarAccess.getSignalWatcherAccess().getDefinitionAssignment_3()); }
+	{ before(grammarAccess.getSignalWatcherAccess().getAlternatives_3()); }
+	(rule__SignalWatcher__Alternatives_3)
+	{ after(grammarAccess.getSignalWatcherAccess().getAlternatives_3()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-
-rule__WatcherWithFileMask__Group__0
+rule__SignalWatcher__Group__4
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__WatcherWithFileMask__Group__0__Impl
-	rule__WatcherWithFileMask__Group__1
+	rule__SignalWatcher__Group__4__Impl
+	rule__SignalWatcher__Group__5
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__0__Impl
+rule__SignalWatcher__Group__4__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getWatcherWithFileMaskAccess().getWatcherWithFileMaskAction_0()); }
-	()
-	{ after(grammarAccess.getWatcherWithFileMaskAccess().getWatcherWithFileMaskAction_0()); }
+	{ before(grammarAccess.getSignalWatcherAccess().getIdentifierAssignment_4()); }
+	(rule__SignalWatcher__IdentifierAssignment_4)
+	{ after(grammarAccess.getSignalWatcherAccess().getIdentifierAssignment_4()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__1
+rule__SignalWatcher__Group__5
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__WatcherWithFileMask__Group__1__Impl
-	rule__WatcherWithFileMask__Group__2
+	rule__SignalWatcher__Group__5__Impl
+	rule__SignalWatcher__Group__6
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__1__Impl
+rule__SignalWatcher__Group__5__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskKeyword_1()); }
-	'filemask'
-	{ after(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskKeyword_1()); }
+	{ before(grammarAccess.getSignalWatcherAccess().getExecutiontypeAssignment_5()); }
+	(rule__SignalWatcher__ExecutiontypeAssignment_5)
+	{ after(grammarAccess.getSignalWatcherAccess().getExecutiontypeAssignment_5()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__2
+rule__SignalWatcher__Group__6
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__WatcherWithFileMask__Group__2__Impl
-	rule__WatcherWithFileMask__Group__3
+	rule__SignalWatcher__Group__6__Impl
+	rule__SignalWatcher__Group__7
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__2__Impl
+rule__SignalWatcher__Group__6__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskAssignment_2()); }
-	(rule__WatcherWithFileMask__FilemaskAssignment_2)
-	{ after(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskAssignment_2()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileMask__Group__3
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__WatcherWithFileMask__Group__3__Impl
-	rule__WatcherWithFileMask__Group__4
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileMask__Group__3__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getWatcherWithFileMaskAccess().getExecutiontypeAssignment_3()); }
-	(rule__WatcherWithFileMask__ExecutiontypeAssignment_3)
-	{ after(grammarAccess.getWatcherWithFileMaskAccess().getExecutiontypeAssignment_3()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileMask__Group__4
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__WatcherWithFileMask__Group__4__Impl
-	rule__WatcherWithFileMask__Group__5
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileMask__Group__4__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getWatcherWithFileMaskAccess().getFromKeyword_4()); }
+	{ before(grammarAccess.getSignalWatcherAccess().getFromKeyword_6()); }
 	'from'
-	{ after(grammarAccess.getWatcherWithFileMaskAccess().getFromKeyword_4()); }
+	{ after(grammarAccess.getSignalWatcherAccess().getFromKeyword_6()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__5
+rule__SignalWatcher__Group__7
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__WatcherWithFileMask__Group__5__Impl
-	rule__WatcherWithFileMask__Group__6
+	rule__SignalWatcher__Group__7__Impl
+	rule__SignalWatcher__Group__8
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__5__Impl
+rule__SignalWatcher__Group__7__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupAssignment_5()); }
-	(rule__WatcherWithFileMask__InterchangegroupAssignment_5)
-	{ after(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupAssignment_5()); }
+	{ before(grammarAccess.getSignalWatcherAccess().getInterchangegroupAssignment_7()); }
+	(rule__SignalWatcher__InterchangegroupAssignment_7)
+	{ after(grammarAccess.getSignalWatcherAccess().getInterchangegroupAssignment_7()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__6
+rule__SignalWatcher__Group__8
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__WatcherWithFileMask__Group__6__Impl
-	rule__WatcherWithFileMask__Group__7
+	rule__SignalWatcher__Group__8__Impl
+	rule__SignalWatcher__Group__9
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__6__Impl
+rule__SignalWatcher__Group__8__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getWatcherWithFileMaskAccess().getLeftCurlyBracketKeyword_6()); }
+	{ before(grammarAccess.getSignalWatcherAccess().getLeftCurlyBracketKeyword_8()); }
 	'{'
-	{ after(grammarAccess.getWatcherWithFileMaskAccess().getLeftCurlyBracketKeyword_6()); }
+	{ after(grammarAccess.getSignalWatcherAccess().getLeftCurlyBracketKeyword_8()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__7
+rule__SignalWatcher__Group__9
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__WatcherWithFileMask__Group__7__Impl
-	rule__WatcherWithFileMask__Group__8
+	rule__SignalWatcher__Group__9__Impl
+	rule__SignalWatcher__Group__10
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__7__Impl
+rule__SignalWatcher__Group__9__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getWatcherWithFileMaskAccess().getInterchangeAssignment_7()); }
-	(rule__WatcherWithFileMask__InterchangeAssignment_7)
-	{ after(grammarAccess.getWatcherWithFileMaskAccess().getInterchangeAssignment_7()); }
+	{ before(grammarAccess.getSignalWatcherAccess().getGroup_9()); }
+	(rule__SignalWatcher__Group_9__0)?
+	{ after(grammarAccess.getSignalWatcherAccess().getGroup_9()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__8
+rule__SignalWatcher__Group__10
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__WatcherWithFileMask__Group__8__Impl
+	rule__SignalWatcher__Group__10__Impl
+	rule__SignalWatcher__Group__11
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__Group__8__Impl
+rule__SignalWatcher__Group__10__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getWatcherWithFileMaskAccess().getRightCurlyBracketKeyword_8()); }
+	{ before(grammarAccess.getSignalWatcherAccess().getTasksAssignment_10()); }
+	(rule__SignalWatcher__TasksAssignment_10)*
+	{ after(grammarAccess.getSignalWatcherAccess().getTasksAssignment_10()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalWatcher__Group__11
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalWatcher__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalWatcher__Group__11__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalWatcherAccess().getRightCurlyBracketKeyword_11()); }
 	'}'
-	{ after(grammarAccess.getWatcherWithFileMaskAccess().getRightCurlyBracketKeyword_8()); }
+	{ after(grammarAccess.getSignalWatcherAccess().getRightCurlyBracketKeyword_11()); }
 )
 ;
 finally {
@@ -4495,242 +4491,53 @@
 }
 
 
-rule__WatcherWithFileName__Group__0
+rule__SignalWatcher__Group_9__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__WatcherWithFileName__Group__0__Impl
-	rule__WatcherWithFileName__Group__1
+	rule__SignalWatcher__Group_9__0__Impl
+	rule__SignalWatcher__Group_9__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileName__Group__0__Impl
+rule__SignalWatcher__Group_9__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getWatcherWithFileNameAccess().getWatcherWithFileNameAction_0()); }
-	()
-	{ after(grammarAccess.getWatcherWithFileNameAccess().getWatcherWithFileNameAction_0()); }
+	{ before(grammarAccess.getSignalWatcherAccess().getApplyonKeyword_9_0()); }
+	'applyon'
+	{ after(grammarAccess.getSignalWatcherAccess().getApplyonKeyword_9_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileName__Group__1
+rule__SignalWatcher__Group_9__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__WatcherWithFileName__Group__1__Impl
-	rule__WatcherWithFileName__Group__2
+	rule__SignalWatcher__Group_9__1__Impl
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileName__Group__1__Impl
+rule__SignalWatcher__Group_9__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getWatcherWithFileNameAccess().getFilenameKeyword_1()); }
-	'filename'
-	{ after(grammarAccess.getWatcherWithFileNameAccess().getFilenameKeyword_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__2
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__WatcherWithFileName__Group__2__Impl
-	rule__WatcherWithFileName__Group__3
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__2__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getWatcherWithFileNameAccess().getFilenameAssignment_2()); }
-	(rule__WatcherWithFileName__FilenameAssignment_2)
-	{ after(grammarAccess.getWatcherWithFileNameAccess().getFilenameAssignment_2()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__3
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__WatcherWithFileName__Group__3__Impl
-	rule__WatcherWithFileName__Group__4
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__3__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getWatcherWithFileNameAccess().getExecutiontypeAssignment_3()); }
-	(rule__WatcherWithFileName__ExecutiontypeAssignment_3)
-	{ after(grammarAccess.getWatcherWithFileNameAccess().getExecutiontypeAssignment_3()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__4
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__WatcherWithFileName__Group__4__Impl
-	rule__WatcherWithFileName__Group__5
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__4__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getWatcherWithFileNameAccess().getFromKeyword_4()); }
-	'from'
-	{ after(grammarAccess.getWatcherWithFileNameAccess().getFromKeyword_4()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__5
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__WatcherWithFileName__Group__5__Impl
-	rule__WatcherWithFileName__Group__6
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__5__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupAssignment_5()); }
-	(rule__WatcherWithFileName__InterchangegroupAssignment_5)
-	{ after(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupAssignment_5()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__6
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__WatcherWithFileName__Group__6__Impl
-	rule__WatcherWithFileName__Group__7
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__6__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getWatcherWithFileNameAccess().getLeftCurlyBracketKeyword_6()); }
-	'{'
-	{ after(grammarAccess.getWatcherWithFileNameAccess().getLeftCurlyBracketKeyword_6()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__7
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__WatcherWithFileName__Group__7__Impl
-	rule__WatcherWithFileName__Group__8
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__7__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getWatcherWithFileNameAccess().getInterchangesAssignment_7()); }
-	(rule__WatcherWithFileName__InterchangesAssignment_7)*
-	{ after(grammarAccess.getWatcherWithFileNameAccess().getInterchangesAssignment_7()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__8
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__WatcherWithFileName__Group__8__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__Group__8__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getWatcherWithFileNameAccess().getRightCurlyBracketKeyword_8()); }
-	'}'
-	{ after(grammarAccess.getWatcherWithFileNameAccess().getRightCurlyBracketKeyword_8()); }
+	{ before(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeAssignment_9_1()); }
+	(rule__SignalWatcher__DefaultInterchangeAssignment_9_1)
+	{ after(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeAssignment_9_1()); }
 )
 ;
 finally {
@@ -4972,9 +4779,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getSignalSchedulerAccess().getInterchangesAssignment_8()); }
-	(rule__SignalScheduler__InterchangesAssignment_8)*
-	{ after(grammarAccess.getSignalSchedulerAccess().getInterchangesAssignment_8()); }
+	{ before(grammarAccess.getSignalSchedulerAccess().getTasksAssignment_8()); }
+	(rule__SignalScheduler__TasksAssignment_8)*
+	{ after(grammarAccess.getSignalSchedulerAccess().getTasksAssignment_8()); }
 )
 ;
 finally {
@@ -5566,9 +5373,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getSignalDatainterchangeAccess().getDataActionAssignment_0()); }
-	(rule__SignalDatainterchange__DataActionAssignment_0)
-	{ after(grammarAccess.getSignalDatainterchangeAccess().getDataActionAssignment_0()); }
+	{ before(grammarAccess.getSignalDatainterchangeAccess().getActionTypeAssignment_0()); }
+	(rule__SignalDatainterchange__ActionTypeAssignment_0)
+	{ after(grammarAccess.getSignalDatainterchangeAccess().getActionTypeAssignment_0()); }
 )
 ;
 finally {
@@ -5629,6 +5436,357 @@
 }
 
 
+rule__SignalFunction__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group__0__Impl
+	rule__SignalFunction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getFunctionGroupKeyword_0()); }
+	'functionGroup'
+	{ after(grammarAccess.getSignalFunctionAccess().getFunctionGroupKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group__1__Impl
+	rule__SignalFunction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getGroupAssignment_1()); }
+	(rule__SignalFunction__GroupAssignment_1)
+	{ after(grammarAccess.getSignalFunctionAccess().getGroupAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getAlternatives_2()); }
+	(rule__SignalFunction__Alternatives_2)
+	{ after(grammarAccess.getSignalFunctionAccess().getAlternatives_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SignalFunction__Group_2_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group_2_0__0__Impl
+	rule__SignalFunction__Group_2_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getExecuteKeyword_2_0_0()); }
+	'execute'
+	{ after(grammarAccess.getSignalFunctionAccess().getExecuteKeyword_2_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group_2_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_0_1()); }
+	(rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1)
+	{ after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SignalFunction__Group_2_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group_2_1__0__Impl
+	rule__SignalFunction__Group_2_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getOnImportFileAssignment_2_1_0()); }
+	(rule__SignalFunction__OnImportFileAssignment_2_1_0)
+	{ after(grammarAccess.getSignalFunctionAccess().getOnImportFileAssignment_2_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group_2_1__1__Impl
+	rule__SignalFunction__Group_2_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_1_1()); }
+	(rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1)
+	{ after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group_2_1__2__Impl
+	rule__SignalFunction__Group_2_1__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getFromKeyword_2_1_2()); }
+	'from'
+	{ after(grammarAccess.getSignalFunctionAccess().getFromKeyword_2_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_1__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group_2_1__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_1__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getSupportInterchangeAssignment_2_1_3()); }
+	(rule__SignalFunction__SupportInterchangeAssignment_2_1_3)
+	{ after(grammarAccess.getSignalFunctionAccess().getSupportInterchangeAssignment_2_1_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SignalFunction__Group_2_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group_2_2__0__Impl
+	rule__SignalFunction__Group_2_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getOnExportFileAssignment_2_2_0()); }
+	(rule__SignalFunction__OnExportFileAssignment_2_2_0)
+	{ after(grammarAccess.getSignalFunctionAccess().getOnExportFileAssignment_2_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group_2_2__1__Impl
+	rule__SignalFunction__Group_2_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_2_1()); }
+	(rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1)
+	{ after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_2__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group_2_2__2__Impl
+	rule__SignalFunction__Group_2_2__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_2__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getFromKeyword_2_2_2()); }
+	'from'
+	{ after(grammarAccess.getSignalFunctionAccess().getFromKeyword_2_2_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_2__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignalFunction__Group_2_2__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__Group_2_2__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignalFunctionAccess().getSupportInterchangeAssignment_2_2_3()); }
+	(rule__SignalFunction__SupportInterchangeAssignment_2_2_3)
+	{ after(grammarAccess.getSignalFunctionAccess().getSupportInterchangeAssignment_2_2_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
 rule__XImportDeclaration__Group__0
 	@init {
 		int stackSize = keepStackSize();
@@ -18624,143 +18782,102 @@
 	restoreStackSize(stackSize);
 }
 
-rule__SignalWatcher__DefinitionAssignment_3
+rule__SignalWatcher__HasFileMaskAssignment_3_0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getSignalWatcherAccess().getDefinitionWatcherDefinitionParserRuleCall_3_0()); }
-		ruleWatcherDefinition
-		{ after(grammarAccess.getSignalWatcherAccess().getDefinitionWatcherDefinitionParserRuleCall_3_0()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileMask__FilemaskAssignment_2
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskSTRINGTerminalRuleCall_2_0()); }
-		RULE_STRING
-		{ after(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskSTRINGTerminalRuleCall_2_0()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileMask__ExecutiontypeAssignment_3
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getWatcherWithFileMaskAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0()); }
-		ruleSignalExecutionTypeEnum
-		{ after(grammarAccess.getWatcherWithFileMaskAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileMask__InterchangegroupAssignment_5
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupDataInterchangeGroupCrossReference_5_0()); }
+		{ before(grammarAccess.getSignalWatcherAccess().getHasFileMaskFilemaskKeyword_3_0_0()); }
 		(
-			{ before(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1()); }
-			RULE_ID
-			{ after(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1()); }
+			{ before(grammarAccess.getSignalWatcherAccess().getHasFileMaskFilemaskKeyword_3_0_0()); }
+			'filemask'
+			{ after(grammarAccess.getSignalWatcherAccess().getHasFileMaskFilemaskKeyword_3_0_0()); }
 		)
-		{ after(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupDataInterchangeGroupCrossReference_5_0()); }
+		{ after(grammarAccess.getSignalWatcherAccess().getHasFileMaskFilemaskKeyword_3_0_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileMask__InterchangeAssignment_7
+rule__SignalWatcher__IdentifierAssignment_4
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getWatcherWithFileMaskAccess().getInterchangeSignalDatainterchangeParserRuleCall_7_0()); }
-		ruleSignalDatainterchange
-		{ after(grammarAccess.getWatcherWithFileMaskAccess().getInterchangeSignalDatainterchangeParserRuleCall_7_0()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__WatcherWithFileName__FilenameAssignment_2
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getWatcherWithFileNameAccess().getFilenameSTRINGTerminalRuleCall_2_0()); }
+		{ before(grammarAccess.getSignalWatcherAccess().getIdentifierSTRINGTerminalRuleCall_4_0()); }
 		RULE_STRING
-		{ after(grammarAccess.getWatcherWithFileNameAccess().getFilenameSTRINGTerminalRuleCall_2_0()); }
+		{ after(grammarAccess.getSignalWatcherAccess().getIdentifierSTRINGTerminalRuleCall_4_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileName__ExecutiontypeAssignment_3
+rule__SignalWatcher__ExecutiontypeAssignment_5
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getWatcherWithFileNameAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0()); }
+		{ before(grammarAccess.getSignalWatcherAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_5_0()); }
 		ruleSignalExecutionTypeEnum
-		{ after(grammarAccess.getWatcherWithFileNameAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0()); }
+		{ after(grammarAccess.getSignalWatcherAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_5_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileName__InterchangegroupAssignment_5
+rule__SignalWatcher__InterchangegroupAssignment_7
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupDataInterchangeGroupCrossReference_5_0()); }
+		{ before(grammarAccess.getSignalWatcherAccess().getInterchangegroupDataInterchangeGroupCrossReference_7_0()); }
 		(
-			{ before(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1()); }
+			{ before(grammarAccess.getSignalWatcherAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_7_0_1()); }
 			RULE_ID
-			{ after(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1()); }
+			{ after(grammarAccess.getSignalWatcherAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_7_0_1()); }
 		)
-		{ after(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupDataInterchangeGroupCrossReference_5_0()); }
+		{ after(grammarAccess.getSignalWatcherAccess().getInterchangegroupDataInterchangeGroupCrossReference_7_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__WatcherWithFileName__InterchangesAssignment_7
+rule__SignalWatcher__DefaultInterchangeAssignment_9_1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getWatcherWithFileNameAccess().getInterchangesSignalDatainterchangeParserRuleCall_7_0()); }
-		ruleSignalDatainterchange
-		{ after(grammarAccess.getWatcherWithFileNameAccess().getInterchangesSignalDatainterchangeParserRuleCall_7_0()); }
+		{ before(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeDataInterchangeCrossReference_9_1_0()); }
+		(
+			{ before(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeDataInterchangeIDTerminalRuleCall_9_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeDataInterchangeIDTerminalRuleCall_9_1_0_1()); }
+		)
+		{ after(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeDataInterchangeCrossReference_9_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalWatcher__TasksAssignment_10
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalWatcherAccess().getTasksSignalTaskParserRuleCall_10_0()); }
+		ruleSignalTask
+		{ after(grammarAccess.getSignalWatcherAccess().getTasksSignalTaskParserRuleCall_10_0()); }
 	)
 ;
 finally {
@@ -18831,15 +18948,15 @@
 	restoreStackSize(stackSize);
 }
 
-rule__SignalScheduler__InterchangesAssignment_8
+rule__SignalScheduler__TasksAssignment_8
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getSignalSchedulerAccess().getInterchangesSignalDatainterchangeParserRuleCall_8_0()); }
-		ruleSignalDatainterchange
-		{ after(grammarAccess.getSignalSchedulerAccess().getInterchangesSignalDatainterchangeParserRuleCall_8_0()); }
+		{ before(grammarAccess.getSignalSchedulerAccess().getTasksSignalTaskParserRuleCall_8_0()); }
+		ruleSignalTask
+		{ after(grammarAccess.getSignalSchedulerAccess().getTasksSignalTaskParserRuleCall_8_0()); }
 	)
 ;
 finally {
@@ -18996,15 +19113,15 @@
 	restoreStackSize(stackSize);
 }
 
-rule__SignalDatainterchange__DataActionAssignment_0
+rule__SignalDatainterchange__ActionTypeAssignment_0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0()); }
-		ruleSignalActionEnum
-		{ after(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0()); }
+		{ before(grammarAccess.getSignalDatainterchangeAccess().getActionTypeSignalActionTypeEnumEnumRuleCall_0_0()); }
+		ruleSignalActionTypeEnum
+		{ after(grammarAccess.getSignalDatainterchangeAccess().getActionTypeSignalActionTypeEnumEnumRuleCall_0_0()); }
 	)
 ;
 finally {
@@ -19049,6 +19166,158 @@
 	restoreStackSize(stackSize);
 }
 
+rule__SignalFunction__GroupAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalFunctionAccess().getGroupFunctionLibraryActionGroupCrossReference_1_0()); }
+		(
+			{ before(grammarAccess.getSignalFunctionAccess().getGroupFunctionLibraryActionGroupIDTerminalRuleCall_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getSignalFunctionAccess().getGroupFunctionLibraryActionGroupIDTerminalRuleCall_1_0_1()); }
+		)
+		{ after(grammarAccess.getSignalFunctionAccess().getGroupFunctionLibraryActionGroupCrossReference_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_0_1_0()); }
+		(
+			{ before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_0_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_0_1_0_1()); }
+		)
+		{ after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__OnImportFileAssignment_2_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalFunctionAccess().getOnImportFileExecuteOnImportFileKeyword_2_1_0_0()); }
+		(
+			{ before(grammarAccess.getSignalFunctionAccess().getOnImportFileExecuteOnImportFileKeyword_2_1_0_0()); }
+			'executeOnImportFile'
+			{ after(grammarAccess.getSignalFunctionAccess().getOnImportFileExecuteOnImportFileKeyword_2_1_0_0()); }
+		)
+		{ after(grammarAccess.getSignalFunctionAccess().getOnImportFileExecuteOnImportFileKeyword_2_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_1_1_0()); }
+		(
+			{ before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_1_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_1_1_0_1()); }
+		)
+		{ after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__SupportInterchangeAssignment_2_1_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeCrossReference_2_1_3_0()); }
+		(
+			{ before(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeIDTerminalRuleCall_2_1_3_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeIDTerminalRuleCall_2_1_3_0_1()); }
+		)
+		{ after(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeCrossReference_2_1_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__OnExportFileAssignment_2_2_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalFunctionAccess().getOnExportFileExecuteOnExportFileKeyword_2_2_0_0()); }
+		(
+			{ before(grammarAccess.getSignalFunctionAccess().getOnExportFileExecuteOnExportFileKeyword_2_2_0_0()); }
+			'executeOnExportFile'
+			{ after(grammarAccess.getSignalFunctionAccess().getOnExportFileExecuteOnExportFileKeyword_2_2_0_0()); }
+		)
+		{ after(grammarAccess.getSignalFunctionAccess().getOnExportFileExecuteOnExportFileKeyword_2_2_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_2_1_0()); }
+		(
+			{ before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_2_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_2_1_0_1()); }
+		)
+		{ after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignalFunction__SupportInterchangeAssignment_2_2_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeCrossReference_2_2_3_0()); }
+		(
+			{ before(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeIDTerminalRuleCall_2_2_3_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeIDTerminalRuleCall_2_2_3_0_1()); }
+		)
+		{ after(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeCrossReference_2_2_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__XImportDeclaration__StaticAssignment_2_0_0
 	@init {
 		int stackSize = keepStackSize();
diff --git a/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSL.tokens b/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSL.tokens
index 55d2d03..50c54d8 100644
--- a/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSL.tokens
+++ b/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSL.tokens
@@ -1,102 +1,106 @@
-'!'=40
-'!='=22
-'!=='=24
-'#'=82
-'%'=39
-'%='=20
+'!'=41
+'!='=23
+'!=='=25
+'#'=84
+'%'=40
+'%='=21
 '&&'=15
-'&'=104
-'('=78
-')'=79
-'*'=36
-'**'=37
-'*='=18
-'+'=34
-'++'=41
-'+='=16
-','=80
-'-'=35
-'--'=42
-'-='=17
-'->'=28
-'.'=43
-'..'=30
-'..<'=29
-'/'=38
-'/='=19
+'&'=106
+'('=80
+')'=81
+'*'=37
+'**'=38
+'*='=19
+'+'=35
+'++'=42
+'+='=17
+','=82
+'-'=36
+'--'=43
+'-='=18
+'->'=29
+'.'=44
+'..'=31
+'..<'=30
+'/'=39
+'/='=20
 ':'=72
-'::'=107
-';'=76
-'<'=27
-'<>'=32
+'::'=111
+';'=78
+'<'=28
+'<>'=33
 '='=13
-'=='=21
-'==='=23
-'=>'=31
-'>'=26
-'>='=25
-'?'=103
-'?.'=108
-'?:'=33
-'@'=77
-'['=83
-']'=81
-'applyon'=105
-'as'=85
+'=='=22
+'==='=24
+'=>'=32
+'>'=27
+'>='=26
+'?'=105
+'?.'=112
+'?:'=34
+'@'=79
+'['=85
+']'=83
+'applyon'=67
+'as'=87
 'at'=74
-'case'=90
-'catch'=102
+'case'=92
+'catch'=104
 'cron'=69
 'dailyat'=71
-'default'=89
-'do'=93
-'else'=87
-'export'=51
-'extends'=45
-'extension'=48
-'false'=50
-'filemask'=65
-'filename'=67
-'finally'=100
-'for'=91
-'friday'=59
+'default'=91
+'do'=95
+'else'=89
+'execute'=77
+'executeOnExportFile'=109
+'executeOnImportFile'=108
+'export'=52
+'extends'=46
+'extension'=49
+'false'=51
+'filemask'=107
+'filename'=16
+'finally'=102
+'for'=93
+'friday'=60
 'from'=66
+'functionGroup'=76
 'hourlyat'=70
-'if'=86
-'import'=47
-'instanceof'=84
-'monday'=55
+'if'=88
+'import'=48
+'instanceof'=86
+'monday'=56
 'monthlyon'=75
-'new'=94
-'ns'=106
-'null'=95
-'package'=61
-'parallel'=53
-'return'=98
-'saturday'=60
+'new'=96
+'ns'=110
+'null'=97
+'package'=62
+'parallel'=54
+'return'=100
+'saturday'=61
 'scheduler'=68
-'sequential'=52
-'static'=46
-'sunday'=54
-'super'=49
-'switch'=88
-'synchronized'=101
-'throw'=97
-'thursday'=58
-'true'=111
-'try'=99
-'tuesday'=56
-'typeof'=96
-'val'=44
-'var'=110
-'watcher'=64
-'wednesday'=57
+'sequential'=53
+'static'=47
+'sunday'=55
+'super'=50
+'switch'=90
+'synchronized'=103
+'throw'=99
+'thursday'=59
+'true'=115
+'try'=101
+'tuesday'=57
+'typeof'=98
+'val'=45
+'var'=114
+'watcher'=65
+'wednesday'=58
 'weeklyon'=73
-'while'=92
-'{'=62
-'|'=109
+'while'=94
+'{'=63
+'|'=113
 '||'=14
-'}'=63
+'}'=64
 RULE_ANY_OTHER=12
 RULE_DECIMAL=7
 RULE_HEX=5
@@ -118,6 +122,10 @@
 T__109=109
 T__110=110
 T__111=111
+T__112=112
+T__113=113
+T__114=114
+T__115=115
 T__13=13
 T__14=14
 T__15=15
diff --git a/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSLLexer.java b/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSLLexer.java
index ec16fb5..ec39a9c 100644
--- a/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSLLexer.java
+++ b/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSLLexer.java
@@ -96,8 +96,10 @@
     public static final int T__78=78;
     public static final int T__79=79;
     public static final int T__73=73;
+    public static final int T__115=115;
     public static final int EOF=-1;
     public static final int T__74=74;
+    public static final int T__114=114;
     public static final int T__75=75;
     public static final int T__76=76;
     public static final int T__80=80;
@@ -105,7 +107,9 @@
     public static final int T__81=81;
     public static final int T__110=110;
     public static final int T__82=82;
+    public static final int T__113=113;
     public static final int T__83=83;
+    public static final int T__112=112;
     public static final int RULE_WS=11;
     public static final int RULE_ANY_OTHER=12;
     public static final int T__88=88;
@@ -202,10 +206,10 @@
         try {
             int _type = T__16;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:14:7: ( '+=' )
-            // InternalSignalDSL.g:14:9: '+='
+            // InternalSignalDSL.g:14:7: ( 'filename' )
+            // InternalSignalDSL.g:14:9: 'filename'
             {
-            match("+="); 
+            match("filename"); 
 
 
             }
@@ -223,10 +227,10 @@
         try {
             int _type = T__17;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:15:7: ( '-=' )
-            // InternalSignalDSL.g:15:9: '-='
+            // InternalSignalDSL.g:15:7: ( '+=' )
+            // InternalSignalDSL.g:15:9: '+='
             {
-            match("-="); 
+            match("+="); 
 
 
             }
@@ -244,10 +248,10 @@
         try {
             int _type = T__18;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:16:7: ( '*=' )
-            // InternalSignalDSL.g:16:9: '*='
+            // InternalSignalDSL.g:16:7: ( '-=' )
+            // InternalSignalDSL.g:16:9: '-='
             {
-            match("*="); 
+            match("-="); 
 
 
             }
@@ -265,10 +269,10 @@
         try {
             int _type = T__19;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:17:7: ( '/=' )
-            // InternalSignalDSL.g:17:9: '/='
+            // InternalSignalDSL.g:17:7: ( '*=' )
+            // InternalSignalDSL.g:17:9: '*='
             {
-            match("/="); 
+            match("*="); 
 
 
             }
@@ -286,10 +290,10 @@
         try {
             int _type = T__20;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:18:7: ( '%=' )
-            // InternalSignalDSL.g:18:9: '%='
+            // InternalSignalDSL.g:18:7: ( '/=' )
+            // InternalSignalDSL.g:18:9: '/='
             {
-            match("%="); 
+            match("/="); 
 
 
             }
@@ -307,10 +311,10 @@
         try {
             int _type = T__21;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:19:7: ( '==' )
-            // InternalSignalDSL.g:19:9: '=='
+            // InternalSignalDSL.g:19:7: ( '%=' )
+            // InternalSignalDSL.g:19:9: '%='
             {
-            match("=="); 
+            match("%="); 
 
 
             }
@@ -328,10 +332,10 @@
         try {
             int _type = T__22;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:20:7: ( '!=' )
-            // InternalSignalDSL.g:20:9: '!='
+            // InternalSignalDSL.g:20:7: ( '==' )
+            // InternalSignalDSL.g:20:9: '=='
             {
-            match("!="); 
+            match("=="); 
 
 
             }
@@ -349,10 +353,10 @@
         try {
             int _type = T__23;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:21:7: ( '===' )
-            // InternalSignalDSL.g:21:9: '==='
+            // InternalSignalDSL.g:21:7: ( '!=' )
+            // InternalSignalDSL.g:21:9: '!='
             {
-            match("==="); 
+            match("!="); 
 
 
             }
@@ -370,10 +374,10 @@
         try {
             int _type = T__24;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:22:7: ( '!==' )
-            // InternalSignalDSL.g:22:9: '!=='
+            // InternalSignalDSL.g:22:7: ( '===' )
+            // InternalSignalDSL.g:22:9: '==='
             {
-            match("!=="); 
+            match("==="); 
 
 
             }
@@ -391,10 +395,10 @@
         try {
             int _type = T__25;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:23:7: ( '>=' )
-            // InternalSignalDSL.g:23:9: '>='
+            // InternalSignalDSL.g:23:7: ( '!==' )
+            // InternalSignalDSL.g:23:9: '!=='
             {
-            match(">="); 
+            match("!=="); 
 
 
             }
@@ -412,10 +416,11 @@
         try {
             int _type = T__26;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:24:7: ( '>' )
-            // InternalSignalDSL.g:24:9: '>'
+            // InternalSignalDSL.g:24:7: ( '>=' )
+            // InternalSignalDSL.g:24:9: '>='
             {
-            match('>'); 
+            match(">="); 
+
 
             }
 
@@ -432,10 +437,10 @@
         try {
             int _type = T__27;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:25:7: ( '<' )
-            // InternalSignalDSL.g:25:9: '<'
+            // InternalSignalDSL.g:25:7: ( '>' )
+            // InternalSignalDSL.g:25:9: '>'
             {
-            match('<'); 
+            match('>'); 
 
             }
 
@@ -452,11 +457,10 @@
         try {
             int _type = T__28;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:26:7: ( '->' )
-            // InternalSignalDSL.g:26:9: '->'
+            // InternalSignalDSL.g:26:7: ( '<' )
+            // InternalSignalDSL.g:26:9: '<'
             {
-            match("->"); 
-
+            match('<'); 
 
             }
 
@@ -473,10 +477,10 @@
         try {
             int _type = T__29;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:27:7: ( '..<' )
-            // InternalSignalDSL.g:27:9: '..<'
+            // InternalSignalDSL.g:27:7: ( '->' )
+            // InternalSignalDSL.g:27:9: '->'
             {
-            match("..<"); 
+            match("->"); 
 
 
             }
@@ -494,10 +498,10 @@
         try {
             int _type = T__30;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:28:7: ( '..' )
-            // InternalSignalDSL.g:28:9: '..'
+            // InternalSignalDSL.g:28:7: ( '..<' )
+            // InternalSignalDSL.g:28:9: '..<'
             {
-            match(".."); 
+            match("..<"); 
 
 
             }
@@ -515,10 +519,10 @@
         try {
             int _type = T__31;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:29:7: ( '=>' )
-            // InternalSignalDSL.g:29:9: '=>'
+            // InternalSignalDSL.g:29:7: ( '..' )
+            // InternalSignalDSL.g:29:9: '..'
             {
-            match("=>"); 
+            match(".."); 
 
 
             }
@@ -536,10 +540,10 @@
         try {
             int _type = T__32;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:30:7: ( '<>' )
-            // InternalSignalDSL.g:30:9: '<>'
+            // InternalSignalDSL.g:30:7: ( '=>' )
+            // InternalSignalDSL.g:30:9: '=>'
             {
-            match("<>"); 
+            match("=>"); 
 
 
             }
@@ -557,10 +561,10 @@
         try {
             int _type = T__33;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:31:7: ( '?:' )
-            // InternalSignalDSL.g:31:9: '?:'
+            // InternalSignalDSL.g:31:7: ( '<>' )
+            // InternalSignalDSL.g:31:9: '<>'
             {
-            match("?:"); 
+            match("<>"); 
 
 
             }
@@ -578,10 +582,11 @@
         try {
             int _type = T__34;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:32:7: ( '+' )
-            // InternalSignalDSL.g:32:9: '+'
+            // InternalSignalDSL.g:32:7: ( '?:' )
+            // InternalSignalDSL.g:32:9: '?:'
             {
-            match('+'); 
+            match("?:"); 
+
 
             }
 
@@ -598,10 +603,10 @@
         try {
             int _type = T__35;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:33:7: ( '-' )
-            // InternalSignalDSL.g:33:9: '-'
+            // InternalSignalDSL.g:33:7: ( '+' )
+            // InternalSignalDSL.g:33:9: '+'
             {
-            match('-'); 
+            match('+'); 
 
             }
 
@@ -618,10 +623,10 @@
         try {
             int _type = T__36;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:34:7: ( '*' )
-            // InternalSignalDSL.g:34:9: '*'
+            // InternalSignalDSL.g:34:7: ( '-' )
+            // InternalSignalDSL.g:34:9: '-'
             {
-            match('*'); 
+            match('-'); 
 
             }
 
@@ -638,11 +643,10 @@
         try {
             int _type = T__37;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:35:7: ( '**' )
-            // InternalSignalDSL.g:35:9: '**'
+            // InternalSignalDSL.g:35:7: ( '*' )
+            // InternalSignalDSL.g:35:9: '*'
             {
-            match("**"); 
-
+            match('*'); 
 
             }
 
@@ -659,10 +663,11 @@
         try {
             int _type = T__38;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:36:7: ( '/' )
-            // InternalSignalDSL.g:36:9: '/'
+            // InternalSignalDSL.g:36:7: ( '**' )
+            // InternalSignalDSL.g:36:9: '**'
             {
-            match('/'); 
+            match("**"); 
+
 
             }
 
@@ -679,10 +684,10 @@
         try {
             int _type = T__39;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:37:7: ( '%' )
-            // InternalSignalDSL.g:37:9: '%'
+            // InternalSignalDSL.g:37:7: ( '/' )
+            // InternalSignalDSL.g:37:9: '/'
             {
-            match('%'); 
+            match('/'); 
 
             }
 
@@ -699,10 +704,10 @@
         try {
             int _type = T__40;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:38:7: ( '!' )
-            // InternalSignalDSL.g:38:9: '!'
+            // InternalSignalDSL.g:38:7: ( '%' )
+            // InternalSignalDSL.g:38:9: '%'
             {
-            match('!'); 
+            match('%'); 
 
             }
 
@@ -719,11 +724,10 @@
         try {
             int _type = T__41;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:39:7: ( '++' )
-            // InternalSignalDSL.g:39:9: '++'
+            // InternalSignalDSL.g:39:7: ( '!' )
+            // InternalSignalDSL.g:39:9: '!'
             {
-            match("++"); 
-
+            match('!'); 
 
             }
 
@@ -740,10 +744,10 @@
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:40:7: ( '--' )
-            // InternalSignalDSL.g:40:9: '--'
+            // InternalSignalDSL.g:40:7: ( '++' )
+            // InternalSignalDSL.g:40:9: '++'
             {
-            match("--"); 
+            match("++"); 
 
 
             }
@@ -761,10 +765,11 @@
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:41:7: ( '.' )
-            // InternalSignalDSL.g:41:9: '.'
+            // InternalSignalDSL.g:41:7: ( '--' )
+            // InternalSignalDSL.g:41:9: '--'
             {
-            match('.'); 
+            match("--"); 
+
 
             }
 
@@ -781,11 +786,10 @@
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:42:7: ( 'val' )
-            // InternalSignalDSL.g:42:9: 'val'
+            // InternalSignalDSL.g:42:7: ( '.' )
+            // InternalSignalDSL.g:42:9: '.'
             {
-            match("val"); 
-
+            match('.'); 
 
             }
 
@@ -802,10 +806,10 @@
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:43:7: ( 'extends' )
-            // InternalSignalDSL.g:43:9: 'extends'
+            // InternalSignalDSL.g:43:7: ( 'val' )
+            // InternalSignalDSL.g:43:9: 'val'
             {
-            match("extends"); 
+            match("val"); 
 
 
             }
@@ -823,10 +827,10 @@
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:44:7: ( 'static' )
-            // InternalSignalDSL.g:44:9: 'static'
+            // InternalSignalDSL.g:44:7: ( 'extends' )
+            // InternalSignalDSL.g:44:9: 'extends'
             {
-            match("static"); 
+            match("extends"); 
 
 
             }
@@ -844,10 +848,10 @@
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:45:7: ( 'import' )
-            // InternalSignalDSL.g:45:9: 'import'
+            // InternalSignalDSL.g:45:7: ( 'static' )
+            // InternalSignalDSL.g:45:9: 'static'
             {
-            match("import"); 
+            match("static"); 
 
 
             }
@@ -865,10 +869,10 @@
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:46:7: ( 'extension' )
-            // InternalSignalDSL.g:46:9: 'extension'
+            // InternalSignalDSL.g:46:7: ( 'import' )
+            // InternalSignalDSL.g:46:9: 'import'
             {
-            match("extension"); 
+            match("import"); 
 
 
             }
@@ -886,10 +890,10 @@
         try {
             int _type = T__49;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:47:7: ( 'super' )
-            // InternalSignalDSL.g:47:9: 'super'
+            // InternalSignalDSL.g:47:7: ( 'extension' )
+            // InternalSignalDSL.g:47:9: 'extension'
             {
-            match("super"); 
+            match("extension"); 
 
 
             }
@@ -907,10 +911,10 @@
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:48:7: ( 'false' )
-            // InternalSignalDSL.g:48:9: 'false'
+            // InternalSignalDSL.g:48:7: ( 'super' )
+            // InternalSignalDSL.g:48:9: 'super'
             {
-            match("false"); 
+            match("super"); 
 
 
             }
@@ -928,10 +932,10 @@
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:49:7: ( 'export' )
-            // InternalSignalDSL.g:49:9: 'export'
+            // InternalSignalDSL.g:49:7: ( 'false' )
+            // InternalSignalDSL.g:49:9: 'false'
             {
-            match("export"); 
+            match("false"); 
 
 
             }
@@ -949,10 +953,10 @@
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:50:7: ( 'sequential' )
-            // InternalSignalDSL.g:50:9: 'sequential'
+            // InternalSignalDSL.g:50:7: ( 'export' )
+            // InternalSignalDSL.g:50:9: 'export'
             {
-            match("sequential"); 
+            match("export"); 
 
 
             }
@@ -970,10 +974,10 @@
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:51:7: ( 'parallel' )
-            // InternalSignalDSL.g:51:9: 'parallel'
+            // InternalSignalDSL.g:51:7: ( 'sequential' )
+            // InternalSignalDSL.g:51:9: 'sequential'
             {
-            match("parallel"); 
+            match("sequential"); 
 
 
             }
@@ -991,10 +995,10 @@
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:52:7: ( 'sunday' )
-            // InternalSignalDSL.g:52:9: 'sunday'
+            // InternalSignalDSL.g:52:7: ( 'parallel' )
+            // InternalSignalDSL.g:52:9: 'parallel'
             {
-            match("sunday"); 
+            match("parallel"); 
 
 
             }
@@ -1012,10 +1016,10 @@
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:53:7: ( 'monday' )
-            // InternalSignalDSL.g:53:9: 'monday'
+            // InternalSignalDSL.g:53:7: ( 'sunday' )
+            // InternalSignalDSL.g:53:9: 'sunday'
             {
-            match("monday"); 
+            match("sunday"); 
 
 
             }
@@ -1033,10 +1037,10 @@
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:54:7: ( 'tuesday' )
-            // InternalSignalDSL.g:54:9: 'tuesday'
+            // InternalSignalDSL.g:54:7: ( 'monday' )
+            // InternalSignalDSL.g:54:9: 'monday'
             {
-            match("tuesday"); 
+            match("monday"); 
 
 
             }
@@ -1054,10 +1058,10 @@
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:55:7: ( 'wednesday' )
-            // InternalSignalDSL.g:55:9: 'wednesday'
+            // InternalSignalDSL.g:55:7: ( 'tuesday' )
+            // InternalSignalDSL.g:55:9: 'tuesday'
             {
-            match("wednesday"); 
+            match("tuesday"); 
 
 
             }
@@ -1075,10 +1079,10 @@
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:56:7: ( 'thursday' )
-            // InternalSignalDSL.g:56:9: 'thursday'
+            // InternalSignalDSL.g:56:7: ( 'wednesday' )
+            // InternalSignalDSL.g:56:9: 'wednesday'
             {
-            match("thursday"); 
+            match("wednesday"); 
 
 
             }
@@ -1096,10 +1100,10 @@
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:57:7: ( 'friday' )
-            // InternalSignalDSL.g:57:9: 'friday'
+            // InternalSignalDSL.g:57:7: ( 'thursday' )
+            // InternalSignalDSL.g:57:9: 'thursday'
             {
-            match("friday"); 
+            match("thursday"); 
 
 
             }
@@ -1117,10 +1121,10 @@
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:58:7: ( 'saturday' )
-            // InternalSignalDSL.g:58:9: 'saturday'
+            // InternalSignalDSL.g:58:7: ( 'friday' )
+            // InternalSignalDSL.g:58:9: 'friday'
             {
-            match("saturday"); 
+            match("friday"); 
 
 
             }
@@ -1138,10 +1142,10 @@
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:59:7: ( 'package' )
-            // InternalSignalDSL.g:59:9: 'package'
+            // InternalSignalDSL.g:59:7: ( 'saturday' )
+            // InternalSignalDSL.g:59:9: 'saturday'
             {
-            match("package"); 
+            match("saturday"); 
 
 
             }
@@ -1159,10 +1163,11 @@
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:60:7: ( '{' )
-            // InternalSignalDSL.g:60:9: '{'
+            // InternalSignalDSL.g:60:7: ( 'package' )
+            // InternalSignalDSL.g:60:9: 'package'
             {
-            match('{'); 
+            match("package"); 
+
 
             }
 
@@ -1179,10 +1184,10 @@
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:61:7: ( '}' )
-            // InternalSignalDSL.g:61:9: '}'
+            // InternalSignalDSL.g:61:7: ( '{' )
+            // InternalSignalDSL.g:61:9: '{'
             {
-            match('}'); 
+            match('{'); 
 
             }
 
@@ -1199,11 +1204,10 @@
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:62:7: ( 'watcher' )
-            // InternalSignalDSL.g:62:9: 'watcher'
+            // InternalSignalDSL.g:62:7: ( '}' )
+            // InternalSignalDSL.g:62:9: '}'
             {
-            match("watcher"); 
-
+            match('}'); 
 
             }
 
@@ -1220,10 +1224,10 @@
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:63:7: ( 'filemask' )
-            // InternalSignalDSL.g:63:9: 'filemask'
+            // InternalSignalDSL.g:63:7: ( 'watcher' )
+            // InternalSignalDSL.g:63:9: 'watcher'
             {
-            match("filemask"); 
+            match("watcher"); 
 
 
             }
@@ -1262,10 +1266,10 @@
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:65:7: ( 'filename' )
-            // InternalSignalDSL.g:65:9: 'filename'
+            // InternalSignalDSL.g:65:7: ( 'applyon' )
+            // InternalSignalDSL.g:65:9: 'applyon'
             {
-            match("filename"); 
+            match("applyon"); 
 
 
             }
@@ -1450,10 +1454,11 @@
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:74:7: ( ';' )
-            // InternalSignalDSL.g:74:9: ';'
+            // InternalSignalDSL.g:74:7: ( 'functionGroup' )
+            // InternalSignalDSL.g:74:9: 'functionGroup'
             {
-            match(';'); 
+            match("functionGroup"); 
+
 
             }
 
@@ -1470,10 +1475,11 @@
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:75:7: ( '@' )
-            // InternalSignalDSL.g:75:9: '@'
+            // InternalSignalDSL.g:75:7: ( 'execute' )
+            // InternalSignalDSL.g:75:9: 'execute'
             {
-            match('@'); 
+            match("execute"); 
+
 
             }
 
@@ -1490,10 +1496,10 @@
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:76:7: ( '(' )
-            // InternalSignalDSL.g:76:9: '('
+            // InternalSignalDSL.g:76:7: ( ';' )
+            // InternalSignalDSL.g:76:9: ';'
             {
-            match('('); 
+            match(';'); 
 
             }
 
@@ -1510,10 +1516,10 @@
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:77:7: ( ')' )
-            // InternalSignalDSL.g:77:9: ')'
+            // InternalSignalDSL.g:77:7: ( '@' )
+            // InternalSignalDSL.g:77:9: '@'
             {
-            match(')'); 
+            match('@'); 
 
             }
 
@@ -1530,10 +1536,10 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:78:7: ( ',' )
-            // InternalSignalDSL.g:78:9: ','
+            // InternalSignalDSL.g:78:7: ( '(' )
+            // InternalSignalDSL.g:78:9: '('
             {
-            match(','); 
+            match('('); 
 
             }
 
@@ -1550,10 +1556,10 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:79:7: ( ']' )
-            // InternalSignalDSL.g:79:9: ']'
+            // InternalSignalDSL.g:79:7: ( ')' )
+            // InternalSignalDSL.g:79:9: ')'
             {
-            match(']'); 
+            match(')'); 
 
             }
 
@@ -1570,10 +1576,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:80:7: ( '#' )
-            // InternalSignalDSL.g:80:9: '#'
+            // InternalSignalDSL.g:80:7: ( ',' )
+            // InternalSignalDSL.g:80:9: ','
             {
-            match('#'); 
+            match(','); 
 
             }
 
@@ -1590,10 +1596,10 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:81:7: ( '[' )
-            // InternalSignalDSL.g:81:9: '['
+            // InternalSignalDSL.g:81:7: ( ']' )
+            // InternalSignalDSL.g:81:9: ']'
             {
-            match('['); 
+            match(']'); 
 
             }
 
@@ -1610,11 +1616,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:82:7: ( 'instanceof' )
-            // InternalSignalDSL.g:82:9: 'instanceof'
+            // InternalSignalDSL.g:82:7: ( '#' )
+            // InternalSignalDSL.g:82:9: '#'
             {
-            match("instanceof"); 
-
+            match('#'); 
 
             }
 
@@ -1631,11 +1636,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:83:7: ( 'as' )
-            // InternalSignalDSL.g:83:9: 'as'
+            // InternalSignalDSL.g:83:7: ( '[' )
+            // InternalSignalDSL.g:83:9: '['
             {
-            match("as"); 
-
+            match('['); 
 
             }
 
@@ -1652,10 +1656,10 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:84:7: ( 'if' )
-            // InternalSignalDSL.g:84:9: 'if'
+            // InternalSignalDSL.g:84:7: ( 'instanceof' )
+            // InternalSignalDSL.g:84:9: 'instanceof'
             {
-            match("if"); 
+            match("instanceof"); 
 
 
             }
@@ -1673,10 +1677,10 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:85:7: ( 'else' )
-            // InternalSignalDSL.g:85:9: 'else'
+            // InternalSignalDSL.g:85:7: ( 'as' )
+            // InternalSignalDSL.g:85:9: 'as'
             {
-            match("else"); 
+            match("as"); 
 
 
             }
@@ -1694,10 +1698,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:86:7: ( 'switch' )
-            // InternalSignalDSL.g:86:9: 'switch'
+            // InternalSignalDSL.g:86:7: ( 'if' )
+            // InternalSignalDSL.g:86:9: 'if'
             {
-            match("switch"); 
+            match("if"); 
 
 
             }
@@ -1715,10 +1719,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:87:7: ( 'default' )
-            // InternalSignalDSL.g:87:9: 'default'
+            // InternalSignalDSL.g:87:7: ( 'else' )
+            // InternalSignalDSL.g:87:9: 'else'
             {
-            match("default"); 
+            match("else"); 
 
 
             }
@@ -1736,10 +1740,10 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:88:7: ( 'case' )
-            // InternalSignalDSL.g:88:9: 'case'
+            // InternalSignalDSL.g:88:7: ( 'switch' )
+            // InternalSignalDSL.g:88:9: 'switch'
             {
-            match("case"); 
+            match("switch"); 
 
 
             }
@@ -1757,10 +1761,10 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:89:7: ( 'for' )
-            // InternalSignalDSL.g:89:9: 'for'
+            // InternalSignalDSL.g:89:7: ( 'default' )
+            // InternalSignalDSL.g:89:9: 'default'
             {
-            match("for"); 
+            match("default"); 
 
 
             }
@@ -1778,10 +1782,10 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:90:7: ( 'while' )
-            // InternalSignalDSL.g:90:9: 'while'
+            // InternalSignalDSL.g:90:7: ( 'case' )
+            // InternalSignalDSL.g:90:9: 'case'
             {
-            match("while"); 
+            match("case"); 
 
 
             }
@@ -1799,10 +1803,10 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:91:7: ( 'do' )
-            // InternalSignalDSL.g:91:9: 'do'
+            // InternalSignalDSL.g:91:7: ( 'for' )
+            // InternalSignalDSL.g:91:9: 'for'
             {
-            match("do"); 
+            match("for"); 
 
 
             }
@@ -1820,10 +1824,10 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:92:7: ( 'new' )
-            // InternalSignalDSL.g:92:9: 'new'
+            // InternalSignalDSL.g:92:7: ( 'while' )
+            // InternalSignalDSL.g:92:9: 'while'
             {
-            match("new"); 
+            match("while"); 
 
 
             }
@@ -1841,10 +1845,10 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:93:7: ( 'null' )
-            // InternalSignalDSL.g:93:9: 'null'
+            // InternalSignalDSL.g:93:7: ( 'do' )
+            // InternalSignalDSL.g:93:9: 'do'
             {
-            match("null"); 
+            match("do"); 
 
 
             }
@@ -1862,10 +1866,10 @@
         try {
             int _type = T__96;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:94:7: ( 'typeof' )
-            // InternalSignalDSL.g:94:9: 'typeof'
+            // InternalSignalDSL.g:94:7: ( 'new' )
+            // InternalSignalDSL.g:94:9: 'new'
             {
-            match("typeof"); 
+            match("new"); 
 
 
             }
@@ -1883,10 +1887,10 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:95:7: ( 'throw' )
-            // InternalSignalDSL.g:95:9: 'throw'
+            // InternalSignalDSL.g:95:7: ( 'null' )
+            // InternalSignalDSL.g:95:9: 'null'
             {
-            match("throw"); 
+            match("null"); 
 
 
             }
@@ -1904,10 +1908,10 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:96:7: ( 'return' )
-            // InternalSignalDSL.g:96:9: 'return'
+            // InternalSignalDSL.g:96:7: ( 'typeof' )
+            // InternalSignalDSL.g:96:9: 'typeof'
             {
-            match("return"); 
+            match("typeof"); 
 
 
             }
@@ -1925,10 +1929,10 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:97:7: ( 'try' )
-            // InternalSignalDSL.g:97:9: 'try'
+            // InternalSignalDSL.g:97:7: ( 'throw' )
+            // InternalSignalDSL.g:97:9: 'throw'
             {
-            match("try"); 
+            match("throw"); 
 
 
             }
@@ -1946,10 +1950,10 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:98:8: ( 'finally' )
-            // InternalSignalDSL.g:98:10: 'finally'
+            // InternalSignalDSL.g:98:8: ( 'return' )
+            // InternalSignalDSL.g:98:10: 'return'
             {
-            match("finally"); 
+            match("return"); 
 
 
             }
@@ -1967,10 +1971,10 @@
         try {
             int _type = T__101;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:99:8: ( 'synchronized' )
-            // InternalSignalDSL.g:99:10: 'synchronized'
+            // InternalSignalDSL.g:99:8: ( 'try' )
+            // InternalSignalDSL.g:99:10: 'try'
             {
-            match("synchronized"); 
+            match("try"); 
 
 
             }
@@ -1988,10 +1992,10 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:100:8: ( 'catch' )
-            // InternalSignalDSL.g:100:10: 'catch'
+            // InternalSignalDSL.g:100:8: ( 'finally' )
+            // InternalSignalDSL.g:100:10: 'finally'
             {
-            match("catch"); 
+            match("finally"); 
 
 
             }
@@ -2009,10 +2013,11 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:101:8: ( '?' )
-            // InternalSignalDSL.g:101:10: '?'
+            // InternalSignalDSL.g:101:8: ( 'synchronized' )
+            // InternalSignalDSL.g:101:10: 'synchronized'
             {
-            match('?'); 
+            match("synchronized"); 
+
 
             }
 
@@ -2029,10 +2034,11 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:102:8: ( '&' )
-            // InternalSignalDSL.g:102:10: '&'
+            // InternalSignalDSL.g:102:8: ( 'catch' )
+            // InternalSignalDSL.g:102:10: 'catch'
             {
-            match('&'); 
+            match("catch"); 
+
 
             }
 
@@ -2049,11 +2055,10 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:103:8: ( 'applyon' )
-            // InternalSignalDSL.g:103:10: 'applyon'
+            // InternalSignalDSL.g:103:8: ( '?' )
+            // InternalSignalDSL.g:103:10: '?'
             {
-            match("applyon"); 
-
+            match('?'); 
 
             }
 
@@ -2070,11 +2075,10 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:104:8: ( 'ns' )
-            // InternalSignalDSL.g:104:10: 'ns'
+            // InternalSignalDSL.g:104:8: ( '&' )
+            // InternalSignalDSL.g:104:10: '&'
             {
-            match("ns"); 
-
+            match('&'); 
 
             }
 
@@ -2091,10 +2095,10 @@
         try {
             int _type = T__107;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:105:8: ( '::' )
-            // InternalSignalDSL.g:105:10: '::'
+            // InternalSignalDSL.g:105:8: ( 'filemask' )
+            // InternalSignalDSL.g:105:10: 'filemask'
             {
-            match("::"); 
+            match("filemask"); 
 
 
             }
@@ -2112,10 +2116,10 @@
         try {
             int _type = T__108;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:106:8: ( '?.' )
-            // InternalSignalDSL.g:106:10: '?.'
+            // InternalSignalDSL.g:106:8: ( 'executeOnImportFile' )
+            // InternalSignalDSL.g:106:10: 'executeOnImportFile'
             {
-            match("?."); 
+            match("executeOnImportFile"); 
 
 
             }
@@ -2133,10 +2137,11 @@
         try {
             int _type = T__109;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:107:8: ( '|' )
-            // InternalSignalDSL.g:107:10: '|'
+            // InternalSignalDSL.g:107:8: ( 'executeOnExportFile' )
+            // InternalSignalDSL.g:107:10: 'executeOnExportFile'
             {
-            match('|'); 
+            match("executeOnExportFile"); 
+
 
             }
 
@@ -2153,10 +2158,10 @@
         try {
             int _type = T__110;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:108:8: ( 'var' )
-            // InternalSignalDSL.g:108:10: 'var'
+            // InternalSignalDSL.g:108:8: ( 'ns' )
+            // InternalSignalDSL.g:108:10: 'ns'
             {
-            match("var"); 
+            match("ns"); 
 
 
             }
@@ -2174,10 +2179,10 @@
         try {
             int _type = T__111;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:109:8: ( 'true' )
-            // InternalSignalDSL.g:109:10: 'true'
+            // InternalSignalDSL.g:109:8: ( '::' )
+            // InternalSignalDSL.g:109:10: '::'
             {
-            match("true"); 
+            match("::"); 
 
 
             }
@@ -2190,15 +2195,98 @@
     }
     // $ANTLR end "T__111"
 
+    // $ANTLR start "T__112"
+    public final void mT__112() throws RecognitionException {
+        try {
+            int _type = T__112;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalSignalDSL.g:110:8: ( '?.' )
+            // InternalSignalDSL.g:110:10: '?.'
+            {
+            match("?."); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__112"
+
+    // $ANTLR start "T__113"
+    public final void mT__113() throws RecognitionException {
+        try {
+            int _type = T__113;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalSignalDSL.g:111:8: ( '|' )
+            // InternalSignalDSL.g:111:10: '|'
+            {
+            match('|'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__113"
+
+    // $ANTLR start "T__114"
+    public final void mT__114() throws RecognitionException {
+        try {
+            int _type = T__114;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalSignalDSL.g:112:8: ( 'var' )
+            // InternalSignalDSL.g:112:10: 'var'
+            {
+            match("var"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__114"
+
+    // $ANTLR start "T__115"
+    public final void mT__115() throws RecognitionException {
+        try {
+            int _type = T__115;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalSignalDSL.g:113:8: ( 'true' )
+            // InternalSignalDSL.g:113:10: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__115"
+
     // $ANTLR start "RULE_HEX"
     public final void mRULE_HEX() throws RecognitionException {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:21510:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalSignalDSL.g:21510:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalSignalDSL.g:21779:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalSignalDSL.g:21779:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalSignalDSL.g:21510:12: ( '0x' | '0X' )
+            // InternalSignalDSL.g:21779:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -2226,7 +2314,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalSignalDSL.g:21510:13: '0x'
+                    // InternalSignalDSL.g:21779:13: '0x'
                     {
                     match("0x"); 
 
@@ -2234,7 +2322,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:21510:18: '0X'
+                    // InternalSignalDSL.g:21779:18: '0X'
                     {
                     match("0X"); 
 
@@ -2244,7 +2332,7 @@
 
             }
 
-            // InternalSignalDSL.g:21510:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalSignalDSL.g:21779:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -2282,7 +2370,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalSignalDSL.g:21510:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalSignalDSL.g:21779:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -2291,10 +2379,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalSignalDSL.g:21510:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalSignalDSL.g:21779:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalSignalDSL.g:21510:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalSignalDSL.g:21779:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -2312,7 +2400,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalSignalDSL.g:21510:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalSignalDSL.g:21779:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -2336,7 +2424,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:21510:84: ( 'l' | 'L' )
+                            // InternalSignalDSL.g:21779:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -2375,11 +2463,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:21512:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalSignalDSL.g:21512:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalSignalDSL.g:21781:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalSignalDSL.g:21781:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalSignalDSL.g:21512:21: ( '0' .. '9' | '_' )*
+            // InternalSignalDSL.g:21781:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -2428,11 +2516,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:21514:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalSignalDSL.g:21514:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalSignalDSL.g:21783:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalSignalDSL.g:21783:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalSignalDSL.g:21514:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalSignalDSL.g:21783:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -2441,7 +2529,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalSignalDSL.g:21514:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalSignalDSL.g:21783:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -2452,7 +2540,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalSignalDSL.g:21514:36: ( '+' | '-' )?
+                    // InternalSignalDSL.g:21783:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -2485,7 +2573,7 @@
 
             }
 
-            // InternalSignalDSL.g:21514:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalSignalDSL.g:21783:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -2497,7 +2585,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalSignalDSL.g:21514:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalSignalDSL.g:21783:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -2521,7 +2609,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:21514:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalSignalDSL.g:21783:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
                     {
                     if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='L'||input.LA(1)=='d'||input.LA(1)=='f'||input.LA(1)=='l' ) {
                         input.consume();
@@ -2554,10 +2642,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:21516:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalSignalDSL.g:21516:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalSignalDSL.g:21785:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalSignalDSL.g:21785:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalSignalDSL.g:21516:11: ( '^' )?
+            // InternalSignalDSL.g:21785:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -2566,7 +2654,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalSignalDSL.g:21516:11: '^'
+                    // InternalSignalDSL.g:21785:11: '^'
                     {
                     match('^'); 
 
@@ -2584,7 +2672,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalSignalDSL.g:21516:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalSignalDSL.g:21785:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -2633,10 +2721,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:21518:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalSignalDSL.g:21518:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalSignalDSL.g:21787:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalSignalDSL.g:21787:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalSignalDSL.g:21518:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalSignalDSL.g:21787:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2654,10 +2742,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalSignalDSL.g:21518:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalSignalDSL.g:21787:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalSignalDSL.g:21518:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalSignalDSL.g:21787:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -2673,7 +2761,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:21518:21: '\\\\' .
+                    	    // InternalSignalDSL.g:21787:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -2681,7 +2769,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalSignalDSL.g:21518:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalSignalDSL.g:21787:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -2701,7 +2789,7 @@
                         }
                     } while (true);
 
-                    // InternalSignalDSL.g:21518:44: ( '\"' )?
+                    // InternalSignalDSL.g:21787:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -2710,7 +2798,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalSignalDSL.g:21518:44: '\"'
+                            // InternalSignalDSL.g:21787:44: '\"'
                             {
                             match('\"'); 
 
@@ -2723,10 +2811,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:21518:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalSignalDSL.g:21787:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalSignalDSL.g:21518:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalSignalDSL.g:21787:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -2742,7 +2830,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:21518:55: '\\\\' .
+                    	    // InternalSignalDSL.g:21787:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -2750,7 +2838,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalSignalDSL.g:21518:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalSignalDSL.g:21787:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -2770,7 +2858,7 @@
                         }
                     } while (true);
 
-                    // InternalSignalDSL.g:21518:79: ( '\\'' )?
+                    // InternalSignalDSL.g:21787:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2779,7 +2867,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalSignalDSL.g:21518:79: '\\''
+                            // InternalSignalDSL.g:21787:79: '\\''
                             {
                             match('\''); 
 
@@ -2810,12 +2898,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:21520:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalSignalDSL.g:21520:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalSignalDSL.g:21789:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalSignalDSL.g:21789:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalSignalDSL.g:21520:24: ( options {greedy=false; } : . )*
+            // InternalSignalDSL.g:21789:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -2840,7 +2928,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalSignalDSL.g:21520:52: .
+            	    // InternalSignalDSL.g:21789:52: .
             	    {
             	    matchAny(); 
 
@@ -2870,12 +2958,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:21522:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalSignalDSL.g:21522:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalSignalDSL.g:21791:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalSignalDSL.g:21791:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalSignalDSL.g:21522:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalSignalDSL.g:21791:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -2888,7 +2976,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalSignalDSL.g:21522:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalSignalDSL.g:21791:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2908,7 +2996,7 @@
                 }
             } while (true);
 
-            // InternalSignalDSL.g:21522:40: ( ( '\\r' )? '\\n' )?
+            // InternalSignalDSL.g:21791:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -2917,9 +3005,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalSignalDSL.g:21522:41: ( '\\r' )? '\\n'
+                    // InternalSignalDSL.g:21791:41: ( '\\r' )? '\\n'
                     {
-                    // InternalSignalDSL.g:21522:41: ( '\\r' )?
+                    // InternalSignalDSL.g:21791:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -2928,7 +3016,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalSignalDSL.g:21522:41: '\\r'
+                            // InternalSignalDSL.g:21791:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2960,10 +3048,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:21524:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalSignalDSL.g:21524:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalSignalDSL.g:21793:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalSignalDSL.g:21793:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalSignalDSL.g:21524:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalSignalDSL.g:21793:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -3017,8 +3105,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:21526:16: ( . )
-            // InternalSignalDSL.g:21526:18: .
+            // InternalSignalDSL.g:21795:16: ( . )
+            // InternalSignalDSL.g:21795:18: .
             {
             matchAny(); 
 
@@ -3033,8 +3121,8 @@
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalSignalDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=108;
+        // InternalSignalDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=112;
         alt21 = dfa21.predict(input);
         switch (alt21) {
             case 1 :
@@ -3731,63 +3819,91 @@
                 }
                 break;
             case 100 :
-                // InternalSignalDSL.g:1:616: RULE_HEX
+                // InternalSignalDSL.g:1:616: T__112
+                {
+                mT__112(); 
+
+                }
+                break;
+            case 101 :
+                // InternalSignalDSL.g:1:623: T__113
+                {
+                mT__113(); 
+
+                }
+                break;
+            case 102 :
+                // InternalSignalDSL.g:1:630: T__114
+                {
+                mT__114(); 
+
+                }
+                break;
+            case 103 :
+                // InternalSignalDSL.g:1:637: T__115
+                {
+                mT__115(); 
+
+                }
+                break;
+            case 104 :
+                // InternalSignalDSL.g:1:644: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 101 :
-                // InternalSignalDSL.g:1:625: RULE_INT
+            case 105 :
+                // InternalSignalDSL.g:1:653: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 102 :
-                // InternalSignalDSL.g:1:634: RULE_DECIMAL
+            case 106 :
+                // InternalSignalDSL.g:1:662: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 103 :
-                // InternalSignalDSL.g:1:647: RULE_ID
+            case 107 :
+                // InternalSignalDSL.g:1:675: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 104 :
-                // InternalSignalDSL.g:1:655: RULE_STRING
+            case 108 :
+                // InternalSignalDSL.g:1:683: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 105 :
-                // InternalSignalDSL.g:1:667: RULE_ML_COMMENT
+            case 109 :
+                // InternalSignalDSL.g:1:695: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 106 :
-                // InternalSignalDSL.g:1:683: RULE_SL_COMMENT
+            case 110 :
+                // InternalSignalDSL.g:1:711: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 107 :
-                // InternalSignalDSL.g:1:699: RULE_WS
+            case 111 :
+                // InternalSignalDSL.g:1:727: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 108 :
-                // InternalSignalDSL.g:1:707: RULE_ANY_OTHER
+            case 112 :
+                // InternalSignalDSL.g:1:735: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -3801,48 +3917,48 @@
 
     protected DFA21 dfa21 = new DFA21(this);
     static final String DFA21_eotS =
-        "\1\uffff\1\62\1\64\1\66\1\71\1\75\1\100\1\104\1\106\1\110\1\112\1\114\1\116\1\121\11\123\2\uffff\3\123\1\166\1\123\10\uffff\2\123\2\u0088\1\57\5\uffff\1\u008d\26\uffff\1\u008f\5\uffff\1\u0091\4\uffff\1\123\1\uffff\13\123\1\u00a1\15\123\2\uffff\5\123\1\u00bb\2\uffff\1\u00bc\1\u00bd\1\123\10\uffff\2\123\1\u00c1\1\123\1\uffff\1\u0088\12\uffff\1\u00c3\1\u00c4\15\123\1\uffff\5\123\1\u00d7\7\123\1\u00e0\13\123\3\uffff\1\123\1\u00ed\1\123\1\uffff\1\123\2\uffff\2\123\1\u00f2\14\123\1\u00ff\2\123\1\uffff\10\123\1\uffff\1\u010b\4\123\1\u0110\1\u0111\5\123\1\uffff\1\u0117\3\123\1\uffff\1\123\1\u011d\10\123\1\u0126\1\123\1\uffff\11\123\1\u0131\1\123\1\uffff\3\123\1\u0136\2\uffff\1\u0137\4\123\1\uffff\3\123\1\u013f\1\u0140\1\uffff\1\u0141\3\123\1\u0145\1\123\1\u0147\1\123\1\uffff\1\u0149\5\123\1\u014f\3\123\1\uffff\1\u0153\3\123\2\uffff\4\123\1\u015b\1\u015c\1\123\3\uffff\3\123\1\uffff\1\123\1\uffff\1\123\1\uffff\2\123\1\u0165\1\123\1\u0167\1\uffff\1\123\1\u0169\1\123\1\uffff\2\123\1\u016d\1\123\1\u016f\1\u0170\1\u0171\2\uffff\2\123\1\u0174\3\123\1\u0178\1\u0179\1\uffff\1\u017a\1\uffff\1\123\1\uffff\1\u017c\1\123\1\u017e\1\uffff\1\u017f\3\uffff\1\u0180\1\123\1\uffff\1\u0182\2\123\3\uffff\1\u0185\1\uffff\1\u0186\3\uffff\1\u0187\1\uffff\1\123\1\u0189\3\uffff\1\123\1\uffff\1\u018b\1\uffff";
+        "\1\uffff\1\62\1\64\1\66\1\74\1\77\1\103\1\106\1\112\1\114\1\116\1\120\1\122\1\124\1\127\10\74\2\uffff\4\74\1\172\10\uffff\2\74\2\u0089\1\57\5\uffff\1\u008e\6\uffff\5\74\21\uffff\1\u0097\5\uffff\1\u0099\4\uffff\14\74\1\u00aa\11\74\2\uffff\1\74\1\u00b9\1\u00ba\5\74\1\u00c1\12\uffff\2\74\1\u00c4\1\74\1\uffff\1\u0089\6\uffff\6\74\1\u00cc\4\uffff\1\u00cd\1\u00ce\16\74\1\uffff\7\74\1\u00e5\6\74\2\uffff\6\74\1\uffff\1\u00f2\1\74\1\uffff\5\74\1\u00fa\1\74\3\uffff\3\74\1\u00ff\22\74\1\uffff\1\u0112\5\74\1\u0118\1\u0119\4\74\1\uffff\1\u011e\4\74\1\u0123\1\74\1\uffff\4\74\1\uffff\1\74\1\u012b\16\74\1\u013a\1\74\1\uffff\3\74\1\u013f\1\74\2\uffff\1\u0141\3\74\1\uffff\4\74\1\uffff\1\u0149\3\74\1\u014d\1\74\1\u014f\1\uffff\1\u0150\3\74\1\u0154\1\74\1\u0156\3\74\1\u015a\3\74\1\uffff\1\u015e\3\74\1\uffff\1\74\1\uffff\3\74\1\u0166\2\74\1\u0169\1\uffff\1\74\1\u016b\1\74\1\uffff\1\u016e\2\uffff\3\74\1\uffff\1\74\1\uffff\2\74\1\u0175\1\uffff\1\74\1\u0177\1\74\1\uffff\2\74\1\u017b\1\u017c\1\74\1\u017e\1\u017f\1\uffff\1\u0180\1\u0181\1\uffff\1\74\1\uffff\2\74\1\uffff\1\74\1\u0186\3\74\1\u018a\1\uffff\1\74\1\uffff\1\u018c\1\74\1\u018e\2\uffff\1\u018f\4\uffff\1\74\1\u0191\2\74\1\uffff\1\u0195\2\74\1\uffff\1\u0198\1\uffff\1\u0199\2\uffff\1\74\1\uffff\2\74\1\u019d\1\uffff\1\74\1\u019f\2\uffff\3\74\1\uffff\1\74\1\uffff\3\74\1\u01a7\1\u01a8\2\74\2\uffff\12\74\1\u01b5\1\u01b6\2\uffff";
     static final String DFA21_eofS =
-        "\u018c\uffff";
+        "\u01b7\uffff";
     static final String DFA21_minS =
-        "\1\0\1\75\1\174\1\46\1\53\1\55\2\52\3\75\1\76\2\56\1\141\1\154\1\141\1\146\2\141\1\157\1\150\1\141\2\uffff\1\141\1\157\1\141\1\72\1\160\10\uffff\2\145\2\60\1\44\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\uffff\1\160\1\163\1\141\1\156\1\161\1\164\1\150\1\151\1\156\1\160\1\163\1\44\1\154\1\151\1\154\1\162\1\143\1\156\1\145\1\162\1\160\1\165\1\144\1\164\1\151\2\uffff\1\157\1\163\1\165\1\151\1\146\1\44\2\uffff\2\44\1\160\10\uffff\1\167\1\154\1\44\1\164\1\uffff\1\60\12\uffff\2\44\1\145\1\157\1\145\1\164\1\145\1\144\2\165\1\145\1\164\1\143\1\157\1\164\1\uffff\1\163\1\144\1\155\1\145\1\141\1\44\1\141\1\153\1\144\1\163\1\162\1\157\1\145\1\44\1\145\1\156\1\153\1\143\1\154\1\156\1\145\1\143\1\162\1\154\1\141\3\uffff\1\154\1\44\1\154\1\uffff\1\165\2\uffff\1\156\1\162\1\44\1\151\1\162\1\141\1\145\1\162\1\144\1\143\1\150\1\162\1\141\1\145\1\141\1\44\1\155\1\154\1\uffff\1\154\2\141\1\150\1\144\1\163\1\167\1\157\1\uffff\1\44\1\145\1\154\1\150\1\145\2\44\1\150\1\154\1\171\1\165\1\171\1\uffff\1\44\1\162\1\144\1\164\1\uffff\1\143\1\44\1\171\1\156\1\144\1\165\1\150\1\162\1\164\1\156\1\44\1\171\1\uffff\2\141\2\154\1\147\1\171\1\154\1\141\1\144\1\44\1\146\1\uffff\1\163\1\171\1\145\1\44\2\uffff\1\44\1\171\1\141\1\154\1\157\1\uffff\1\156\1\163\1\151\2\44\1\uffff\1\44\1\164\1\141\1\154\1\44\1\157\1\44\1\143\1\uffff\1\44\1\163\1\155\1\171\2\145\1\44\2\171\1\141\1\uffff\1\44\1\144\1\157\1\162\2\uffff\1\141\2\164\1\156\2\44\1\157\3\uffff\1\151\1\171\1\145\1\uffff\1\156\1\uffff\1\145\1\uffff\1\153\1\145\1\44\1\154\1\44\1\uffff\1\157\1\44\1\171\1\uffff\1\141\1\156\1\44\1\164\3\44\2\uffff\1\156\1\141\1\44\1\162\1\151\1\157\2\44\1\uffff\1\44\1\uffff\1\156\1\uffff\1\44\1\171\1\44\1\uffff\1\44\3\uffff\1\44\1\154\1\uffff\1\44\1\172\1\146\3\uffff\1\44\1\uffff\1\44\3\uffff\1\44\1\uffff\1\145\1\44\3\uffff\1\144\1\uffff\1\44\1\uffff";
+        "\1\0\1\75\1\174\1\46\1\141\1\53\1\55\2\52\3\75\1\76\2\56\1\141\1\154\1\141\1\146\1\141\1\157\1\150\1\141\2\uffff\1\160\1\141\1\157\1\141\1\72\10\uffff\2\145\2\60\1\44\5\uffff\1\75\6\uffff\2\154\1\151\1\156\1\162\21\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\145\1\163\1\141\1\156\1\161\1\164\1\150\1\151\1\156\1\160\1\163\1\44\1\143\1\156\1\145\1\162\1\160\1\165\1\144\1\164\1\151\2\uffff\1\160\2\44\1\157\1\163\1\165\1\151\1\146\1\44\12\uffff\1\167\1\154\1\44\1\164\1\uffff\1\60\6\uffff\1\145\1\141\1\163\1\144\1\155\1\143\1\44\4\uffff\2\44\1\145\1\157\1\143\1\145\1\164\1\145\1\144\2\165\1\145\1\164\1\143\1\157\1\164\1\uffff\1\141\1\153\1\144\1\163\1\162\1\157\1\145\1\44\1\145\1\156\1\153\1\143\2\154\2\uffff\1\156\1\145\1\143\1\162\1\154\1\141\1\uffff\1\44\1\154\1\uffff\1\165\1\155\1\154\1\145\1\141\1\44\1\164\3\uffff\1\156\1\162\1\165\1\44\1\151\1\162\1\141\1\145\1\162\1\144\1\143\1\150\1\162\1\141\1\154\2\141\1\150\1\144\1\163\1\167\1\157\1\uffff\1\44\1\145\1\154\1\150\1\145\1\171\2\44\1\150\1\154\1\171\1\165\1\uffff\1\44\1\162\2\141\1\154\1\44\1\171\1\uffff\1\151\1\144\2\164\1\uffff\1\143\1\44\1\171\1\156\1\144\1\165\1\150\1\162\1\164\1\156\1\154\1\147\1\171\1\154\1\141\1\144\1\44\1\146\1\uffff\1\163\1\171\1\145\1\44\1\157\2\uffff\1\44\1\171\1\141\1\154\1\uffff\1\156\1\155\1\163\1\171\1\uffff\1\44\1\157\1\163\1\151\1\44\1\145\1\44\1\uffff\1\44\1\164\1\141\1\154\1\44\1\157\1\44\1\143\2\145\1\44\2\171\1\141\1\uffff\1\44\1\144\1\157\1\162\1\uffff\1\156\1\uffff\1\141\2\164\1\44\1\145\1\153\1\44\1\uffff\1\156\1\44\1\157\1\uffff\1\44\2\uffff\1\151\1\171\1\145\1\uffff\1\156\1\uffff\1\145\1\154\1\44\1\uffff\1\157\1\44\1\171\1\uffff\1\141\1\156\2\44\1\164\2\44\1\uffff\2\44\1\uffff\1\107\1\uffff\2\156\1\uffff\1\141\1\44\1\162\1\151\1\157\1\44\1\uffff\1\156\1\uffff\1\44\1\171\1\44\2\uffff\1\44\4\uffff\1\162\1\44\1\105\1\154\1\uffff\1\44\1\172\1\146\1\uffff\1\44\1\uffff\1\44\2\uffff\1\157\1\uffff\1\155\1\170\1\44\1\uffff\1\145\1\44\2\uffff\1\165\2\160\1\uffff\1\144\1\uffff\1\160\2\157\2\44\2\162\2\uffff\2\164\2\106\2\151\2\154\2\145\2\44\2\uffff";
     static final String DFA21_maxS =
-        "\1\uffff\1\76\1\174\1\46\1\75\1\76\5\75\1\76\1\56\1\72\1\141\1\170\1\171\1\156\1\162\1\141\1\157\1\171\1\150\2\uffff\1\162\2\157\1\72\1\164\10\uffff\1\165\1\145\1\170\1\154\1\172\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\162\1\uffff\1\164\1\163\1\141\1\160\1\161\1\164\1\150\1\151\1\156\1\160\1\163\1\172\1\154\1\157\1\156\2\162\1\156\1\145\1\165\1\160\1\171\1\145\1\164\1\151\2\uffff\1\157\1\164\1\165\1\151\1\146\1\172\2\uffff\2\172\1\160\10\uffff\1\167\1\154\1\172\1\164\1\uffff\1\154\12\uffff\2\172\1\145\1\157\1\145\1\164\1\145\1\144\2\165\1\145\1\164\1\143\1\157\1\164\1\uffff\1\163\1\144\1\155\1\145\1\141\1\172\1\141\1\153\1\164\1\163\1\162\1\157\1\145\1\172\1\145\1\156\1\153\1\143\1\154\1\156\1\145\1\143\1\162\1\154\1\141\3\uffff\1\154\1\172\1\154\1\uffff\1\165\2\uffff\1\156\1\162\1\172\1\151\1\162\1\141\1\145\1\162\1\144\1\143\1\150\1\162\1\141\1\145\1\141\1\172\1\156\1\154\1\uffff\1\154\2\141\1\150\1\144\1\163\1\167\1\157\1\uffff\1\172\1\145\1\154\1\150\1\145\2\172\1\150\1\154\1\171\1\165\1\171\1\uffff\1\172\1\162\1\163\1\164\1\uffff\1\143\1\172\1\171\1\156\1\144\1\165\1\150\1\162\1\164\1\156\1\172\1\171\1\uffff\2\141\2\154\1\147\1\171\1\154\1\141\1\144\1\172\1\146\1\uffff\1\163\1\171\1\145\1\172\2\uffff\1\172\1\171\1\141\1\154\1\157\1\uffff\1\156\1\163\1\151\2\172\1\uffff\1\172\1\164\1\141\1\154\1\172\1\157\1\172\1\143\1\uffff\1\172\1\163\1\155\1\171\2\145\1\172\2\171\1\141\1\uffff\1\172\1\144\1\157\1\162\2\uffff\1\141\2\164\1\156\2\172\1\157\3\uffff\1\151\1\171\1\145\1\uffff\1\156\1\uffff\1\145\1\uffff\1\153\1\145\1\172\1\154\1\172\1\uffff\1\157\1\172\1\171\1\uffff\1\141\1\156\1\172\1\164\3\172\2\uffff\1\156\1\141\1\172\1\162\1\151\1\157\2\172\1\uffff\1\172\1\uffff\1\156\1\uffff\1\172\1\171\1\172\1\uffff\1\172\3\uffff\1\172\1\154\1\uffff\2\172\1\146\3\uffff\1\172\1\uffff\1\172\3\uffff\1\172\1\uffff\1\145\1\172\3\uffff\1\144\1\uffff\1\172\1\uffff";
+        "\1\uffff\1\76\1\174\1\46\1\165\1\75\1\76\5\75\1\76\1\56\1\72\1\141\1\170\1\171\1\156\1\141\1\157\1\171\1\150\2\uffff\1\164\1\162\2\157\1\72\10\uffff\1\165\1\145\1\170\1\154\1\172\5\uffff\1\75\6\uffff\1\156\1\154\1\157\1\156\1\162\21\uffff\1\75\5\uffff\1\74\4\uffff\1\162\1\164\1\163\1\141\1\160\1\161\1\164\1\150\1\151\1\156\1\160\1\163\1\172\1\162\1\156\1\145\1\165\1\160\1\171\1\145\1\164\1\151\2\uffff\1\160\2\172\1\157\1\164\1\165\1\151\1\146\1\172\12\uffff\1\167\1\154\1\172\1\164\1\uffff\1\154\6\uffff\1\145\1\141\1\163\1\144\1\155\1\143\1\172\4\uffff\2\172\1\145\1\157\1\143\1\145\1\164\1\145\1\144\2\165\1\145\1\164\1\143\1\157\1\164\1\uffff\1\141\1\153\1\164\1\163\1\162\1\157\1\145\1\172\1\145\1\156\1\153\1\143\2\154\2\uffff\1\156\1\145\1\143\1\162\1\154\1\141\1\uffff\1\172\1\154\1\uffff\1\165\1\156\1\154\1\145\1\141\1\172\1\164\3\uffff\1\156\1\162\1\165\1\172\1\151\1\162\1\141\1\145\1\162\1\144\1\143\1\150\1\162\1\141\1\154\2\141\1\150\1\144\1\163\1\167\1\157\1\uffff\1\172\1\145\1\154\1\150\1\145\1\171\2\172\1\150\1\154\1\171\1\165\1\uffff\1\172\1\162\2\141\1\154\1\172\1\171\1\uffff\1\151\1\163\2\164\1\uffff\1\143\1\172\1\171\1\156\1\144\1\165\1\150\1\162\1\164\1\156\1\154\1\147\1\171\1\154\1\141\1\144\1\172\1\146\1\uffff\1\163\1\171\1\145\1\172\1\157\2\uffff\1\172\1\171\1\141\1\154\1\uffff\1\156\1\155\1\163\1\171\1\uffff\1\172\1\157\1\163\1\151\1\172\1\145\1\172\1\uffff\1\172\1\164\1\141\1\154\1\172\1\157\1\172\1\143\2\145\1\172\2\171\1\141\1\uffff\1\172\1\144\1\157\1\162\1\uffff\1\156\1\uffff\1\141\2\164\1\172\1\145\1\153\1\172\1\uffff\1\156\1\172\1\157\1\uffff\1\172\2\uffff\1\151\1\171\1\145\1\uffff\1\156\1\uffff\1\145\1\154\1\172\1\uffff\1\157\1\172\1\171\1\uffff\1\141\1\156\2\172\1\164\2\172\1\uffff\2\172\1\uffff\1\107\1\uffff\2\156\1\uffff\1\141\1\172\1\162\1\151\1\157\1\172\1\uffff\1\156\1\uffff\1\172\1\171\1\172\2\uffff\1\172\4\uffff\1\162\1\172\1\111\1\154\1\uffff\2\172\1\146\1\uffff\1\172\1\uffff\1\172\2\uffff\1\157\1\uffff\1\155\1\170\1\172\1\uffff\1\145\1\172\2\uffff\1\165\2\160\1\uffff\1\144\1\uffff\1\160\2\157\2\172\2\162\2\uffff\2\164\2\106\2\151\2\154\2\145\2\172\2\uffff";
     static final String DFA21_acceptS =
-        "\27\uffff\1\62\1\63\5\uffff\1\100\1\101\1\102\1\103\1\104\1\105\1\106\1\107\5\uffff\1\147\2\150\1\153\1\154\1\uffff\1\23\1\1\1\2\1\141\1\3\1\134\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30\1\7\1\151\1\152\1\32\1\10\1\33\1\uffff\1\34\1\15\1\16\1\24\1\17\1\uffff\1\37\1\25\1\140\1\133\1\uffff\1\147\31\uffff\1\62\1\63\6\uffff\1\137\1\74\3\uffff\1\100\1\101\1\102\1\103\1\104\1\105\1\106\1\107\4\uffff\1\144\1\uffff\1\145\1\146\1\150\1\153\1\13\1\11\1\14\1\12\1\21\1\22\17\uffff\1\112\31\uffff\1\121\1\76\1\111\3\uffff\1\136\1\uffff\1\40\1\142\22\uffff\1\117\10\uffff\1\127\14\uffff\1\122\4\uffff\1\113\14\uffff\1\66\13\uffff\1\143\4\uffff\1\71\1\116\5\uffff\1\123\5\uffff\1\45\10\uffff\1\46\12\uffff\1\125\4\uffff\1\120\1\132\7\uffff\1\47\1\42\1\52\3\uffff\1\114\1\uffff\1\43\1\uffff\1\57\5\uffff\1\53\3\uffff\1\124\7\uffff\1\126\1\41\10\uffff\1\130\1\uffff\1\61\1\uffff\1\54\3\uffff\1\64\1\uffff\1\73\1\115\1\135\2\uffff\1\60\3\uffff\1\65\1\67\1\51\1\uffff\1\56\1\uffff\1\75\1\72\1\44\1\uffff\1\70\2\uffff\1\77\1\55\1\50\1\uffff\1\110\1\uffff\1\131";
+        "\27\uffff\1\63\1\64\5\uffff\1\102\1\103\1\104\1\105\1\106\1\107\1\110\1\111\5\uffff\1\153\2\154\1\157\1\160\1\uffff\1\24\1\1\1\2\1\145\1\3\1\136\5\uffff\1\153\1\5\1\36\1\27\1\6\1\21\1\37\1\30\1\7\1\32\1\31\1\10\1\155\1\156\1\33\1\11\1\34\1\uffff\1\35\1\16\1\17\1\25\1\20\1\uffff\1\40\1\26\1\144\1\135\26\uffff\1\63\1\64\11\uffff\1\143\1\74\1\102\1\103\1\104\1\105\1\106\1\107\1\110\1\111\4\uffff\1\150\1\uffff\1\151\1\152\1\154\1\157\1\14\1\12\7\uffff\1\15\1\13\1\22\1\23\20\uffff\1\114\16\uffff\1\76\1\113\6\uffff\1\123\2\uffff\1\142\7\uffff\1\121\1\41\1\146\26\uffff\1\131\14\uffff\1\124\7\uffff\1\66\4\uffff\1\115\22\uffff\1\147\5\uffff\1\71\1\120\4\uffff\1\125\4\uffff\1\47\7\uffff\1\46\16\uffff\1\127\4\uffff\1\122\1\uffff\1\134\7\uffff\1\60\3\uffff\1\50\1\uffff\1\43\1\53\3\uffff\1\116\1\uffff\1\44\3\uffff\1\54\3\uffff\1\126\7\uffff\1\130\2\uffff\1\132\1\uffff\1\42\2\uffff\1\101\6\uffff\1\62\1\uffff\1\55\3\uffff\1\65\1\67\1\uffff\1\73\1\117\1\4\1\137\4\uffff\1\61\3\uffff\1\52\1\uffff\1\57\1\uffff\1\75\1\72\1\uffff\1\45\3\uffff\1\70\2\uffff\1\77\1\56\3\uffff\1\51\1\uffff\1\112\7\uffff\1\133\1\100\14\uffff\1\140\1\141";
     static final String DFA21_specialS =
-        "\1\0\u018b\uffff}>";
+        "\1\0\u01b6\uffff}>";
     static final String[] DFA21_transitionS = {
-            "\11\57\2\56\2\57\1\56\22\57\1\56\1\11\1\54\1\44\1\53\1\10\1\3\1\55\1\40\1\41\1\6\1\4\1\42\1\5\1\14\1\7\1\50\11\51\1\34\1\36\1\13\1\1\1\12\1\15\1\37\32\53\1\45\1\57\1\43\1\52\1\53\1\57\1\35\1\53\1\31\1\33\1\17\1\22\1\53\1\32\1\21\3\53\1\24\1\46\1\53\1\23\1\53\1\47\1\20\1\25\1\53\1\16\1\26\3\53\1\27\1\2\1\30\uff82\57",
+            "\11\57\2\56\2\57\1\56\22\57\1\56\1\12\1\54\1\44\1\53\1\11\1\3\1\55\1\40\1\41\1\7\1\5\1\42\1\6\1\15\1\10\1\50\11\51\1\35\1\36\1\14\1\1\1\13\1\16\1\37\32\53\1\45\1\57\1\43\1\52\1\53\1\57\1\31\1\53\1\32\1\34\1\20\1\4\1\53\1\33\1\22\3\53\1\24\1\46\1\53\1\23\1\53\1\47\1\21\1\25\1\53\1\17\1\26\3\53\1\27\1\2\1\30\uff82\57",
             "\1\60\1\61",
             "\1\63",
             "\1\65",
-            "\1\70\21\uffff\1\67",
-            "\1\74\17\uffff\1\72\1\73",
-            "\1\77\22\uffff\1\76",
-            "\1\102\4\uffff\1\103\15\uffff\1\101",
-            "\1\105",
-            "\1\107",
-            "\1\111",
+            "\1\70\7\uffff\1\67\5\uffff\1\73\2\uffff\1\71\2\uffff\1\72",
+            "\1\76\21\uffff\1\75",
+            "\1\102\17\uffff\1\100\1\101",
+            "\1\105\22\uffff\1\104",
+            "\1\110\4\uffff\1\111\15\uffff\1\107",
             "\1\113",
             "\1\115",
-            "\1\120\13\uffff\1\117",
-            "\1\122",
-            "\1\125\13\uffff\1\124",
-            "\1\131\1\uffff\1\132\1\uffff\1\130\16\uffff\1\126\1\127\1\uffff\1\133\1\uffff\1\134",
-            "\1\137\6\uffff\1\135\1\136",
-            "\1\140\7\uffff\1\142\5\uffff\1\143\2\uffff\1\141",
-            "\1\144",
+            "\1\117",
+            "\1\121",
+            "\1\123",
+            "\1\126\13\uffff\1\125",
+            "\1\130",
+            "\1\132\13\uffff\1\131",
+            "\1\136\1\uffff\1\137\1\uffff\1\135\16\uffff\1\133\1\134\1\uffff\1\140\1\uffff\1\141",
+            "\1\144\6\uffff\1\142\1\143",
             "\1\145",
-            "\1\147\11\uffff\1\151\2\uffff\1\146\3\uffff\1\150",
-            "\1\153\3\uffff\1\152\2\uffff\1\154",
+            "\1\146",
+            "\1\150\11\uffff\1\152\2\uffff\1\147\3\uffff\1\151",
+            "\1\154\3\uffff\1\153\2\uffff\1\155",
             "",
             "",
-            "\1\160\20\uffff\1\157",
-            "\1\161",
-            "\1\162\3\uffff\1\163\11\uffff\1\164",
+            "\1\160\2\uffff\1\162\1\161",
+            "\1\164\20\uffff\1\163",
             "\1\165",
-            "\1\171\2\uffff\1\170\1\167",
+            "\1\166\3\uffff\1\167\11\uffff\1\170",
+            "\1\171",
             "",
             "",
             "",
@@ -3851,149 +3967,147 @@
             "",
             "",
             "",
-            "\1\u0082\15\uffff\1\u0084\1\uffff\1\u0083",
-            "\1\u0085",
-            "\12\u0087\10\uffff\1\u0089\1\uffff\3\u0089\5\uffff\1\u0089\13\uffff\1\u0086\6\uffff\1\u0087\2\uffff\1\u0089\1\uffff\3\u0089\5\uffff\1\u0089\13\uffff\1\u0086",
-            "\12\u0087\10\uffff\1\u0089\1\uffff\3\u0089\5\uffff\1\u0089\22\uffff\1\u0087\2\uffff\1\u0089\1\uffff\3\u0089\5\uffff\1\u0089",
-            "\1\123\34\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u0083\15\uffff\1\u0085\1\uffff\1\u0084",
+            "\1\u0086",
+            "\12\u0088\10\uffff\1\u008a\1\uffff\3\u008a\5\uffff\1\u008a\13\uffff\1\u0087\6\uffff\1\u0088\2\uffff\1\u008a\1\uffff\3\u008a\5\uffff\1\u008a\13\uffff\1\u0087",
+            "\12\u0088\10\uffff\1\u008a\1\uffff\3\u008a\5\uffff\1\u008a\22\uffff\1\u0088\2\uffff\1\u008a\1\uffff\3\u008a\5\uffff\1\u008a",
+            "\1\74\34\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "",
             "",
             "",
             "",
-            "\1\u008c",
+            "\1\u008d",
             "",
             "",
             "",
             "",
             "",
             "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u008e",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u0090",
-            "",
-            "",
-            "",
-            "",
+            "\1\u008f\1\uffff\1\u0090",
+            "\1\u0091",
             "\1\u0092\5\uffff\1\u0093",
+            "\1\u0094",
+            "\1\u0095",
             "",
-            "\1\u0095\3\uffff\1\u0094",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u0096",
-            "\1\u0097",
-            "\1\u0099\1\uffff\1\u0098",
-            "\1\u009a",
-            "\1\u009b",
-            "\1\u009c",
-            "\1\u009d",
-            "\1\u009e",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0098",
+            "",
+            "",
+            "",
+            "",
+            "\1\u009a\5\uffff\1\u009b",
+            "\1\u009e\12\uffff\1\u009d\3\uffff\1\u009c",
             "\1\u009f",
             "\1\u00a0",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u00a2",
-            "\1\u00a3\5\uffff\1\u00a4",
-            "\1\u00a5\1\uffff\1\u00a6",
+            "\1\u00a2\1\uffff\1\u00a1",
+            "\1\u00a3",
+            "\1\u00a4",
+            "\1\u00a5",
+            "\1\u00a6",
             "\1\u00a7",
-            "\1\u00a9\16\uffff\1\u00a8",
-            "\1\u00aa",
-            "\1\u00ab",
-            "\1\u00ad\2\uffff\1\u00ac",
+            "\1\u00a8",
+            "\1\u00a9",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00ac\16\uffff\1\u00ab",
+            "\1\u00ad",
             "\1\u00ae",
-            "\1\u00b0\3\uffff\1\u00af",
-            "\1\u00b1\1\u00b2",
-            "\1\u00b3",
-            "\1\u00b4",
+            "\1\u00b0\2\uffff\1\u00af",
+            "\1\u00b1",
+            "\1\u00b3\3\uffff\1\u00b2",
+            "\1\u00b4\1\u00b5",
+            "\1\u00b6",
+            "\1\u00b7",
             "",
             "",
-            "\1\u00b5",
-            "\1\u00b6\1\u00b7",
             "\1\u00b8",
-            "\1\u00b9",
-            "\1\u00ba",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00bb",
+            "\1\u00bc\1\u00bd",
             "\1\u00be",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
             "\1\u00bf",
             "\1\u00c0",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u00c2",
-            "",
-            "\12\u0087\10\uffff\1\u0089\1\uffff\3\u0089\5\uffff\1\u0089\22\uffff\1\u0087\2\uffff\1\u0089\1\uffff\3\u0089\5\uffff\1\u0089",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u00c3",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00c5",
+            "",
+            "\12\u0088\10\uffff\1\u008a\1\uffff\3\u008a\5\uffff\1\u008a\22\uffff\1\u0088\2\uffff\1\u008a\1\uffff\3\u008a\5\uffff\1\u008a",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u00c6",
             "\1\u00c7",
             "\1\u00c8",
             "\1\u00c9",
             "\1\u00ca",
             "\1\u00cb",
-            "\1\u00cc",
-            "\1\u00cd",
-            "\1\u00ce",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "",
+            "",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00cf",
             "\1\u00d0",
             "\1\u00d1",
-            "",
             "\1\u00d2",
             "\1\u00d3",
             "\1\u00d4",
             "\1\u00d5",
             "\1\u00d6",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u00d7",
             "\1\u00d8",
             "\1\u00d9",
-            "\1\u00da\17\uffff\1\u00db",
+            "\1\u00da",
+            "\1\u00db",
             "\1\u00dc",
+            "",
             "\1\u00dd",
             "\1\u00de",
-            "\1\u00df",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u00df\17\uffff\1\u00e0",
             "\1\u00e1",
             "\1\u00e2",
             "\1\u00e3",
             "\1\u00e4",
-            "\1\u00e5",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00e6",
             "\1\u00e7",
             "\1\u00e8",
@@ -4002,33 +4116,33 @@
             "\1\u00eb",
             "",
             "",
-            "",
             "\1\u00ec",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u00ed",
             "\1\u00ee",
-            "",
             "\1\u00ef",
-            "",
-            "",
             "\1\u00f0",
             "\1\u00f1",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00f3",
+            "",
             "\1\u00f4",
-            "\1\u00f5",
-            "\1\u00f6",
+            "\1\u00f6\1\u00f5",
             "\1\u00f7",
             "\1\u00f8",
             "\1\u00f9",
-            "\1\u00fa",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00fb",
+            "",
+            "",
+            "",
             "\1\u00fc",
             "\1\u00fd",
             "\1\u00fe",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u0100\1\u0101",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0100",
+            "\1\u0101",
             "\1\u0102",
-            "",
             "\1\u0103",
             "\1\u0104",
             "\1\u0105",
@@ -4037,177 +4151,222 @@
             "\1\u0108",
             "\1\u0109",
             "\1\u010a",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u010b",
             "\1\u010c",
             "\1\u010d",
             "\1\u010e",
             "\1\u010f",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u0112",
+            "\1\u0110",
+            "\1\u0111",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u0113",
             "\1\u0114",
             "\1\u0115",
             "\1\u0116",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u0118",
-            "\1\u0119\16\uffff\1\u011a",
+            "\1\u0117",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u011a",
             "\1\u011b",
-            "",
             "\1\u011c",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u011e",
+            "\1\u011d",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u011f",
             "\1\u0120",
             "\1\u0121",
             "\1\u0122",
-            "\1\u0123",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u0124",
-            "\1\u0125",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u0127",
             "",
+            "\1\u0125",
+            "\1\u0126\16\uffff\1\u0127",
             "\1\u0128",
             "\1\u0129",
+            "",
             "\1\u012a",
-            "\1\u012b",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u012c",
             "\1\u012d",
             "\1\u012e",
             "\1\u012f",
             "\1\u0130",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u0131",
             "\1\u0132",
-            "",
             "\1\u0133",
             "\1\u0134",
             "\1\u0135",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u0136",
+            "\1\u0137",
             "\1\u0138",
             "\1\u0139",
-            "\1\u013a",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u013b",
             "",
             "\1\u013c",
             "\1\u013d",
             "\1\u013e",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0140",
             "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u0142",
             "\1\u0143",
             "\1\u0144",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "",
+            "\1\u0145",
             "\1\u0146",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u0147",
             "\1\u0148",
             "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u014a",
             "\1\u014b",
             "\1\u014c",
-            "\1\u014d",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u014e",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u0150",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u0151",
             "\1\u0152",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u0154",
+            "\1\u0153",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u0155",
-            "\1\u0156",
-            "",
-            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u0157",
             "\1\u0158",
             "\1\u0159",
-            "\1\u015a",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u015b",
+            "\1\u015c",
             "\1\u015d",
             "",
-            "",
-            "",
-            "\1\u015e",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u015f",
             "\1\u0160",
-            "",
             "\1\u0161",
             "",
             "\1\u0162",
             "",
             "\1\u0163",
             "\1\u0164",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u0166",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "",
+            "\1\u0165",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0167",
             "\1\u0168",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
             "\1\u016a",
-            "",
-            "\1\u016b",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u016c",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u016e",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
             "",
+            "\1\74\13\uffff\12\74\7\uffff\16\74\1\u016d\13\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "",
+            "\1\u016f",
+            "\1\u0170",
+            "\1\u0171",
             "",
             "\1\u0172",
+            "",
             "\1\u0173",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u0175",
+            "\1\u0174",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
             "\1\u0176",
-            "\1\u0177",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0178",
             "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "",
-            "\1\u017b",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u0179",
+            "\1\u017a",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u017d",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
+            "\1\u0182",
             "",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "\1\u0181",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
             "\1\u0183",
             "\1\u0184",
             "",
-            "",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "",
-            "",
-            "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
-            "",
+            "\1\u0185",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0187",
             "\1\u0188",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u0189",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\u018b",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u018d",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "",
             "",
-            "\1\u018a",
             "",
-            "\1\123\13\uffff\12\123\7\uffff\32\123\4\uffff\1\123\1\uffff\32\123",
+            "\1\u0190",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0193\3\uffff\1\u0192",
+            "\1\u0194",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0196",
+            "\1\u0197",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "",
+            "\1\u019a",
+            "",
+            "\1\u019b",
+            "\1\u019c",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\u019e",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "",
+            "\1\u01a0",
+            "\1\u01a1",
+            "\1\u01a2",
+            "",
+            "\1\u01a3",
+            "",
+            "\1\u01a4",
+            "\1\u01a5",
+            "\1\u01a6",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u01a9",
+            "\1\u01aa",
+            "",
+            "",
+            "\1\u01ab",
+            "\1\u01ac",
+            "\1\u01ad",
+            "\1\u01ae",
+            "\1\u01af",
+            "\1\u01b0",
+            "\1\u01b1",
+            "\1\u01b2",
+            "\1\u01b3",
+            "\1\u01b4",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
             ""
     };
 
@@ -4241,7 +4400,7 @@
             this.transition = DFA21_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
@@ -4257,35 +4416,35 @@
 
                         else if ( (LA21_0=='&') ) {s = 3;}
 
-                        else if ( (LA21_0=='+') ) {s = 4;}
+                        else if ( (LA21_0=='f') ) {s = 4;}
 
-                        else if ( (LA21_0=='-') ) {s = 5;}
+                        else if ( (LA21_0=='+') ) {s = 5;}
 
-                        else if ( (LA21_0=='*') ) {s = 6;}
+                        else if ( (LA21_0=='-') ) {s = 6;}
 
-                        else if ( (LA21_0=='/') ) {s = 7;}
+                        else if ( (LA21_0=='*') ) {s = 7;}
 
-                        else if ( (LA21_0=='%') ) {s = 8;}
+                        else if ( (LA21_0=='/') ) {s = 8;}
 
-                        else if ( (LA21_0=='!') ) {s = 9;}
+                        else if ( (LA21_0=='%') ) {s = 9;}
 
-                        else if ( (LA21_0=='>') ) {s = 10;}
+                        else if ( (LA21_0=='!') ) {s = 10;}
 
-                        else if ( (LA21_0=='<') ) {s = 11;}
+                        else if ( (LA21_0=='>') ) {s = 11;}
 
-                        else if ( (LA21_0=='.') ) {s = 12;}
+                        else if ( (LA21_0=='<') ) {s = 12;}
 
-                        else if ( (LA21_0=='?') ) {s = 13;}
+                        else if ( (LA21_0=='.') ) {s = 13;}
 
-                        else if ( (LA21_0=='v') ) {s = 14;}
+                        else if ( (LA21_0=='?') ) {s = 14;}
 
-                        else if ( (LA21_0=='e') ) {s = 15;}
+                        else if ( (LA21_0=='v') ) {s = 15;}
 
-                        else if ( (LA21_0=='s') ) {s = 16;}
+                        else if ( (LA21_0=='e') ) {s = 16;}
 
-                        else if ( (LA21_0=='i') ) {s = 17;}
+                        else if ( (LA21_0=='s') ) {s = 17;}
 
-                        else if ( (LA21_0=='f') ) {s = 18;}
+                        else if ( (LA21_0=='i') ) {s = 18;}
 
                         else if ( (LA21_0=='p') ) {s = 19;}
 
@@ -4299,15 +4458,15 @@
 
                         else if ( (LA21_0=='}') ) {s = 24;}
 
-                        else if ( (LA21_0=='c') ) {s = 25;}
+                        else if ( (LA21_0=='a') ) {s = 25;}
 
-                        else if ( (LA21_0=='h') ) {s = 26;}
+                        else if ( (LA21_0=='c') ) {s = 26;}
 
-                        else if ( (LA21_0=='d') ) {s = 27;}
+                        else if ( (LA21_0=='h') ) {s = 27;}
 
-                        else if ( (LA21_0==':') ) {s = 28;}
+                        else if ( (LA21_0=='d') ) {s = 28;}
 
-                        else if ( (LA21_0=='a') ) {s = 29;}
+                        else if ( (LA21_0==':') ) {s = 29;}
 
                         else if ( (LA21_0==';') ) {s = 30;}
 
diff --git a/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSLParser.java b/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSLParser.java
index 0a40aa5..cc288df 100644
--- a/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSLParser.java
+++ b/org.eclipse.osbp.xtext.signal.ide/src-gen/org/eclipse/osbp/xtext/signal/ide/contentassist/antlr/internal/InternalSignalDSLParser.java
@@ -40,7 +40,7 @@
 @SuppressWarnings("all")
 public class InternalSignalDSLParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'export'", "'sequential'", "'parallel'", "'sunday'", "'monday'", "'tuesday'", "'wednesday'", "'thursday'", "'friday'", "'saturday'", "'package'", "'{'", "'}'", "'watcher'", "'filemask'", "'from'", "'filename'", "'scheduler'", "'cron'", "'hourlyat'", "'dailyat'", "':'", "'weeklyon'", "'at'", "'monthlyon'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "'if'", "'else'", "'switch'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'applyon'", "'ns'", "'::'", "'?.'", "'|'", "'var'", "'true'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'filename'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'export'", "'sequential'", "'parallel'", "'sunday'", "'monday'", "'tuesday'", "'wednesday'", "'thursday'", "'friday'", "'saturday'", "'package'", "'{'", "'}'", "'watcher'", "'from'", "'applyon'", "'scheduler'", "'cron'", "'hourlyat'", "'dailyat'", "':'", "'weeklyon'", "'at'", "'monthlyon'", "'functionGroup'", "'execute'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "'if'", "'else'", "'switch'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'filemask'", "'executeOnImportFile'", "'executeOnExportFile'", "'ns'", "'::'", "'?.'", "'|'", "'var'", "'true'"
     };
     public static final int RULE_HEX=5;
     public static final int T__50=50;
@@ -126,8 +126,10 @@
     public static final int T__78=78;
     public static final int T__79=79;
     public static final int T__73=73;
+    public static final int T__115=115;
     public static final int EOF=-1;
     public static final int T__74=74;
+    public static final int T__114=114;
     public static final int T__75=75;
     public static final int T__76=76;
     public static final int T__80=80;
@@ -135,7 +137,9 @@
     public static final int T__81=81;
     public static final int T__110=110;
     public static final int T__82=82;
+    public static final int T__113=113;
     public static final int T__83=83;
+    public static final int T__112=112;
     public static final int RULE_WS=11;
     public static final int RULE_ANY_OTHER=12;
     public static final int T__88=88;
@@ -527,267 +531,12 @@
     // $ANTLR end "ruleSignalWatcher"
 
 
-    // $ANTLR start "entryRuleWatcherDefinition"
-    // InternalSignalDSL.g:169:1: entryRuleWatcherDefinition : ruleWatcherDefinition EOF ;
-    public final void entryRuleWatcherDefinition() throws RecognitionException {
-        try {
-            // InternalSignalDSL.g:170:1: ( ruleWatcherDefinition EOF )
-            // InternalSignalDSL.g:171:1: ruleWatcherDefinition EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherDefinitionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            ruleWatcherDefinition();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherDefinitionRule()); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleWatcherDefinition"
-
-
-    // $ANTLR start "ruleWatcherDefinition"
-    // InternalSignalDSL.g:178:1: ruleWatcherDefinition : ( ( rule__WatcherDefinition__Alternatives ) ) ;
-    public final void ruleWatcherDefinition() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:182:2: ( ( ( rule__WatcherDefinition__Alternatives ) ) )
-            // InternalSignalDSL.g:183:2: ( ( rule__WatcherDefinition__Alternatives ) )
-            {
-            // InternalSignalDSL.g:183:2: ( ( rule__WatcherDefinition__Alternatives ) )
-            // InternalSignalDSL.g:184:3: ( rule__WatcherDefinition__Alternatives )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherDefinitionAccess().getAlternatives()); 
-            }
-            // InternalSignalDSL.g:185:3: ( rule__WatcherDefinition__Alternatives )
-            // InternalSignalDSL.g:185:4: rule__WatcherDefinition__Alternatives
-            {
-            pushFollow(FOLLOW_2);
-            rule__WatcherDefinition__Alternatives();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherDefinitionAccess().getAlternatives()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleWatcherDefinition"
-
-
-    // $ANTLR start "entryRuleWatcherWithFileMask"
-    // InternalSignalDSL.g:194:1: entryRuleWatcherWithFileMask : ruleWatcherWithFileMask EOF ;
-    public final void entryRuleWatcherWithFileMask() throws RecognitionException {
-        try {
-            // InternalSignalDSL.g:195:1: ( ruleWatcherWithFileMask EOF )
-            // InternalSignalDSL.g:196:1: ruleWatcherWithFileMask EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            ruleWatcherWithFileMask();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskRule()); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleWatcherWithFileMask"
-
-
-    // $ANTLR start "ruleWatcherWithFileMask"
-    // InternalSignalDSL.g:203:1: ruleWatcherWithFileMask : ( ( rule__WatcherWithFileMask__Group__0 ) ) ;
-    public final void ruleWatcherWithFileMask() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:207:2: ( ( ( rule__WatcherWithFileMask__Group__0 ) ) )
-            // InternalSignalDSL.g:208:2: ( ( rule__WatcherWithFileMask__Group__0 ) )
-            {
-            // InternalSignalDSL.g:208:2: ( ( rule__WatcherWithFileMask__Group__0 ) )
-            // InternalSignalDSL.g:209:3: ( rule__WatcherWithFileMask__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getGroup()); 
-            }
-            // InternalSignalDSL.g:210:3: ( rule__WatcherWithFileMask__Group__0 )
-            // InternalSignalDSL.g:210:4: rule__WatcherWithFileMask__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleWatcherWithFileMask"
-
-
-    // $ANTLR start "entryRuleWatcherWithFileName"
-    // InternalSignalDSL.g:219:1: entryRuleWatcherWithFileName : ruleWatcherWithFileName EOF ;
-    public final void entryRuleWatcherWithFileName() throws RecognitionException {
-        try {
-            // InternalSignalDSL.g:220:1: ( ruleWatcherWithFileName EOF )
-            // InternalSignalDSL.g:221:1: ruleWatcherWithFileName EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            ruleWatcherWithFileName();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameRule()); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleWatcherWithFileName"
-
-
-    // $ANTLR start "ruleWatcherWithFileName"
-    // InternalSignalDSL.g:228:1: ruleWatcherWithFileName : ( ( rule__WatcherWithFileName__Group__0 ) ) ;
-    public final void ruleWatcherWithFileName() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:232:2: ( ( ( rule__WatcherWithFileName__Group__0 ) ) )
-            // InternalSignalDSL.g:233:2: ( ( rule__WatcherWithFileName__Group__0 ) )
-            {
-            // InternalSignalDSL.g:233:2: ( ( rule__WatcherWithFileName__Group__0 ) )
-            // InternalSignalDSL.g:234:3: ( rule__WatcherWithFileName__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getGroup()); 
-            }
-            // InternalSignalDSL.g:235:3: ( rule__WatcherWithFileName__Group__0 )
-            // InternalSignalDSL.g:235:4: rule__WatcherWithFileName__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleWatcherWithFileName"
-
-
     // $ANTLR start "entryRuleSignalScheduler"
-    // InternalSignalDSL.g:244:1: entryRuleSignalScheduler : ruleSignalScheduler EOF ;
+    // InternalSignalDSL.g:169:1: entryRuleSignalScheduler : ruleSignalScheduler EOF ;
     public final void entryRuleSignalScheduler() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:245:1: ( ruleSignalScheduler EOF )
-            // InternalSignalDSL.g:246:1: ruleSignalScheduler EOF
+            // InternalSignalDSL.g:170:1: ( ruleSignalScheduler EOF )
+            // InternalSignalDSL.g:171:1: ruleSignalScheduler EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerRule()); 
@@ -817,23 +566,23 @@
 
 
     // $ANTLR start "ruleSignalScheduler"
-    // InternalSignalDSL.g:253:1: ruleSignalScheduler : ( ( rule__SignalScheduler__Group__0 ) ) ;
+    // InternalSignalDSL.g:178:1: ruleSignalScheduler : ( ( rule__SignalScheduler__Group__0 ) ) ;
     public final void ruleSignalScheduler() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:257:2: ( ( ( rule__SignalScheduler__Group__0 ) ) )
-            // InternalSignalDSL.g:258:2: ( ( rule__SignalScheduler__Group__0 ) )
+            // InternalSignalDSL.g:182:2: ( ( ( rule__SignalScheduler__Group__0 ) ) )
+            // InternalSignalDSL.g:183:2: ( ( rule__SignalScheduler__Group__0 ) )
             {
-            // InternalSignalDSL.g:258:2: ( ( rule__SignalScheduler__Group__0 ) )
-            // InternalSignalDSL.g:259:3: ( rule__SignalScheduler__Group__0 )
+            // InternalSignalDSL.g:183:2: ( ( rule__SignalScheduler__Group__0 ) )
+            // InternalSignalDSL.g:184:3: ( rule__SignalScheduler__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:260:3: ( rule__SignalScheduler__Group__0 )
-            // InternalSignalDSL.g:260:4: rule__SignalScheduler__Group__0
+            // InternalSignalDSL.g:185:3: ( rule__SignalScheduler__Group__0 )
+            // InternalSignalDSL.g:185:4: rule__SignalScheduler__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__SignalScheduler__Group__0();
@@ -868,11 +617,11 @@
 
 
     // $ANTLR start "entryRuleSchedulerType"
-    // InternalSignalDSL.g:269:1: entryRuleSchedulerType : ruleSchedulerType EOF ;
+    // InternalSignalDSL.g:194:1: entryRuleSchedulerType : ruleSchedulerType EOF ;
     public final void entryRuleSchedulerType() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:270:1: ( ruleSchedulerType EOF )
-            // InternalSignalDSL.g:271:1: ruleSchedulerType EOF
+            // InternalSignalDSL.g:195:1: ( ruleSchedulerType EOF )
+            // InternalSignalDSL.g:196:1: ruleSchedulerType EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSchedulerTypeRule()); 
@@ -902,23 +651,23 @@
 
 
     // $ANTLR start "ruleSchedulerType"
-    // InternalSignalDSL.g:278:1: ruleSchedulerType : ( ( rule__SchedulerType__Alternatives ) ) ;
+    // InternalSignalDSL.g:203:1: ruleSchedulerType : ( ( rule__SchedulerType__Alternatives ) ) ;
     public final void ruleSchedulerType() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:282:2: ( ( ( rule__SchedulerType__Alternatives ) ) )
-            // InternalSignalDSL.g:283:2: ( ( rule__SchedulerType__Alternatives ) )
+            // InternalSignalDSL.g:207:2: ( ( ( rule__SchedulerType__Alternatives ) ) )
+            // InternalSignalDSL.g:208:2: ( ( rule__SchedulerType__Alternatives ) )
             {
-            // InternalSignalDSL.g:283:2: ( ( rule__SchedulerType__Alternatives ) )
-            // InternalSignalDSL.g:284:3: ( rule__SchedulerType__Alternatives )
+            // InternalSignalDSL.g:208:2: ( ( rule__SchedulerType__Alternatives ) )
+            // InternalSignalDSL.g:209:3: ( rule__SchedulerType__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSchedulerTypeAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:285:3: ( rule__SchedulerType__Alternatives )
-            // InternalSignalDSL.g:285:4: rule__SchedulerType__Alternatives
+            // InternalSignalDSL.g:210:3: ( rule__SchedulerType__Alternatives )
+            // InternalSignalDSL.g:210:4: rule__SchedulerType__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__SchedulerType__Alternatives();
@@ -953,11 +702,11 @@
 
 
     // $ANTLR start "entryRuleCronScheduler"
-    // InternalSignalDSL.g:294:1: entryRuleCronScheduler : ruleCronScheduler EOF ;
+    // InternalSignalDSL.g:219:1: entryRuleCronScheduler : ruleCronScheduler EOF ;
     public final void entryRuleCronScheduler() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:295:1: ( ruleCronScheduler EOF )
-            // InternalSignalDSL.g:296:1: ruleCronScheduler EOF
+            // InternalSignalDSL.g:220:1: ( ruleCronScheduler EOF )
+            // InternalSignalDSL.g:221:1: ruleCronScheduler EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCronSchedulerRule()); 
@@ -987,23 +736,23 @@
 
 
     // $ANTLR start "ruleCronScheduler"
-    // InternalSignalDSL.g:303:1: ruleCronScheduler : ( ( rule__CronScheduler__Group__0 ) ) ;
+    // InternalSignalDSL.g:228:1: ruleCronScheduler : ( ( rule__CronScheduler__Group__0 ) ) ;
     public final void ruleCronScheduler() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:307:2: ( ( ( rule__CronScheduler__Group__0 ) ) )
-            // InternalSignalDSL.g:308:2: ( ( rule__CronScheduler__Group__0 ) )
+            // InternalSignalDSL.g:232:2: ( ( ( rule__CronScheduler__Group__0 ) ) )
+            // InternalSignalDSL.g:233:2: ( ( rule__CronScheduler__Group__0 ) )
             {
-            // InternalSignalDSL.g:308:2: ( ( rule__CronScheduler__Group__0 ) )
-            // InternalSignalDSL.g:309:3: ( rule__CronScheduler__Group__0 )
+            // InternalSignalDSL.g:233:2: ( ( rule__CronScheduler__Group__0 ) )
+            // InternalSignalDSL.g:234:3: ( rule__CronScheduler__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCronSchedulerAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:310:3: ( rule__CronScheduler__Group__0 )
-            // InternalSignalDSL.g:310:4: rule__CronScheduler__Group__0
+            // InternalSignalDSL.g:235:3: ( rule__CronScheduler__Group__0 )
+            // InternalSignalDSL.g:235:4: rule__CronScheduler__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CronScheduler__Group__0();
@@ -1038,11 +787,11 @@
 
 
     // $ANTLR start "entryRuleHourlyScheduler"
-    // InternalSignalDSL.g:319:1: entryRuleHourlyScheduler : ruleHourlyScheduler EOF ;
+    // InternalSignalDSL.g:244:1: entryRuleHourlyScheduler : ruleHourlyScheduler EOF ;
     public final void entryRuleHourlyScheduler() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:320:1: ( ruleHourlyScheduler EOF )
-            // InternalSignalDSL.g:321:1: ruleHourlyScheduler EOF
+            // InternalSignalDSL.g:245:1: ( ruleHourlyScheduler EOF )
+            // InternalSignalDSL.g:246:1: ruleHourlyScheduler EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHourlySchedulerRule()); 
@@ -1072,23 +821,23 @@
 
 
     // $ANTLR start "ruleHourlyScheduler"
-    // InternalSignalDSL.g:328:1: ruleHourlyScheduler : ( ( rule__HourlyScheduler__Group__0 ) ) ;
+    // InternalSignalDSL.g:253:1: ruleHourlyScheduler : ( ( rule__HourlyScheduler__Group__0 ) ) ;
     public final void ruleHourlyScheduler() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:332:2: ( ( ( rule__HourlyScheduler__Group__0 ) ) )
-            // InternalSignalDSL.g:333:2: ( ( rule__HourlyScheduler__Group__0 ) )
+            // InternalSignalDSL.g:257:2: ( ( ( rule__HourlyScheduler__Group__0 ) ) )
+            // InternalSignalDSL.g:258:2: ( ( rule__HourlyScheduler__Group__0 ) )
             {
-            // InternalSignalDSL.g:333:2: ( ( rule__HourlyScheduler__Group__0 ) )
-            // InternalSignalDSL.g:334:3: ( rule__HourlyScheduler__Group__0 )
+            // InternalSignalDSL.g:258:2: ( ( rule__HourlyScheduler__Group__0 ) )
+            // InternalSignalDSL.g:259:3: ( rule__HourlyScheduler__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHourlySchedulerAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:335:3: ( rule__HourlyScheduler__Group__0 )
-            // InternalSignalDSL.g:335:4: rule__HourlyScheduler__Group__0
+            // InternalSignalDSL.g:260:3: ( rule__HourlyScheduler__Group__0 )
+            // InternalSignalDSL.g:260:4: rule__HourlyScheduler__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__HourlyScheduler__Group__0();
@@ -1123,11 +872,11 @@
 
 
     // $ANTLR start "entryRuleDailyScheduler"
-    // InternalSignalDSL.g:344:1: entryRuleDailyScheduler : ruleDailyScheduler EOF ;
+    // InternalSignalDSL.g:269:1: entryRuleDailyScheduler : ruleDailyScheduler EOF ;
     public final void entryRuleDailyScheduler() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:345:1: ( ruleDailyScheduler EOF )
-            // InternalSignalDSL.g:346:1: ruleDailyScheduler EOF
+            // InternalSignalDSL.g:270:1: ( ruleDailyScheduler EOF )
+            // InternalSignalDSL.g:271:1: ruleDailyScheduler EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDailySchedulerRule()); 
@@ -1157,23 +906,23 @@
 
 
     // $ANTLR start "ruleDailyScheduler"
-    // InternalSignalDSL.g:353:1: ruleDailyScheduler : ( ( rule__DailyScheduler__Group__0 ) ) ;
+    // InternalSignalDSL.g:278:1: ruleDailyScheduler : ( ( rule__DailyScheduler__Group__0 ) ) ;
     public final void ruleDailyScheduler() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:357:2: ( ( ( rule__DailyScheduler__Group__0 ) ) )
-            // InternalSignalDSL.g:358:2: ( ( rule__DailyScheduler__Group__0 ) )
+            // InternalSignalDSL.g:282:2: ( ( ( rule__DailyScheduler__Group__0 ) ) )
+            // InternalSignalDSL.g:283:2: ( ( rule__DailyScheduler__Group__0 ) )
             {
-            // InternalSignalDSL.g:358:2: ( ( rule__DailyScheduler__Group__0 ) )
-            // InternalSignalDSL.g:359:3: ( rule__DailyScheduler__Group__0 )
+            // InternalSignalDSL.g:283:2: ( ( rule__DailyScheduler__Group__0 ) )
+            // InternalSignalDSL.g:284:3: ( rule__DailyScheduler__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDailySchedulerAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:360:3: ( rule__DailyScheduler__Group__0 )
-            // InternalSignalDSL.g:360:4: rule__DailyScheduler__Group__0
+            // InternalSignalDSL.g:285:3: ( rule__DailyScheduler__Group__0 )
+            // InternalSignalDSL.g:285:4: rule__DailyScheduler__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__DailyScheduler__Group__0();
@@ -1208,11 +957,11 @@
 
 
     // $ANTLR start "entryRuleWeeklyScheduler"
-    // InternalSignalDSL.g:369:1: entryRuleWeeklyScheduler : ruleWeeklyScheduler EOF ;
+    // InternalSignalDSL.g:294:1: entryRuleWeeklyScheduler : ruleWeeklyScheduler EOF ;
     public final void entryRuleWeeklyScheduler() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:370:1: ( ruleWeeklyScheduler EOF )
-            // InternalSignalDSL.g:371:1: ruleWeeklyScheduler EOF
+            // InternalSignalDSL.g:295:1: ( ruleWeeklyScheduler EOF )
+            // InternalSignalDSL.g:296:1: ruleWeeklyScheduler EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWeeklySchedulerRule()); 
@@ -1242,23 +991,23 @@
 
 
     // $ANTLR start "ruleWeeklyScheduler"
-    // InternalSignalDSL.g:378:1: ruleWeeklyScheduler : ( ( rule__WeeklyScheduler__Group__0 ) ) ;
+    // InternalSignalDSL.g:303:1: ruleWeeklyScheduler : ( ( rule__WeeklyScheduler__Group__0 ) ) ;
     public final void ruleWeeklyScheduler() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:382:2: ( ( ( rule__WeeklyScheduler__Group__0 ) ) )
-            // InternalSignalDSL.g:383:2: ( ( rule__WeeklyScheduler__Group__0 ) )
+            // InternalSignalDSL.g:307:2: ( ( ( rule__WeeklyScheduler__Group__0 ) ) )
+            // InternalSignalDSL.g:308:2: ( ( rule__WeeklyScheduler__Group__0 ) )
             {
-            // InternalSignalDSL.g:383:2: ( ( rule__WeeklyScheduler__Group__0 ) )
-            // InternalSignalDSL.g:384:3: ( rule__WeeklyScheduler__Group__0 )
+            // InternalSignalDSL.g:308:2: ( ( rule__WeeklyScheduler__Group__0 ) )
+            // InternalSignalDSL.g:309:3: ( rule__WeeklyScheduler__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWeeklySchedulerAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:385:3: ( rule__WeeklyScheduler__Group__0 )
-            // InternalSignalDSL.g:385:4: rule__WeeklyScheduler__Group__0
+            // InternalSignalDSL.g:310:3: ( rule__WeeklyScheduler__Group__0 )
+            // InternalSignalDSL.g:310:4: rule__WeeklyScheduler__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__WeeklyScheduler__Group__0();
@@ -1293,11 +1042,11 @@
 
 
     // $ANTLR start "entryRuleMonthlyScheduler"
-    // InternalSignalDSL.g:394:1: entryRuleMonthlyScheduler : ruleMonthlyScheduler EOF ;
+    // InternalSignalDSL.g:319:1: entryRuleMonthlyScheduler : ruleMonthlyScheduler EOF ;
     public final void entryRuleMonthlyScheduler() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:395:1: ( ruleMonthlyScheduler EOF )
-            // InternalSignalDSL.g:396:1: ruleMonthlyScheduler EOF
+            // InternalSignalDSL.g:320:1: ( ruleMonthlyScheduler EOF )
+            // InternalSignalDSL.g:321:1: ruleMonthlyScheduler EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMonthlySchedulerRule()); 
@@ -1327,23 +1076,23 @@
 
 
     // $ANTLR start "ruleMonthlyScheduler"
-    // InternalSignalDSL.g:403:1: ruleMonthlyScheduler : ( ( rule__MonthlyScheduler__Group__0 ) ) ;
+    // InternalSignalDSL.g:328:1: ruleMonthlyScheduler : ( ( rule__MonthlyScheduler__Group__0 ) ) ;
     public final void ruleMonthlyScheduler() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:407:2: ( ( ( rule__MonthlyScheduler__Group__0 ) ) )
-            // InternalSignalDSL.g:408:2: ( ( rule__MonthlyScheduler__Group__0 ) )
+            // InternalSignalDSL.g:332:2: ( ( ( rule__MonthlyScheduler__Group__0 ) ) )
+            // InternalSignalDSL.g:333:2: ( ( rule__MonthlyScheduler__Group__0 ) )
             {
-            // InternalSignalDSL.g:408:2: ( ( rule__MonthlyScheduler__Group__0 ) )
-            // InternalSignalDSL.g:409:3: ( rule__MonthlyScheduler__Group__0 )
+            // InternalSignalDSL.g:333:2: ( ( rule__MonthlyScheduler__Group__0 ) )
+            // InternalSignalDSL.g:334:3: ( rule__MonthlyScheduler__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMonthlySchedulerAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:410:3: ( rule__MonthlyScheduler__Group__0 )
-            // InternalSignalDSL.g:410:4: rule__MonthlyScheduler__Group__0
+            // InternalSignalDSL.g:335:3: ( rule__MonthlyScheduler__Group__0 )
+            // InternalSignalDSL.g:335:4: rule__MonthlyScheduler__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__MonthlyScheduler__Group__0();
@@ -1377,12 +1126,97 @@
     // $ANTLR end "ruleMonthlyScheduler"
 
 
+    // $ANTLR start "entryRuleSignalTask"
+    // InternalSignalDSL.g:344:1: entryRuleSignalTask : ruleSignalTask EOF ;
+    public final void entryRuleSignalTask() throws RecognitionException {
+        try {
+            // InternalSignalDSL.g:345:1: ( ruleSignalTask EOF )
+            // InternalSignalDSL.g:346:1: ruleSignalTask EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalTaskRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleSignalTask();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalTaskRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSignalTask"
+
+
+    // $ANTLR start "ruleSignalTask"
+    // InternalSignalDSL.g:353:1: ruleSignalTask : ( ( rule__SignalTask__Alternatives ) ) ;
+    public final void ruleSignalTask() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:357:2: ( ( ( rule__SignalTask__Alternatives ) ) )
+            // InternalSignalDSL.g:358:2: ( ( rule__SignalTask__Alternatives ) )
+            {
+            // InternalSignalDSL.g:358:2: ( ( rule__SignalTask__Alternatives ) )
+            // InternalSignalDSL.g:359:3: ( rule__SignalTask__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalTaskAccess().getAlternatives()); 
+            }
+            // InternalSignalDSL.g:360:3: ( rule__SignalTask__Alternatives )
+            // InternalSignalDSL.g:360:4: rule__SignalTask__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalTask__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalTaskAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSignalTask"
+
+
     // $ANTLR start "entryRuleSignalDatainterchange"
-    // InternalSignalDSL.g:419:1: entryRuleSignalDatainterchange : ruleSignalDatainterchange EOF ;
+    // InternalSignalDSL.g:369:1: entryRuleSignalDatainterchange : ruleSignalDatainterchange EOF ;
     public final void entryRuleSignalDatainterchange() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:420:1: ( ruleSignalDatainterchange EOF )
-            // InternalSignalDSL.g:421:1: ruleSignalDatainterchange EOF
+            // InternalSignalDSL.g:370:1: ( ruleSignalDatainterchange EOF )
+            // InternalSignalDSL.g:371:1: ruleSignalDatainterchange EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalDatainterchangeRule()); 
@@ -1412,23 +1246,23 @@
 
 
     // $ANTLR start "ruleSignalDatainterchange"
-    // InternalSignalDSL.g:428:1: ruleSignalDatainterchange : ( ( rule__SignalDatainterchange__Group__0 ) ) ;
+    // InternalSignalDSL.g:378:1: ruleSignalDatainterchange : ( ( rule__SignalDatainterchange__Group__0 ) ) ;
     public final void ruleSignalDatainterchange() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:432:2: ( ( ( rule__SignalDatainterchange__Group__0 ) ) )
-            // InternalSignalDSL.g:433:2: ( ( rule__SignalDatainterchange__Group__0 ) )
+            // InternalSignalDSL.g:382:2: ( ( ( rule__SignalDatainterchange__Group__0 ) ) )
+            // InternalSignalDSL.g:383:2: ( ( rule__SignalDatainterchange__Group__0 ) )
             {
-            // InternalSignalDSL.g:433:2: ( ( rule__SignalDatainterchange__Group__0 ) )
-            // InternalSignalDSL.g:434:3: ( rule__SignalDatainterchange__Group__0 )
+            // InternalSignalDSL.g:383:2: ( ( rule__SignalDatainterchange__Group__0 ) )
+            // InternalSignalDSL.g:384:3: ( rule__SignalDatainterchange__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalDatainterchangeAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:435:3: ( rule__SignalDatainterchange__Group__0 )
-            // InternalSignalDSL.g:435:4: rule__SignalDatainterchange__Group__0
+            // InternalSignalDSL.g:385:3: ( rule__SignalDatainterchange__Group__0 )
+            // InternalSignalDSL.g:385:4: rule__SignalDatainterchange__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__SignalDatainterchange__Group__0();
@@ -1462,12 +1296,97 @@
     // $ANTLR end "ruleSignalDatainterchange"
 
 
+    // $ANTLR start "entryRuleSignalFunction"
+    // InternalSignalDSL.g:394:1: entryRuleSignalFunction : ruleSignalFunction EOF ;
+    public final void entryRuleSignalFunction() throws RecognitionException {
+        try {
+            // InternalSignalDSL.g:395:1: ( ruleSignalFunction EOF )
+            // InternalSignalDSL.g:396:1: ruleSignalFunction EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleSignalFunction();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSignalFunction"
+
+
+    // $ANTLR start "ruleSignalFunction"
+    // InternalSignalDSL.g:403:1: ruleSignalFunction : ( ( rule__SignalFunction__Group__0 ) ) ;
+    public final void ruleSignalFunction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:407:2: ( ( ( rule__SignalFunction__Group__0 ) ) )
+            // InternalSignalDSL.g:408:2: ( ( rule__SignalFunction__Group__0 ) )
+            {
+            // InternalSignalDSL.g:408:2: ( ( rule__SignalFunction__Group__0 ) )
+            // InternalSignalDSL.g:409:3: ( rule__SignalFunction__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getGroup()); 
+            }
+            // InternalSignalDSL.g:410:3: ( rule__SignalFunction__Group__0 )
+            // InternalSignalDSL.g:410:4: rule__SignalFunction__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSignalFunction"
+
+
     // $ANTLR start "entryRuleTRANSLATABLEID"
-    // InternalSignalDSL.g:444:1: entryRuleTRANSLATABLEID : ruleTRANSLATABLEID EOF ;
+    // InternalSignalDSL.g:419:1: entryRuleTRANSLATABLEID : ruleTRANSLATABLEID EOF ;
     public final void entryRuleTRANSLATABLEID() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:445:1: ( ruleTRANSLATABLEID EOF )
-            // InternalSignalDSL.g:446:1: ruleTRANSLATABLEID EOF
+            // InternalSignalDSL.g:420:1: ( ruleTRANSLATABLEID EOF )
+            // InternalSignalDSL.g:421:1: ruleTRANSLATABLEID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLEIDRule()); 
@@ -1497,17 +1416,17 @@
 
 
     // $ANTLR start "ruleTRANSLATABLEID"
-    // InternalSignalDSL.g:453:1: ruleTRANSLATABLEID : ( RULE_ID ) ;
+    // InternalSignalDSL.g:428:1: ruleTRANSLATABLEID : ( RULE_ID ) ;
     public final void ruleTRANSLATABLEID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:457:2: ( ( RULE_ID ) )
-            // InternalSignalDSL.g:458:2: ( RULE_ID )
+            // InternalSignalDSL.g:432:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:433:2: ( RULE_ID )
             {
-            // InternalSignalDSL.g:458:2: ( RULE_ID )
-            // InternalSignalDSL.g:459:3: RULE_ID
+            // InternalSignalDSL.g:433:2: ( RULE_ID )
+            // InternalSignalDSL.g:434:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
@@ -1538,11 +1457,11 @@
 
 
     // $ANTLR start "entryRuleXImportDeclaration"
-    // InternalSignalDSL.g:469:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
+    // InternalSignalDSL.g:444:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
     public final void entryRuleXImportDeclaration() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:470:1: ( ruleXImportDeclaration EOF )
-            // InternalSignalDSL.g:471:1: ruleXImportDeclaration EOF
+            // InternalSignalDSL.g:445:1: ( ruleXImportDeclaration EOF )
+            // InternalSignalDSL.g:446:1: ruleXImportDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationRule()); 
@@ -1572,23 +1491,23 @@
 
 
     // $ANTLR start "ruleXImportDeclaration"
-    // InternalSignalDSL.g:478:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
+    // InternalSignalDSL.g:453:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
     public final void ruleXImportDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:482:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
-            // InternalSignalDSL.g:483:2: ( ( rule__XImportDeclaration__Group__0 ) )
+            // InternalSignalDSL.g:457:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
+            // InternalSignalDSL.g:458:2: ( ( rule__XImportDeclaration__Group__0 ) )
             {
-            // InternalSignalDSL.g:483:2: ( ( rule__XImportDeclaration__Group__0 ) )
-            // InternalSignalDSL.g:484:3: ( rule__XImportDeclaration__Group__0 )
+            // InternalSignalDSL.g:458:2: ( ( rule__XImportDeclaration__Group__0 ) )
+            // InternalSignalDSL.g:459:3: ( rule__XImportDeclaration__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:485:3: ( rule__XImportDeclaration__Group__0 )
-            // InternalSignalDSL.g:485:4: rule__XImportDeclaration__Group__0
+            // InternalSignalDSL.g:460:3: ( rule__XImportDeclaration__Group__0 )
+            // InternalSignalDSL.g:460:4: rule__XImportDeclaration__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group__0();
@@ -1623,11 +1542,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotation"
-    // InternalSignalDSL.g:494:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
+    // InternalSignalDSL.g:469:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
     public final void entryRuleXAnnotation() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:495:1: ( ruleXAnnotation EOF )
-            // InternalSignalDSL.g:496:1: ruleXAnnotation EOF
+            // InternalSignalDSL.g:470:1: ( ruleXAnnotation EOF )
+            // InternalSignalDSL.g:471:1: ruleXAnnotation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationRule()); 
@@ -1657,23 +1576,23 @@
 
 
     // $ANTLR start "ruleXAnnotation"
-    // InternalSignalDSL.g:503:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
+    // InternalSignalDSL.g:478:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
     public final void ruleXAnnotation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:507:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
-            // InternalSignalDSL.g:508:2: ( ( rule__XAnnotation__Group__0 ) )
+            // InternalSignalDSL.g:482:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
+            // InternalSignalDSL.g:483:2: ( ( rule__XAnnotation__Group__0 ) )
             {
-            // InternalSignalDSL.g:508:2: ( ( rule__XAnnotation__Group__0 ) )
-            // InternalSignalDSL.g:509:3: ( rule__XAnnotation__Group__0 )
+            // InternalSignalDSL.g:483:2: ( ( rule__XAnnotation__Group__0 ) )
+            // InternalSignalDSL.g:484:3: ( rule__XAnnotation__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:510:3: ( rule__XAnnotation__Group__0 )
-            // InternalSignalDSL.g:510:4: rule__XAnnotation__Group__0
+            // InternalSignalDSL.g:485:3: ( rule__XAnnotation__Group__0 )
+            // InternalSignalDSL.g:485:4: rule__XAnnotation__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group__0();
@@ -1708,11 +1627,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValuePair"
-    // InternalSignalDSL.g:519:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
+    // InternalSignalDSL.g:494:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
     public final void entryRuleXAnnotationElementValuePair() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:520:1: ( ruleXAnnotationElementValuePair EOF )
-            // InternalSignalDSL.g:521:1: ruleXAnnotationElementValuePair EOF
+            // InternalSignalDSL.g:495:1: ( ruleXAnnotationElementValuePair EOF )
+            // InternalSignalDSL.g:496:1: ruleXAnnotationElementValuePair EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairRule()); 
@@ -1742,23 +1661,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValuePair"
-    // InternalSignalDSL.g:528:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
+    // InternalSignalDSL.g:503:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
     public final void ruleXAnnotationElementValuePair() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:532:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
-            // InternalSignalDSL.g:533:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // InternalSignalDSL.g:507:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
+            // InternalSignalDSL.g:508:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
             {
-            // InternalSignalDSL.g:533:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
-            // InternalSignalDSL.g:534:3: ( rule__XAnnotationElementValuePair__Group__0 )
+            // InternalSignalDSL.g:508:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // InternalSignalDSL.g:509:3: ( rule__XAnnotationElementValuePair__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:535:3: ( rule__XAnnotationElementValuePair__Group__0 )
-            // InternalSignalDSL.g:535:4: rule__XAnnotationElementValuePair__Group__0
+            // InternalSignalDSL.g:510:3: ( rule__XAnnotationElementValuePair__Group__0 )
+            // InternalSignalDSL.g:510:4: rule__XAnnotationElementValuePair__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group__0();
@@ -1793,11 +1712,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
-    // InternalSignalDSL.g:544:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
+    // InternalSignalDSL.g:519:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
     public final void entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:545:1: ( ruleXAnnotationElementValueOrCommaList EOF )
-            // InternalSignalDSL.g:546:1: ruleXAnnotationElementValueOrCommaList EOF
+            // InternalSignalDSL.g:520:1: ( ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalSignalDSL.g:521:1: ruleXAnnotationElementValueOrCommaList EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
@@ -1827,23 +1746,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
-    // InternalSignalDSL.g:553:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
+    // InternalSignalDSL.g:528:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
     public final void ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:557:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
-            // InternalSignalDSL.g:558:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // InternalSignalDSL.g:532:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
+            // InternalSignalDSL.g:533:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
             {
-            // InternalSignalDSL.g:558:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
-            // InternalSignalDSL.g:559:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // InternalSignalDSL.g:533:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // InternalSignalDSL.g:534:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:560:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
-            // InternalSignalDSL.g:560:4: rule__XAnnotationElementValueOrCommaList__Alternatives
+            // InternalSignalDSL.g:535:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // InternalSignalDSL.g:535:4: rule__XAnnotationElementValueOrCommaList__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Alternatives();
@@ -1878,11 +1797,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValue"
-    // InternalSignalDSL.g:569:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
+    // InternalSignalDSL.g:544:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
     public final void entryRuleXAnnotationElementValue() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:570:1: ( ruleXAnnotationElementValue EOF )
-            // InternalSignalDSL.g:571:1: ruleXAnnotationElementValue EOF
+            // InternalSignalDSL.g:545:1: ( ruleXAnnotationElementValue EOF )
+            // InternalSignalDSL.g:546:1: ruleXAnnotationElementValue EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueRule()); 
@@ -1912,23 +1831,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValue"
-    // InternalSignalDSL.g:578:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
+    // InternalSignalDSL.g:553:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
     public final void ruleXAnnotationElementValue() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:582:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
-            // InternalSignalDSL.g:583:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // InternalSignalDSL.g:557:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
+            // InternalSignalDSL.g:558:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
             {
-            // InternalSignalDSL.g:583:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
-            // InternalSignalDSL.g:584:3: ( rule__XAnnotationElementValue__Alternatives )
+            // InternalSignalDSL.g:558:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // InternalSignalDSL.g:559:3: ( rule__XAnnotationElementValue__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:585:3: ( rule__XAnnotationElementValue__Alternatives )
-            // InternalSignalDSL.g:585:4: rule__XAnnotationElementValue__Alternatives
+            // InternalSignalDSL.g:560:3: ( rule__XAnnotationElementValue__Alternatives )
+            // InternalSignalDSL.g:560:4: rule__XAnnotationElementValue__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Alternatives();
@@ -1963,11 +1882,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationOrExpression"
-    // InternalSignalDSL.g:594:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
+    // InternalSignalDSL.g:569:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
     public final void entryRuleXAnnotationOrExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:595:1: ( ruleXAnnotationOrExpression EOF )
-            // InternalSignalDSL.g:596:1: ruleXAnnotationOrExpression EOF
+            // InternalSignalDSL.g:570:1: ( ruleXAnnotationOrExpression EOF )
+            // InternalSignalDSL.g:571:1: ruleXAnnotationOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationOrExpressionRule()); 
@@ -1997,23 +1916,23 @@
 
 
     // $ANTLR start "ruleXAnnotationOrExpression"
-    // InternalSignalDSL.g:603:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
+    // InternalSignalDSL.g:578:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
     public final void ruleXAnnotationOrExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:607:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
-            // InternalSignalDSL.g:608:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // InternalSignalDSL.g:582:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
+            // InternalSignalDSL.g:583:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
             {
-            // InternalSignalDSL.g:608:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
-            // InternalSignalDSL.g:609:3: ( rule__XAnnotationOrExpression__Alternatives )
+            // InternalSignalDSL.g:583:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // InternalSignalDSL.g:584:3: ( rule__XAnnotationOrExpression__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:610:3: ( rule__XAnnotationOrExpression__Alternatives )
-            // InternalSignalDSL.g:610:4: rule__XAnnotationOrExpression__Alternatives
+            // InternalSignalDSL.g:585:3: ( rule__XAnnotationOrExpression__Alternatives )
+            // InternalSignalDSL.g:585:4: rule__XAnnotationOrExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationOrExpression__Alternatives();
@@ -2048,11 +1967,11 @@
 
 
     // $ANTLR start "entryRuleXExpression"
-    // InternalSignalDSL.g:619:1: entryRuleXExpression : ruleXExpression EOF ;
+    // InternalSignalDSL.g:594:1: entryRuleXExpression : ruleXExpression EOF ;
     public final void entryRuleXExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:620:1: ( ruleXExpression EOF )
-            // InternalSignalDSL.g:621:1: ruleXExpression EOF
+            // InternalSignalDSL.g:595:1: ( ruleXExpression EOF )
+            // InternalSignalDSL.g:596:1: ruleXExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionRule()); 
@@ -2082,17 +2001,17 @@
 
 
     // $ANTLR start "ruleXExpression"
-    // InternalSignalDSL.g:628:1: ruleXExpression : ( ruleXAssignment ) ;
+    // InternalSignalDSL.g:603:1: ruleXExpression : ( ruleXAssignment ) ;
     public final void ruleXExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:632:2: ( ( ruleXAssignment ) )
-            // InternalSignalDSL.g:633:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:607:2: ( ( ruleXAssignment ) )
+            // InternalSignalDSL.g:608:2: ( ruleXAssignment )
             {
-            // InternalSignalDSL.g:633:2: ( ruleXAssignment )
-            // InternalSignalDSL.g:634:3: ruleXAssignment
+            // InternalSignalDSL.g:608:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:609:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
@@ -2127,11 +2046,11 @@
 
 
     // $ANTLR start "entryRuleXAssignment"
-    // InternalSignalDSL.g:644:1: entryRuleXAssignment : ruleXAssignment EOF ;
+    // InternalSignalDSL.g:619:1: entryRuleXAssignment : ruleXAssignment EOF ;
     public final void entryRuleXAssignment() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:645:1: ( ruleXAssignment EOF )
-            // InternalSignalDSL.g:646:1: ruleXAssignment EOF
+            // InternalSignalDSL.g:620:1: ( ruleXAssignment EOF )
+            // InternalSignalDSL.g:621:1: ruleXAssignment EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentRule()); 
@@ -2161,23 +2080,23 @@
 
 
     // $ANTLR start "ruleXAssignment"
-    // InternalSignalDSL.g:653:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
+    // InternalSignalDSL.g:628:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
     public final void ruleXAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:657:2: ( ( ( rule__XAssignment__Alternatives ) ) )
-            // InternalSignalDSL.g:658:2: ( ( rule__XAssignment__Alternatives ) )
+            // InternalSignalDSL.g:632:2: ( ( ( rule__XAssignment__Alternatives ) ) )
+            // InternalSignalDSL.g:633:2: ( ( rule__XAssignment__Alternatives ) )
             {
-            // InternalSignalDSL.g:658:2: ( ( rule__XAssignment__Alternatives ) )
-            // InternalSignalDSL.g:659:3: ( rule__XAssignment__Alternatives )
+            // InternalSignalDSL.g:633:2: ( ( rule__XAssignment__Alternatives ) )
+            // InternalSignalDSL.g:634:3: ( rule__XAssignment__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:660:3: ( rule__XAssignment__Alternatives )
-            // InternalSignalDSL.g:660:4: rule__XAssignment__Alternatives
+            // InternalSignalDSL.g:635:3: ( rule__XAssignment__Alternatives )
+            // InternalSignalDSL.g:635:4: rule__XAssignment__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Alternatives();
@@ -2212,11 +2131,11 @@
 
 
     // $ANTLR start "entryRuleOpSingleAssign"
-    // InternalSignalDSL.g:669:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
+    // InternalSignalDSL.g:644:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
     public final void entryRuleOpSingleAssign() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:670:1: ( ruleOpSingleAssign EOF )
-            // InternalSignalDSL.g:671:1: ruleOpSingleAssign EOF
+            // InternalSignalDSL.g:645:1: ( ruleOpSingleAssign EOF )
+            // InternalSignalDSL.g:646:1: ruleOpSingleAssign EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpSingleAssignRule()); 
@@ -2246,17 +2165,17 @@
 
 
     // $ANTLR start "ruleOpSingleAssign"
-    // InternalSignalDSL.g:678:1: ruleOpSingleAssign : ( '=' ) ;
+    // InternalSignalDSL.g:653:1: ruleOpSingleAssign : ( '=' ) ;
     public final void ruleOpSingleAssign() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:682:2: ( ( '=' ) )
-            // InternalSignalDSL.g:683:2: ( '=' )
+            // InternalSignalDSL.g:657:2: ( ( '=' ) )
+            // InternalSignalDSL.g:658:2: ( '=' )
             {
-            // InternalSignalDSL.g:683:2: ( '=' )
-            // InternalSignalDSL.g:684:3: '='
+            // InternalSignalDSL.g:658:2: ( '=' )
+            // InternalSignalDSL.g:659:3: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
@@ -2287,11 +2206,11 @@
 
 
     // $ANTLR start "entryRuleOpMultiAssign"
-    // InternalSignalDSL.g:694:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
+    // InternalSignalDSL.g:669:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
     public final void entryRuleOpMultiAssign() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:695:1: ( ruleOpMultiAssign EOF )
-            // InternalSignalDSL.g:696:1: ruleOpMultiAssign EOF
+            // InternalSignalDSL.g:670:1: ( ruleOpMultiAssign EOF )
+            // InternalSignalDSL.g:671:1: ruleOpMultiAssign EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignRule()); 
@@ -2321,23 +2240,23 @@
 
 
     // $ANTLR start "ruleOpMultiAssign"
-    // InternalSignalDSL.g:703:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
+    // InternalSignalDSL.g:678:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
     public final void ruleOpMultiAssign() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:707:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
-            // InternalSignalDSL.g:708:2: ( ( rule__OpMultiAssign__Alternatives ) )
+            // InternalSignalDSL.g:682:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
+            // InternalSignalDSL.g:683:2: ( ( rule__OpMultiAssign__Alternatives ) )
             {
-            // InternalSignalDSL.g:708:2: ( ( rule__OpMultiAssign__Alternatives ) )
-            // InternalSignalDSL.g:709:3: ( rule__OpMultiAssign__Alternatives )
+            // InternalSignalDSL.g:683:2: ( ( rule__OpMultiAssign__Alternatives ) )
+            // InternalSignalDSL.g:684:3: ( rule__OpMultiAssign__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:710:3: ( rule__OpMultiAssign__Alternatives )
-            // InternalSignalDSL.g:710:4: rule__OpMultiAssign__Alternatives
+            // InternalSignalDSL.g:685:3: ( rule__OpMultiAssign__Alternatives )
+            // InternalSignalDSL.g:685:4: rule__OpMultiAssign__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Alternatives();
@@ -2372,11 +2291,11 @@
 
 
     // $ANTLR start "entryRuleXOrExpression"
-    // InternalSignalDSL.g:719:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
+    // InternalSignalDSL.g:694:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
     public final void entryRuleXOrExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:720:1: ( ruleXOrExpression EOF )
-            // InternalSignalDSL.g:721:1: ruleXOrExpression EOF
+            // InternalSignalDSL.g:695:1: ( ruleXOrExpression EOF )
+            // InternalSignalDSL.g:696:1: ruleXOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionRule()); 
@@ -2406,23 +2325,23 @@
 
 
     // $ANTLR start "ruleXOrExpression"
-    // InternalSignalDSL.g:728:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:703:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
     public final void ruleXOrExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:732:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:733:2: ( ( rule__XOrExpression__Group__0 ) )
+            // InternalSignalDSL.g:707:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:708:2: ( ( rule__XOrExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:733:2: ( ( rule__XOrExpression__Group__0 ) )
-            // InternalSignalDSL.g:734:3: ( rule__XOrExpression__Group__0 )
+            // InternalSignalDSL.g:708:2: ( ( rule__XOrExpression__Group__0 ) )
+            // InternalSignalDSL.g:709:3: ( rule__XOrExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:735:3: ( rule__XOrExpression__Group__0 )
-            // InternalSignalDSL.g:735:4: rule__XOrExpression__Group__0
+            // InternalSignalDSL.g:710:3: ( rule__XOrExpression__Group__0 )
+            // InternalSignalDSL.g:710:4: rule__XOrExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group__0();
@@ -2457,11 +2376,11 @@
 
 
     // $ANTLR start "entryRuleOpOr"
-    // InternalSignalDSL.g:744:1: entryRuleOpOr : ruleOpOr EOF ;
+    // InternalSignalDSL.g:719:1: entryRuleOpOr : ruleOpOr EOF ;
     public final void entryRuleOpOr() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:745:1: ( ruleOpOr EOF )
-            // InternalSignalDSL.g:746:1: ruleOpOr EOF
+            // InternalSignalDSL.g:720:1: ( ruleOpOr EOF )
+            // InternalSignalDSL.g:721:1: ruleOpOr EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOrRule()); 
@@ -2491,17 +2410,17 @@
 
 
     // $ANTLR start "ruleOpOr"
-    // InternalSignalDSL.g:753:1: ruleOpOr : ( '||' ) ;
+    // InternalSignalDSL.g:728:1: ruleOpOr : ( '||' ) ;
     public final void ruleOpOr() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:757:2: ( ( '||' ) )
-            // InternalSignalDSL.g:758:2: ( '||' )
+            // InternalSignalDSL.g:732:2: ( ( '||' ) )
+            // InternalSignalDSL.g:733:2: ( '||' )
             {
-            // InternalSignalDSL.g:758:2: ( '||' )
-            // InternalSignalDSL.g:759:3: '||'
+            // InternalSignalDSL.g:733:2: ( '||' )
+            // InternalSignalDSL.g:734:3: '||'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
@@ -2532,11 +2451,11 @@
 
 
     // $ANTLR start "entryRuleXAndExpression"
-    // InternalSignalDSL.g:769:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
+    // InternalSignalDSL.g:744:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
     public final void entryRuleXAndExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:770:1: ( ruleXAndExpression EOF )
-            // InternalSignalDSL.g:771:1: ruleXAndExpression EOF
+            // InternalSignalDSL.g:745:1: ( ruleXAndExpression EOF )
+            // InternalSignalDSL.g:746:1: ruleXAndExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionRule()); 
@@ -2566,23 +2485,23 @@
 
 
     // $ANTLR start "ruleXAndExpression"
-    // InternalSignalDSL.g:778:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:753:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
     public final void ruleXAndExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:782:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:783:2: ( ( rule__XAndExpression__Group__0 ) )
+            // InternalSignalDSL.g:757:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:758:2: ( ( rule__XAndExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:783:2: ( ( rule__XAndExpression__Group__0 ) )
-            // InternalSignalDSL.g:784:3: ( rule__XAndExpression__Group__0 )
+            // InternalSignalDSL.g:758:2: ( ( rule__XAndExpression__Group__0 ) )
+            // InternalSignalDSL.g:759:3: ( rule__XAndExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:785:3: ( rule__XAndExpression__Group__0 )
-            // InternalSignalDSL.g:785:4: rule__XAndExpression__Group__0
+            // InternalSignalDSL.g:760:3: ( rule__XAndExpression__Group__0 )
+            // InternalSignalDSL.g:760:4: rule__XAndExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group__0();
@@ -2617,11 +2536,11 @@
 
 
     // $ANTLR start "entryRuleOpAnd"
-    // InternalSignalDSL.g:794:1: entryRuleOpAnd : ruleOpAnd EOF ;
+    // InternalSignalDSL.g:769:1: entryRuleOpAnd : ruleOpAnd EOF ;
     public final void entryRuleOpAnd() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:795:1: ( ruleOpAnd EOF )
-            // InternalSignalDSL.g:796:1: ruleOpAnd EOF
+            // InternalSignalDSL.g:770:1: ( ruleOpAnd EOF )
+            // InternalSignalDSL.g:771:1: ruleOpAnd EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAndRule()); 
@@ -2651,17 +2570,17 @@
 
 
     // $ANTLR start "ruleOpAnd"
-    // InternalSignalDSL.g:803:1: ruleOpAnd : ( '&&' ) ;
+    // InternalSignalDSL.g:778:1: ruleOpAnd : ( '&&' ) ;
     public final void ruleOpAnd() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:807:2: ( ( '&&' ) )
-            // InternalSignalDSL.g:808:2: ( '&&' )
+            // InternalSignalDSL.g:782:2: ( ( '&&' ) )
+            // InternalSignalDSL.g:783:2: ( '&&' )
             {
-            // InternalSignalDSL.g:808:2: ( '&&' )
-            // InternalSignalDSL.g:809:3: '&&'
+            // InternalSignalDSL.g:783:2: ( '&&' )
+            // InternalSignalDSL.g:784:3: '&&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
@@ -2692,11 +2611,11 @@
 
 
     // $ANTLR start "entryRuleXEqualityExpression"
-    // InternalSignalDSL.g:819:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
+    // InternalSignalDSL.g:794:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
     public final void entryRuleXEqualityExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:820:1: ( ruleXEqualityExpression EOF )
-            // InternalSignalDSL.g:821:1: ruleXEqualityExpression EOF
+            // InternalSignalDSL.g:795:1: ( ruleXEqualityExpression EOF )
+            // InternalSignalDSL.g:796:1: ruleXEqualityExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionRule()); 
@@ -2726,23 +2645,23 @@
 
 
     // $ANTLR start "ruleXEqualityExpression"
-    // InternalSignalDSL.g:828:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:803:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
     public final void ruleXEqualityExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:832:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:833:2: ( ( rule__XEqualityExpression__Group__0 ) )
+            // InternalSignalDSL.g:807:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:808:2: ( ( rule__XEqualityExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:833:2: ( ( rule__XEqualityExpression__Group__0 ) )
-            // InternalSignalDSL.g:834:3: ( rule__XEqualityExpression__Group__0 )
+            // InternalSignalDSL.g:808:2: ( ( rule__XEqualityExpression__Group__0 ) )
+            // InternalSignalDSL.g:809:3: ( rule__XEqualityExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:835:3: ( rule__XEqualityExpression__Group__0 )
-            // InternalSignalDSL.g:835:4: rule__XEqualityExpression__Group__0
+            // InternalSignalDSL.g:810:3: ( rule__XEqualityExpression__Group__0 )
+            // InternalSignalDSL.g:810:4: rule__XEqualityExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group__0();
@@ -2777,11 +2696,11 @@
 
 
     // $ANTLR start "entryRuleOpEquality"
-    // InternalSignalDSL.g:844:1: entryRuleOpEquality : ruleOpEquality EOF ;
+    // InternalSignalDSL.g:819:1: entryRuleOpEquality : ruleOpEquality EOF ;
     public final void entryRuleOpEquality() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:845:1: ( ruleOpEquality EOF )
-            // InternalSignalDSL.g:846:1: ruleOpEquality EOF
+            // InternalSignalDSL.g:820:1: ( ruleOpEquality EOF )
+            // InternalSignalDSL.g:821:1: ruleOpEquality EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpEqualityRule()); 
@@ -2811,23 +2730,23 @@
 
 
     // $ANTLR start "ruleOpEquality"
-    // InternalSignalDSL.g:853:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
+    // InternalSignalDSL.g:828:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
     public final void ruleOpEquality() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:857:2: ( ( ( rule__OpEquality__Alternatives ) ) )
-            // InternalSignalDSL.g:858:2: ( ( rule__OpEquality__Alternatives ) )
+            // InternalSignalDSL.g:832:2: ( ( ( rule__OpEquality__Alternatives ) ) )
+            // InternalSignalDSL.g:833:2: ( ( rule__OpEquality__Alternatives ) )
             {
-            // InternalSignalDSL.g:858:2: ( ( rule__OpEquality__Alternatives ) )
-            // InternalSignalDSL.g:859:3: ( rule__OpEquality__Alternatives )
+            // InternalSignalDSL.g:833:2: ( ( rule__OpEquality__Alternatives ) )
+            // InternalSignalDSL.g:834:3: ( rule__OpEquality__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpEqualityAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:860:3: ( rule__OpEquality__Alternatives )
-            // InternalSignalDSL.g:860:4: rule__OpEquality__Alternatives
+            // InternalSignalDSL.g:835:3: ( rule__OpEquality__Alternatives )
+            // InternalSignalDSL.g:835:4: rule__OpEquality__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpEquality__Alternatives();
@@ -2862,11 +2781,11 @@
 
 
     // $ANTLR start "entryRuleXRelationalExpression"
-    // InternalSignalDSL.g:869:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
+    // InternalSignalDSL.g:844:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
     public final void entryRuleXRelationalExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:870:1: ( ruleXRelationalExpression EOF )
-            // InternalSignalDSL.g:871:1: ruleXRelationalExpression EOF
+            // InternalSignalDSL.g:845:1: ( ruleXRelationalExpression EOF )
+            // InternalSignalDSL.g:846:1: ruleXRelationalExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionRule()); 
@@ -2896,23 +2815,23 @@
 
 
     // $ANTLR start "ruleXRelationalExpression"
-    // InternalSignalDSL.g:878:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:853:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
     public final void ruleXRelationalExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:882:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:883:2: ( ( rule__XRelationalExpression__Group__0 ) )
+            // InternalSignalDSL.g:857:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:858:2: ( ( rule__XRelationalExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:883:2: ( ( rule__XRelationalExpression__Group__0 ) )
-            // InternalSignalDSL.g:884:3: ( rule__XRelationalExpression__Group__0 )
+            // InternalSignalDSL.g:858:2: ( ( rule__XRelationalExpression__Group__0 ) )
+            // InternalSignalDSL.g:859:3: ( rule__XRelationalExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:885:3: ( rule__XRelationalExpression__Group__0 )
-            // InternalSignalDSL.g:885:4: rule__XRelationalExpression__Group__0
+            // InternalSignalDSL.g:860:3: ( rule__XRelationalExpression__Group__0 )
+            // InternalSignalDSL.g:860:4: rule__XRelationalExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group__0();
@@ -2947,11 +2866,11 @@
 
 
     // $ANTLR start "entryRuleOpCompare"
-    // InternalSignalDSL.g:894:1: entryRuleOpCompare : ruleOpCompare EOF ;
+    // InternalSignalDSL.g:869:1: entryRuleOpCompare : ruleOpCompare EOF ;
     public final void entryRuleOpCompare() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:895:1: ( ruleOpCompare EOF )
-            // InternalSignalDSL.g:896:1: ruleOpCompare EOF
+            // InternalSignalDSL.g:870:1: ( ruleOpCompare EOF )
+            // InternalSignalDSL.g:871:1: ruleOpCompare EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareRule()); 
@@ -2981,23 +2900,23 @@
 
 
     // $ANTLR start "ruleOpCompare"
-    // InternalSignalDSL.g:903:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
+    // InternalSignalDSL.g:878:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
     public final void ruleOpCompare() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:907:2: ( ( ( rule__OpCompare__Alternatives ) ) )
-            // InternalSignalDSL.g:908:2: ( ( rule__OpCompare__Alternatives ) )
+            // InternalSignalDSL.g:882:2: ( ( ( rule__OpCompare__Alternatives ) ) )
+            // InternalSignalDSL.g:883:2: ( ( rule__OpCompare__Alternatives ) )
             {
-            // InternalSignalDSL.g:908:2: ( ( rule__OpCompare__Alternatives ) )
-            // InternalSignalDSL.g:909:3: ( rule__OpCompare__Alternatives )
+            // InternalSignalDSL.g:883:2: ( ( rule__OpCompare__Alternatives ) )
+            // InternalSignalDSL.g:884:3: ( rule__OpCompare__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:910:3: ( rule__OpCompare__Alternatives )
-            // InternalSignalDSL.g:910:4: rule__OpCompare__Alternatives
+            // InternalSignalDSL.g:885:3: ( rule__OpCompare__Alternatives )
+            // InternalSignalDSL.g:885:4: rule__OpCompare__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpCompare__Alternatives();
@@ -3032,11 +2951,11 @@
 
 
     // $ANTLR start "entryRuleXOtherOperatorExpression"
-    // InternalSignalDSL.g:919:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
+    // InternalSignalDSL.g:894:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
     public final void entryRuleXOtherOperatorExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:920:1: ( ruleXOtherOperatorExpression EOF )
-            // InternalSignalDSL.g:921:1: ruleXOtherOperatorExpression EOF
+            // InternalSignalDSL.g:895:1: ( ruleXOtherOperatorExpression EOF )
+            // InternalSignalDSL.g:896:1: ruleXOtherOperatorExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionRule()); 
@@ -3066,23 +2985,23 @@
 
 
     // $ANTLR start "ruleXOtherOperatorExpression"
-    // InternalSignalDSL.g:928:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:903:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
     public final void ruleXOtherOperatorExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:932:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:933:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // InternalSignalDSL.g:907:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:908:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:933:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
-            // InternalSignalDSL.g:934:3: ( rule__XOtherOperatorExpression__Group__0 )
+            // InternalSignalDSL.g:908:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // InternalSignalDSL.g:909:3: ( rule__XOtherOperatorExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:935:3: ( rule__XOtherOperatorExpression__Group__0 )
-            // InternalSignalDSL.g:935:4: rule__XOtherOperatorExpression__Group__0
+            // InternalSignalDSL.g:910:3: ( rule__XOtherOperatorExpression__Group__0 )
+            // InternalSignalDSL.g:910:4: rule__XOtherOperatorExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group__0();
@@ -3117,11 +3036,11 @@
 
 
     // $ANTLR start "entryRuleOpOther"
-    // InternalSignalDSL.g:944:1: entryRuleOpOther : ruleOpOther EOF ;
+    // InternalSignalDSL.g:919:1: entryRuleOpOther : ruleOpOther EOF ;
     public final void entryRuleOpOther() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:945:1: ( ruleOpOther EOF )
-            // InternalSignalDSL.g:946:1: ruleOpOther EOF
+            // InternalSignalDSL.g:920:1: ( ruleOpOther EOF )
+            // InternalSignalDSL.g:921:1: ruleOpOther EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherRule()); 
@@ -3151,23 +3070,23 @@
 
 
     // $ANTLR start "ruleOpOther"
-    // InternalSignalDSL.g:953:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
+    // InternalSignalDSL.g:928:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
     public final void ruleOpOther() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:957:2: ( ( ( rule__OpOther__Alternatives ) ) )
-            // InternalSignalDSL.g:958:2: ( ( rule__OpOther__Alternatives ) )
+            // InternalSignalDSL.g:932:2: ( ( ( rule__OpOther__Alternatives ) ) )
+            // InternalSignalDSL.g:933:2: ( ( rule__OpOther__Alternatives ) )
             {
-            // InternalSignalDSL.g:958:2: ( ( rule__OpOther__Alternatives ) )
-            // InternalSignalDSL.g:959:3: ( rule__OpOther__Alternatives )
+            // InternalSignalDSL.g:933:2: ( ( rule__OpOther__Alternatives ) )
+            // InternalSignalDSL.g:934:3: ( rule__OpOther__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:960:3: ( rule__OpOther__Alternatives )
-            // InternalSignalDSL.g:960:4: rule__OpOther__Alternatives
+            // InternalSignalDSL.g:935:3: ( rule__OpOther__Alternatives )
+            // InternalSignalDSL.g:935:4: rule__OpOther__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives();
@@ -3202,11 +3121,11 @@
 
 
     // $ANTLR start "entryRuleXAdditiveExpression"
-    // InternalSignalDSL.g:969:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
+    // InternalSignalDSL.g:944:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
     public final void entryRuleXAdditiveExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:970:1: ( ruleXAdditiveExpression EOF )
-            // InternalSignalDSL.g:971:1: ruleXAdditiveExpression EOF
+            // InternalSignalDSL.g:945:1: ( ruleXAdditiveExpression EOF )
+            // InternalSignalDSL.g:946:1: ruleXAdditiveExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionRule()); 
@@ -3236,23 +3155,23 @@
 
 
     // $ANTLR start "ruleXAdditiveExpression"
-    // InternalSignalDSL.g:978:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:953:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
     public final void ruleXAdditiveExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:982:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:983:2: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // InternalSignalDSL.g:957:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:958:2: ( ( rule__XAdditiveExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:983:2: ( ( rule__XAdditiveExpression__Group__0 ) )
-            // InternalSignalDSL.g:984:3: ( rule__XAdditiveExpression__Group__0 )
+            // InternalSignalDSL.g:958:2: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // InternalSignalDSL.g:959:3: ( rule__XAdditiveExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:985:3: ( rule__XAdditiveExpression__Group__0 )
-            // InternalSignalDSL.g:985:4: rule__XAdditiveExpression__Group__0
+            // InternalSignalDSL.g:960:3: ( rule__XAdditiveExpression__Group__0 )
+            // InternalSignalDSL.g:960:4: rule__XAdditiveExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group__0();
@@ -3287,11 +3206,11 @@
 
 
     // $ANTLR start "entryRuleOpAdd"
-    // InternalSignalDSL.g:994:1: entryRuleOpAdd : ruleOpAdd EOF ;
+    // InternalSignalDSL.g:969:1: entryRuleOpAdd : ruleOpAdd EOF ;
     public final void entryRuleOpAdd() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:995:1: ( ruleOpAdd EOF )
-            // InternalSignalDSL.g:996:1: ruleOpAdd EOF
+            // InternalSignalDSL.g:970:1: ( ruleOpAdd EOF )
+            // InternalSignalDSL.g:971:1: ruleOpAdd EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAddRule()); 
@@ -3321,23 +3240,23 @@
 
 
     // $ANTLR start "ruleOpAdd"
-    // InternalSignalDSL.g:1003:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
+    // InternalSignalDSL.g:978:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
     public final void ruleOpAdd() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1007:2: ( ( ( rule__OpAdd__Alternatives ) ) )
-            // InternalSignalDSL.g:1008:2: ( ( rule__OpAdd__Alternatives ) )
+            // InternalSignalDSL.g:982:2: ( ( ( rule__OpAdd__Alternatives ) ) )
+            // InternalSignalDSL.g:983:2: ( ( rule__OpAdd__Alternatives ) )
             {
-            // InternalSignalDSL.g:1008:2: ( ( rule__OpAdd__Alternatives ) )
-            // InternalSignalDSL.g:1009:3: ( rule__OpAdd__Alternatives )
+            // InternalSignalDSL.g:983:2: ( ( rule__OpAdd__Alternatives ) )
+            // InternalSignalDSL.g:984:3: ( rule__OpAdd__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAddAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1010:3: ( rule__OpAdd__Alternatives )
-            // InternalSignalDSL.g:1010:4: rule__OpAdd__Alternatives
+            // InternalSignalDSL.g:985:3: ( rule__OpAdd__Alternatives )
+            // InternalSignalDSL.g:985:4: rule__OpAdd__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpAdd__Alternatives();
@@ -3372,11 +3291,11 @@
 
 
     // $ANTLR start "entryRuleXMultiplicativeExpression"
-    // InternalSignalDSL.g:1019:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
+    // InternalSignalDSL.g:994:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
     public final void entryRuleXMultiplicativeExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1020:1: ( ruleXMultiplicativeExpression EOF )
-            // InternalSignalDSL.g:1021:1: ruleXMultiplicativeExpression EOF
+            // InternalSignalDSL.g:995:1: ( ruleXMultiplicativeExpression EOF )
+            // InternalSignalDSL.g:996:1: ruleXMultiplicativeExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionRule()); 
@@ -3406,23 +3325,23 @@
 
 
     // $ANTLR start "ruleXMultiplicativeExpression"
-    // InternalSignalDSL.g:1028:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1003:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
     public final void ruleXMultiplicativeExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1032:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1033:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // InternalSignalDSL.g:1007:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1008:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1033:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
-            // InternalSignalDSL.g:1034:3: ( rule__XMultiplicativeExpression__Group__0 )
+            // InternalSignalDSL.g:1008:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // InternalSignalDSL.g:1009:3: ( rule__XMultiplicativeExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1035:3: ( rule__XMultiplicativeExpression__Group__0 )
-            // InternalSignalDSL.g:1035:4: rule__XMultiplicativeExpression__Group__0
+            // InternalSignalDSL.g:1010:3: ( rule__XMultiplicativeExpression__Group__0 )
+            // InternalSignalDSL.g:1010:4: rule__XMultiplicativeExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group__0();
@@ -3457,11 +3376,11 @@
 
 
     // $ANTLR start "entryRuleOpMulti"
-    // InternalSignalDSL.g:1044:1: entryRuleOpMulti : ruleOpMulti EOF ;
+    // InternalSignalDSL.g:1019:1: entryRuleOpMulti : ruleOpMulti EOF ;
     public final void entryRuleOpMulti() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1045:1: ( ruleOpMulti EOF )
-            // InternalSignalDSL.g:1046:1: ruleOpMulti EOF
+            // InternalSignalDSL.g:1020:1: ( ruleOpMulti EOF )
+            // InternalSignalDSL.g:1021:1: ruleOpMulti EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiRule()); 
@@ -3491,23 +3410,23 @@
 
 
     // $ANTLR start "ruleOpMulti"
-    // InternalSignalDSL.g:1053:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
+    // InternalSignalDSL.g:1028:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
     public final void ruleOpMulti() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1057:2: ( ( ( rule__OpMulti__Alternatives ) ) )
-            // InternalSignalDSL.g:1058:2: ( ( rule__OpMulti__Alternatives ) )
+            // InternalSignalDSL.g:1032:2: ( ( ( rule__OpMulti__Alternatives ) ) )
+            // InternalSignalDSL.g:1033:2: ( ( rule__OpMulti__Alternatives ) )
             {
-            // InternalSignalDSL.g:1058:2: ( ( rule__OpMulti__Alternatives ) )
-            // InternalSignalDSL.g:1059:3: ( rule__OpMulti__Alternatives )
+            // InternalSignalDSL.g:1033:2: ( ( rule__OpMulti__Alternatives ) )
+            // InternalSignalDSL.g:1034:3: ( rule__OpMulti__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1060:3: ( rule__OpMulti__Alternatives )
-            // InternalSignalDSL.g:1060:4: rule__OpMulti__Alternatives
+            // InternalSignalDSL.g:1035:3: ( rule__OpMulti__Alternatives )
+            // InternalSignalDSL.g:1035:4: rule__OpMulti__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpMulti__Alternatives();
@@ -3542,11 +3461,11 @@
 
 
     // $ANTLR start "entryRuleXUnaryOperation"
-    // InternalSignalDSL.g:1069:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
+    // InternalSignalDSL.g:1044:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
     public final void entryRuleXUnaryOperation() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1070:1: ( ruleXUnaryOperation EOF )
-            // InternalSignalDSL.g:1071:1: ruleXUnaryOperation EOF
+            // InternalSignalDSL.g:1045:1: ( ruleXUnaryOperation EOF )
+            // InternalSignalDSL.g:1046:1: ruleXUnaryOperation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationRule()); 
@@ -3576,23 +3495,23 @@
 
 
     // $ANTLR start "ruleXUnaryOperation"
-    // InternalSignalDSL.g:1078:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
+    // InternalSignalDSL.g:1053:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
     public final void ruleXUnaryOperation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1082:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
-            // InternalSignalDSL.g:1083:2: ( ( rule__XUnaryOperation__Alternatives ) )
+            // InternalSignalDSL.g:1057:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
+            // InternalSignalDSL.g:1058:2: ( ( rule__XUnaryOperation__Alternatives ) )
             {
-            // InternalSignalDSL.g:1083:2: ( ( rule__XUnaryOperation__Alternatives ) )
-            // InternalSignalDSL.g:1084:3: ( rule__XUnaryOperation__Alternatives )
+            // InternalSignalDSL.g:1058:2: ( ( rule__XUnaryOperation__Alternatives ) )
+            // InternalSignalDSL.g:1059:3: ( rule__XUnaryOperation__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1085:3: ( rule__XUnaryOperation__Alternatives )
-            // InternalSignalDSL.g:1085:4: rule__XUnaryOperation__Alternatives
+            // InternalSignalDSL.g:1060:3: ( rule__XUnaryOperation__Alternatives )
+            // InternalSignalDSL.g:1060:4: rule__XUnaryOperation__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__Alternatives();
@@ -3627,11 +3546,11 @@
 
 
     // $ANTLR start "entryRuleOpUnary"
-    // InternalSignalDSL.g:1094:1: entryRuleOpUnary : ruleOpUnary EOF ;
+    // InternalSignalDSL.g:1069:1: entryRuleOpUnary : ruleOpUnary EOF ;
     public final void entryRuleOpUnary() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1095:1: ( ruleOpUnary EOF )
-            // InternalSignalDSL.g:1096:1: ruleOpUnary EOF
+            // InternalSignalDSL.g:1070:1: ( ruleOpUnary EOF )
+            // InternalSignalDSL.g:1071:1: ruleOpUnary EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpUnaryRule()); 
@@ -3661,23 +3580,23 @@
 
 
     // $ANTLR start "ruleOpUnary"
-    // InternalSignalDSL.g:1103:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
+    // InternalSignalDSL.g:1078:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
     public final void ruleOpUnary() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1107:2: ( ( ( rule__OpUnary__Alternatives ) ) )
-            // InternalSignalDSL.g:1108:2: ( ( rule__OpUnary__Alternatives ) )
+            // InternalSignalDSL.g:1082:2: ( ( ( rule__OpUnary__Alternatives ) ) )
+            // InternalSignalDSL.g:1083:2: ( ( rule__OpUnary__Alternatives ) )
             {
-            // InternalSignalDSL.g:1108:2: ( ( rule__OpUnary__Alternatives ) )
-            // InternalSignalDSL.g:1109:3: ( rule__OpUnary__Alternatives )
+            // InternalSignalDSL.g:1083:2: ( ( rule__OpUnary__Alternatives ) )
+            // InternalSignalDSL.g:1084:3: ( rule__OpUnary__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpUnaryAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1110:3: ( rule__OpUnary__Alternatives )
-            // InternalSignalDSL.g:1110:4: rule__OpUnary__Alternatives
+            // InternalSignalDSL.g:1085:3: ( rule__OpUnary__Alternatives )
+            // InternalSignalDSL.g:1085:4: rule__OpUnary__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpUnary__Alternatives();
@@ -3712,11 +3631,11 @@
 
 
     // $ANTLR start "entryRuleXCastedExpression"
-    // InternalSignalDSL.g:1119:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
+    // InternalSignalDSL.g:1094:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
     public final void entryRuleXCastedExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1120:1: ( ruleXCastedExpression EOF )
-            // InternalSignalDSL.g:1121:1: ruleXCastedExpression EOF
+            // InternalSignalDSL.g:1095:1: ( ruleXCastedExpression EOF )
+            // InternalSignalDSL.g:1096:1: ruleXCastedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionRule()); 
@@ -3746,23 +3665,23 @@
 
 
     // $ANTLR start "ruleXCastedExpression"
-    // InternalSignalDSL.g:1128:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1103:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
     public final void ruleXCastedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1132:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1133:2: ( ( rule__XCastedExpression__Group__0 ) )
+            // InternalSignalDSL.g:1107:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1108:2: ( ( rule__XCastedExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1133:2: ( ( rule__XCastedExpression__Group__0 ) )
-            // InternalSignalDSL.g:1134:3: ( rule__XCastedExpression__Group__0 )
+            // InternalSignalDSL.g:1108:2: ( ( rule__XCastedExpression__Group__0 ) )
+            // InternalSignalDSL.g:1109:3: ( rule__XCastedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1135:3: ( rule__XCastedExpression__Group__0 )
-            // InternalSignalDSL.g:1135:4: rule__XCastedExpression__Group__0
+            // InternalSignalDSL.g:1110:3: ( rule__XCastedExpression__Group__0 )
+            // InternalSignalDSL.g:1110:4: rule__XCastedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group__0();
@@ -3797,11 +3716,11 @@
 
 
     // $ANTLR start "entryRuleXPostfixOperation"
-    // InternalSignalDSL.g:1144:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
+    // InternalSignalDSL.g:1119:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
     public final void entryRuleXPostfixOperation() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1145:1: ( ruleXPostfixOperation EOF )
-            // InternalSignalDSL.g:1146:1: ruleXPostfixOperation EOF
+            // InternalSignalDSL.g:1120:1: ( ruleXPostfixOperation EOF )
+            // InternalSignalDSL.g:1121:1: ruleXPostfixOperation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationRule()); 
@@ -3831,23 +3750,23 @@
 
 
     // $ANTLR start "ruleXPostfixOperation"
-    // InternalSignalDSL.g:1153:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
+    // InternalSignalDSL.g:1128:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
     public final void ruleXPostfixOperation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1157:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
-            // InternalSignalDSL.g:1158:2: ( ( rule__XPostfixOperation__Group__0 ) )
+            // InternalSignalDSL.g:1132:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
+            // InternalSignalDSL.g:1133:2: ( ( rule__XPostfixOperation__Group__0 ) )
             {
-            // InternalSignalDSL.g:1158:2: ( ( rule__XPostfixOperation__Group__0 ) )
-            // InternalSignalDSL.g:1159:3: ( rule__XPostfixOperation__Group__0 )
+            // InternalSignalDSL.g:1133:2: ( ( rule__XPostfixOperation__Group__0 ) )
+            // InternalSignalDSL.g:1134:3: ( rule__XPostfixOperation__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1160:3: ( rule__XPostfixOperation__Group__0 )
-            // InternalSignalDSL.g:1160:4: rule__XPostfixOperation__Group__0
+            // InternalSignalDSL.g:1135:3: ( rule__XPostfixOperation__Group__0 )
+            // InternalSignalDSL.g:1135:4: rule__XPostfixOperation__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group__0();
@@ -3882,11 +3801,11 @@
 
 
     // $ANTLR start "entryRuleOpPostfix"
-    // InternalSignalDSL.g:1169:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
+    // InternalSignalDSL.g:1144:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
     public final void entryRuleOpPostfix() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1170:1: ( ruleOpPostfix EOF )
-            // InternalSignalDSL.g:1171:1: ruleOpPostfix EOF
+            // InternalSignalDSL.g:1145:1: ( ruleOpPostfix EOF )
+            // InternalSignalDSL.g:1146:1: ruleOpPostfix EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpPostfixRule()); 
@@ -3916,23 +3835,23 @@
 
 
     // $ANTLR start "ruleOpPostfix"
-    // InternalSignalDSL.g:1178:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
+    // InternalSignalDSL.g:1153:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
     public final void ruleOpPostfix() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1182:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
-            // InternalSignalDSL.g:1183:2: ( ( rule__OpPostfix__Alternatives ) )
+            // InternalSignalDSL.g:1157:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
+            // InternalSignalDSL.g:1158:2: ( ( rule__OpPostfix__Alternatives ) )
             {
-            // InternalSignalDSL.g:1183:2: ( ( rule__OpPostfix__Alternatives ) )
-            // InternalSignalDSL.g:1184:3: ( rule__OpPostfix__Alternatives )
+            // InternalSignalDSL.g:1158:2: ( ( rule__OpPostfix__Alternatives ) )
+            // InternalSignalDSL.g:1159:3: ( rule__OpPostfix__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpPostfixAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1185:3: ( rule__OpPostfix__Alternatives )
-            // InternalSignalDSL.g:1185:4: rule__OpPostfix__Alternatives
+            // InternalSignalDSL.g:1160:3: ( rule__OpPostfix__Alternatives )
+            // InternalSignalDSL.g:1160:4: rule__OpPostfix__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpPostfix__Alternatives();
@@ -3967,11 +3886,11 @@
 
 
     // $ANTLR start "entryRuleXMemberFeatureCall"
-    // InternalSignalDSL.g:1194:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
+    // InternalSignalDSL.g:1169:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
     public final void entryRuleXMemberFeatureCall() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1195:1: ( ruleXMemberFeatureCall EOF )
-            // InternalSignalDSL.g:1196:1: ruleXMemberFeatureCall EOF
+            // InternalSignalDSL.g:1170:1: ( ruleXMemberFeatureCall EOF )
+            // InternalSignalDSL.g:1171:1: ruleXMemberFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallRule()); 
@@ -4001,23 +3920,23 @@
 
 
     // $ANTLR start "ruleXMemberFeatureCall"
-    // InternalSignalDSL.g:1203:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
+    // InternalSignalDSL.g:1178:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
     public final void ruleXMemberFeatureCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1207:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
-            // InternalSignalDSL.g:1208:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // InternalSignalDSL.g:1182:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
+            // InternalSignalDSL.g:1183:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
             {
-            // InternalSignalDSL.g:1208:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
-            // InternalSignalDSL.g:1209:3: ( rule__XMemberFeatureCall__Group__0 )
+            // InternalSignalDSL.g:1183:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // InternalSignalDSL.g:1184:3: ( rule__XMemberFeatureCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1210:3: ( rule__XMemberFeatureCall__Group__0 )
-            // InternalSignalDSL.g:1210:4: rule__XMemberFeatureCall__Group__0
+            // InternalSignalDSL.g:1185:3: ( rule__XMemberFeatureCall__Group__0 )
+            // InternalSignalDSL.g:1185:4: rule__XMemberFeatureCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group__0();
@@ -4052,11 +3971,11 @@
 
 
     // $ANTLR start "entryRuleXPrimaryExpression"
-    // InternalSignalDSL.g:1219:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
+    // InternalSignalDSL.g:1194:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
     public final void entryRuleXPrimaryExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1220:1: ( ruleXPrimaryExpression EOF )
-            // InternalSignalDSL.g:1221:1: ruleXPrimaryExpression EOF
+            // InternalSignalDSL.g:1195:1: ( ruleXPrimaryExpression EOF )
+            // InternalSignalDSL.g:1196:1: ruleXPrimaryExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPrimaryExpressionRule()); 
@@ -4086,23 +4005,23 @@
 
 
     // $ANTLR start "ruleXPrimaryExpression"
-    // InternalSignalDSL.g:1228:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
+    // InternalSignalDSL.g:1203:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
     public final void ruleXPrimaryExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1232:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
-            // InternalSignalDSL.g:1233:2: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // InternalSignalDSL.g:1207:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
+            // InternalSignalDSL.g:1208:2: ( ( rule__XPrimaryExpression__Alternatives ) )
             {
-            // InternalSignalDSL.g:1233:2: ( ( rule__XPrimaryExpression__Alternatives ) )
-            // InternalSignalDSL.g:1234:3: ( rule__XPrimaryExpression__Alternatives )
+            // InternalSignalDSL.g:1208:2: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // InternalSignalDSL.g:1209:3: ( rule__XPrimaryExpression__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1235:3: ( rule__XPrimaryExpression__Alternatives )
-            // InternalSignalDSL.g:1235:4: rule__XPrimaryExpression__Alternatives
+            // InternalSignalDSL.g:1210:3: ( rule__XPrimaryExpression__Alternatives )
+            // InternalSignalDSL.g:1210:4: rule__XPrimaryExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XPrimaryExpression__Alternatives();
@@ -4137,11 +4056,11 @@
 
 
     // $ANTLR start "entryRuleXLiteral"
-    // InternalSignalDSL.g:1244:1: entryRuleXLiteral : ruleXLiteral EOF ;
+    // InternalSignalDSL.g:1219:1: entryRuleXLiteral : ruleXLiteral EOF ;
     public final void entryRuleXLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1245:1: ( ruleXLiteral EOF )
-            // InternalSignalDSL.g:1246:1: ruleXLiteral EOF
+            // InternalSignalDSL.g:1220:1: ( ruleXLiteral EOF )
+            // InternalSignalDSL.g:1221:1: ruleXLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXLiteralRule()); 
@@ -4171,23 +4090,23 @@
 
 
     // $ANTLR start "ruleXLiteral"
-    // InternalSignalDSL.g:1253:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
+    // InternalSignalDSL.g:1228:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
     public final void ruleXLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1257:2: ( ( ( rule__XLiteral__Alternatives ) ) )
-            // InternalSignalDSL.g:1258:2: ( ( rule__XLiteral__Alternatives ) )
+            // InternalSignalDSL.g:1232:2: ( ( ( rule__XLiteral__Alternatives ) ) )
+            // InternalSignalDSL.g:1233:2: ( ( rule__XLiteral__Alternatives ) )
             {
-            // InternalSignalDSL.g:1258:2: ( ( rule__XLiteral__Alternatives ) )
-            // InternalSignalDSL.g:1259:3: ( rule__XLiteral__Alternatives )
+            // InternalSignalDSL.g:1233:2: ( ( rule__XLiteral__Alternatives ) )
+            // InternalSignalDSL.g:1234:3: ( rule__XLiteral__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXLiteralAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1260:3: ( rule__XLiteral__Alternatives )
-            // InternalSignalDSL.g:1260:4: rule__XLiteral__Alternatives
+            // InternalSignalDSL.g:1235:3: ( rule__XLiteral__Alternatives )
+            // InternalSignalDSL.g:1235:4: rule__XLiteral__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XLiteral__Alternatives();
@@ -4222,11 +4141,11 @@
 
 
     // $ANTLR start "entryRuleXCollectionLiteral"
-    // InternalSignalDSL.g:1269:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
+    // InternalSignalDSL.g:1244:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
     public final void entryRuleXCollectionLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1270:1: ( ruleXCollectionLiteral EOF )
-            // InternalSignalDSL.g:1271:1: ruleXCollectionLiteral EOF
+            // InternalSignalDSL.g:1245:1: ( ruleXCollectionLiteral EOF )
+            // InternalSignalDSL.g:1246:1: ruleXCollectionLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCollectionLiteralRule()); 
@@ -4256,23 +4175,23 @@
 
 
     // $ANTLR start "ruleXCollectionLiteral"
-    // InternalSignalDSL.g:1278:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
+    // InternalSignalDSL.g:1253:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
     public final void ruleXCollectionLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1282:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
-            // InternalSignalDSL.g:1283:2: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // InternalSignalDSL.g:1257:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
+            // InternalSignalDSL.g:1258:2: ( ( rule__XCollectionLiteral__Alternatives ) )
             {
-            // InternalSignalDSL.g:1283:2: ( ( rule__XCollectionLiteral__Alternatives ) )
-            // InternalSignalDSL.g:1284:3: ( rule__XCollectionLiteral__Alternatives )
+            // InternalSignalDSL.g:1258:2: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // InternalSignalDSL.g:1259:3: ( rule__XCollectionLiteral__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1285:3: ( rule__XCollectionLiteral__Alternatives )
-            // InternalSignalDSL.g:1285:4: rule__XCollectionLiteral__Alternatives
+            // InternalSignalDSL.g:1260:3: ( rule__XCollectionLiteral__Alternatives )
+            // InternalSignalDSL.g:1260:4: rule__XCollectionLiteral__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XCollectionLiteral__Alternatives();
@@ -4307,11 +4226,11 @@
 
 
     // $ANTLR start "entryRuleXSetLiteral"
-    // InternalSignalDSL.g:1294:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
+    // InternalSignalDSL.g:1269:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
     public final void entryRuleXSetLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1295:1: ( ruleXSetLiteral EOF )
-            // InternalSignalDSL.g:1296:1: ruleXSetLiteral EOF
+            // InternalSignalDSL.g:1270:1: ( ruleXSetLiteral EOF )
+            // InternalSignalDSL.g:1271:1: ruleXSetLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralRule()); 
@@ -4341,23 +4260,23 @@
 
 
     // $ANTLR start "ruleXSetLiteral"
-    // InternalSignalDSL.g:1303:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1278:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
     public final void ruleXSetLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1307:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1308:2: ( ( rule__XSetLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1282:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1283:2: ( ( rule__XSetLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1308:2: ( ( rule__XSetLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1309:3: ( rule__XSetLiteral__Group__0 )
+            // InternalSignalDSL.g:1283:2: ( ( rule__XSetLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1284:3: ( rule__XSetLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1310:3: ( rule__XSetLiteral__Group__0 )
-            // InternalSignalDSL.g:1310:4: rule__XSetLiteral__Group__0
+            // InternalSignalDSL.g:1285:3: ( rule__XSetLiteral__Group__0 )
+            // InternalSignalDSL.g:1285:4: rule__XSetLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group__0();
@@ -4392,11 +4311,11 @@
 
 
     // $ANTLR start "entryRuleXListLiteral"
-    // InternalSignalDSL.g:1319:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
+    // InternalSignalDSL.g:1294:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
     public final void entryRuleXListLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1320:1: ( ruleXListLiteral EOF )
-            // InternalSignalDSL.g:1321:1: ruleXListLiteral EOF
+            // InternalSignalDSL.g:1295:1: ( ruleXListLiteral EOF )
+            // InternalSignalDSL.g:1296:1: ruleXListLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralRule()); 
@@ -4426,23 +4345,23 @@
 
 
     // $ANTLR start "ruleXListLiteral"
-    // InternalSignalDSL.g:1328:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1303:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
     public final void ruleXListLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1332:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1333:2: ( ( rule__XListLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1307:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1308:2: ( ( rule__XListLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1333:2: ( ( rule__XListLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1334:3: ( rule__XListLiteral__Group__0 )
+            // InternalSignalDSL.g:1308:2: ( ( rule__XListLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1309:3: ( rule__XListLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1335:3: ( rule__XListLiteral__Group__0 )
-            // InternalSignalDSL.g:1335:4: rule__XListLiteral__Group__0
+            // InternalSignalDSL.g:1310:3: ( rule__XListLiteral__Group__0 )
+            // InternalSignalDSL.g:1310:4: rule__XListLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group__0();
@@ -4477,11 +4396,11 @@
 
 
     // $ANTLR start "entryRuleXClosure"
-    // InternalSignalDSL.g:1344:1: entryRuleXClosure : ruleXClosure EOF ;
+    // InternalSignalDSL.g:1319:1: entryRuleXClosure : ruleXClosure EOF ;
     public final void entryRuleXClosure() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1345:1: ( ruleXClosure EOF )
-            // InternalSignalDSL.g:1346:1: ruleXClosure EOF
+            // InternalSignalDSL.g:1320:1: ( ruleXClosure EOF )
+            // InternalSignalDSL.g:1321:1: ruleXClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureRule()); 
@@ -4511,23 +4430,23 @@
 
 
     // $ANTLR start "ruleXClosure"
-    // InternalSignalDSL.g:1353:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
+    // InternalSignalDSL.g:1328:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
     public final void ruleXClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1357:2: ( ( ( rule__XClosure__Group__0 ) ) )
-            // InternalSignalDSL.g:1358:2: ( ( rule__XClosure__Group__0 ) )
+            // InternalSignalDSL.g:1332:2: ( ( ( rule__XClosure__Group__0 ) ) )
+            // InternalSignalDSL.g:1333:2: ( ( rule__XClosure__Group__0 ) )
             {
-            // InternalSignalDSL.g:1358:2: ( ( rule__XClosure__Group__0 ) )
-            // InternalSignalDSL.g:1359:3: ( rule__XClosure__Group__0 )
+            // InternalSignalDSL.g:1333:2: ( ( rule__XClosure__Group__0 ) )
+            // InternalSignalDSL.g:1334:3: ( rule__XClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1360:3: ( rule__XClosure__Group__0 )
-            // InternalSignalDSL.g:1360:4: rule__XClosure__Group__0
+            // InternalSignalDSL.g:1335:3: ( rule__XClosure__Group__0 )
+            // InternalSignalDSL.g:1335:4: rule__XClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group__0();
@@ -4562,11 +4481,11 @@
 
 
     // $ANTLR start "entryRuleXExpressionInClosure"
-    // InternalSignalDSL.g:1369:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
+    // InternalSignalDSL.g:1344:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
     public final void entryRuleXExpressionInClosure() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1370:1: ( ruleXExpressionInClosure EOF )
-            // InternalSignalDSL.g:1371:1: ruleXExpressionInClosure EOF
+            // InternalSignalDSL.g:1345:1: ( ruleXExpressionInClosure EOF )
+            // InternalSignalDSL.g:1346:1: ruleXExpressionInClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureRule()); 
@@ -4596,23 +4515,23 @@
 
 
     // $ANTLR start "ruleXExpressionInClosure"
-    // InternalSignalDSL.g:1378:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
+    // InternalSignalDSL.g:1353:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
     public final void ruleXExpressionInClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1382:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
-            // InternalSignalDSL.g:1383:2: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // InternalSignalDSL.g:1357:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
+            // InternalSignalDSL.g:1358:2: ( ( rule__XExpressionInClosure__Group__0 ) )
             {
-            // InternalSignalDSL.g:1383:2: ( ( rule__XExpressionInClosure__Group__0 ) )
-            // InternalSignalDSL.g:1384:3: ( rule__XExpressionInClosure__Group__0 )
+            // InternalSignalDSL.g:1358:2: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // InternalSignalDSL.g:1359:3: ( rule__XExpressionInClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1385:3: ( rule__XExpressionInClosure__Group__0 )
-            // InternalSignalDSL.g:1385:4: rule__XExpressionInClosure__Group__0
+            // InternalSignalDSL.g:1360:3: ( rule__XExpressionInClosure__Group__0 )
+            // InternalSignalDSL.g:1360:4: rule__XExpressionInClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group__0();
@@ -4647,11 +4566,11 @@
 
 
     // $ANTLR start "entryRuleXShortClosure"
-    // InternalSignalDSL.g:1394:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
+    // InternalSignalDSL.g:1369:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
     public final void entryRuleXShortClosure() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1395:1: ( ruleXShortClosure EOF )
-            // InternalSignalDSL.g:1396:1: ruleXShortClosure EOF
+            // InternalSignalDSL.g:1370:1: ( ruleXShortClosure EOF )
+            // InternalSignalDSL.g:1371:1: ruleXShortClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureRule()); 
@@ -4681,23 +4600,23 @@
 
 
     // $ANTLR start "ruleXShortClosure"
-    // InternalSignalDSL.g:1403:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
+    // InternalSignalDSL.g:1378:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
     public final void ruleXShortClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1407:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
-            // InternalSignalDSL.g:1408:2: ( ( rule__XShortClosure__Group__0 ) )
+            // InternalSignalDSL.g:1382:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
+            // InternalSignalDSL.g:1383:2: ( ( rule__XShortClosure__Group__0 ) )
             {
-            // InternalSignalDSL.g:1408:2: ( ( rule__XShortClosure__Group__0 ) )
-            // InternalSignalDSL.g:1409:3: ( rule__XShortClosure__Group__0 )
+            // InternalSignalDSL.g:1383:2: ( ( rule__XShortClosure__Group__0 ) )
+            // InternalSignalDSL.g:1384:3: ( rule__XShortClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1410:3: ( rule__XShortClosure__Group__0 )
-            // InternalSignalDSL.g:1410:4: rule__XShortClosure__Group__0
+            // InternalSignalDSL.g:1385:3: ( rule__XShortClosure__Group__0 )
+            // InternalSignalDSL.g:1385:4: rule__XShortClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group__0();
@@ -4732,11 +4651,11 @@
 
 
     // $ANTLR start "entryRuleXParenthesizedExpression"
-    // InternalSignalDSL.g:1419:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
+    // InternalSignalDSL.g:1394:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
     public final void entryRuleXParenthesizedExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1420:1: ( ruleXParenthesizedExpression EOF )
-            // InternalSignalDSL.g:1421:1: ruleXParenthesizedExpression EOF
+            // InternalSignalDSL.g:1395:1: ( ruleXParenthesizedExpression EOF )
+            // InternalSignalDSL.g:1396:1: ruleXParenthesizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionRule()); 
@@ -4766,23 +4685,23 @@
 
 
     // $ANTLR start "ruleXParenthesizedExpression"
-    // InternalSignalDSL.g:1428:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1403:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
     public final void ruleXParenthesizedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1432:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1433:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // InternalSignalDSL.g:1407:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1408:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1433:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
-            // InternalSignalDSL.g:1434:3: ( rule__XParenthesizedExpression__Group__0 )
+            // InternalSignalDSL.g:1408:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // InternalSignalDSL.g:1409:3: ( rule__XParenthesizedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1435:3: ( rule__XParenthesizedExpression__Group__0 )
-            // InternalSignalDSL.g:1435:4: rule__XParenthesizedExpression__Group__0
+            // InternalSignalDSL.g:1410:3: ( rule__XParenthesizedExpression__Group__0 )
+            // InternalSignalDSL.g:1410:4: rule__XParenthesizedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XParenthesizedExpression__Group__0();
@@ -4817,11 +4736,11 @@
 
 
     // $ANTLR start "entryRuleXIfExpression"
-    // InternalSignalDSL.g:1444:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
+    // InternalSignalDSL.g:1419:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
     public final void entryRuleXIfExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1445:1: ( ruleXIfExpression EOF )
-            // InternalSignalDSL.g:1446:1: ruleXIfExpression EOF
+            // InternalSignalDSL.g:1420:1: ( ruleXIfExpression EOF )
+            // InternalSignalDSL.g:1421:1: ruleXIfExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionRule()); 
@@ -4851,23 +4770,23 @@
 
 
     // $ANTLR start "ruleXIfExpression"
-    // InternalSignalDSL.g:1453:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1428:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
     public final void ruleXIfExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1457:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1458:2: ( ( rule__XIfExpression__Group__0 ) )
+            // InternalSignalDSL.g:1432:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1433:2: ( ( rule__XIfExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1458:2: ( ( rule__XIfExpression__Group__0 ) )
-            // InternalSignalDSL.g:1459:3: ( rule__XIfExpression__Group__0 )
+            // InternalSignalDSL.g:1433:2: ( ( rule__XIfExpression__Group__0 ) )
+            // InternalSignalDSL.g:1434:3: ( rule__XIfExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1460:3: ( rule__XIfExpression__Group__0 )
-            // InternalSignalDSL.g:1460:4: rule__XIfExpression__Group__0
+            // InternalSignalDSL.g:1435:3: ( rule__XIfExpression__Group__0 )
+            // InternalSignalDSL.g:1435:4: rule__XIfExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group__0();
@@ -4902,11 +4821,11 @@
 
 
     // $ANTLR start "entryRuleXSwitchExpression"
-    // InternalSignalDSL.g:1469:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
+    // InternalSignalDSL.g:1444:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
     public final void entryRuleXSwitchExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1470:1: ( ruleXSwitchExpression EOF )
-            // InternalSignalDSL.g:1471:1: ruleXSwitchExpression EOF
+            // InternalSignalDSL.g:1445:1: ( ruleXSwitchExpression EOF )
+            // InternalSignalDSL.g:1446:1: ruleXSwitchExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionRule()); 
@@ -4936,23 +4855,23 @@
 
 
     // $ANTLR start "ruleXSwitchExpression"
-    // InternalSignalDSL.g:1478:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1453:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
     public final void ruleXSwitchExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1482:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1483:2: ( ( rule__XSwitchExpression__Group__0 ) )
+            // InternalSignalDSL.g:1457:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1458:2: ( ( rule__XSwitchExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1483:2: ( ( rule__XSwitchExpression__Group__0 ) )
-            // InternalSignalDSL.g:1484:3: ( rule__XSwitchExpression__Group__0 )
+            // InternalSignalDSL.g:1458:2: ( ( rule__XSwitchExpression__Group__0 ) )
+            // InternalSignalDSL.g:1459:3: ( rule__XSwitchExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1485:3: ( rule__XSwitchExpression__Group__0 )
-            // InternalSignalDSL.g:1485:4: rule__XSwitchExpression__Group__0
+            // InternalSignalDSL.g:1460:3: ( rule__XSwitchExpression__Group__0 )
+            // InternalSignalDSL.g:1460:4: rule__XSwitchExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group__0();
@@ -4987,11 +4906,11 @@
 
 
     // $ANTLR start "entryRuleXCasePart"
-    // InternalSignalDSL.g:1494:1: entryRuleXCasePart : ruleXCasePart EOF ;
+    // InternalSignalDSL.g:1469:1: entryRuleXCasePart : ruleXCasePart EOF ;
     public final void entryRuleXCasePart() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1495:1: ( ruleXCasePart EOF )
-            // InternalSignalDSL.g:1496:1: ruleXCasePart EOF
+            // InternalSignalDSL.g:1470:1: ( ruleXCasePart EOF )
+            // InternalSignalDSL.g:1471:1: ruleXCasePart EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartRule()); 
@@ -5021,23 +4940,23 @@
 
 
     // $ANTLR start "ruleXCasePart"
-    // InternalSignalDSL.g:1503:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
+    // InternalSignalDSL.g:1478:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
     public final void ruleXCasePart() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1507:2: ( ( ( rule__XCasePart__Group__0 ) ) )
-            // InternalSignalDSL.g:1508:2: ( ( rule__XCasePart__Group__0 ) )
+            // InternalSignalDSL.g:1482:2: ( ( ( rule__XCasePart__Group__0 ) ) )
+            // InternalSignalDSL.g:1483:2: ( ( rule__XCasePart__Group__0 ) )
             {
-            // InternalSignalDSL.g:1508:2: ( ( rule__XCasePart__Group__0 ) )
-            // InternalSignalDSL.g:1509:3: ( rule__XCasePart__Group__0 )
+            // InternalSignalDSL.g:1483:2: ( ( rule__XCasePart__Group__0 ) )
+            // InternalSignalDSL.g:1484:3: ( rule__XCasePart__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1510:3: ( rule__XCasePart__Group__0 )
-            // InternalSignalDSL.g:1510:4: rule__XCasePart__Group__0
+            // InternalSignalDSL.g:1485:3: ( rule__XCasePart__Group__0 )
+            // InternalSignalDSL.g:1485:4: rule__XCasePart__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group__0();
@@ -5072,11 +4991,11 @@
 
 
     // $ANTLR start "entryRuleXForLoopExpression"
-    // InternalSignalDSL.g:1519:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
+    // InternalSignalDSL.g:1494:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
     public final void entryRuleXForLoopExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1520:1: ( ruleXForLoopExpression EOF )
-            // InternalSignalDSL.g:1521:1: ruleXForLoopExpression EOF
+            // InternalSignalDSL.g:1495:1: ( ruleXForLoopExpression EOF )
+            // InternalSignalDSL.g:1496:1: ruleXForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionRule()); 
@@ -5106,23 +5025,23 @@
 
 
     // $ANTLR start "ruleXForLoopExpression"
-    // InternalSignalDSL.g:1528:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1503:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
     public final void ruleXForLoopExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1532:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1533:2: ( ( rule__XForLoopExpression__Group__0 ) )
+            // InternalSignalDSL.g:1507:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1508:2: ( ( rule__XForLoopExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1533:2: ( ( rule__XForLoopExpression__Group__0 ) )
-            // InternalSignalDSL.g:1534:3: ( rule__XForLoopExpression__Group__0 )
+            // InternalSignalDSL.g:1508:2: ( ( rule__XForLoopExpression__Group__0 ) )
+            // InternalSignalDSL.g:1509:3: ( rule__XForLoopExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1535:3: ( rule__XForLoopExpression__Group__0 )
-            // InternalSignalDSL.g:1535:4: rule__XForLoopExpression__Group__0
+            // InternalSignalDSL.g:1510:3: ( rule__XForLoopExpression__Group__0 )
+            // InternalSignalDSL.g:1510:4: rule__XForLoopExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group__0();
@@ -5157,11 +5076,11 @@
 
 
     // $ANTLR start "entryRuleXBasicForLoopExpression"
-    // InternalSignalDSL.g:1544:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
+    // InternalSignalDSL.g:1519:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
     public final void entryRuleXBasicForLoopExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1545:1: ( ruleXBasicForLoopExpression EOF )
-            // InternalSignalDSL.g:1546:1: ruleXBasicForLoopExpression EOF
+            // InternalSignalDSL.g:1520:1: ( ruleXBasicForLoopExpression EOF )
+            // InternalSignalDSL.g:1521:1: ruleXBasicForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionRule()); 
@@ -5191,23 +5110,23 @@
 
 
     // $ANTLR start "ruleXBasicForLoopExpression"
-    // InternalSignalDSL.g:1553:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1528:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
     public final void ruleXBasicForLoopExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1557:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1558:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // InternalSignalDSL.g:1532:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1533:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1558:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
-            // InternalSignalDSL.g:1559:3: ( rule__XBasicForLoopExpression__Group__0 )
+            // InternalSignalDSL.g:1533:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // InternalSignalDSL.g:1534:3: ( rule__XBasicForLoopExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1560:3: ( rule__XBasicForLoopExpression__Group__0 )
-            // InternalSignalDSL.g:1560:4: rule__XBasicForLoopExpression__Group__0
+            // InternalSignalDSL.g:1535:3: ( rule__XBasicForLoopExpression__Group__0 )
+            // InternalSignalDSL.g:1535:4: rule__XBasicForLoopExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group__0();
@@ -5242,11 +5161,11 @@
 
 
     // $ANTLR start "entryRuleXWhileExpression"
-    // InternalSignalDSL.g:1569:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
+    // InternalSignalDSL.g:1544:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
     public final void entryRuleXWhileExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1570:1: ( ruleXWhileExpression EOF )
-            // InternalSignalDSL.g:1571:1: ruleXWhileExpression EOF
+            // InternalSignalDSL.g:1545:1: ( ruleXWhileExpression EOF )
+            // InternalSignalDSL.g:1546:1: ruleXWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionRule()); 
@@ -5276,23 +5195,23 @@
 
 
     // $ANTLR start "ruleXWhileExpression"
-    // InternalSignalDSL.g:1578:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1553:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
     public final void ruleXWhileExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1582:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1583:2: ( ( rule__XWhileExpression__Group__0 ) )
+            // InternalSignalDSL.g:1557:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1558:2: ( ( rule__XWhileExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1583:2: ( ( rule__XWhileExpression__Group__0 ) )
-            // InternalSignalDSL.g:1584:3: ( rule__XWhileExpression__Group__0 )
+            // InternalSignalDSL.g:1558:2: ( ( rule__XWhileExpression__Group__0 ) )
+            // InternalSignalDSL.g:1559:3: ( rule__XWhileExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1585:3: ( rule__XWhileExpression__Group__0 )
-            // InternalSignalDSL.g:1585:4: rule__XWhileExpression__Group__0
+            // InternalSignalDSL.g:1560:3: ( rule__XWhileExpression__Group__0 )
+            // InternalSignalDSL.g:1560:4: rule__XWhileExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__Group__0();
@@ -5327,11 +5246,11 @@
 
 
     // $ANTLR start "entryRuleXDoWhileExpression"
-    // InternalSignalDSL.g:1594:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
+    // InternalSignalDSL.g:1569:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
     public final void entryRuleXDoWhileExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1595:1: ( ruleXDoWhileExpression EOF )
-            // InternalSignalDSL.g:1596:1: ruleXDoWhileExpression EOF
+            // InternalSignalDSL.g:1570:1: ( ruleXDoWhileExpression EOF )
+            // InternalSignalDSL.g:1571:1: ruleXDoWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionRule()); 
@@ -5361,23 +5280,23 @@
 
 
     // $ANTLR start "ruleXDoWhileExpression"
-    // InternalSignalDSL.g:1603:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1578:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
     public final void ruleXDoWhileExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1607:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1608:2: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // InternalSignalDSL.g:1582:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1583:2: ( ( rule__XDoWhileExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1608:2: ( ( rule__XDoWhileExpression__Group__0 ) )
-            // InternalSignalDSL.g:1609:3: ( rule__XDoWhileExpression__Group__0 )
+            // InternalSignalDSL.g:1583:2: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // InternalSignalDSL.g:1584:3: ( rule__XDoWhileExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1610:3: ( rule__XDoWhileExpression__Group__0 )
-            // InternalSignalDSL.g:1610:4: rule__XDoWhileExpression__Group__0
+            // InternalSignalDSL.g:1585:3: ( rule__XDoWhileExpression__Group__0 )
+            // InternalSignalDSL.g:1585:4: rule__XDoWhileExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__Group__0();
@@ -5412,11 +5331,11 @@
 
 
     // $ANTLR start "entryRuleXBlockExpression"
-    // InternalSignalDSL.g:1619:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
+    // InternalSignalDSL.g:1594:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
     public final void entryRuleXBlockExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1620:1: ( ruleXBlockExpression EOF )
-            // InternalSignalDSL.g:1621:1: ruleXBlockExpression EOF
+            // InternalSignalDSL.g:1595:1: ( ruleXBlockExpression EOF )
+            // InternalSignalDSL.g:1596:1: ruleXBlockExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionRule()); 
@@ -5446,23 +5365,23 @@
 
 
     // $ANTLR start "ruleXBlockExpression"
-    // InternalSignalDSL.g:1628:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1603:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
     public final void ruleXBlockExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1632:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1633:2: ( ( rule__XBlockExpression__Group__0 ) )
+            // InternalSignalDSL.g:1607:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1608:2: ( ( rule__XBlockExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1633:2: ( ( rule__XBlockExpression__Group__0 ) )
-            // InternalSignalDSL.g:1634:3: ( rule__XBlockExpression__Group__0 )
+            // InternalSignalDSL.g:1608:2: ( ( rule__XBlockExpression__Group__0 ) )
+            // InternalSignalDSL.g:1609:3: ( rule__XBlockExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1635:3: ( rule__XBlockExpression__Group__0 )
-            // InternalSignalDSL.g:1635:4: rule__XBlockExpression__Group__0
+            // InternalSignalDSL.g:1610:3: ( rule__XBlockExpression__Group__0 )
+            // InternalSignalDSL.g:1610:4: rule__XBlockExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group__0();
@@ -5497,11 +5416,11 @@
 
 
     // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
-    // InternalSignalDSL.g:1644:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
+    // InternalSignalDSL.g:1619:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
     public final void entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1645:1: ( ruleXExpressionOrVarDeclaration EOF )
-            // InternalSignalDSL.g:1646:1: ruleXExpressionOrVarDeclaration EOF
+            // InternalSignalDSL.g:1620:1: ( ruleXExpressionOrVarDeclaration EOF )
+            // InternalSignalDSL.g:1621:1: ruleXExpressionOrVarDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionOrVarDeclarationRule()); 
@@ -5531,23 +5450,23 @@
 
 
     // $ANTLR start "ruleXExpressionOrVarDeclaration"
-    // InternalSignalDSL.g:1653:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
+    // InternalSignalDSL.g:1628:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
     public final void ruleXExpressionOrVarDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1657:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
-            // InternalSignalDSL.g:1658:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // InternalSignalDSL.g:1632:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
+            // InternalSignalDSL.g:1633:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
             {
-            // InternalSignalDSL.g:1658:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
-            // InternalSignalDSL.g:1659:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // InternalSignalDSL.g:1633:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // InternalSignalDSL.g:1634:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1660:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
-            // InternalSignalDSL.g:1660:4: rule__XExpressionOrVarDeclaration__Alternatives
+            // InternalSignalDSL.g:1635:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // InternalSignalDSL.g:1635:4: rule__XExpressionOrVarDeclaration__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionOrVarDeclaration__Alternatives();
@@ -5582,11 +5501,11 @@
 
 
     // $ANTLR start "entryRuleXVariableDeclaration"
-    // InternalSignalDSL.g:1669:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
+    // InternalSignalDSL.g:1644:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
     public final void entryRuleXVariableDeclaration() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1670:1: ( ruleXVariableDeclaration EOF )
-            // InternalSignalDSL.g:1671:1: ruleXVariableDeclaration EOF
+            // InternalSignalDSL.g:1645:1: ( ruleXVariableDeclaration EOF )
+            // InternalSignalDSL.g:1646:1: ruleXVariableDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationRule()); 
@@ -5616,23 +5535,23 @@
 
 
     // $ANTLR start "ruleXVariableDeclaration"
-    // InternalSignalDSL.g:1678:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
+    // InternalSignalDSL.g:1653:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
     public final void ruleXVariableDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1682:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
-            // InternalSignalDSL.g:1683:2: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // InternalSignalDSL.g:1657:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
+            // InternalSignalDSL.g:1658:2: ( ( rule__XVariableDeclaration__Group__0 ) )
             {
-            // InternalSignalDSL.g:1683:2: ( ( rule__XVariableDeclaration__Group__0 ) )
-            // InternalSignalDSL.g:1684:3: ( rule__XVariableDeclaration__Group__0 )
+            // InternalSignalDSL.g:1658:2: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // InternalSignalDSL.g:1659:3: ( rule__XVariableDeclaration__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1685:3: ( rule__XVariableDeclaration__Group__0 )
-            // InternalSignalDSL.g:1685:4: rule__XVariableDeclaration__Group__0
+            // InternalSignalDSL.g:1660:3: ( rule__XVariableDeclaration__Group__0 )
+            // InternalSignalDSL.g:1660:4: rule__XVariableDeclaration__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group__0();
@@ -5667,11 +5586,11 @@
 
 
     // $ANTLR start "entryRuleJvmFormalParameter"
-    // InternalSignalDSL.g:1694:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
+    // InternalSignalDSL.g:1669:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
     public final void entryRuleJvmFormalParameter() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1695:1: ( ruleJvmFormalParameter EOF )
-            // InternalSignalDSL.g:1696:1: ruleJvmFormalParameter EOF
+            // InternalSignalDSL.g:1670:1: ( ruleJvmFormalParameter EOF )
+            // InternalSignalDSL.g:1671:1: ruleJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterRule()); 
@@ -5701,23 +5620,23 @@
 
 
     // $ANTLR start "ruleJvmFormalParameter"
-    // InternalSignalDSL.g:1703:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
+    // InternalSignalDSL.g:1678:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
     public final void ruleJvmFormalParameter() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1707:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
-            // InternalSignalDSL.g:1708:2: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // InternalSignalDSL.g:1682:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
+            // InternalSignalDSL.g:1683:2: ( ( rule__JvmFormalParameter__Group__0 ) )
             {
-            // InternalSignalDSL.g:1708:2: ( ( rule__JvmFormalParameter__Group__0 ) )
-            // InternalSignalDSL.g:1709:3: ( rule__JvmFormalParameter__Group__0 )
+            // InternalSignalDSL.g:1683:2: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // InternalSignalDSL.g:1684:3: ( rule__JvmFormalParameter__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1710:3: ( rule__JvmFormalParameter__Group__0 )
-            // InternalSignalDSL.g:1710:4: rule__JvmFormalParameter__Group__0
+            // InternalSignalDSL.g:1685:3: ( rule__JvmFormalParameter__Group__0 )
+            // InternalSignalDSL.g:1685:4: rule__JvmFormalParameter__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__Group__0();
@@ -5752,11 +5671,11 @@
 
 
     // $ANTLR start "entryRuleFullJvmFormalParameter"
-    // InternalSignalDSL.g:1719:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
+    // InternalSignalDSL.g:1694:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
     public final void entryRuleFullJvmFormalParameter() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1720:1: ( ruleFullJvmFormalParameter EOF )
-            // InternalSignalDSL.g:1721:1: ruleFullJvmFormalParameter EOF
+            // InternalSignalDSL.g:1695:1: ( ruleFullJvmFormalParameter EOF )
+            // InternalSignalDSL.g:1696:1: ruleFullJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterRule()); 
@@ -5786,23 +5705,23 @@
 
 
     // $ANTLR start "ruleFullJvmFormalParameter"
-    // InternalSignalDSL.g:1728:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
+    // InternalSignalDSL.g:1703:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
     public final void ruleFullJvmFormalParameter() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1732:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
-            // InternalSignalDSL.g:1733:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // InternalSignalDSL.g:1707:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
+            // InternalSignalDSL.g:1708:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
             {
-            // InternalSignalDSL.g:1733:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
-            // InternalSignalDSL.g:1734:3: ( rule__FullJvmFormalParameter__Group__0 )
+            // InternalSignalDSL.g:1708:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // InternalSignalDSL.g:1709:3: ( rule__FullJvmFormalParameter__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1735:3: ( rule__FullJvmFormalParameter__Group__0 )
-            // InternalSignalDSL.g:1735:4: rule__FullJvmFormalParameter__Group__0
+            // InternalSignalDSL.g:1710:3: ( rule__FullJvmFormalParameter__Group__0 )
+            // InternalSignalDSL.g:1710:4: rule__FullJvmFormalParameter__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__Group__0();
@@ -5837,11 +5756,11 @@
 
 
     // $ANTLR start "entryRuleXFeatureCall"
-    // InternalSignalDSL.g:1744:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
+    // InternalSignalDSL.g:1719:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
     public final void entryRuleXFeatureCall() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1745:1: ( ruleXFeatureCall EOF )
-            // InternalSignalDSL.g:1746:1: ruleXFeatureCall EOF
+            // InternalSignalDSL.g:1720:1: ( ruleXFeatureCall EOF )
+            // InternalSignalDSL.g:1721:1: ruleXFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallRule()); 
@@ -5871,23 +5790,23 @@
 
 
     // $ANTLR start "ruleXFeatureCall"
-    // InternalSignalDSL.g:1753:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
+    // InternalSignalDSL.g:1728:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
     public final void ruleXFeatureCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1757:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
-            // InternalSignalDSL.g:1758:2: ( ( rule__XFeatureCall__Group__0 ) )
+            // InternalSignalDSL.g:1732:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
+            // InternalSignalDSL.g:1733:2: ( ( rule__XFeatureCall__Group__0 ) )
             {
-            // InternalSignalDSL.g:1758:2: ( ( rule__XFeatureCall__Group__0 ) )
-            // InternalSignalDSL.g:1759:3: ( rule__XFeatureCall__Group__0 )
+            // InternalSignalDSL.g:1733:2: ( ( rule__XFeatureCall__Group__0 ) )
+            // InternalSignalDSL.g:1734:3: ( rule__XFeatureCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1760:3: ( rule__XFeatureCall__Group__0 )
-            // InternalSignalDSL.g:1760:4: rule__XFeatureCall__Group__0
+            // InternalSignalDSL.g:1735:3: ( rule__XFeatureCall__Group__0 )
+            // InternalSignalDSL.g:1735:4: rule__XFeatureCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group__0();
@@ -5922,11 +5841,11 @@
 
 
     // $ANTLR start "entryRuleFeatureCallID"
-    // InternalSignalDSL.g:1769:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
+    // InternalSignalDSL.g:1744:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
     public final void entryRuleFeatureCallID() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1770:1: ( ruleFeatureCallID EOF )
-            // InternalSignalDSL.g:1771:1: ruleFeatureCallID EOF
+            // InternalSignalDSL.g:1745:1: ( ruleFeatureCallID EOF )
+            // InternalSignalDSL.g:1746:1: ruleFeatureCallID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFeatureCallIDRule()); 
@@ -5956,23 +5875,23 @@
 
 
     // $ANTLR start "ruleFeatureCallID"
-    // InternalSignalDSL.g:1778:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
+    // InternalSignalDSL.g:1753:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
     public final void ruleFeatureCallID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1782:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
-            // InternalSignalDSL.g:1783:2: ( ( rule__FeatureCallID__Alternatives ) )
+            // InternalSignalDSL.g:1757:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
+            // InternalSignalDSL.g:1758:2: ( ( rule__FeatureCallID__Alternatives ) )
             {
-            // InternalSignalDSL.g:1783:2: ( ( rule__FeatureCallID__Alternatives ) )
-            // InternalSignalDSL.g:1784:3: ( rule__FeatureCallID__Alternatives )
+            // InternalSignalDSL.g:1758:2: ( ( rule__FeatureCallID__Alternatives ) )
+            // InternalSignalDSL.g:1759:3: ( rule__FeatureCallID__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1785:3: ( rule__FeatureCallID__Alternatives )
-            // InternalSignalDSL.g:1785:4: rule__FeatureCallID__Alternatives
+            // InternalSignalDSL.g:1760:3: ( rule__FeatureCallID__Alternatives )
+            // InternalSignalDSL.g:1760:4: rule__FeatureCallID__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__FeatureCallID__Alternatives();
@@ -6007,11 +5926,11 @@
 
 
     // $ANTLR start "entryRuleIdOrSuper"
-    // InternalSignalDSL.g:1794:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
+    // InternalSignalDSL.g:1769:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
     public final void entryRuleIdOrSuper() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1795:1: ( ruleIdOrSuper EOF )
-            // InternalSignalDSL.g:1796:1: ruleIdOrSuper EOF
+            // InternalSignalDSL.g:1770:1: ( ruleIdOrSuper EOF )
+            // InternalSignalDSL.g:1771:1: ruleIdOrSuper EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIdOrSuperRule()); 
@@ -6041,23 +5960,23 @@
 
 
     // $ANTLR start "ruleIdOrSuper"
-    // InternalSignalDSL.g:1803:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
+    // InternalSignalDSL.g:1778:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
     public final void ruleIdOrSuper() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1807:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
-            // InternalSignalDSL.g:1808:2: ( ( rule__IdOrSuper__Alternatives ) )
+            // InternalSignalDSL.g:1782:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
+            // InternalSignalDSL.g:1783:2: ( ( rule__IdOrSuper__Alternatives ) )
             {
-            // InternalSignalDSL.g:1808:2: ( ( rule__IdOrSuper__Alternatives ) )
-            // InternalSignalDSL.g:1809:3: ( rule__IdOrSuper__Alternatives )
+            // InternalSignalDSL.g:1783:2: ( ( rule__IdOrSuper__Alternatives ) )
+            // InternalSignalDSL.g:1784:3: ( rule__IdOrSuper__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:1810:3: ( rule__IdOrSuper__Alternatives )
-            // InternalSignalDSL.g:1810:4: rule__IdOrSuper__Alternatives
+            // InternalSignalDSL.g:1785:3: ( rule__IdOrSuper__Alternatives )
+            // InternalSignalDSL.g:1785:4: rule__IdOrSuper__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__IdOrSuper__Alternatives();
@@ -6092,11 +6011,11 @@
 
 
     // $ANTLR start "entryRuleXConstructorCall"
-    // InternalSignalDSL.g:1819:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
+    // InternalSignalDSL.g:1794:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
     public final void entryRuleXConstructorCall() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1820:1: ( ruleXConstructorCall EOF )
-            // InternalSignalDSL.g:1821:1: ruleXConstructorCall EOF
+            // InternalSignalDSL.g:1795:1: ( ruleXConstructorCall EOF )
+            // InternalSignalDSL.g:1796:1: ruleXConstructorCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallRule()); 
@@ -6126,23 +6045,23 @@
 
 
     // $ANTLR start "ruleXConstructorCall"
-    // InternalSignalDSL.g:1828:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
+    // InternalSignalDSL.g:1803:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
     public final void ruleXConstructorCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1832:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
-            // InternalSignalDSL.g:1833:2: ( ( rule__XConstructorCall__Group__0 ) )
+            // InternalSignalDSL.g:1807:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
+            // InternalSignalDSL.g:1808:2: ( ( rule__XConstructorCall__Group__0 ) )
             {
-            // InternalSignalDSL.g:1833:2: ( ( rule__XConstructorCall__Group__0 ) )
-            // InternalSignalDSL.g:1834:3: ( rule__XConstructorCall__Group__0 )
+            // InternalSignalDSL.g:1808:2: ( ( rule__XConstructorCall__Group__0 ) )
+            // InternalSignalDSL.g:1809:3: ( rule__XConstructorCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1835:3: ( rule__XConstructorCall__Group__0 )
-            // InternalSignalDSL.g:1835:4: rule__XConstructorCall__Group__0
+            // InternalSignalDSL.g:1810:3: ( rule__XConstructorCall__Group__0 )
+            // InternalSignalDSL.g:1810:4: rule__XConstructorCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group__0();
@@ -6177,11 +6096,11 @@
 
 
     // $ANTLR start "entryRuleXBooleanLiteral"
-    // InternalSignalDSL.g:1844:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
+    // InternalSignalDSL.g:1819:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
     public final void entryRuleXBooleanLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1845:1: ( ruleXBooleanLiteral EOF )
-            // InternalSignalDSL.g:1846:1: ruleXBooleanLiteral EOF
+            // InternalSignalDSL.g:1820:1: ( ruleXBooleanLiteral EOF )
+            // InternalSignalDSL.g:1821:1: ruleXBooleanLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralRule()); 
@@ -6211,23 +6130,23 @@
 
 
     // $ANTLR start "ruleXBooleanLiteral"
-    // InternalSignalDSL.g:1853:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1828:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
     public final void ruleXBooleanLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1857:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1858:2: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1832:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1833:2: ( ( rule__XBooleanLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1858:2: ( ( rule__XBooleanLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1859:3: ( rule__XBooleanLiteral__Group__0 )
+            // InternalSignalDSL.g:1833:2: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1834:3: ( rule__XBooleanLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1860:3: ( rule__XBooleanLiteral__Group__0 )
-            // InternalSignalDSL.g:1860:4: rule__XBooleanLiteral__Group__0
+            // InternalSignalDSL.g:1835:3: ( rule__XBooleanLiteral__Group__0 )
+            // InternalSignalDSL.g:1835:4: rule__XBooleanLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Group__0();
@@ -6262,11 +6181,11 @@
 
 
     // $ANTLR start "entryRuleXNullLiteral"
-    // InternalSignalDSL.g:1869:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
+    // InternalSignalDSL.g:1844:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
     public final void entryRuleXNullLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1870:1: ( ruleXNullLiteral EOF )
-            // InternalSignalDSL.g:1871:1: ruleXNullLiteral EOF
+            // InternalSignalDSL.g:1845:1: ( ruleXNullLiteral EOF )
+            // InternalSignalDSL.g:1846:1: ruleXNullLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralRule()); 
@@ -6296,23 +6215,23 @@
 
 
     // $ANTLR start "ruleXNullLiteral"
-    // InternalSignalDSL.g:1878:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1853:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
     public final void ruleXNullLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1882:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1883:2: ( ( rule__XNullLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1857:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1858:2: ( ( rule__XNullLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1883:2: ( ( rule__XNullLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1884:3: ( rule__XNullLiteral__Group__0 )
+            // InternalSignalDSL.g:1858:2: ( ( rule__XNullLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1859:3: ( rule__XNullLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1885:3: ( rule__XNullLiteral__Group__0 )
-            // InternalSignalDSL.g:1885:4: rule__XNullLiteral__Group__0
+            // InternalSignalDSL.g:1860:3: ( rule__XNullLiteral__Group__0 )
+            // InternalSignalDSL.g:1860:4: rule__XNullLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XNullLiteral__Group__0();
@@ -6347,11 +6266,11 @@
 
 
     // $ANTLR start "entryRuleXNumberLiteral"
-    // InternalSignalDSL.g:1894:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
+    // InternalSignalDSL.g:1869:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
     public final void entryRuleXNumberLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1895:1: ( ruleXNumberLiteral EOF )
-            // InternalSignalDSL.g:1896:1: ruleXNumberLiteral EOF
+            // InternalSignalDSL.g:1870:1: ( ruleXNumberLiteral EOF )
+            // InternalSignalDSL.g:1871:1: ruleXNumberLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralRule()); 
@@ -6381,23 +6300,23 @@
 
 
     // $ANTLR start "ruleXNumberLiteral"
-    // InternalSignalDSL.g:1903:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1878:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
     public final void ruleXNumberLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1907:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1908:2: ( ( rule__XNumberLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1882:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1883:2: ( ( rule__XNumberLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1908:2: ( ( rule__XNumberLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1909:3: ( rule__XNumberLiteral__Group__0 )
+            // InternalSignalDSL.g:1883:2: ( ( rule__XNumberLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1884:3: ( rule__XNumberLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1910:3: ( rule__XNumberLiteral__Group__0 )
-            // InternalSignalDSL.g:1910:4: rule__XNumberLiteral__Group__0
+            // InternalSignalDSL.g:1885:3: ( rule__XNumberLiteral__Group__0 )
+            // InternalSignalDSL.g:1885:4: rule__XNumberLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__Group__0();
@@ -6432,11 +6351,11 @@
 
 
     // $ANTLR start "entryRuleXStringLiteral"
-    // InternalSignalDSL.g:1919:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
+    // InternalSignalDSL.g:1894:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
     public final void entryRuleXStringLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1920:1: ( ruleXStringLiteral EOF )
-            // InternalSignalDSL.g:1921:1: ruleXStringLiteral EOF
+            // InternalSignalDSL.g:1895:1: ( ruleXStringLiteral EOF )
+            // InternalSignalDSL.g:1896:1: ruleXStringLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralRule()); 
@@ -6466,23 +6385,23 @@
 
 
     // $ANTLR start "ruleXStringLiteral"
-    // InternalSignalDSL.g:1928:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1903:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
     public final void ruleXStringLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1932:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1933:2: ( ( rule__XStringLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1907:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1908:2: ( ( rule__XStringLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1933:2: ( ( rule__XStringLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1934:3: ( rule__XStringLiteral__Group__0 )
+            // InternalSignalDSL.g:1908:2: ( ( rule__XStringLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1909:3: ( rule__XStringLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1935:3: ( rule__XStringLiteral__Group__0 )
-            // InternalSignalDSL.g:1935:4: rule__XStringLiteral__Group__0
+            // InternalSignalDSL.g:1910:3: ( rule__XStringLiteral__Group__0 )
+            // InternalSignalDSL.g:1910:4: rule__XStringLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__Group__0();
@@ -6517,11 +6436,11 @@
 
 
     // $ANTLR start "entryRuleXTypeLiteral"
-    // InternalSignalDSL.g:1944:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
+    // InternalSignalDSL.g:1919:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
     public final void entryRuleXTypeLiteral() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1945:1: ( ruleXTypeLiteral EOF )
-            // InternalSignalDSL.g:1946:1: ruleXTypeLiteral EOF
+            // InternalSignalDSL.g:1920:1: ( ruleXTypeLiteral EOF )
+            // InternalSignalDSL.g:1921:1: ruleXTypeLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralRule()); 
@@ -6551,23 +6470,23 @@
 
 
     // $ANTLR start "ruleXTypeLiteral"
-    // InternalSignalDSL.g:1953:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
+    // InternalSignalDSL.g:1928:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
     public final void ruleXTypeLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1957:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
-            // InternalSignalDSL.g:1958:2: ( ( rule__XTypeLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1932:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
+            // InternalSignalDSL.g:1933:2: ( ( rule__XTypeLiteral__Group__0 ) )
             {
-            // InternalSignalDSL.g:1958:2: ( ( rule__XTypeLiteral__Group__0 ) )
-            // InternalSignalDSL.g:1959:3: ( rule__XTypeLiteral__Group__0 )
+            // InternalSignalDSL.g:1933:2: ( ( rule__XTypeLiteral__Group__0 ) )
+            // InternalSignalDSL.g:1934:3: ( rule__XTypeLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1960:3: ( rule__XTypeLiteral__Group__0 )
-            // InternalSignalDSL.g:1960:4: rule__XTypeLiteral__Group__0
+            // InternalSignalDSL.g:1935:3: ( rule__XTypeLiteral__Group__0 )
+            // InternalSignalDSL.g:1935:4: rule__XTypeLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__Group__0();
@@ -6602,11 +6521,11 @@
 
 
     // $ANTLR start "entryRuleXThrowExpression"
-    // InternalSignalDSL.g:1969:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
+    // InternalSignalDSL.g:1944:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
     public final void entryRuleXThrowExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1970:1: ( ruleXThrowExpression EOF )
-            // InternalSignalDSL.g:1971:1: ruleXThrowExpression EOF
+            // InternalSignalDSL.g:1945:1: ( ruleXThrowExpression EOF )
+            // InternalSignalDSL.g:1946:1: ruleXThrowExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionRule()); 
@@ -6636,23 +6555,23 @@
 
 
     // $ANTLR start "ruleXThrowExpression"
-    // InternalSignalDSL.g:1978:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1953:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
     public final void ruleXThrowExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:1982:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:1983:2: ( ( rule__XThrowExpression__Group__0 ) )
+            // InternalSignalDSL.g:1957:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1958:2: ( ( rule__XThrowExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:1983:2: ( ( rule__XThrowExpression__Group__0 ) )
-            // InternalSignalDSL.g:1984:3: ( rule__XThrowExpression__Group__0 )
+            // InternalSignalDSL.g:1958:2: ( ( rule__XThrowExpression__Group__0 ) )
+            // InternalSignalDSL.g:1959:3: ( rule__XThrowExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:1985:3: ( rule__XThrowExpression__Group__0 )
-            // InternalSignalDSL.g:1985:4: rule__XThrowExpression__Group__0
+            // InternalSignalDSL.g:1960:3: ( rule__XThrowExpression__Group__0 )
+            // InternalSignalDSL.g:1960:4: rule__XThrowExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__Group__0();
@@ -6687,11 +6606,11 @@
 
 
     // $ANTLR start "entryRuleXReturnExpression"
-    // InternalSignalDSL.g:1994:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
+    // InternalSignalDSL.g:1969:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
     public final void entryRuleXReturnExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:1995:1: ( ruleXReturnExpression EOF )
-            // InternalSignalDSL.g:1996:1: ruleXReturnExpression EOF
+            // InternalSignalDSL.g:1970:1: ( ruleXReturnExpression EOF )
+            // InternalSignalDSL.g:1971:1: ruleXReturnExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionRule()); 
@@ -6721,23 +6640,23 @@
 
 
     // $ANTLR start "ruleXReturnExpression"
-    // InternalSignalDSL.g:2003:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:1978:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
     public final void ruleXReturnExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2007:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:2008:2: ( ( rule__XReturnExpression__Group__0 ) )
+            // InternalSignalDSL.g:1982:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:1983:2: ( ( rule__XReturnExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:2008:2: ( ( rule__XReturnExpression__Group__0 ) )
-            // InternalSignalDSL.g:2009:3: ( rule__XReturnExpression__Group__0 )
+            // InternalSignalDSL.g:1983:2: ( ( rule__XReturnExpression__Group__0 ) )
+            // InternalSignalDSL.g:1984:3: ( rule__XReturnExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2010:3: ( rule__XReturnExpression__Group__0 )
-            // InternalSignalDSL.g:2010:4: rule__XReturnExpression__Group__0
+            // InternalSignalDSL.g:1985:3: ( rule__XReturnExpression__Group__0 )
+            // InternalSignalDSL.g:1985:4: rule__XReturnExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XReturnExpression__Group__0();
@@ -6772,11 +6691,11 @@
 
 
     // $ANTLR start "entryRuleXTryCatchFinallyExpression"
-    // InternalSignalDSL.g:2019:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
+    // InternalSignalDSL.g:1994:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
     public final void entryRuleXTryCatchFinallyExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2020:1: ( ruleXTryCatchFinallyExpression EOF )
-            // InternalSignalDSL.g:2021:1: ruleXTryCatchFinallyExpression EOF
+            // InternalSignalDSL.g:1995:1: ( ruleXTryCatchFinallyExpression EOF )
+            // InternalSignalDSL.g:1996:1: ruleXTryCatchFinallyExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionRule()); 
@@ -6806,23 +6725,23 @@
 
 
     // $ANTLR start "ruleXTryCatchFinallyExpression"
-    // InternalSignalDSL.g:2028:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:2003:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
     public final void ruleXTryCatchFinallyExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2032:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:2033:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // InternalSignalDSL.g:2007:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:2008:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:2033:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
-            // InternalSignalDSL.g:2034:3: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // InternalSignalDSL.g:2008:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // InternalSignalDSL.g:2009:3: ( rule__XTryCatchFinallyExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2035:3: ( rule__XTryCatchFinallyExpression__Group__0 )
-            // InternalSignalDSL.g:2035:4: rule__XTryCatchFinallyExpression__Group__0
+            // InternalSignalDSL.g:2010:3: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // InternalSignalDSL.g:2010:4: rule__XTryCatchFinallyExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group__0();
@@ -6857,11 +6776,11 @@
 
 
     // $ANTLR start "entryRuleXSynchronizedExpression"
-    // InternalSignalDSL.g:2044:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
+    // InternalSignalDSL.g:2019:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
     public final void entryRuleXSynchronizedExpression() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2045:1: ( ruleXSynchronizedExpression EOF )
-            // InternalSignalDSL.g:2046:1: ruleXSynchronizedExpression EOF
+            // InternalSignalDSL.g:2020:1: ( ruleXSynchronizedExpression EOF )
+            // InternalSignalDSL.g:2021:1: ruleXSynchronizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionRule()); 
@@ -6891,23 +6810,23 @@
 
 
     // $ANTLR start "ruleXSynchronizedExpression"
-    // InternalSignalDSL.g:2053:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
+    // InternalSignalDSL.g:2028:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
     public final void ruleXSynchronizedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2057:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
-            // InternalSignalDSL.g:2058:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // InternalSignalDSL.g:2032:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
+            // InternalSignalDSL.g:2033:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
             {
-            // InternalSignalDSL.g:2058:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
-            // InternalSignalDSL.g:2059:3: ( rule__XSynchronizedExpression__Group__0 )
+            // InternalSignalDSL.g:2033:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // InternalSignalDSL.g:2034:3: ( rule__XSynchronizedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2060:3: ( rule__XSynchronizedExpression__Group__0 )
-            // InternalSignalDSL.g:2060:4: rule__XSynchronizedExpression__Group__0
+            // InternalSignalDSL.g:2035:3: ( rule__XSynchronizedExpression__Group__0 )
+            // InternalSignalDSL.g:2035:4: rule__XSynchronizedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group__0();
@@ -6942,11 +6861,11 @@
 
 
     // $ANTLR start "entryRuleXCatchClause"
-    // InternalSignalDSL.g:2069:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
+    // InternalSignalDSL.g:2044:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
     public final void entryRuleXCatchClause() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2070:1: ( ruleXCatchClause EOF )
-            // InternalSignalDSL.g:2071:1: ruleXCatchClause EOF
+            // InternalSignalDSL.g:2045:1: ( ruleXCatchClause EOF )
+            // InternalSignalDSL.g:2046:1: ruleXCatchClause EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseRule()); 
@@ -6976,23 +6895,23 @@
 
 
     // $ANTLR start "ruleXCatchClause"
-    // InternalSignalDSL.g:2078:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
+    // InternalSignalDSL.g:2053:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
     public final void ruleXCatchClause() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2082:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
-            // InternalSignalDSL.g:2083:2: ( ( rule__XCatchClause__Group__0 ) )
+            // InternalSignalDSL.g:2057:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
+            // InternalSignalDSL.g:2058:2: ( ( rule__XCatchClause__Group__0 ) )
             {
-            // InternalSignalDSL.g:2083:2: ( ( rule__XCatchClause__Group__0 ) )
-            // InternalSignalDSL.g:2084:3: ( rule__XCatchClause__Group__0 )
+            // InternalSignalDSL.g:2058:2: ( ( rule__XCatchClause__Group__0 ) )
+            // InternalSignalDSL.g:2059:3: ( rule__XCatchClause__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2085:3: ( rule__XCatchClause__Group__0 )
-            // InternalSignalDSL.g:2085:4: rule__XCatchClause__Group__0
+            // InternalSignalDSL.g:2060:3: ( rule__XCatchClause__Group__0 )
+            // InternalSignalDSL.g:2060:4: rule__XCatchClause__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__Group__0();
@@ -7027,11 +6946,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalSignalDSL.g:2094:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    // InternalSignalDSL.g:2069:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
     public final void entryRuleQualifiedName() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2095:1: ( ruleQualifiedName EOF )
-            // InternalSignalDSL.g:2096:1: ruleQualifiedName EOF
+            // InternalSignalDSL.g:2070:1: ( ruleQualifiedName EOF )
+            // InternalSignalDSL.g:2071:1: ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameRule()); 
@@ -7061,23 +6980,23 @@
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalSignalDSL.g:2103:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    // InternalSignalDSL.g:2078:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
     public final void ruleQualifiedName() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2107:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // InternalSignalDSL.g:2108:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalSignalDSL.g:2082:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalSignalDSL.g:2083:2: ( ( rule__QualifiedName__Group__0 ) )
             {
-            // InternalSignalDSL.g:2108:2: ( ( rule__QualifiedName__Group__0 ) )
-            // InternalSignalDSL.g:2109:3: ( rule__QualifiedName__Group__0 )
+            // InternalSignalDSL.g:2083:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalSignalDSL.g:2084:3: ( rule__QualifiedName__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2110:3: ( rule__QualifiedName__Group__0 )
-            // InternalSignalDSL.g:2110:4: rule__QualifiedName__Group__0
+            // InternalSignalDSL.g:2085:3: ( rule__QualifiedName__Group__0 )
+            // InternalSignalDSL.g:2085:4: rule__QualifiedName__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__0();
@@ -7112,14 +7031,14 @@
 
 
     // $ANTLR start "entryRuleNumber"
-    // InternalSignalDSL.g:2119:1: entryRuleNumber : ruleNumber EOF ;
+    // InternalSignalDSL.g:2094:1: entryRuleNumber : ruleNumber EOF ;
     public final void entryRuleNumber() throws RecognitionException {
          
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalSignalDSL.g:2123:1: ( ruleNumber EOF )
-            // InternalSignalDSL.g:2124:1: ruleNumber EOF
+            // InternalSignalDSL.g:2098:1: ( ruleNumber EOF )
+            // InternalSignalDSL.g:2099:1: ruleNumber EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberRule()); 
@@ -7152,24 +7071,24 @@
 
 
     // $ANTLR start "ruleNumber"
-    // InternalSignalDSL.g:2134:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
+    // InternalSignalDSL.g:2109:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
     public final void ruleNumber() throws RecognitionException {
 
         		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2139:2: ( ( ( rule__Number__Alternatives ) ) )
-            // InternalSignalDSL.g:2140:2: ( ( rule__Number__Alternatives ) )
+            // InternalSignalDSL.g:2114:2: ( ( ( rule__Number__Alternatives ) ) )
+            // InternalSignalDSL.g:2115:2: ( ( rule__Number__Alternatives ) )
             {
-            // InternalSignalDSL.g:2140:2: ( ( rule__Number__Alternatives ) )
-            // InternalSignalDSL.g:2141:3: ( rule__Number__Alternatives )
+            // InternalSignalDSL.g:2115:2: ( ( rule__Number__Alternatives ) )
+            // InternalSignalDSL.g:2116:3: ( rule__Number__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:2142:3: ( rule__Number__Alternatives )
-            // InternalSignalDSL.g:2142:4: rule__Number__Alternatives
+            // InternalSignalDSL.g:2117:3: ( rule__Number__Alternatives )
+            // InternalSignalDSL.g:2117:4: rule__Number__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives();
@@ -7205,11 +7124,11 @@
 
 
     // $ANTLR start "entryRuleJvmTypeReference"
-    // InternalSignalDSL.g:2152:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
+    // InternalSignalDSL.g:2127:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
     public final void entryRuleJvmTypeReference() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2153:1: ( ruleJvmTypeReference EOF )
-            // InternalSignalDSL.g:2154:1: ruleJvmTypeReference EOF
+            // InternalSignalDSL.g:2128:1: ( ruleJvmTypeReference EOF )
+            // InternalSignalDSL.g:2129:1: ruleJvmTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceRule()); 
@@ -7239,23 +7158,23 @@
 
 
     // $ANTLR start "ruleJvmTypeReference"
-    // InternalSignalDSL.g:2161:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
+    // InternalSignalDSL.g:2136:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
     public final void ruleJvmTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2165:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
-            // InternalSignalDSL.g:2166:2: ( ( rule__JvmTypeReference__Alternatives ) )
+            // InternalSignalDSL.g:2140:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
+            // InternalSignalDSL.g:2141:2: ( ( rule__JvmTypeReference__Alternatives ) )
             {
-            // InternalSignalDSL.g:2166:2: ( ( rule__JvmTypeReference__Alternatives ) )
-            // InternalSignalDSL.g:2167:3: ( rule__JvmTypeReference__Alternatives )
+            // InternalSignalDSL.g:2141:2: ( ( rule__JvmTypeReference__Alternatives ) )
+            // InternalSignalDSL.g:2142:3: ( rule__JvmTypeReference__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:2168:3: ( rule__JvmTypeReference__Alternatives )
-            // InternalSignalDSL.g:2168:4: rule__JvmTypeReference__Alternatives
+            // InternalSignalDSL.g:2143:3: ( rule__JvmTypeReference__Alternatives )
+            // InternalSignalDSL.g:2143:4: rule__JvmTypeReference__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Alternatives();
@@ -7290,11 +7209,11 @@
 
 
     // $ANTLR start "entryRuleArrayBrackets"
-    // InternalSignalDSL.g:2177:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
+    // InternalSignalDSL.g:2152:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
     public final void entryRuleArrayBrackets() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2178:1: ( ruleArrayBrackets EOF )
-            // InternalSignalDSL.g:2179:1: ruleArrayBrackets EOF
+            // InternalSignalDSL.g:2153:1: ( ruleArrayBrackets EOF )
+            // InternalSignalDSL.g:2154:1: ruleArrayBrackets EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsRule()); 
@@ -7324,23 +7243,23 @@
 
 
     // $ANTLR start "ruleArrayBrackets"
-    // InternalSignalDSL.g:2186:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
+    // InternalSignalDSL.g:2161:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
     public final void ruleArrayBrackets() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2190:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
-            // InternalSignalDSL.g:2191:2: ( ( rule__ArrayBrackets__Group__0 ) )
+            // InternalSignalDSL.g:2165:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
+            // InternalSignalDSL.g:2166:2: ( ( rule__ArrayBrackets__Group__0 ) )
             {
-            // InternalSignalDSL.g:2191:2: ( ( rule__ArrayBrackets__Group__0 ) )
-            // InternalSignalDSL.g:2192:3: ( rule__ArrayBrackets__Group__0 )
+            // InternalSignalDSL.g:2166:2: ( ( rule__ArrayBrackets__Group__0 ) )
+            // InternalSignalDSL.g:2167:3: ( rule__ArrayBrackets__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2193:3: ( rule__ArrayBrackets__Group__0 )
-            // InternalSignalDSL.g:2193:4: rule__ArrayBrackets__Group__0
+            // InternalSignalDSL.g:2168:3: ( rule__ArrayBrackets__Group__0 )
+            // InternalSignalDSL.g:2168:4: rule__ArrayBrackets__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayBrackets__Group__0();
@@ -7375,11 +7294,11 @@
 
 
     // $ANTLR start "entryRuleXFunctionTypeRef"
-    // InternalSignalDSL.g:2202:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
+    // InternalSignalDSL.g:2177:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
     public final void entryRuleXFunctionTypeRef() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2203:1: ( ruleXFunctionTypeRef EOF )
-            // InternalSignalDSL.g:2204:1: ruleXFunctionTypeRef EOF
+            // InternalSignalDSL.g:2178:1: ( ruleXFunctionTypeRef EOF )
+            // InternalSignalDSL.g:2179:1: ruleXFunctionTypeRef EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefRule()); 
@@ -7409,23 +7328,23 @@
 
 
     // $ANTLR start "ruleXFunctionTypeRef"
-    // InternalSignalDSL.g:2211:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
+    // InternalSignalDSL.g:2186:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
     public final void ruleXFunctionTypeRef() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2215:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
-            // InternalSignalDSL.g:2216:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // InternalSignalDSL.g:2190:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
+            // InternalSignalDSL.g:2191:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
             {
-            // InternalSignalDSL.g:2216:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
-            // InternalSignalDSL.g:2217:3: ( rule__XFunctionTypeRef__Group__0 )
+            // InternalSignalDSL.g:2191:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // InternalSignalDSL.g:2192:3: ( rule__XFunctionTypeRef__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2218:3: ( rule__XFunctionTypeRef__Group__0 )
-            // InternalSignalDSL.g:2218:4: rule__XFunctionTypeRef__Group__0
+            // InternalSignalDSL.g:2193:3: ( rule__XFunctionTypeRef__Group__0 )
+            // InternalSignalDSL.g:2193:4: rule__XFunctionTypeRef__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group__0();
@@ -7460,11 +7379,11 @@
 
 
     // $ANTLR start "entryRuleJvmParameterizedTypeReference"
-    // InternalSignalDSL.g:2227:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
+    // InternalSignalDSL.g:2202:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
     public final void entryRuleJvmParameterizedTypeReference() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2228:1: ( ruleJvmParameterizedTypeReference EOF )
-            // InternalSignalDSL.g:2229:1: ruleJvmParameterizedTypeReference EOF
+            // InternalSignalDSL.g:2203:1: ( ruleJvmParameterizedTypeReference EOF )
+            // InternalSignalDSL.g:2204:1: ruleJvmParameterizedTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
@@ -7494,23 +7413,23 @@
 
 
     // $ANTLR start "ruleJvmParameterizedTypeReference"
-    // InternalSignalDSL.g:2236:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
+    // InternalSignalDSL.g:2211:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
     public final void ruleJvmParameterizedTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2240:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
-            // InternalSignalDSL.g:2241:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // InternalSignalDSL.g:2215:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
+            // InternalSignalDSL.g:2216:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
             {
-            // InternalSignalDSL.g:2241:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
-            // InternalSignalDSL.g:2242:3: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // InternalSignalDSL.g:2216:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // InternalSignalDSL.g:2217:3: ( rule__JvmParameterizedTypeReference__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2243:3: ( rule__JvmParameterizedTypeReference__Group__0 )
-            // InternalSignalDSL.g:2243:4: rule__JvmParameterizedTypeReference__Group__0
+            // InternalSignalDSL.g:2218:3: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // InternalSignalDSL.g:2218:4: rule__JvmParameterizedTypeReference__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group__0();
@@ -7545,11 +7464,11 @@
 
 
     // $ANTLR start "entryRuleJvmArgumentTypeReference"
-    // InternalSignalDSL.g:2252:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
+    // InternalSignalDSL.g:2227:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
     public final void entryRuleJvmArgumentTypeReference() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2253:1: ( ruleJvmArgumentTypeReference EOF )
-            // InternalSignalDSL.g:2254:1: ruleJvmArgumentTypeReference EOF
+            // InternalSignalDSL.g:2228:1: ( ruleJvmArgumentTypeReference EOF )
+            // InternalSignalDSL.g:2229:1: ruleJvmArgumentTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmArgumentTypeReferenceRule()); 
@@ -7579,23 +7498,23 @@
 
 
     // $ANTLR start "ruleJvmArgumentTypeReference"
-    // InternalSignalDSL.g:2261:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
+    // InternalSignalDSL.g:2236:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
     public final void ruleJvmArgumentTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2265:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
-            // InternalSignalDSL.g:2266:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // InternalSignalDSL.g:2240:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
+            // InternalSignalDSL.g:2241:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
             {
-            // InternalSignalDSL.g:2266:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
-            // InternalSignalDSL.g:2267:3: ( rule__JvmArgumentTypeReference__Alternatives )
+            // InternalSignalDSL.g:2241:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // InternalSignalDSL.g:2242:3: ( rule__JvmArgumentTypeReference__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:2268:3: ( rule__JvmArgumentTypeReference__Alternatives )
-            // InternalSignalDSL.g:2268:4: rule__JvmArgumentTypeReference__Alternatives
+            // InternalSignalDSL.g:2243:3: ( rule__JvmArgumentTypeReference__Alternatives )
+            // InternalSignalDSL.g:2243:4: rule__JvmArgumentTypeReference__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__JvmArgumentTypeReference__Alternatives();
@@ -7630,11 +7549,11 @@
 
 
     // $ANTLR start "entryRuleJvmWildcardTypeReference"
-    // InternalSignalDSL.g:2277:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
+    // InternalSignalDSL.g:2252:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
     public final void entryRuleJvmWildcardTypeReference() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2278:1: ( ruleJvmWildcardTypeReference EOF )
-            // InternalSignalDSL.g:2279:1: ruleJvmWildcardTypeReference EOF
+            // InternalSignalDSL.g:2253:1: ( ruleJvmWildcardTypeReference EOF )
+            // InternalSignalDSL.g:2254:1: ruleJvmWildcardTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceRule()); 
@@ -7664,23 +7583,23 @@
 
 
     // $ANTLR start "ruleJvmWildcardTypeReference"
-    // InternalSignalDSL.g:2286:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
+    // InternalSignalDSL.g:2261:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
     public final void ruleJvmWildcardTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2290:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
-            // InternalSignalDSL.g:2291:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // InternalSignalDSL.g:2265:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
+            // InternalSignalDSL.g:2266:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
             {
-            // InternalSignalDSL.g:2291:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
-            // InternalSignalDSL.g:2292:3: ( rule__JvmWildcardTypeReference__Group__0 )
+            // InternalSignalDSL.g:2266:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // InternalSignalDSL.g:2267:3: ( rule__JvmWildcardTypeReference__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2293:3: ( rule__JvmWildcardTypeReference__Group__0 )
-            // InternalSignalDSL.g:2293:4: rule__JvmWildcardTypeReference__Group__0
+            // InternalSignalDSL.g:2268:3: ( rule__JvmWildcardTypeReference__Group__0 )
+            // InternalSignalDSL.g:2268:4: rule__JvmWildcardTypeReference__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group__0();
@@ -7715,11 +7634,11 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBound"
-    // InternalSignalDSL.g:2302:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
+    // InternalSignalDSL.g:2277:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
     public final void entryRuleJvmUpperBound() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2303:1: ( ruleJvmUpperBound EOF )
-            // InternalSignalDSL.g:2304:1: ruleJvmUpperBound EOF
+            // InternalSignalDSL.g:2278:1: ( ruleJvmUpperBound EOF )
+            // InternalSignalDSL.g:2279:1: ruleJvmUpperBound EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundRule()); 
@@ -7749,23 +7668,23 @@
 
 
     // $ANTLR start "ruleJvmUpperBound"
-    // InternalSignalDSL.g:2311:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
+    // InternalSignalDSL.g:2286:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
     public final void ruleJvmUpperBound() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2315:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
-            // InternalSignalDSL.g:2316:2: ( ( rule__JvmUpperBound__Group__0 ) )
+            // InternalSignalDSL.g:2290:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
+            // InternalSignalDSL.g:2291:2: ( ( rule__JvmUpperBound__Group__0 ) )
             {
-            // InternalSignalDSL.g:2316:2: ( ( rule__JvmUpperBound__Group__0 ) )
-            // InternalSignalDSL.g:2317:3: ( rule__JvmUpperBound__Group__0 )
+            // InternalSignalDSL.g:2291:2: ( ( rule__JvmUpperBound__Group__0 ) )
+            // InternalSignalDSL.g:2292:3: ( rule__JvmUpperBound__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2318:3: ( rule__JvmUpperBound__Group__0 )
-            // InternalSignalDSL.g:2318:4: rule__JvmUpperBound__Group__0
+            // InternalSignalDSL.g:2293:3: ( rule__JvmUpperBound__Group__0 )
+            // InternalSignalDSL.g:2293:4: rule__JvmUpperBound__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__Group__0();
@@ -7800,11 +7719,11 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBoundAnded"
-    // InternalSignalDSL.g:2327:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
+    // InternalSignalDSL.g:2302:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
     public final void entryRuleJvmUpperBoundAnded() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2328:1: ( ruleJvmUpperBoundAnded EOF )
-            // InternalSignalDSL.g:2329:1: ruleJvmUpperBoundAnded EOF
+            // InternalSignalDSL.g:2303:1: ( ruleJvmUpperBoundAnded EOF )
+            // InternalSignalDSL.g:2304:1: ruleJvmUpperBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedRule()); 
@@ -7834,23 +7753,23 @@
 
 
     // $ANTLR start "ruleJvmUpperBoundAnded"
-    // InternalSignalDSL.g:2336:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
+    // InternalSignalDSL.g:2311:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
     public final void ruleJvmUpperBoundAnded() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2340:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
-            // InternalSignalDSL.g:2341:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // InternalSignalDSL.g:2315:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
+            // InternalSignalDSL.g:2316:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
             {
-            // InternalSignalDSL.g:2341:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
-            // InternalSignalDSL.g:2342:3: ( rule__JvmUpperBoundAnded__Group__0 )
+            // InternalSignalDSL.g:2316:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // InternalSignalDSL.g:2317:3: ( rule__JvmUpperBoundAnded__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2343:3: ( rule__JvmUpperBoundAnded__Group__0 )
-            // InternalSignalDSL.g:2343:4: rule__JvmUpperBoundAnded__Group__0
+            // InternalSignalDSL.g:2318:3: ( rule__JvmUpperBoundAnded__Group__0 )
+            // InternalSignalDSL.g:2318:4: rule__JvmUpperBoundAnded__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__Group__0();
@@ -7885,11 +7804,11 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBound"
-    // InternalSignalDSL.g:2352:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
+    // InternalSignalDSL.g:2327:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
     public final void entryRuleJvmLowerBound() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2353:1: ( ruleJvmLowerBound EOF )
-            // InternalSignalDSL.g:2354:1: ruleJvmLowerBound EOF
+            // InternalSignalDSL.g:2328:1: ( ruleJvmLowerBound EOF )
+            // InternalSignalDSL.g:2329:1: ruleJvmLowerBound EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundRule()); 
@@ -7919,23 +7838,23 @@
 
 
     // $ANTLR start "ruleJvmLowerBound"
-    // InternalSignalDSL.g:2361:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
+    // InternalSignalDSL.g:2336:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
     public final void ruleJvmLowerBound() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2365:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
-            // InternalSignalDSL.g:2366:2: ( ( rule__JvmLowerBound__Group__0 ) )
+            // InternalSignalDSL.g:2340:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
+            // InternalSignalDSL.g:2341:2: ( ( rule__JvmLowerBound__Group__0 ) )
             {
-            // InternalSignalDSL.g:2366:2: ( ( rule__JvmLowerBound__Group__0 ) )
-            // InternalSignalDSL.g:2367:3: ( rule__JvmLowerBound__Group__0 )
+            // InternalSignalDSL.g:2341:2: ( ( rule__JvmLowerBound__Group__0 ) )
+            // InternalSignalDSL.g:2342:3: ( rule__JvmLowerBound__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2368:3: ( rule__JvmLowerBound__Group__0 )
-            // InternalSignalDSL.g:2368:4: rule__JvmLowerBound__Group__0
+            // InternalSignalDSL.g:2343:3: ( rule__JvmLowerBound__Group__0 )
+            // InternalSignalDSL.g:2343:4: rule__JvmLowerBound__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__Group__0();
@@ -7970,11 +7889,11 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBoundAnded"
-    // InternalSignalDSL.g:2377:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
+    // InternalSignalDSL.g:2352:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
     public final void entryRuleJvmLowerBoundAnded() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2378:1: ( ruleJvmLowerBoundAnded EOF )
-            // InternalSignalDSL.g:2379:1: ruleJvmLowerBoundAnded EOF
+            // InternalSignalDSL.g:2353:1: ( ruleJvmLowerBoundAnded EOF )
+            // InternalSignalDSL.g:2354:1: ruleJvmLowerBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedRule()); 
@@ -8004,23 +7923,23 @@
 
 
     // $ANTLR start "ruleJvmLowerBoundAnded"
-    // InternalSignalDSL.g:2386:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
+    // InternalSignalDSL.g:2361:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
     public final void ruleJvmLowerBoundAnded() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2390:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
-            // InternalSignalDSL.g:2391:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // InternalSignalDSL.g:2365:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
+            // InternalSignalDSL.g:2366:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
             {
-            // InternalSignalDSL.g:2391:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
-            // InternalSignalDSL.g:2392:3: ( rule__JvmLowerBoundAnded__Group__0 )
+            // InternalSignalDSL.g:2366:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // InternalSignalDSL.g:2367:3: ( rule__JvmLowerBoundAnded__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2393:3: ( rule__JvmLowerBoundAnded__Group__0 )
-            // InternalSignalDSL.g:2393:4: rule__JvmLowerBoundAnded__Group__0
+            // InternalSignalDSL.g:2368:3: ( rule__JvmLowerBoundAnded__Group__0 )
+            // InternalSignalDSL.g:2368:4: rule__JvmLowerBoundAnded__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__Group__0();
@@ -8055,11 +7974,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameWithWildcard"
-    // InternalSignalDSL.g:2402:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
+    // InternalSignalDSL.g:2377:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
     public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2403:1: ( ruleQualifiedNameWithWildcard EOF )
-            // InternalSignalDSL.g:2404:1: ruleQualifiedNameWithWildcard EOF
+            // InternalSignalDSL.g:2378:1: ( ruleQualifiedNameWithWildcard EOF )
+            // InternalSignalDSL.g:2379:1: ruleQualifiedNameWithWildcard EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardRule()); 
@@ -8089,23 +8008,23 @@
 
 
     // $ANTLR start "ruleQualifiedNameWithWildcard"
-    // InternalSignalDSL.g:2411:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
+    // InternalSignalDSL.g:2386:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
     public final void ruleQualifiedNameWithWildcard() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2415:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
-            // InternalSignalDSL.g:2416:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // InternalSignalDSL.g:2390:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
+            // InternalSignalDSL.g:2391:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
             {
-            // InternalSignalDSL.g:2416:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
-            // InternalSignalDSL.g:2417:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // InternalSignalDSL.g:2391:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // InternalSignalDSL.g:2392:3: ( rule__QualifiedNameWithWildcard__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2418:3: ( rule__QualifiedNameWithWildcard__Group__0 )
-            // InternalSignalDSL.g:2418:4: rule__QualifiedNameWithWildcard__Group__0
+            // InternalSignalDSL.g:2393:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // InternalSignalDSL.g:2393:4: rule__QualifiedNameWithWildcard__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameWithWildcard__Group__0();
@@ -8140,11 +8059,11 @@
 
 
     // $ANTLR start "entryRuleValidID"
-    // InternalSignalDSL.g:2427:1: entryRuleValidID : ruleValidID EOF ;
+    // InternalSignalDSL.g:2402:1: entryRuleValidID : ruleValidID EOF ;
     public final void entryRuleValidID() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2428:1: ( ruleValidID EOF )
-            // InternalSignalDSL.g:2429:1: ruleValidID EOF
+            // InternalSignalDSL.g:2403:1: ( ruleValidID EOF )
+            // InternalSignalDSL.g:2404:1: ruleValidID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getValidIDRule()); 
@@ -8174,17 +8093,17 @@
 
 
     // $ANTLR start "ruleValidID"
-    // InternalSignalDSL.g:2436:1: ruleValidID : ( RULE_ID ) ;
+    // InternalSignalDSL.g:2411:1: ruleValidID : ( RULE_ID ) ;
     public final void ruleValidID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2440:2: ( ( RULE_ID ) )
-            // InternalSignalDSL.g:2441:2: ( RULE_ID )
+            // InternalSignalDSL.g:2415:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:2416:2: ( RULE_ID )
             {
-            // InternalSignalDSL.g:2441:2: ( RULE_ID )
-            // InternalSignalDSL.g:2442:3: RULE_ID
+            // InternalSignalDSL.g:2416:2: ( RULE_ID )
+            // InternalSignalDSL.g:2417:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
@@ -8215,11 +8134,11 @@
 
 
     // $ANTLR start "entryRuleXImportSection"
-    // InternalSignalDSL.g:2452:1: entryRuleXImportSection : ruleXImportSection EOF ;
+    // InternalSignalDSL.g:2427:1: entryRuleXImportSection : ruleXImportSection EOF ;
     public final void entryRuleXImportSection() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2453:1: ( ruleXImportSection EOF )
-            // InternalSignalDSL.g:2454:1: ruleXImportSection EOF
+            // InternalSignalDSL.g:2428:1: ( ruleXImportSection EOF )
+            // InternalSignalDSL.g:2429:1: ruleXImportSection EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionRule()); 
@@ -8249,26 +8168,26 @@
 
 
     // $ANTLR start "ruleXImportSection"
-    // InternalSignalDSL.g:2461:1: ruleXImportSection : ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) ;
+    // InternalSignalDSL.g:2436:1: ruleXImportSection : ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) ;
     public final void ruleXImportSection() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2465:2: ( ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) )
-            // InternalSignalDSL.g:2466:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+            // InternalSignalDSL.g:2440:2: ( ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) )
+            // InternalSignalDSL.g:2441:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
             {
-            // InternalSignalDSL.g:2466:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
-            // InternalSignalDSL.g:2467:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+            // InternalSignalDSL.g:2441:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+            // InternalSignalDSL.g:2442:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
             {
-            // InternalSignalDSL.g:2467:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) )
-            // InternalSignalDSL.g:2468:4: ( rule__XImportSection__ImportDeclarationsAssignment )
+            // InternalSignalDSL.g:2442:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) )
+            // InternalSignalDSL.g:2443:4: ( rule__XImportSection__ImportDeclarationsAssignment )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
             }
-            // InternalSignalDSL.g:2469:4: ( rule__XImportSection__ImportDeclarationsAssignment )
-            // InternalSignalDSL.g:2469:5: rule__XImportSection__ImportDeclarationsAssignment
+            // InternalSignalDSL.g:2444:4: ( rule__XImportSection__ImportDeclarationsAssignment )
+            // InternalSignalDSL.g:2444:5: rule__XImportSection__ImportDeclarationsAssignment
             {
             pushFollow(FOLLOW_3);
             rule__XImportSection__ImportDeclarationsAssignment();
@@ -8284,26 +8203,26 @@
 
             }
 
-            // InternalSignalDSL.g:2472:3: ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
-            // InternalSignalDSL.g:2473:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
+            // InternalSignalDSL.g:2447:3: ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+            // InternalSignalDSL.g:2448:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
             }
-            // InternalSignalDSL.g:2474:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
+            // InternalSignalDSL.g:2449:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
             loop1:
             do {
                 int alt1=2;
                 int LA1_0 = input.LA(1);
 
-                if ( (LA1_0==47) ) {
+                if ( (LA1_0==48) ) {
                     alt1=1;
                 }
 
 
                 switch (alt1) {
             	case 1 :
-            	    // InternalSignalDSL.g:2474:5: rule__XImportSection__ImportDeclarationsAssignment
+            	    // InternalSignalDSL.g:2449:5: rule__XImportSection__ImportDeclarationsAssignment
             	    {
             	    pushFollow(FOLLOW_3);
             	    rule__XImportSection__ImportDeclarationsAssignment();
@@ -8347,11 +8266,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameInStaticImport"
-    // InternalSignalDSL.g:2484:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
+    // InternalSignalDSL.g:2459:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
     public final void entryRuleQualifiedNameInStaticImport() throws RecognitionException {
         try {
-            // InternalSignalDSL.g:2485:1: ( ruleQualifiedNameInStaticImport EOF )
-            // InternalSignalDSL.g:2486:1: ruleQualifiedNameInStaticImport EOF
+            // InternalSignalDSL.g:2460:1: ( ruleQualifiedNameInStaticImport EOF )
+            // InternalSignalDSL.g:2461:1: ruleQualifiedNameInStaticImport EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportRule()); 
@@ -8381,26 +8300,26 @@
 
 
     // $ANTLR start "ruleQualifiedNameInStaticImport"
-    // InternalSignalDSL.g:2493:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
+    // InternalSignalDSL.g:2468:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
     public final void ruleQualifiedNameInStaticImport() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2497:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
-            // InternalSignalDSL.g:2498:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // InternalSignalDSL.g:2472:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
+            // InternalSignalDSL.g:2473:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
             {
-            // InternalSignalDSL.g:2498:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
-            // InternalSignalDSL.g:2499:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // InternalSignalDSL.g:2473:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // InternalSignalDSL.g:2474:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
             {
-            // InternalSignalDSL.g:2499:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
-            // InternalSignalDSL.g:2500:4: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // InternalSignalDSL.g:2474:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
+            // InternalSignalDSL.g:2475:4: ( rule__QualifiedNameInStaticImport__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2501:4: ( rule__QualifiedNameInStaticImport__Group__0 )
-            // InternalSignalDSL.g:2501:5: rule__QualifiedNameInStaticImport__Group__0
+            // InternalSignalDSL.g:2476:4: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // InternalSignalDSL.g:2476:5: rule__QualifiedNameInStaticImport__Group__0
             {
             pushFollow(FOLLOW_4);
             rule__QualifiedNameInStaticImport__Group__0();
@@ -8416,13 +8335,13 @@
 
             }
 
-            // InternalSignalDSL.g:2504:3: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
-            // InternalSignalDSL.g:2505:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            // InternalSignalDSL.g:2479:3: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // InternalSignalDSL.g:2480:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
             }
-            // InternalSignalDSL.g:2506:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            // InternalSignalDSL.g:2481:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
             loop2:
             do {
                 int alt2=2;
@@ -8431,7 +8350,7 @@
                 if ( (LA2_0==RULE_ID) ) {
                     int LA2_2 = input.LA(2);
 
-                    if ( (LA2_2==43) ) {
+                    if ( (LA2_2==44) ) {
                         alt2=1;
                     }
 
@@ -8441,7 +8360,7 @@
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalSignalDSL.g:2506:5: rule__QualifiedNameInStaticImport__Group__0
+            	    // InternalSignalDSL.g:2481:5: rule__QualifiedNameInStaticImport__Group__0
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__QualifiedNameInStaticImport__Group__0();
@@ -8484,27 +8403,27 @@
     // $ANTLR end "ruleQualifiedNameInStaticImport"
 
 
-    // $ANTLR start "ruleSignalActionEnum"
-    // InternalSignalDSL.g:2516:1: ruleSignalActionEnum : ( ( rule__SignalActionEnum__Alternatives ) ) ;
-    public final void ruleSignalActionEnum() throws RecognitionException {
+    // $ANTLR start "ruleSignalActionTypeEnum"
+    // InternalSignalDSL.g:2491:1: ruleSignalActionTypeEnum : ( ( rule__SignalActionTypeEnum__Alternatives ) ) ;
+    public final void ruleSignalActionTypeEnum() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2520:1: ( ( ( rule__SignalActionEnum__Alternatives ) ) )
-            // InternalSignalDSL.g:2521:2: ( ( rule__SignalActionEnum__Alternatives ) )
+            // InternalSignalDSL.g:2495:1: ( ( ( rule__SignalActionTypeEnum__Alternatives ) ) )
+            // InternalSignalDSL.g:2496:2: ( ( rule__SignalActionTypeEnum__Alternatives ) )
             {
-            // InternalSignalDSL.g:2521:2: ( ( rule__SignalActionEnum__Alternatives ) )
-            // InternalSignalDSL.g:2522:3: ( rule__SignalActionEnum__Alternatives )
+            // InternalSignalDSL.g:2496:2: ( ( rule__SignalActionTypeEnum__Alternatives ) )
+            // InternalSignalDSL.g:2497:3: ( rule__SignalActionTypeEnum__Alternatives )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalActionEnumAccess().getAlternatives()); 
+               before(grammarAccess.getSignalActionTypeEnumAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:2523:3: ( rule__SignalActionEnum__Alternatives )
-            // InternalSignalDSL.g:2523:4: rule__SignalActionEnum__Alternatives
+            // InternalSignalDSL.g:2498:3: ( rule__SignalActionTypeEnum__Alternatives )
+            // InternalSignalDSL.g:2498:4: rule__SignalActionTypeEnum__Alternatives
             {
             pushFollow(FOLLOW_2);
-            rule__SignalActionEnum__Alternatives();
+            rule__SignalActionTypeEnum__Alternatives();
 
             state._fsp--;
             if (state.failed) return ;
@@ -8512,7 +8431,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalActionEnumAccess().getAlternatives()); 
+               after(grammarAccess.getSignalActionTypeEnumAccess().getAlternatives()); 
             }
 
             }
@@ -8532,27 +8451,27 @@
         }
         return ;
     }
-    // $ANTLR end "ruleSignalActionEnum"
+    // $ANTLR end "ruleSignalActionTypeEnum"
 
 
     // $ANTLR start "ruleSignalExecutionTypeEnum"
-    // InternalSignalDSL.g:2532:1: ruleSignalExecutionTypeEnum : ( ( rule__SignalExecutionTypeEnum__Alternatives ) ) ;
+    // InternalSignalDSL.g:2507:1: ruleSignalExecutionTypeEnum : ( ( rule__SignalExecutionTypeEnum__Alternatives ) ) ;
     public final void ruleSignalExecutionTypeEnum() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2536:1: ( ( ( rule__SignalExecutionTypeEnum__Alternatives ) ) )
-            // InternalSignalDSL.g:2537:2: ( ( rule__SignalExecutionTypeEnum__Alternatives ) )
+            // InternalSignalDSL.g:2511:1: ( ( ( rule__SignalExecutionTypeEnum__Alternatives ) ) )
+            // InternalSignalDSL.g:2512:2: ( ( rule__SignalExecutionTypeEnum__Alternatives ) )
             {
-            // InternalSignalDSL.g:2537:2: ( ( rule__SignalExecutionTypeEnum__Alternatives ) )
-            // InternalSignalDSL.g:2538:3: ( rule__SignalExecutionTypeEnum__Alternatives )
+            // InternalSignalDSL.g:2512:2: ( ( rule__SignalExecutionTypeEnum__Alternatives ) )
+            // InternalSignalDSL.g:2513:3: ( rule__SignalExecutionTypeEnum__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalExecutionTypeEnumAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:2539:3: ( rule__SignalExecutionTypeEnum__Alternatives )
-            // InternalSignalDSL.g:2539:4: rule__SignalExecutionTypeEnum__Alternatives
+            // InternalSignalDSL.g:2514:3: ( rule__SignalExecutionTypeEnum__Alternatives )
+            // InternalSignalDSL.g:2514:4: rule__SignalExecutionTypeEnum__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__SignalExecutionTypeEnum__Alternatives();
@@ -8587,23 +8506,23 @@
 
 
     // $ANTLR start "ruleDayOfWeekEnum"
-    // InternalSignalDSL.g:2548:1: ruleDayOfWeekEnum : ( ( rule__DayOfWeekEnum__Alternatives ) ) ;
+    // InternalSignalDSL.g:2523:1: ruleDayOfWeekEnum : ( ( rule__DayOfWeekEnum__Alternatives ) ) ;
     public final void ruleDayOfWeekEnum() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2552:1: ( ( ( rule__DayOfWeekEnum__Alternatives ) ) )
-            // InternalSignalDSL.g:2553:2: ( ( rule__DayOfWeekEnum__Alternatives ) )
+            // InternalSignalDSL.g:2527:1: ( ( ( rule__DayOfWeekEnum__Alternatives ) ) )
+            // InternalSignalDSL.g:2528:2: ( ( rule__DayOfWeekEnum__Alternatives ) )
             {
-            // InternalSignalDSL.g:2553:2: ( ( rule__DayOfWeekEnum__Alternatives ) )
-            // InternalSignalDSL.g:2554:3: ( rule__DayOfWeekEnum__Alternatives )
+            // InternalSignalDSL.g:2528:2: ( ( rule__DayOfWeekEnum__Alternatives ) )
+            // InternalSignalDSL.g:2529:3: ( rule__DayOfWeekEnum__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDayOfWeekEnumAccess().getAlternatives()); 
             }
-            // InternalSignalDSL.g:2555:3: ( rule__DayOfWeekEnum__Alternatives )
-            // InternalSignalDSL.g:2555:4: rule__DayOfWeekEnum__Alternatives
+            // InternalSignalDSL.g:2530:3: ( rule__DayOfWeekEnum__Alternatives )
+            // InternalSignalDSL.g:2530:4: rule__DayOfWeekEnum__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__DayOfWeekEnum__Alternatives();
@@ -8638,17 +8557,17 @@
 
 
     // $ANTLR start "rule__SignalDefinition__Alternatives"
-    // InternalSignalDSL.g:2563:1: rule__SignalDefinition__Alternatives : ( ( ruleSignalWatcher ) | ( ruleSignalScheduler ) );
+    // InternalSignalDSL.g:2538:1: rule__SignalDefinition__Alternatives : ( ( ruleSignalWatcher ) | ( ruleSignalScheduler ) );
     public final void rule__SignalDefinition__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2567:1: ( ( ruleSignalWatcher ) | ( ruleSignalScheduler ) )
+            // InternalSignalDSL.g:2542:1: ( ( ruleSignalWatcher ) | ( ruleSignalScheduler ) )
             int alt3=2;
             int LA3_0 = input.LA(1);
 
-            if ( (LA3_0==64) ) {
+            if ( (LA3_0==65) ) {
                 alt3=1;
             }
             else if ( (LA3_0==68) ) {
@@ -8663,10 +8582,10 @@
             }
             switch (alt3) {
                 case 1 :
-                    // InternalSignalDSL.g:2568:2: ( ruleSignalWatcher )
+                    // InternalSignalDSL.g:2543:2: ( ruleSignalWatcher )
                     {
-                    // InternalSignalDSL.g:2568:2: ( ruleSignalWatcher )
-                    // InternalSignalDSL.g:2569:3: ruleSignalWatcher
+                    // InternalSignalDSL.g:2543:2: ( ruleSignalWatcher )
+                    // InternalSignalDSL.g:2544:3: ruleSignalWatcher
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSignalDefinitionAccess().getSignalWatcherParserRuleCall_0()); 
@@ -8686,10 +8605,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2574:2: ( ruleSignalScheduler )
+                    // InternalSignalDSL.g:2549:2: ( ruleSignalScheduler )
                     {
-                    // InternalSignalDSL.g:2574:2: ( ruleSignalScheduler )
-                    // InternalSignalDSL.g:2575:3: ruleSignalScheduler
+                    // InternalSignalDSL.g:2549:2: ( ruleSignalScheduler )
+                    // InternalSignalDSL.g:2550:3: ruleSignalScheduler
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSignalDefinitionAccess().getSignalSchedulerParserRuleCall_1()); 
@@ -8725,21 +8644,21 @@
     // $ANTLR end "rule__SignalDefinition__Alternatives"
 
 
-    // $ANTLR start "rule__WatcherDefinition__Alternatives"
-    // InternalSignalDSL.g:2584:1: rule__WatcherDefinition__Alternatives : ( ( ruleWatcherWithFileMask ) | ( ruleWatcherWithFileName ) );
-    public final void rule__WatcherDefinition__Alternatives() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Alternatives_3"
+    // InternalSignalDSL.g:2559:1: rule__SignalWatcher__Alternatives_3 : ( ( ( rule__SignalWatcher__HasFileMaskAssignment_3_0 ) ) | ( 'filename' ) );
+    public final void rule__SignalWatcher__Alternatives_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2588:1: ( ( ruleWatcherWithFileMask ) | ( ruleWatcherWithFileName ) )
+            // InternalSignalDSL.g:2563:1: ( ( ( rule__SignalWatcher__HasFileMaskAssignment_3_0 ) ) | ( 'filename' ) )
             int alt4=2;
             int LA4_0 = input.LA(1);
 
-            if ( (LA4_0==65) ) {
+            if ( (LA4_0==107) ) {
                 alt4=1;
             }
-            else if ( (LA4_0==67) ) {
+            else if ( (LA4_0==16) ) {
                 alt4=2;
             }
             else {
@@ -8751,21 +8670,27 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalSignalDSL.g:2589:2: ( ruleWatcherWithFileMask )
+                    // InternalSignalDSL.g:2564:2: ( ( rule__SignalWatcher__HasFileMaskAssignment_3_0 ) )
                     {
-                    // InternalSignalDSL.g:2589:2: ( ruleWatcherWithFileMask )
-                    // InternalSignalDSL.g:2590:3: ruleWatcherWithFileMask
+                    // InternalSignalDSL.g:2564:2: ( ( rule__SignalWatcher__HasFileMaskAssignment_3_0 ) )
+                    // InternalSignalDSL.g:2565:3: ( rule__SignalWatcher__HasFileMaskAssignment_3_0 )
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getWatcherDefinitionAccess().getWatcherWithFileMaskParserRuleCall_0()); 
+                       before(grammarAccess.getSignalWatcherAccess().getHasFileMaskAssignment_3_0()); 
                     }
+                    // InternalSignalDSL.g:2566:3: ( rule__SignalWatcher__HasFileMaskAssignment_3_0 )
+                    // InternalSignalDSL.g:2566:4: rule__SignalWatcher__HasFileMaskAssignment_3_0
+                    {
                     pushFollow(FOLLOW_2);
-                    ruleWatcherWithFileMask();
+                    rule__SignalWatcher__HasFileMaskAssignment_3_0();
 
                     state._fsp--;
                     if (state.failed) return ;
+
+                    }
+
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getWatcherDefinitionAccess().getWatcherWithFileMaskParserRuleCall_0()); 
+                       after(grammarAccess.getSignalWatcherAccess().getHasFileMaskAssignment_3_0()); 
                     }
 
                     }
@@ -8774,21 +8699,17 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2595:2: ( ruleWatcherWithFileName )
+                    // InternalSignalDSL.g:2570:2: ( 'filename' )
                     {
-                    // InternalSignalDSL.g:2595:2: ( ruleWatcherWithFileName )
-                    // InternalSignalDSL.g:2596:3: ruleWatcherWithFileName
+                    // InternalSignalDSL.g:2570:2: ( 'filename' )
+                    // InternalSignalDSL.g:2571:3: 'filename'
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getWatcherDefinitionAccess().getWatcherWithFileNameParserRuleCall_1()); 
+                       before(grammarAccess.getSignalWatcherAccess().getFilenameKeyword_3_1()); 
                     }
-                    pushFollow(FOLLOW_2);
-                    ruleWatcherWithFileName();
-
-                    state._fsp--;
-                    if (state.failed) return ;
+                    match(input,16,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getWatcherDefinitionAccess().getWatcherWithFileNameParserRuleCall_1()); 
+                       after(grammarAccess.getSignalWatcherAccess().getFilenameKeyword_3_1()); 
                     }
 
                     }
@@ -8810,17 +8731,17 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherDefinition__Alternatives"
+    // $ANTLR end "rule__SignalWatcher__Alternatives_3"
 
 
     // $ANTLR start "rule__SchedulerType__Alternatives"
-    // InternalSignalDSL.g:2605:1: rule__SchedulerType__Alternatives : ( ( ruleCronScheduler ) | ( ruleHourlyScheduler ) | ( ruleDailyScheduler ) | ( ruleWeeklyScheduler ) | ( ruleMonthlyScheduler ) );
+    // InternalSignalDSL.g:2580:1: rule__SchedulerType__Alternatives : ( ( ruleCronScheduler ) | ( ruleHourlyScheduler ) | ( ruleDailyScheduler ) | ( ruleWeeklyScheduler ) | ( ruleMonthlyScheduler ) );
     public final void rule__SchedulerType__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2609:1: ( ( ruleCronScheduler ) | ( ruleHourlyScheduler ) | ( ruleDailyScheduler ) | ( ruleWeeklyScheduler ) | ( ruleMonthlyScheduler ) )
+            // InternalSignalDSL.g:2584:1: ( ( ruleCronScheduler ) | ( ruleHourlyScheduler ) | ( ruleDailyScheduler ) | ( ruleWeeklyScheduler ) | ( ruleMonthlyScheduler ) )
             int alt5=5;
             switch ( input.LA(1) ) {
             case 69:
@@ -8858,10 +8779,10 @@
 
             switch (alt5) {
                 case 1 :
-                    // InternalSignalDSL.g:2610:2: ( ruleCronScheduler )
+                    // InternalSignalDSL.g:2585:2: ( ruleCronScheduler )
                     {
-                    // InternalSignalDSL.g:2610:2: ( ruleCronScheduler )
-                    // InternalSignalDSL.g:2611:3: ruleCronScheduler
+                    // InternalSignalDSL.g:2585:2: ( ruleCronScheduler )
+                    // InternalSignalDSL.g:2586:3: ruleCronScheduler
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSchedulerTypeAccess().getCronSchedulerParserRuleCall_0()); 
@@ -8881,10 +8802,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2616:2: ( ruleHourlyScheduler )
+                    // InternalSignalDSL.g:2591:2: ( ruleHourlyScheduler )
                     {
-                    // InternalSignalDSL.g:2616:2: ( ruleHourlyScheduler )
-                    // InternalSignalDSL.g:2617:3: ruleHourlyScheduler
+                    // InternalSignalDSL.g:2591:2: ( ruleHourlyScheduler )
+                    // InternalSignalDSL.g:2592:3: ruleHourlyScheduler
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSchedulerTypeAccess().getHourlySchedulerParserRuleCall_1()); 
@@ -8904,10 +8825,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2622:2: ( ruleDailyScheduler )
+                    // InternalSignalDSL.g:2597:2: ( ruleDailyScheduler )
                     {
-                    // InternalSignalDSL.g:2622:2: ( ruleDailyScheduler )
-                    // InternalSignalDSL.g:2623:3: ruleDailyScheduler
+                    // InternalSignalDSL.g:2597:2: ( ruleDailyScheduler )
+                    // InternalSignalDSL.g:2598:3: ruleDailyScheduler
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSchedulerTypeAccess().getDailySchedulerParserRuleCall_2()); 
@@ -8927,10 +8848,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2628:2: ( ruleWeeklyScheduler )
+                    // InternalSignalDSL.g:2603:2: ( ruleWeeklyScheduler )
                     {
-                    // InternalSignalDSL.g:2628:2: ( ruleWeeklyScheduler )
-                    // InternalSignalDSL.g:2629:3: ruleWeeklyScheduler
+                    // InternalSignalDSL.g:2603:2: ( ruleWeeklyScheduler )
+                    // InternalSignalDSL.g:2604:3: ruleWeeklyScheduler
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSchedulerTypeAccess().getWeeklySchedulerParserRuleCall_3()); 
@@ -8950,10 +8871,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:2634:2: ( ruleMonthlyScheduler )
+                    // InternalSignalDSL.g:2609:2: ( ruleMonthlyScheduler )
                     {
-                    // InternalSignalDSL.g:2634:2: ( ruleMonthlyScheduler )
-                    // InternalSignalDSL.g:2635:3: ruleMonthlyScheduler
+                    // InternalSignalDSL.g:2609:2: ( ruleMonthlyScheduler )
+                    // InternalSignalDSL.g:2610:3: ruleMonthlyScheduler
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSchedulerTypeAccess().getMonthlySchedulerParserRuleCall_4()); 
@@ -8989,28 +8910,254 @@
     // $ANTLR end "rule__SchedulerType__Alternatives"
 
 
+    // $ANTLR start "rule__SignalTask__Alternatives"
+    // InternalSignalDSL.g:2619:1: rule__SignalTask__Alternatives : ( ( ruleSignalDatainterchange ) | ( ruleSignalFunction ) );
+    public final void rule__SignalTask__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:2623:1: ( ( ruleSignalDatainterchange ) | ( ruleSignalFunction ) )
+            int alt6=2;
+            int LA6_0 = input.LA(1);
+
+            if ( (LA6_0==48||LA6_0==52) ) {
+                alt6=1;
+            }
+            else if ( (LA6_0==76) ) {
+                alt6=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 6, 0, input);
+
+                throw nvae;
+            }
+            switch (alt6) {
+                case 1 :
+                    // InternalSignalDSL.g:2624:2: ( ruleSignalDatainterchange )
+                    {
+                    // InternalSignalDSL.g:2624:2: ( ruleSignalDatainterchange )
+                    // InternalSignalDSL.g:2625:3: ruleSignalDatainterchange
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getSignalTaskAccess().getSignalDatainterchangeParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleSignalDatainterchange();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getSignalTaskAccess().getSignalDatainterchangeParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:2630:2: ( ruleSignalFunction )
+                    {
+                    // InternalSignalDSL.g:2630:2: ( ruleSignalFunction )
+                    // InternalSignalDSL.g:2631:3: ruleSignalFunction
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getSignalTaskAccess().getSignalFunctionParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleSignalFunction();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getSignalTaskAccess().getSignalFunctionParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalTask__Alternatives"
+
+
+    // $ANTLR start "rule__SignalFunction__Alternatives_2"
+    // InternalSignalDSL.g:2640:1: rule__SignalFunction__Alternatives_2 : ( ( ( rule__SignalFunction__Group_2_0__0 ) ) | ( ( rule__SignalFunction__Group_2_1__0 ) ) | ( ( rule__SignalFunction__Group_2_2__0 ) ) );
+    public final void rule__SignalFunction__Alternatives_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:2644:1: ( ( ( rule__SignalFunction__Group_2_0__0 ) ) | ( ( rule__SignalFunction__Group_2_1__0 ) ) | ( ( rule__SignalFunction__Group_2_2__0 ) ) )
+            int alt7=3;
+            switch ( input.LA(1) ) {
+            case 77:
+                {
+                alt7=1;
+                }
+                break;
+            case 108:
+                {
+                alt7=2;
+                }
+                break;
+            case 109:
+                {
+                alt7=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 7, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt7) {
+                case 1 :
+                    // InternalSignalDSL.g:2645:2: ( ( rule__SignalFunction__Group_2_0__0 ) )
+                    {
+                    // InternalSignalDSL.g:2645:2: ( ( rule__SignalFunction__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:2646:3: ( rule__SignalFunction__Group_2_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getSignalFunctionAccess().getGroup_2_0()); 
+                    }
+                    // InternalSignalDSL.g:2647:3: ( rule__SignalFunction__Group_2_0__0 )
+                    // InternalSignalDSL.g:2647:4: rule__SignalFunction__Group_2_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__SignalFunction__Group_2_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getSignalFunctionAccess().getGroup_2_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:2651:2: ( ( rule__SignalFunction__Group_2_1__0 ) )
+                    {
+                    // InternalSignalDSL.g:2651:2: ( ( rule__SignalFunction__Group_2_1__0 ) )
+                    // InternalSignalDSL.g:2652:3: ( rule__SignalFunction__Group_2_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getSignalFunctionAccess().getGroup_2_1()); 
+                    }
+                    // InternalSignalDSL.g:2653:3: ( rule__SignalFunction__Group_2_1__0 )
+                    // InternalSignalDSL.g:2653:4: rule__SignalFunction__Group_2_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__SignalFunction__Group_2_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getSignalFunctionAccess().getGroup_2_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalSignalDSL.g:2657:2: ( ( rule__SignalFunction__Group_2_2__0 ) )
+                    {
+                    // InternalSignalDSL.g:2657:2: ( ( rule__SignalFunction__Group_2_2__0 ) )
+                    // InternalSignalDSL.g:2658:3: ( rule__SignalFunction__Group_2_2__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getSignalFunctionAccess().getGroup_2_2()); 
+                    }
+                    // InternalSignalDSL.g:2659:3: ( rule__SignalFunction__Group_2_2__0 )
+                    // InternalSignalDSL.g:2659:4: rule__SignalFunction__Group_2_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__SignalFunction__Group_2_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getSignalFunctionAccess().getGroup_2_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Alternatives_2"
+
+
     // $ANTLR start "rule__XImportDeclaration__Alternatives_2"
-    // InternalSignalDSL.g:2644:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );
+    // InternalSignalDSL.g:2667:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );
     public final void rule__XImportDeclaration__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2648:1: ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) )
-            int alt6=4;
-            alt6 = dfa6.predict(input);
-            switch (alt6) {
+            // InternalSignalDSL.g:2671:1: ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) )
+            int alt8=4;
+            alt8 = dfa8.predict(input);
+            switch (alt8) {
                 case 1 :
-                    // InternalSignalDSL.g:2649:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:2672:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2649:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
-                    // InternalSignalDSL.g:2650:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalSignalDSL.g:2672:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:2673:3: ( rule__XImportDeclaration__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getGroup_2_0()); 
                     }
-                    // InternalSignalDSL.g:2651:3: ( rule__XImportDeclaration__Group_2_0__0 )
-                    // InternalSignalDSL.g:2651:4: rule__XImportDeclaration__Group_2_0__0
+                    // InternalSignalDSL.g:2674:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalSignalDSL.g:2674:4: rule__XImportDeclaration__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__Group_2_0__0();
@@ -9030,16 +9177,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2655:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalSignalDSL.g:2678:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
                     {
-                    // InternalSignalDSL.g:2655:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
-                    // InternalSignalDSL.g:2656:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalSignalDSL.g:2678:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalSignalDSL.g:2679:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_1()); 
                     }
-                    // InternalSignalDSL.g:2657:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
-                    // InternalSignalDSL.g:2657:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
+                    // InternalSignalDSL.g:2680:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalSignalDSL.g:2680:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ImportedTypeAssignment_2_1();
@@ -9059,16 +9206,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2661:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalSignalDSL.g:2684:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
                     {
-                    // InternalSignalDSL.g:2661:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
-                    // InternalSignalDSL.g:2662:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalSignalDSL.g:2684:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalSignalDSL.g:2685:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_2_2()); 
                     }
-                    // InternalSignalDSL.g:2663:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
-                    // InternalSignalDSL.g:2663:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
+                    // InternalSignalDSL.g:2686:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalSignalDSL.g:2686:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ImportedNamespaceAssignment_2_2();
@@ -9088,16 +9235,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2667:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalSignalDSL.g:2690:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
                     {
-                    // InternalSignalDSL.g:2667:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
-                    // InternalSignalDSL.g:2668:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalSignalDSL.g:2690:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalSignalDSL.g:2691:3: ( rule__XImportDeclaration__Group_2_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getGroup_2_3()); 
                     }
-                    // InternalSignalDSL.g:2669:3: ( rule__XImportDeclaration__Group_2_3__0 )
-                    // InternalSignalDSL.g:2669:4: rule__XImportDeclaration__Group_2_3__0
+                    // InternalSignalDSL.g:2692:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalSignalDSL.g:2692:4: rule__XImportDeclaration__Group_2_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__Group_2_3__0();
@@ -9134,41 +9281,41 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Alternatives_2_0_3"
-    // InternalSignalDSL.g:2677:1: rule__XImportDeclaration__Alternatives_2_0_3 : ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) );
+    // InternalSignalDSL.g:2700:1: rule__XImportDeclaration__Alternatives_2_0_3 : ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) );
     public final void rule__XImportDeclaration__Alternatives_2_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2681:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
-            int alt7=2;
-            int LA7_0 = input.LA(1);
+            // InternalSignalDSL.g:2704:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
+            int alt9=2;
+            int LA9_0 = input.LA(1);
 
-            if ( (LA7_0==36) ) {
-                alt7=1;
+            if ( (LA9_0==37) ) {
+                alt9=1;
             }
-            else if ( (LA7_0==RULE_ID) ) {
-                alt7=2;
+            else if ( (LA9_0==RULE_ID) ) {
+                alt9=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 7, 0, input);
+                    new NoViableAltException("", 9, 0, input);
 
                 throw nvae;
             }
-            switch (alt7) {
+            switch (alt9) {
                 case 1 :
-                    // InternalSignalDSL.g:2682:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalSignalDSL.g:2705:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
                     {
-                    // InternalSignalDSL.g:2682:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
-                    // InternalSignalDSL.g:2683:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalSignalDSL.g:2705:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalSignalDSL.g:2706:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_2_0_3_0()); 
                     }
-                    // InternalSignalDSL.g:2684:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
-                    // InternalSignalDSL.g:2684:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
+                    // InternalSignalDSL.g:2707:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalSignalDSL.g:2707:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__WildcardAssignment_2_0_3_0();
@@ -9188,16 +9335,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2688:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalSignalDSL.g:2711:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
                     {
-                    // InternalSignalDSL.g:2688:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
-                    // InternalSignalDSL.g:2689:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalSignalDSL.g:2711:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalSignalDSL.g:2712:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_2_0_3_1()); 
                     }
-                    // InternalSignalDSL.g:2690:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
-                    // InternalSignalDSL.g:2690:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
+                    // InternalSignalDSL.g:2713:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalSignalDSL.g:2713:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__MemberNameAssignment_2_0_3_1();
@@ -9234,27 +9381,27 @@
 
 
     // $ANTLR start "rule__XAnnotation__Alternatives_3_1"
-    // InternalSignalDSL.g:2698:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );
+    // InternalSignalDSL.g:2721:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );
     public final void rule__XAnnotation__Alternatives_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2702:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
-            int alt8=2;
-            alt8 = dfa8.predict(input);
-            switch (alt8) {
+            // InternalSignalDSL.g:2725:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
+            int alt10=2;
+            alt10 = dfa10.predict(input);
+            switch (alt10) {
                 case 1 :
-                    // InternalSignalDSL.g:2703:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalSignalDSL.g:2726:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2703:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-                    // InternalSignalDSL.g:2704:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalSignalDSL.g:2726:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalSignalDSL.g:2727:3: ( rule__XAnnotation__Group_3_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
                     }
-                    // InternalSignalDSL.g:2705:3: ( rule__XAnnotation__Group_3_1_0__0 )
-                    // InternalSignalDSL.g:2705:4: rule__XAnnotation__Group_3_1_0__0
+                    // InternalSignalDSL.g:2728:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalSignalDSL.g:2728:4: rule__XAnnotation__Group_3_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3_1_0__0();
@@ -9274,16 +9421,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2709:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalSignalDSL.g:2732:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
                     {
-                    // InternalSignalDSL.g:2709:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
-                    // InternalSignalDSL.g:2710:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalSignalDSL.g:2732:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalSignalDSL.g:2733:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
                     }
-                    // InternalSignalDSL.g:2711:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
-                    // InternalSignalDSL.g:2711:4: rule__XAnnotation__ValueAssignment_3_1_1
+                    // InternalSignalDSL.g:2734:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalSignalDSL.g:2734:4: rule__XAnnotation__ValueAssignment_3_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__ValueAssignment_3_1_1();
@@ -9320,27 +9467,27 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Alternatives"
-    // InternalSignalDSL.g:2719:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );
+    // InternalSignalDSL.g:2742:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );
     public final void rule__XAnnotationElementValueOrCommaList__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2723:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
-            int alt9=2;
-            alt9 = dfa9.predict(input);
-            switch (alt9) {
+            // InternalSignalDSL.g:2746:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
+            int alt11=2;
+            alt11 = dfa11.predict(input);
+            switch (alt11) {
                 case 1 :
-                    // InternalSignalDSL.g:2724:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalSignalDSL.g:2747:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2724:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-                    // InternalSignalDSL.g:2725:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalSignalDSL.g:2747:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalSignalDSL.g:2748:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
                     }
-                    // InternalSignalDSL.g:2726:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-                    // InternalSignalDSL.g:2726:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+                    // InternalSignalDSL.g:2749:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalSignalDSL.g:2749:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0__0();
@@ -9360,16 +9507,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2730:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalSignalDSL.g:2753:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
                     {
-                    // InternalSignalDSL.g:2730:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
-                    // InternalSignalDSL.g:2731:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalSignalDSL.g:2753:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalSignalDSL.g:2754:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
                     }
-                    // InternalSignalDSL.g:2732:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
-                    // InternalSignalDSL.g:2732:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
+                    // InternalSignalDSL.g:2755:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalSignalDSL.g:2755:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1__0();
@@ -9406,27 +9553,27 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Alternatives"
-    // InternalSignalDSL.g:2740:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
+    // InternalSignalDSL.g:2763:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
     public final void rule__XAnnotationElementValue__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2744:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
-            int alt10=2;
-            alt10 = dfa10.predict(input);
-            switch (alt10) {
+            // InternalSignalDSL.g:2767:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
+            int alt12=2;
+            alt12 = dfa12.predict(input);
+            switch (alt12) {
                 case 1 :
-                    // InternalSignalDSL.g:2745:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalSignalDSL.g:2768:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2745:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-                    // InternalSignalDSL.g:2746:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalSignalDSL.g:2768:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalSignalDSL.g:2769:3: ( rule__XAnnotationElementValue__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
                     }
-                    // InternalSignalDSL.g:2747:3: ( rule__XAnnotationElementValue__Group_0__0 )
-                    // InternalSignalDSL.g:2747:4: rule__XAnnotationElementValue__Group_0__0
+                    // InternalSignalDSL.g:2770:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalSignalDSL.g:2770:4: rule__XAnnotationElementValue__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0__0();
@@ -9446,10 +9593,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2751:2: ( ruleXAnnotationOrExpression )
+                    // InternalSignalDSL.g:2774:2: ( ruleXAnnotationOrExpression )
                     {
-                    // InternalSignalDSL.g:2751:2: ( ruleXAnnotationOrExpression )
-                    // InternalSignalDSL.g:2752:3: ruleXAnnotationOrExpression
+                    // InternalSignalDSL.g:2774:2: ( ruleXAnnotationOrExpression )
+                    // InternalSignalDSL.g:2775:3: ruleXAnnotationOrExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
@@ -9486,35 +9633,35 @@
 
 
     // $ANTLR start "rule__XAnnotationOrExpression__Alternatives"
-    // InternalSignalDSL.g:2761:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
+    // InternalSignalDSL.g:2784:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
     public final void rule__XAnnotationOrExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2765:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
-            int alt11=2;
-            int LA11_0 = input.LA(1);
+            // InternalSignalDSL.g:2788:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
+            int alt13=2;
+            int LA13_0 = input.LA(1);
 
-            if ( (LA11_0==77) ) {
-                alt11=1;
+            if ( (LA13_0==79) ) {
+                alt13=1;
             }
-            else if ( ((LA11_0>=RULE_ID && LA11_0<=RULE_STRING)||LA11_0==27||(LA11_0>=34 && LA11_0<=35)||LA11_0==40||(LA11_0>=45 && LA11_0<=50)||LA11_0==62||LA11_0==78||(LA11_0>=82 && LA11_0<=83)||LA11_0==86||LA11_0==88||(LA11_0>=91 && LA11_0<=99)||LA11_0==101||LA11_0==111) ) {
-                alt11=2;
+            else if ( ((LA13_0>=RULE_ID && LA13_0<=RULE_STRING)||LA13_0==28||(LA13_0>=35 && LA13_0<=36)||LA13_0==41||(LA13_0>=46 && LA13_0<=51)||LA13_0==63||LA13_0==80||(LA13_0>=84 && LA13_0<=85)||LA13_0==88||LA13_0==90||(LA13_0>=93 && LA13_0<=101)||LA13_0==103||LA13_0==115) ) {
+                alt13=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 11, 0, input);
+                    new NoViableAltException("", 13, 0, input);
 
                 throw nvae;
             }
-            switch (alt11) {
+            switch (alt13) {
                 case 1 :
-                    // InternalSignalDSL.g:2766:2: ( ruleXAnnotation )
+                    // InternalSignalDSL.g:2789:2: ( ruleXAnnotation )
                     {
-                    // InternalSignalDSL.g:2766:2: ( ruleXAnnotation )
-                    // InternalSignalDSL.g:2767:3: ruleXAnnotation
+                    // InternalSignalDSL.g:2789:2: ( ruleXAnnotation )
+                    // InternalSignalDSL.g:2790:3: ruleXAnnotation
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
@@ -9534,10 +9681,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2772:2: ( ruleXExpression )
+                    // InternalSignalDSL.g:2795:2: ( ruleXExpression )
                     {
-                    // InternalSignalDSL.g:2772:2: ( ruleXExpression )
-                    // InternalSignalDSL.g:2773:3: ruleXExpression
+                    // InternalSignalDSL.g:2795:2: ( ruleXExpression )
+                    // InternalSignalDSL.g:2796:3: ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
@@ -9574,48 +9721,29 @@
 
 
     // $ANTLR start "rule__XAssignment__Alternatives"
-    // InternalSignalDSL.g:2782:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
+    // InternalSignalDSL.g:2805:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
     public final void rule__XAssignment__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2786:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
-            int alt12=2;
+            // InternalSignalDSL.g:2809:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
+            int alt14=2;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                int LA12_1 = input.LA(2);
+                int LA14_1 = input.LA(2);
 
-                if ( (LA12_1==13) ) {
-                    alt12=1;
+                if ( (LA14_1==EOF||(LA14_1>=RULE_ID && LA14_1<=RULE_STRING)||(LA14_1>=14 && LA14_1<=15)||(LA14_1>=17 && LA14_1<=51)||(LA14_1>=63 && LA14_1<=64)||LA14_1==72||LA14_1==78||(LA14_1>=80 && LA14_1<=104)||(LA14_1>=111 && LA14_1<=112)||(LA14_1>=114 && LA14_1<=115)) ) {
+                    alt14=2;
                 }
-                else if ( (LA12_1==EOF||(LA12_1>=RULE_ID && LA12_1<=RULE_STRING)||(LA12_1>=14 && LA12_1<=50)||(LA12_1>=62 && LA12_1<=63)||LA12_1==72||LA12_1==76||(LA12_1>=78 && LA12_1<=102)||(LA12_1>=107 && LA12_1<=108)||(LA12_1>=110 && LA12_1<=111)) ) {
-                    alt12=2;
+                else if ( (LA14_1==13) ) {
+                    alt14=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 12, 1, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case 45:
-                {
-                int LA12_2 = input.LA(2);
-
-                if ( (LA12_2==13) ) {
-                    alt12=1;
-                }
-                else if ( (LA12_2==EOF||(LA12_2>=RULE_ID && LA12_2<=RULE_STRING)||(LA12_2>=14 && LA12_2<=50)||(LA12_2>=62 && LA12_2<=63)||LA12_2==72||LA12_2==76||(LA12_2>=78 && LA12_2<=102)||(LA12_2>=107 && LA12_2<=108)||(LA12_2>=110 && LA12_2<=111)) ) {
-                    alt12=2;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return ;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 12, 2, input);
+                        new NoViableAltException("", 14, 1, input);
 
                     throw nvae;
                 }
@@ -9623,18 +9751,18 @@
                 break;
             case 46:
                 {
-                int LA12_3 = input.LA(2);
+                int LA14_2 = input.LA(2);
 
-                if ( (LA12_3==EOF||(LA12_3>=RULE_ID && LA12_3<=RULE_STRING)||(LA12_3>=14 && LA12_3<=50)||(LA12_3>=62 && LA12_3<=63)||LA12_3==72||LA12_3==76||(LA12_3>=78 && LA12_3<=102)||(LA12_3>=107 && LA12_3<=108)||(LA12_3>=110 && LA12_3<=111)) ) {
-                    alt12=2;
+                if ( (LA14_2==EOF||(LA14_2>=RULE_ID && LA14_2<=RULE_STRING)||(LA14_2>=14 && LA14_2<=15)||(LA14_2>=17 && LA14_2<=51)||(LA14_2>=63 && LA14_2<=64)||LA14_2==72||LA14_2==78||(LA14_2>=80 && LA14_2<=104)||(LA14_2>=111 && LA14_2<=112)||(LA14_2>=114 && LA14_2<=115)) ) {
+                    alt14=2;
                 }
-                else if ( (LA12_3==13) ) {
-                    alt12=1;
+                else if ( (LA14_2==13) ) {
+                    alt14=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 12, 3, input);
+                        new NoViableAltException("", 14, 2, input);
 
                     throw nvae;
                 }
@@ -9642,18 +9770,18 @@
                 break;
             case 47:
                 {
-                int LA12_4 = input.LA(2);
+                int LA14_3 = input.LA(2);
 
-                if ( (LA12_4==EOF||(LA12_4>=RULE_ID && LA12_4<=RULE_STRING)||(LA12_4>=14 && LA12_4<=50)||(LA12_4>=62 && LA12_4<=63)||LA12_4==72||LA12_4==76||(LA12_4>=78 && LA12_4<=102)||(LA12_4>=107 && LA12_4<=108)||(LA12_4>=110 && LA12_4<=111)) ) {
-                    alt12=2;
+                if ( (LA14_3==13) ) {
+                    alt14=1;
                 }
-                else if ( (LA12_4==13) ) {
-                    alt12=1;
+                else if ( (LA14_3==EOF||(LA14_3>=RULE_ID && LA14_3<=RULE_STRING)||(LA14_3>=14 && LA14_3<=15)||(LA14_3>=17 && LA14_3<=51)||(LA14_3>=63 && LA14_3<=64)||LA14_3==72||LA14_3==78||(LA14_3>=80 && LA14_3<=104)||(LA14_3>=111 && LA14_3<=112)||(LA14_3>=114 && LA14_3<=115)) ) {
+                    alt14=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 12, 4, input);
+                        new NoViableAltException("", 14, 3, input);
 
                     throw nvae;
                 }
@@ -9661,18 +9789,37 @@
                 break;
             case 48:
                 {
-                int LA12_5 = input.LA(2);
+                int LA14_4 = input.LA(2);
 
-                if ( (LA12_5==EOF||(LA12_5>=RULE_ID && LA12_5<=RULE_STRING)||(LA12_5>=14 && LA12_5<=50)||(LA12_5>=62 && LA12_5<=63)||LA12_5==72||LA12_5==76||(LA12_5>=78 && LA12_5<=102)||(LA12_5>=107 && LA12_5<=108)||(LA12_5>=110 && LA12_5<=111)) ) {
-                    alt12=2;
+                if ( (LA14_4==EOF||(LA14_4>=RULE_ID && LA14_4<=RULE_STRING)||(LA14_4>=14 && LA14_4<=15)||(LA14_4>=17 && LA14_4<=51)||(LA14_4>=63 && LA14_4<=64)||LA14_4==72||LA14_4==78||(LA14_4>=80 && LA14_4<=104)||(LA14_4>=111 && LA14_4<=112)||(LA14_4>=114 && LA14_4<=115)) ) {
+                    alt14=2;
                 }
-                else if ( (LA12_5==13) ) {
-                    alt12=1;
+                else if ( (LA14_4==13) ) {
+                    alt14=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 12, 5, input);
+                        new NoViableAltException("", 14, 4, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 49:
+                {
+                int LA14_5 = input.LA(2);
+
+                if ( (LA14_5==13) ) {
+                    alt14=1;
+                }
+                else if ( (LA14_5==EOF||(LA14_5>=RULE_ID && LA14_5<=RULE_STRING)||(LA14_5>=14 && LA14_5<=15)||(LA14_5>=17 && LA14_5<=51)||(LA14_5>=63 && LA14_5<=64)||LA14_5==72||LA14_5==78||(LA14_5>=80 && LA14_5<=104)||(LA14_5>=111 && LA14_5<=112)||(LA14_5>=114 && LA14_5<=115)) ) {
+                    alt14=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 14, 5, input);
 
                     throw nvae;
                 }
@@ -9682,20 +9829,18 @@
             case RULE_INT:
             case RULE_DECIMAL:
             case RULE_STRING:
-            case 27:
-            case 34:
+            case 28:
             case 35:
-            case 40:
-            case 49:
+            case 36:
+            case 41:
             case 50:
-            case 62:
-            case 78:
-            case 82:
-            case 83:
-            case 86:
+            case 51:
+            case 63:
+            case 80:
+            case 84:
+            case 85:
             case 88:
-            case 91:
-            case 92:
+            case 90:
             case 93:
             case 94:
             case 95:
@@ -9703,32 +9848,34 @@
             case 97:
             case 98:
             case 99:
+            case 100:
             case 101:
-            case 111:
+            case 103:
+            case 115:
                 {
-                alt12=2;
+                alt14=2;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 12, 0, input);
+                    new NoViableAltException("", 14, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt12) {
+            switch (alt14) {
                 case 1 :
-                    // InternalSignalDSL.g:2787:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalSignalDSL.g:2810:2: ( ( rule__XAssignment__Group_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2787:2: ( ( rule__XAssignment__Group_0__0 ) )
-                    // InternalSignalDSL.g:2788:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalSignalDSL.g:2810:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalSignalDSL.g:2811:3: ( rule__XAssignment__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAssignmentAccess().getGroup_0()); 
                     }
-                    // InternalSignalDSL.g:2789:3: ( rule__XAssignment__Group_0__0 )
-                    // InternalSignalDSL.g:2789:4: rule__XAssignment__Group_0__0
+                    // InternalSignalDSL.g:2812:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalSignalDSL.g:2812:4: rule__XAssignment__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_0__0();
@@ -9748,16 +9895,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2793:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalSignalDSL.g:2816:2: ( ( rule__XAssignment__Group_1__0 ) )
                     {
-                    // InternalSignalDSL.g:2793:2: ( ( rule__XAssignment__Group_1__0 ) )
-                    // InternalSignalDSL.g:2794:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalSignalDSL.g:2816:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalSignalDSL.g:2817:3: ( rule__XAssignment__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAssignmentAccess().getGroup_1()); 
                     }
-                    // InternalSignalDSL.g:2795:3: ( rule__XAssignment__Group_1__0 )
-                    // InternalSignalDSL.g:2795:4: rule__XAssignment__Group_1__0
+                    // InternalSignalDSL.g:2818:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalSignalDSL.g:2818:4: rule__XAssignment__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1__0();
@@ -9794,69 +9941,69 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Alternatives"
-    // InternalSignalDSL.g:2803:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
+    // InternalSignalDSL.g:2826:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
     public final void rule__OpMultiAssign__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2807:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
-            int alt13=7;
+            // InternalSignalDSL.g:2830:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
+            int alt15=7;
             switch ( input.LA(1) ) {
-            case 16:
-                {
-                alt13=1;
-                }
-                break;
             case 17:
                 {
-                alt13=2;
+                alt15=1;
                 }
                 break;
             case 18:
                 {
-                alt13=3;
+                alt15=2;
                 }
                 break;
             case 19:
                 {
-                alt13=4;
+                alt15=3;
                 }
                 break;
             case 20:
                 {
-                alt13=5;
+                alt15=4;
+                }
+                break;
+            case 21:
+                {
+                alt15=5;
+                }
+                break;
+            case 28:
+                {
+                alt15=6;
                 }
                 break;
             case 27:
                 {
-                alt13=6;
-                }
-                break;
-            case 26:
-                {
-                alt13=7;
+                alt15=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 13, 0, input);
+                    new NoViableAltException("", 15, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt13) {
+            switch (alt15) {
                 case 1 :
-                    // InternalSignalDSL.g:2808:2: ( '+=' )
+                    // InternalSignalDSL.g:2831:2: ( '+=' )
                     {
-                    // InternalSignalDSL.g:2808:2: ( '+=' )
-                    // InternalSignalDSL.g:2809:3: '+='
+                    // InternalSignalDSL.g:2831:2: ( '+=' )
+                    // InternalSignalDSL.g:2832:3: '+='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
                     }
-                    match(input,16,FOLLOW_2); if (state.failed) return ;
+                    match(input,17,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
                     }
@@ -9867,15 +10014,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2814:2: ( '-=' )
+                    // InternalSignalDSL.g:2837:2: ( '-=' )
                     {
-                    // InternalSignalDSL.g:2814:2: ( '-=' )
-                    // InternalSignalDSL.g:2815:3: '-='
+                    // InternalSignalDSL.g:2837:2: ( '-=' )
+                    // InternalSignalDSL.g:2838:3: '-='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
                     }
-                    match(input,17,FOLLOW_2); if (state.failed) return ;
+                    match(input,18,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
                     }
@@ -9886,15 +10033,15 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2820:2: ( '*=' )
+                    // InternalSignalDSL.g:2843:2: ( '*=' )
                     {
-                    // InternalSignalDSL.g:2820:2: ( '*=' )
-                    // InternalSignalDSL.g:2821:3: '*='
+                    // InternalSignalDSL.g:2843:2: ( '*=' )
+                    // InternalSignalDSL.g:2844:3: '*='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
                     }
-                    match(input,18,FOLLOW_2); if (state.failed) return ;
+                    match(input,19,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
                     }
@@ -9905,15 +10052,15 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2826:2: ( '/=' )
+                    // InternalSignalDSL.g:2849:2: ( '/=' )
                     {
-                    // InternalSignalDSL.g:2826:2: ( '/=' )
-                    // InternalSignalDSL.g:2827:3: '/='
+                    // InternalSignalDSL.g:2849:2: ( '/=' )
+                    // InternalSignalDSL.g:2850:3: '/='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
                     }
-                    match(input,19,FOLLOW_2); if (state.failed) return ;
+                    match(input,20,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
                     }
@@ -9924,15 +10071,15 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:2832:2: ( '%=' )
+                    // InternalSignalDSL.g:2855:2: ( '%=' )
                     {
-                    // InternalSignalDSL.g:2832:2: ( '%=' )
-                    // InternalSignalDSL.g:2833:3: '%='
+                    // InternalSignalDSL.g:2855:2: ( '%=' )
+                    // InternalSignalDSL.g:2856:3: '%='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
                     }
-                    match(input,20,FOLLOW_2); if (state.failed) return ;
+                    match(input,21,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
                     }
@@ -9943,16 +10090,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:2838:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalSignalDSL.g:2861:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
                     {
-                    // InternalSignalDSL.g:2838:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
-                    // InternalSignalDSL.g:2839:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalSignalDSL.g:2861:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalSignalDSL.g:2862:3: ( rule__OpMultiAssign__Group_5__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
                     }
-                    // InternalSignalDSL.g:2840:3: ( rule__OpMultiAssign__Group_5__0 )
-                    // InternalSignalDSL.g:2840:4: rule__OpMultiAssign__Group_5__0
+                    // InternalSignalDSL.g:2863:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalSignalDSL.g:2863:4: rule__OpMultiAssign__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpMultiAssign__Group_5__0();
@@ -9972,16 +10119,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:2844:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalSignalDSL.g:2867:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
                     {
-                    // InternalSignalDSL.g:2844:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
-                    // InternalSignalDSL.g:2845:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalSignalDSL.g:2867:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalSignalDSL.g:2868:3: ( rule__OpMultiAssign__Group_6__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
                     }
-                    // InternalSignalDSL.g:2846:3: ( rule__OpMultiAssign__Group_6__0 )
-                    // InternalSignalDSL.g:2846:4: rule__OpMultiAssign__Group_6__0
+                    // InternalSignalDSL.g:2869:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalSignalDSL.g:2869:4: rule__OpMultiAssign__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpMultiAssign__Group_6__0();
@@ -10018,54 +10165,54 @@
 
 
     // $ANTLR start "rule__OpEquality__Alternatives"
-    // InternalSignalDSL.g:2854:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
+    // InternalSignalDSL.g:2877:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
     public final void rule__OpEquality__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2858:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
-            int alt14=4;
+            // InternalSignalDSL.g:2881:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
+            int alt16=4;
             switch ( input.LA(1) ) {
-            case 21:
-                {
-                alt14=1;
-                }
-                break;
             case 22:
                 {
-                alt14=2;
+                alt16=1;
                 }
                 break;
             case 23:
                 {
-                alt14=3;
+                alt16=2;
                 }
                 break;
             case 24:
                 {
-                alt14=4;
+                alt16=3;
+                }
+                break;
+            case 25:
+                {
+                alt16=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 14, 0, input);
+                    new NoViableAltException("", 16, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt14) {
+            switch (alt16) {
                 case 1 :
-                    // InternalSignalDSL.g:2859:2: ( '==' )
+                    // InternalSignalDSL.g:2882:2: ( '==' )
                     {
-                    // InternalSignalDSL.g:2859:2: ( '==' )
-                    // InternalSignalDSL.g:2860:3: '=='
+                    // InternalSignalDSL.g:2882:2: ( '==' )
+                    // InternalSignalDSL.g:2883:3: '=='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
                     }
-                    match(input,21,FOLLOW_2); if (state.failed) return ;
+                    match(input,22,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
                     }
@@ -10076,15 +10223,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2865:2: ( '!=' )
+                    // InternalSignalDSL.g:2888:2: ( '!=' )
                     {
-                    // InternalSignalDSL.g:2865:2: ( '!=' )
-                    // InternalSignalDSL.g:2866:3: '!='
+                    // InternalSignalDSL.g:2888:2: ( '!=' )
+                    // InternalSignalDSL.g:2889:3: '!='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
                     }
-                    match(input,22,FOLLOW_2); if (state.failed) return ;
+                    match(input,23,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
                     }
@@ -10095,15 +10242,15 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2871:2: ( '===' )
+                    // InternalSignalDSL.g:2894:2: ( '===' )
                     {
-                    // InternalSignalDSL.g:2871:2: ( '===' )
-                    // InternalSignalDSL.g:2872:3: '==='
+                    // InternalSignalDSL.g:2894:2: ( '===' )
+                    // InternalSignalDSL.g:2895:3: '==='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
                     }
-                    match(input,23,FOLLOW_2); if (state.failed) return ;
+                    match(input,24,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
                     }
@@ -10114,15 +10261,15 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2877:2: ( '!==' )
+                    // InternalSignalDSL.g:2900:2: ( '!==' )
                     {
-                    // InternalSignalDSL.g:2877:2: ( '!==' )
-                    // InternalSignalDSL.g:2878:3: '!=='
+                    // InternalSignalDSL.g:2900:2: ( '!==' )
+                    // InternalSignalDSL.g:2901:3: '!=='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
                     }
-                    match(input,24,FOLLOW_2); if (state.failed) return ;
+                    match(input,25,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
                     }
@@ -10150,41 +10297,41 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Alternatives_1"
-    // InternalSignalDSL.g:2887:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
+    // InternalSignalDSL.g:2910:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
     public final void rule__XRelationalExpression__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2891:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
-            int alt15=2;
-            int LA15_0 = input.LA(1);
+            // InternalSignalDSL.g:2914:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
+            int alt17=2;
+            int LA17_0 = input.LA(1);
 
-            if ( (LA15_0==84) ) {
-                alt15=1;
+            if ( (LA17_0==86) ) {
+                alt17=1;
             }
-            else if ( ((LA15_0>=25 && LA15_0<=27)) ) {
-                alt15=2;
+            else if ( ((LA17_0>=26 && LA17_0<=28)) ) {
+                alt17=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 15, 0, input);
+                    new NoViableAltException("", 17, 0, input);
 
                 throw nvae;
             }
-            switch (alt15) {
+            switch (alt17) {
                 case 1 :
-                    // InternalSignalDSL.g:2892:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalSignalDSL.g:2915:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
                     {
-                    // InternalSignalDSL.g:2892:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
-                    // InternalSignalDSL.g:2893:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalSignalDSL.g:2915:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalSignalDSL.g:2916:3: ( rule__XRelationalExpression__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); 
                     }
-                    // InternalSignalDSL.g:2894:3: ( rule__XRelationalExpression__Group_1_0__0 )
-                    // InternalSignalDSL.g:2894:4: rule__XRelationalExpression__Group_1_0__0
+                    // InternalSignalDSL.g:2917:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalSignalDSL.g:2917:4: rule__XRelationalExpression__Group_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XRelationalExpression__Group_1_0__0();
@@ -10204,16 +10351,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2898:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalSignalDSL.g:2921:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
                     {
-                    // InternalSignalDSL.g:2898:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
-                    // InternalSignalDSL.g:2899:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalSignalDSL.g:2921:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalSignalDSL.g:2922:3: ( rule__XRelationalExpression__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); 
                     }
-                    // InternalSignalDSL.g:2900:3: ( rule__XRelationalExpression__Group_1_1__0 )
-                    // InternalSignalDSL.g:2900:4: rule__XRelationalExpression__Group_1_1__0
+                    // InternalSignalDSL.g:2923:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalSignalDSL.g:2923:4: rule__XRelationalExpression__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XRelationalExpression__Group_1_1__0();
@@ -10250,63 +10397,63 @@
 
 
     // $ANTLR start "rule__OpCompare__Alternatives"
-    // InternalSignalDSL.g:2908:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
+    // InternalSignalDSL.g:2931:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
     public final void rule__OpCompare__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2912:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
-            int alt16=4;
+            // InternalSignalDSL.g:2935:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
+            int alt18=4;
             switch ( input.LA(1) ) {
-            case 25:
+            case 26:
                 {
-                alt16=1;
+                alt18=1;
                 }
                 break;
-            case 27:
+            case 28:
                 {
-                int LA16_2 = input.LA(2);
+                int LA18_2 = input.LA(2);
 
-                if ( (LA16_2==13) ) {
-                    alt16=2;
+                if ( (LA18_2==13) ) {
+                    alt18=2;
                 }
-                else if ( (LA16_2==EOF||(LA16_2>=RULE_ID && LA16_2<=RULE_STRING)||LA16_2==27||(LA16_2>=34 && LA16_2<=35)||LA16_2==40||(LA16_2>=45 && LA16_2<=50)||LA16_2==62||LA16_2==78||(LA16_2>=82 && LA16_2<=83)||LA16_2==86||LA16_2==88||(LA16_2>=91 && LA16_2<=99)||LA16_2==101||LA16_2==111) ) {
-                    alt16=4;
+                else if ( (LA18_2==EOF||(LA18_2>=RULE_ID && LA18_2<=RULE_STRING)||LA18_2==28||(LA18_2>=35 && LA18_2<=36)||LA18_2==41||(LA18_2>=46 && LA18_2<=51)||LA18_2==63||LA18_2==80||(LA18_2>=84 && LA18_2<=85)||LA18_2==88||LA18_2==90||(LA18_2>=93 && LA18_2<=101)||LA18_2==103||LA18_2==115) ) {
+                    alt18=4;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 16, 2, input);
+                        new NoViableAltException("", 18, 2, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 26:
+            case 27:
                 {
-                alt16=3;
+                alt18=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 16, 0, input);
+                    new NoViableAltException("", 18, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt16) {
+            switch (alt18) {
                 case 1 :
-                    // InternalSignalDSL.g:2913:2: ( '>=' )
+                    // InternalSignalDSL.g:2936:2: ( '>=' )
                     {
-                    // InternalSignalDSL.g:2913:2: ( '>=' )
-                    // InternalSignalDSL.g:2914:3: '>='
+                    // InternalSignalDSL.g:2936:2: ( '>=' )
+                    // InternalSignalDSL.g:2937:3: '>='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
                     }
-                    match(input,25,FOLLOW_2); if (state.failed) return ;
+                    match(input,26,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
                     }
@@ -10317,16 +10464,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2919:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalSignalDSL.g:2942:2: ( ( rule__OpCompare__Group_1__0 ) )
                     {
-                    // InternalSignalDSL.g:2919:2: ( ( rule__OpCompare__Group_1__0 ) )
-                    // InternalSignalDSL.g:2920:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalSignalDSL.g:2942:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalSignalDSL.g:2943:3: ( rule__OpCompare__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGroup_1()); 
                     }
-                    // InternalSignalDSL.g:2921:3: ( rule__OpCompare__Group_1__0 )
-                    // InternalSignalDSL.g:2921:4: rule__OpCompare__Group_1__0
+                    // InternalSignalDSL.g:2944:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalSignalDSL.g:2944:4: rule__OpCompare__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpCompare__Group_1__0();
@@ -10346,15 +10493,15 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2925:2: ( '>' )
+                    // InternalSignalDSL.g:2948:2: ( '>' )
                     {
-                    // InternalSignalDSL.g:2925:2: ( '>' )
-                    // InternalSignalDSL.g:2926:3: '>'
+                    // InternalSignalDSL.g:2948:2: ( '>' )
+                    // InternalSignalDSL.g:2949:3: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
                     }
-                    match(input,26,FOLLOW_2); if (state.failed) return ;
+                    match(input,27,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
                     }
@@ -10365,15 +10512,15 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2931:2: ( '<' )
+                    // InternalSignalDSL.g:2954:2: ( '<' )
                     {
-                    // InternalSignalDSL.g:2931:2: ( '<' )
-                    // InternalSignalDSL.g:2932:3: '<'
+                    // InternalSignalDSL.g:2954:2: ( '<' )
+                    // InternalSignalDSL.g:2955:3: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
                     }
-                    match(input,27,FOLLOW_2); if (state.failed) return ;
+                    match(input,28,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
                     }
@@ -10401,26 +10548,26 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives"
-    // InternalSignalDSL.g:2941:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );
+    // InternalSignalDSL.g:2964:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );
     public final void rule__OpOther__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:2945:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
-            int alt17=9;
-            alt17 = dfa17.predict(input);
-            switch (alt17) {
+            // InternalSignalDSL.g:2968:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
+            int alt19=9;
+            alt19 = dfa19.predict(input);
+            switch (alt19) {
                 case 1 :
-                    // InternalSignalDSL.g:2946:2: ( '->' )
+                    // InternalSignalDSL.g:2969:2: ( '->' )
                     {
-                    // InternalSignalDSL.g:2946:2: ( '->' )
-                    // InternalSignalDSL.g:2947:3: '->'
+                    // InternalSignalDSL.g:2969:2: ( '->' )
+                    // InternalSignalDSL.g:2970:3: '->'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
                     }
-                    match(input,28,FOLLOW_2); if (state.failed) return ;
+                    match(input,29,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
                     }
@@ -10431,15 +10578,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2952:2: ( '..<' )
+                    // InternalSignalDSL.g:2975:2: ( '..<' )
                     {
-                    // InternalSignalDSL.g:2952:2: ( '..<' )
-                    // InternalSignalDSL.g:2953:3: '..<'
+                    // InternalSignalDSL.g:2975:2: ( '..<' )
+                    // InternalSignalDSL.g:2976:3: '..<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
                     }
-                    match(input,29,FOLLOW_2); if (state.failed) return ;
+                    match(input,30,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
                     }
@@ -10450,16 +10597,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2958:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalSignalDSL.g:2981:2: ( ( rule__OpOther__Group_2__0 ) )
                     {
-                    // InternalSignalDSL.g:2958:2: ( ( rule__OpOther__Group_2__0 ) )
-                    // InternalSignalDSL.g:2959:3: ( rule__OpOther__Group_2__0 )
+                    // InternalSignalDSL.g:2981:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalSignalDSL.g:2982:3: ( rule__OpOther__Group_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_2()); 
                     }
-                    // InternalSignalDSL.g:2960:3: ( rule__OpOther__Group_2__0 )
-                    // InternalSignalDSL.g:2960:4: rule__OpOther__Group_2__0
+                    // InternalSignalDSL.g:2983:3: ( rule__OpOther__Group_2__0 )
+                    // InternalSignalDSL.g:2983:4: rule__OpOther__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_2__0();
@@ -10479,15 +10626,15 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2964:2: ( '..' )
+                    // InternalSignalDSL.g:2987:2: ( '..' )
                     {
-                    // InternalSignalDSL.g:2964:2: ( '..' )
-                    // InternalSignalDSL.g:2965:3: '..'
+                    // InternalSignalDSL.g:2987:2: ( '..' )
+                    // InternalSignalDSL.g:2988:3: '..'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
                     }
-                    match(input,30,FOLLOW_2); if (state.failed) return ;
+                    match(input,31,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
                     }
@@ -10498,15 +10645,15 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:2970:2: ( '=>' )
+                    // InternalSignalDSL.g:2993:2: ( '=>' )
                     {
-                    // InternalSignalDSL.g:2970:2: ( '=>' )
-                    // InternalSignalDSL.g:2971:3: '=>'
+                    // InternalSignalDSL.g:2993:2: ( '=>' )
+                    // InternalSignalDSL.g:2994:3: '=>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
                     }
-                    match(input,31,FOLLOW_2); if (state.failed) return ;
+                    match(input,32,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
                     }
@@ -10517,16 +10664,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:2976:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalSignalDSL.g:2999:2: ( ( rule__OpOther__Group_5__0 ) )
                     {
-                    // InternalSignalDSL.g:2976:2: ( ( rule__OpOther__Group_5__0 ) )
-                    // InternalSignalDSL.g:2977:3: ( rule__OpOther__Group_5__0 )
+                    // InternalSignalDSL.g:2999:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalSignalDSL.g:3000:3: ( rule__OpOther__Group_5__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_5()); 
                     }
-                    // InternalSignalDSL.g:2978:3: ( rule__OpOther__Group_5__0 )
-                    // InternalSignalDSL.g:2978:4: rule__OpOther__Group_5__0
+                    // InternalSignalDSL.g:3001:3: ( rule__OpOther__Group_5__0 )
+                    // InternalSignalDSL.g:3001:4: rule__OpOther__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_5__0();
@@ -10546,16 +10693,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:2982:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalSignalDSL.g:3005:2: ( ( rule__OpOther__Group_6__0 ) )
                     {
-                    // InternalSignalDSL.g:2982:2: ( ( rule__OpOther__Group_6__0 ) )
-                    // InternalSignalDSL.g:2983:3: ( rule__OpOther__Group_6__0 )
+                    // InternalSignalDSL.g:3005:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalSignalDSL.g:3006:3: ( rule__OpOther__Group_6__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_6()); 
                     }
-                    // InternalSignalDSL.g:2984:3: ( rule__OpOther__Group_6__0 )
-                    // InternalSignalDSL.g:2984:4: rule__OpOther__Group_6__0
+                    // InternalSignalDSL.g:3007:3: ( rule__OpOther__Group_6__0 )
+                    // InternalSignalDSL.g:3007:4: rule__OpOther__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_6__0();
@@ -10575,15 +10722,15 @@
                     }
                     break;
                 case 8 :
-                    // InternalSignalDSL.g:2988:2: ( '<>' )
+                    // InternalSignalDSL.g:3011:2: ( '<>' )
                     {
-                    // InternalSignalDSL.g:2988:2: ( '<>' )
-                    // InternalSignalDSL.g:2989:3: '<>'
+                    // InternalSignalDSL.g:3011:2: ( '<>' )
+                    // InternalSignalDSL.g:3012:3: '<>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
                     }
-                    match(input,32,FOLLOW_2); if (state.failed) return ;
+                    match(input,33,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
                     }
@@ -10594,15 +10741,15 @@
                     }
                     break;
                 case 9 :
-                    // InternalSignalDSL.g:2994:2: ( '?:' )
+                    // InternalSignalDSL.g:3017:2: ( '?:' )
                     {
-                    // InternalSignalDSL.g:2994:2: ( '?:' )
-                    // InternalSignalDSL.g:2995:3: '?:'
+                    // InternalSignalDSL.g:3017:2: ( '?:' )
+                    // InternalSignalDSL.g:3018:3: '?:'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
                     }
-                    match(input,33,FOLLOW_2); if (state.failed) return ;
+                    match(input,34,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
                     }
@@ -10630,29 +10777,29 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives_5_1"
-    // InternalSignalDSL.g:3004:1: rule__OpOther__Alternatives_5_1 : ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) );
+    // InternalSignalDSL.g:3027:1: rule__OpOther__Alternatives_5_1 : ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) );
     public final void rule__OpOther__Alternatives_5_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3008:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
-            int alt18=2;
-            int LA18_0 = input.LA(1);
+            // InternalSignalDSL.g:3031:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
+            int alt20=2;
+            int LA20_0 = input.LA(1);
 
-            if ( (LA18_0==26) ) {
-                int LA18_1 = input.LA(2);
+            if ( (LA20_0==27) ) {
+                int LA20_1 = input.LA(2);
 
-                if ( (LA18_1==26) ) {
-                    alt18=1;
+                if ( (LA20_1==27) ) {
+                    alt20=1;
                 }
-                else if ( (LA18_1==EOF||(LA18_1>=RULE_ID && LA18_1<=RULE_STRING)||LA18_1==27||(LA18_1>=34 && LA18_1<=35)||LA18_1==40||(LA18_1>=45 && LA18_1<=50)||LA18_1==62||LA18_1==78||(LA18_1>=82 && LA18_1<=83)||LA18_1==86||LA18_1==88||(LA18_1>=91 && LA18_1<=99)||LA18_1==101||LA18_1==111) ) {
-                    alt18=2;
+                else if ( (LA20_1==EOF||(LA20_1>=RULE_ID && LA20_1<=RULE_STRING)||LA20_1==28||(LA20_1>=35 && LA20_1<=36)||LA20_1==41||(LA20_1>=46 && LA20_1<=51)||LA20_1==63||LA20_1==80||(LA20_1>=84 && LA20_1<=85)||LA20_1==88||LA20_1==90||(LA20_1>=93 && LA20_1<=101)||LA20_1==103||LA20_1==115) ) {
+                    alt20=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 18, 1, input);
+                        new NoViableAltException("", 20, 1, input);
 
                     throw nvae;
                 }
@@ -10660,22 +10807,22 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 18, 0, input);
+                    new NoViableAltException("", 20, 0, input);
 
                 throw nvae;
             }
-            switch (alt18) {
+            switch (alt20) {
                 case 1 :
-                    // InternalSignalDSL.g:3009:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalSignalDSL.g:3032:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3009:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
-                    // InternalSignalDSL.g:3010:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalSignalDSL.g:3032:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalSignalDSL.g:3033:3: ( rule__OpOther__Group_5_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); 
                     }
-                    // InternalSignalDSL.g:3011:3: ( rule__OpOther__Group_5_1_0__0 )
-                    // InternalSignalDSL.g:3011:4: rule__OpOther__Group_5_1_0__0
+                    // InternalSignalDSL.g:3034:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalSignalDSL.g:3034:4: rule__OpOther__Group_5_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_5_1_0__0();
@@ -10695,15 +10842,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3015:2: ( '>' )
+                    // InternalSignalDSL.g:3038:2: ( '>' )
                     {
-                    // InternalSignalDSL.g:3015:2: ( '>' )
-                    // InternalSignalDSL.g:3016:3: '>'
+                    // InternalSignalDSL.g:3038:2: ( '>' )
+                    // InternalSignalDSL.g:3039:3: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
                     }
-                    match(input,26,FOLLOW_2); if (state.failed) return ;
+                    match(input,27,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
                     }
@@ -10731,55 +10878,55 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives_6_1"
-    // InternalSignalDSL.g:3025:1: rule__OpOther__Alternatives_6_1 : ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) );
+    // InternalSignalDSL.g:3048:1: rule__OpOther__Alternatives_6_1 : ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) );
     public final void rule__OpOther__Alternatives_6_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3029:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
-            int alt19=3;
-            int LA19_0 = input.LA(1);
+            // InternalSignalDSL.g:3052:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
+            int alt21=3;
+            int LA21_0 = input.LA(1);
 
-            if ( (LA19_0==27) ) {
-                int LA19_1 = input.LA(2);
+            if ( (LA21_0==28) ) {
+                int LA21_1 = input.LA(2);
 
-                if ( (synpred40_InternalSignalDSL()) ) {
-                    alt19=1;
+                if ( (synpred43_InternalSignalDSL()) ) {
+                    alt21=1;
                 }
-                else if ( (synpred41_InternalSignalDSL()) ) {
-                    alt19=2;
+                else if ( (synpred44_InternalSignalDSL()) ) {
+                    alt21=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 19, 1, input);
+                        new NoViableAltException("", 21, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA19_0==31) ) {
-                alt19=3;
+            else if ( (LA21_0==32) ) {
+                alt21=3;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 19, 0, input);
+                    new NoViableAltException("", 21, 0, input);
 
                 throw nvae;
             }
-            switch (alt19) {
+            switch (alt21) {
                 case 1 :
-                    // InternalSignalDSL.g:3030:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalSignalDSL.g:3053:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3030:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
-                    // InternalSignalDSL.g:3031:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalSignalDSL.g:3053:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalSignalDSL.g:3054:3: ( rule__OpOther__Group_6_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
                     }
-                    // InternalSignalDSL.g:3032:3: ( rule__OpOther__Group_6_1_0__0 )
-                    // InternalSignalDSL.g:3032:4: rule__OpOther__Group_6_1_0__0
+                    // InternalSignalDSL.g:3055:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalSignalDSL.g:3055:4: rule__OpOther__Group_6_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_6_1_0__0();
@@ -10799,15 +10946,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3036:2: ( '<' )
+                    // InternalSignalDSL.g:3059:2: ( '<' )
                     {
-                    // InternalSignalDSL.g:3036:2: ( '<' )
-                    // InternalSignalDSL.g:3037:3: '<'
+                    // InternalSignalDSL.g:3059:2: ( '<' )
+                    // InternalSignalDSL.g:3060:3: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
                     }
-                    match(input,27,FOLLOW_2); if (state.failed) return ;
+                    match(input,28,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
                     }
@@ -10818,15 +10965,15 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3042:2: ( '=>' )
+                    // InternalSignalDSL.g:3065:2: ( '=>' )
                     {
-                    // InternalSignalDSL.g:3042:2: ( '=>' )
-                    // InternalSignalDSL.g:3043:3: '=>'
+                    // InternalSignalDSL.g:3065:2: ( '=>' )
+                    // InternalSignalDSL.g:3066:3: '=>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
                     }
-                    match(input,31,FOLLOW_2); if (state.failed) return ;
+                    match(input,32,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
                     }
@@ -10854,40 +11001,40 @@
 
 
     // $ANTLR start "rule__OpAdd__Alternatives"
-    // InternalSignalDSL.g:3052:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
+    // InternalSignalDSL.g:3075:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
     public final void rule__OpAdd__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3056:1: ( ( '+' ) | ( '-' ) )
-            int alt20=2;
-            int LA20_0 = input.LA(1);
+            // InternalSignalDSL.g:3079:1: ( ( '+' ) | ( '-' ) )
+            int alt22=2;
+            int LA22_0 = input.LA(1);
 
-            if ( (LA20_0==34) ) {
-                alt20=1;
+            if ( (LA22_0==35) ) {
+                alt22=1;
             }
-            else if ( (LA20_0==35) ) {
-                alt20=2;
+            else if ( (LA22_0==36) ) {
+                alt22=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 20, 0, input);
+                    new NoViableAltException("", 22, 0, input);
 
                 throw nvae;
             }
-            switch (alt20) {
+            switch (alt22) {
                 case 1 :
-                    // InternalSignalDSL.g:3057:2: ( '+' )
+                    // InternalSignalDSL.g:3080:2: ( '+' )
                     {
-                    // InternalSignalDSL.g:3057:2: ( '+' )
-                    // InternalSignalDSL.g:3058:3: '+'
+                    // InternalSignalDSL.g:3080:2: ( '+' )
+                    // InternalSignalDSL.g:3081:3: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
                     }
-                    match(input,34,FOLLOW_2); if (state.failed) return ;
+                    match(input,35,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
                     }
@@ -10898,15 +11045,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3063:2: ( '-' )
+                    // InternalSignalDSL.g:3086:2: ( '-' )
                     {
-                    // InternalSignalDSL.g:3063:2: ( '-' )
-                    // InternalSignalDSL.g:3064:3: '-'
+                    // InternalSignalDSL.g:3086:2: ( '-' )
+                    // InternalSignalDSL.g:3087:3: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
                     }
-                    match(input,35,FOLLOW_2); if (state.failed) return ;
+                    match(input,36,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
                     }
@@ -10934,54 +11081,54 @@
 
 
     // $ANTLR start "rule__OpMulti__Alternatives"
-    // InternalSignalDSL.g:3073:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
+    // InternalSignalDSL.g:3096:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
     public final void rule__OpMulti__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3077:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
-            int alt21=4;
+            // InternalSignalDSL.g:3100:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
+            int alt23=4;
             switch ( input.LA(1) ) {
-            case 36:
-                {
-                alt21=1;
-                }
-                break;
             case 37:
                 {
-                alt21=2;
+                alt23=1;
                 }
                 break;
             case 38:
                 {
-                alt21=3;
+                alt23=2;
                 }
                 break;
             case 39:
                 {
-                alt21=4;
+                alt23=3;
+                }
+                break;
+            case 40:
+                {
+                alt23=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 21, 0, input);
+                    new NoViableAltException("", 23, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt21) {
+            switch (alt23) {
                 case 1 :
-                    // InternalSignalDSL.g:3078:2: ( '*' )
+                    // InternalSignalDSL.g:3101:2: ( '*' )
                     {
-                    // InternalSignalDSL.g:3078:2: ( '*' )
-                    // InternalSignalDSL.g:3079:3: '*'
+                    // InternalSignalDSL.g:3101:2: ( '*' )
+                    // InternalSignalDSL.g:3102:3: '*'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
                     }
-                    match(input,36,FOLLOW_2); if (state.failed) return ;
+                    match(input,37,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
                     }
@@ -10992,15 +11139,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3084:2: ( '**' )
+                    // InternalSignalDSL.g:3107:2: ( '**' )
                     {
-                    // InternalSignalDSL.g:3084:2: ( '**' )
-                    // InternalSignalDSL.g:3085:3: '**'
+                    // InternalSignalDSL.g:3107:2: ( '**' )
+                    // InternalSignalDSL.g:3108:3: '**'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
                     }
-                    match(input,37,FOLLOW_2); if (state.failed) return ;
+                    match(input,38,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
                     }
@@ -11011,15 +11158,15 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3090:2: ( '/' )
+                    // InternalSignalDSL.g:3113:2: ( '/' )
                     {
-                    // InternalSignalDSL.g:3090:2: ( '/' )
-                    // InternalSignalDSL.g:3091:3: '/'
+                    // InternalSignalDSL.g:3113:2: ( '/' )
+                    // InternalSignalDSL.g:3114:3: '/'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
                     }
-                    match(input,38,FOLLOW_2); if (state.failed) return ;
+                    match(input,39,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
                     }
@@ -11030,15 +11177,15 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3096:2: ( '%' )
+                    // InternalSignalDSL.g:3119:2: ( '%' )
                     {
-                    // InternalSignalDSL.g:3096:2: ( '%' )
-                    // InternalSignalDSL.g:3097:3: '%'
+                    // InternalSignalDSL.g:3119:2: ( '%' )
+                    // InternalSignalDSL.g:3120:3: '%'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
                     }
-                    match(input,39,FOLLOW_2); if (state.failed) return ;
+                    match(input,40,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
                     }
@@ -11066,41 +11213,41 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Alternatives"
-    // InternalSignalDSL.g:3106:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
+    // InternalSignalDSL.g:3129:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
     public final void rule__XUnaryOperation__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3110:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
-            int alt22=2;
-            int LA22_0 = input.LA(1);
+            // InternalSignalDSL.g:3133:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
+            int alt24=2;
+            int LA24_0 = input.LA(1);
 
-            if ( ((LA22_0>=34 && LA22_0<=35)||LA22_0==40) ) {
-                alt22=1;
+            if ( ((LA24_0>=35 && LA24_0<=36)||LA24_0==41) ) {
+                alt24=1;
             }
-            else if ( ((LA22_0>=RULE_ID && LA22_0<=RULE_STRING)||LA22_0==27||(LA22_0>=45 && LA22_0<=50)||LA22_0==62||LA22_0==78||(LA22_0>=82 && LA22_0<=83)||LA22_0==86||LA22_0==88||(LA22_0>=91 && LA22_0<=99)||LA22_0==101||LA22_0==111) ) {
-                alt22=2;
+            else if ( ((LA24_0>=RULE_ID && LA24_0<=RULE_STRING)||LA24_0==28||(LA24_0>=46 && LA24_0<=51)||LA24_0==63||LA24_0==80||(LA24_0>=84 && LA24_0<=85)||LA24_0==88||LA24_0==90||(LA24_0>=93 && LA24_0<=101)||LA24_0==103||LA24_0==115) ) {
+                alt24=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 22, 0, input);
+                    new NoViableAltException("", 24, 0, input);
 
                 throw nvae;
             }
-            switch (alt22) {
+            switch (alt24) {
                 case 1 :
-                    // InternalSignalDSL.g:3111:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalSignalDSL.g:3134:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3111:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
-                    // InternalSignalDSL.g:3112:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalSignalDSL.g:3134:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalSignalDSL.g:3135:3: ( rule__XUnaryOperation__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); 
                     }
-                    // InternalSignalDSL.g:3113:3: ( rule__XUnaryOperation__Group_0__0 )
-                    // InternalSignalDSL.g:3113:4: rule__XUnaryOperation__Group_0__0
+                    // InternalSignalDSL.g:3136:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalSignalDSL.g:3136:4: rule__XUnaryOperation__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XUnaryOperation__Group_0__0();
@@ -11120,10 +11267,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3117:2: ( ruleXCastedExpression )
+                    // InternalSignalDSL.g:3140:2: ( ruleXCastedExpression )
                     {
-                    // InternalSignalDSL.g:3117:2: ( ruleXCastedExpression )
-                    // InternalSignalDSL.g:3118:3: ruleXCastedExpression
+                    // InternalSignalDSL.g:3140:2: ( ruleXCastedExpression )
+                    // InternalSignalDSL.g:3141:3: ruleXCastedExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
@@ -11160,49 +11307,49 @@
 
 
     // $ANTLR start "rule__OpUnary__Alternatives"
-    // InternalSignalDSL.g:3127:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
+    // InternalSignalDSL.g:3150:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
     public final void rule__OpUnary__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3131:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
-            int alt23=3;
+            // InternalSignalDSL.g:3154:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
+            int alt25=3;
             switch ( input.LA(1) ) {
-            case 40:
+            case 41:
                 {
-                alt23=1;
+                alt25=1;
+                }
+                break;
+            case 36:
+                {
+                alt25=2;
                 }
                 break;
             case 35:
                 {
-                alt23=2;
-                }
-                break;
-            case 34:
-                {
-                alt23=3;
+                alt25=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 23, 0, input);
+                    new NoViableAltException("", 25, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt23) {
+            switch (alt25) {
                 case 1 :
-                    // InternalSignalDSL.g:3132:2: ( '!' )
+                    // InternalSignalDSL.g:3155:2: ( '!' )
                     {
-                    // InternalSignalDSL.g:3132:2: ( '!' )
-                    // InternalSignalDSL.g:3133:3: '!'
+                    // InternalSignalDSL.g:3155:2: ( '!' )
+                    // InternalSignalDSL.g:3156:3: '!'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
                     }
-                    match(input,40,FOLLOW_2); if (state.failed) return ;
+                    match(input,41,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
                     }
@@ -11213,15 +11360,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3138:2: ( '-' )
+                    // InternalSignalDSL.g:3161:2: ( '-' )
                     {
-                    // InternalSignalDSL.g:3138:2: ( '-' )
-                    // InternalSignalDSL.g:3139:3: '-'
+                    // InternalSignalDSL.g:3161:2: ( '-' )
+                    // InternalSignalDSL.g:3162:3: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
                     }
-                    match(input,35,FOLLOW_2); if (state.failed) return ;
+                    match(input,36,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
                     }
@@ -11232,15 +11379,15 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3144:2: ( '+' )
+                    // InternalSignalDSL.g:3167:2: ( '+' )
                     {
-                    // InternalSignalDSL.g:3144:2: ( '+' )
-                    // InternalSignalDSL.g:3145:3: '+'
+                    // InternalSignalDSL.g:3167:2: ( '+' )
+                    // InternalSignalDSL.g:3168:3: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
                     }
-                    match(input,34,FOLLOW_2); if (state.failed) return ;
+                    match(input,35,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
                     }
@@ -11268,40 +11415,40 @@
 
 
     // $ANTLR start "rule__OpPostfix__Alternatives"
-    // InternalSignalDSL.g:3154:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
+    // InternalSignalDSL.g:3177:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
     public final void rule__OpPostfix__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3158:1: ( ( '++' ) | ( '--' ) )
-            int alt24=2;
-            int LA24_0 = input.LA(1);
+            // InternalSignalDSL.g:3181:1: ( ( '++' ) | ( '--' ) )
+            int alt26=2;
+            int LA26_0 = input.LA(1);
 
-            if ( (LA24_0==41) ) {
-                alt24=1;
+            if ( (LA26_0==42) ) {
+                alt26=1;
             }
-            else if ( (LA24_0==42) ) {
-                alt24=2;
+            else if ( (LA26_0==43) ) {
+                alt26=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 24, 0, input);
+                    new NoViableAltException("", 26, 0, input);
 
                 throw nvae;
             }
-            switch (alt24) {
+            switch (alt26) {
                 case 1 :
-                    // InternalSignalDSL.g:3159:2: ( '++' )
+                    // InternalSignalDSL.g:3182:2: ( '++' )
                     {
-                    // InternalSignalDSL.g:3159:2: ( '++' )
-                    // InternalSignalDSL.g:3160:3: '++'
+                    // InternalSignalDSL.g:3182:2: ( '++' )
+                    // InternalSignalDSL.g:3183:3: '++'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
                     }
-                    match(input,41,FOLLOW_2); if (state.failed) return ;
+                    match(input,42,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
                     }
@@ -11312,15 +11459,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3165:2: ( '--' )
+                    // InternalSignalDSL.g:3188:2: ( '--' )
                     {
-                    // InternalSignalDSL.g:3165:2: ( '--' )
-                    // InternalSignalDSL.g:3166:3: '--'
+                    // InternalSignalDSL.g:3188:2: ( '--' )
+                    // InternalSignalDSL.g:3189:3: '--'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
                     }
-                    match(input,42,FOLLOW_2); if (state.failed) return ;
+                    match(input,43,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
                     }
@@ -11348,27 +11495,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1"
-    // InternalSignalDSL.g:3175:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );
+    // InternalSignalDSL.g:3198:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );
     public final void rule__XMemberFeatureCall__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3179:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
-            int alt25=2;
-            alt25 = dfa25.predict(input);
-            switch (alt25) {
+            // InternalSignalDSL.g:3202:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
+            int alt27=2;
+            alt27 = dfa27.predict(input);
+            switch (alt27) {
                 case 1 :
-                    // InternalSignalDSL.g:3180:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalSignalDSL.g:3203:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3180:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
-                    // InternalSignalDSL.g:3181:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalSignalDSL.g:3203:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalSignalDSL.g:3204:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); 
                     }
-                    // InternalSignalDSL.g:3182:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
-                    // InternalSignalDSL.g:3182:4: rule__XMemberFeatureCall__Group_1_0__0
+                    // InternalSignalDSL.g:3205:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalSignalDSL.g:3205:4: rule__XMemberFeatureCall__Group_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_0__0();
@@ -11388,16 +11535,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3186:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalSignalDSL.g:3209:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3186:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
-                    // InternalSignalDSL.g:3187:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalSignalDSL.g:3209:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalSignalDSL.g:3210:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); 
                     }
-                    // InternalSignalDSL.g:3188:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
-                    // InternalSignalDSL.g:3188:4: rule__XMemberFeatureCall__Group_1_1__0
+                    // InternalSignalDSL.g:3211:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalSignalDSL.g:3211:4: rule__XMemberFeatureCall__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1__0();
@@ -11434,40 +11581,40 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1"
-    // InternalSignalDSL.g:3196:1: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) );
+    // InternalSignalDSL.g:3219:1: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) );
     public final void rule__XMemberFeatureCall__Alternatives_1_0_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3200:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
-            int alt26=2;
-            int LA26_0 = input.LA(1);
+            // InternalSignalDSL.g:3223:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
+            int alt28=2;
+            int LA28_0 = input.LA(1);
 
-            if ( (LA26_0==43) ) {
-                alt26=1;
+            if ( (LA28_0==44) ) {
+                alt28=1;
             }
-            else if ( (LA26_0==107) ) {
-                alt26=2;
+            else if ( (LA28_0==111) ) {
+                alt28=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 26, 0, input);
+                    new NoViableAltException("", 28, 0, input);
 
                 throw nvae;
             }
-            switch (alt26) {
+            switch (alt28) {
                 case 1 :
-                    // InternalSignalDSL.g:3201:2: ( '.' )
+                    // InternalSignalDSL.g:3224:2: ( '.' )
                     {
-                    // InternalSignalDSL.g:3201:2: ( '.' )
-                    // InternalSignalDSL.g:3202:3: '.'
+                    // InternalSignalDSL.g:3224:2: ( '.' )
+                    // InternalSignalDSL.g:3225:3: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); 
                     }
-                    match(input,43,FOLLOW_2); if (state.failed) return ;
+                    match(input,44,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); 
                     }
@@ -11478,16 +11625,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3207:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalSignalDSL.g:3230:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
                     {
-                    // InternalSignalDSL.g:3207:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
-                    // InternalSignalDSL.g:3208:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalSignalDSL.g:3230:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalSignalDSL.g:3231:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); 
                     }
-                    // InternalSignalDSL.g:3209:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
-                    // InternalSignalDSL.g:3209:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
+                    // InternalSignalDSL.g:3232:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalSignalDSL.g:3232:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1();
@@ -11524,49 +11671,49 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1"
-    // InternalSignalDSL.g:3217:1: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) );
+    // InternalSignalDSL.g:3240:1: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) );
     public final void rule__XMemberFeatureCall__Alternatives_1_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3221:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
-            int alt27=3;
+            // InternalSignalDSL.g:3244:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
+            int alt29=3;
             switch ( input.LA(1) ) {
-            case 43:
+            case 44:
                 {
-                alt27=1;
+                alt29=1;
                 }
                 break;
-            case 108:
+            case 112:
                 {
-                alt27=2;
+                alt29=2;
                 }
                 break;
-            case 107:
+            case 111:
                 {
-                alt27=3;
+                alt29=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 27, 0, input);
+                    new NoViableAltException("", 29, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt27) {
+            switch (alt29) {
                 case 1 :
-                    // InternalSignalDSL.g:3222:2: ( '.' )
+                    // InternalSignalDSL.g:3245:2: ( '.' )
                     {
-                    // InternalSignalDSL.g:3222:2: ( '.' )
-                    // InternalSignalDSL.g:3223:3: '.'
+                    // InternalSignalDSL.g:3245:2: ( '.' )
+                    // InternalSignalDSL.g:3246:3: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); 
                     }
-                    match(input,43,FOLLOW_2); if (state.failed) return ;
+                    match(input,44,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); 
                     }
@@ -11577,16 +11724,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3228:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalSignalDSL.g:3251:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
                     {
-                    // InternalSignalDSL.g:3228:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
-                    // InternalSignalDSL.g:3229:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalSignalDSL.g:3251:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalSignalDSL.g:3252:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); 
                     }
-                    // InternalSignalDSL.g:3230:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
-                    // InternalSignalDSL.g:3230:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
+                    // InternalSignalDSL.g:3253:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalSignalDSL.g:3253:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1();
@@ -11606,16 +11753,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3234:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalSignalDSL.g:3257:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
                     {
-                    // InternalSignalDSL.g:3234:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
-                    // InternalSignalDSL.g:3235:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalSignalDSL.g:3257:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalSignalDSL.g:3258:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); 
                     }
-                    // InternalSignalDSL.g:3236:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
-                    // InternalSignalDSL.g:3236:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
+                    // InternalSignalDSL.g:3259:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalSignalDSL.g:3259:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2();
@@ -11652,27 +11799,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_3_1"
-    // InternalSignalDSL.g:3244:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );
+    // InternalSignalDSL.g:3267:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );
     public final void rule__XMemberFeatureCall__Alternatives_1_1_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3248:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
-            int alt28=2;
-            alt28 = dfa28.predict(input);
-            switch (alt28) {
+            // InternalSignalDSL.g:3271:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
+            int alt30=2;
+            alt30 = dfa30.predict(input);
+            switch (alt30) {
                 case 1 :
-                    // InternalSignalDSL.g:3249:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalSignalDSL.g:3272:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
                     {
-                    // InternalSignalDSL.g:3249:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
-                    // InternalSignalDSL.g:3250:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalSignalDSL.g:3272:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalSignalDSL.g:3273:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
                     }
-                    // InternalSignalDSL.g:3251:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
-                    // InternalSignalDSL.g:3251:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+                    // InternalSignalDSL.g:3274:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalSignalDSL.g:3274:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
@@ -11692,16 +11839,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3255:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalSignalDSL.g:3278:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3255:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
-                    // InternalSignalDSL.g:3256:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalSignalDSL.g:3278:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalSignalDSL.g:3279:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); 
                     }
-                    // InternalSignalDSL.g:3257:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
-                    // InternalSignalDSL.g:3257:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
+                    // InternalSignalDSL.g:3280:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalSignalDSL.g:3280:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_3_1_1__0();
@@ -11738,21 +11885,21 @@
 
 
     // $ANTLR start "rule__XPrimaryExpression__Alternatives"
-    // InternalSignalDSL.g:3265:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );
+    // InternalSignalDSL.g:3288:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );
     public final void rule__XPrimaryExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3269:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
-            int alt29=15;
-            alt29 = dfa29.predict(input);
-            switch (alt29) {
+            // InternalSignalDSL.g:3292:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
+            int alt31=15;
+            alt31 = dfa31.predict(input);
+            switch (alt31) {
                 case 1 :
-                    // InternalSignalDSL.g:3270:2: ( ruleXConstructorCall )
+                    // InternalSignalDSL.g:3293:2: ( ruleXConstructorCall )
                     {
-                    // InternalSignalDSL.g:3270:2: ( ruleXConstructorCall )
-                    // InternalSignalDSL.g:3271:3: ruleXConstructorCall
+                    // InternalSignalDSL.g:3293:2: ( ruleXConstructorCall )
+                    // InternalSignalDSL.g:3294:3: ruleXConstructorCall
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
@@ -11772,10 +11919,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3276:2: ( ruleXBlockExpression )
+                    // InternalSignalDSL.g:3299:2: ( ruleXBlockExpression )
                     {
-                    // InternalSignalDSL.g:3276:2: ( ruleXBlockExpression )
-                    // InternalSignalDSL.g:3277:3: ruleXBlockExpression
+                    // InternalSignalDSL.g:3299:2: ( ruleXBlockExpression )
+                    // InternalSignalDSL.g:3300:3: ruleXBlockExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
@@ -11795,10 +11942,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3282:2: ( ruleXSwitchExpression )
+                    // InternalSignalDSL.g:3305:2: ( ruleXSwitchExpression )
                     {
-                    // InternalSignalDSL.g:3282:2: ( ruleXSwitchExpression )
-                    // InternalSignalDSL.g:3283:3: ruleXSwitchExpression
+                    // InternalSignalDSL.g:3305:2: ( ruleXSwitchExpression )
+                    // InternalSignalDSL.g:3306:3: ruleXSwitchExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
@@ -11818,16 +11965,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3288:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalSignalDSL.g:3311:2: ( ( ruleXSynchronizedExpression ) )
                     {
-                    // InternalSignalDSL.g:3288:2: ( ( ruleXSynchronizedExpression ) )
-                    // InternalSignalDSL.g:3289:3: ( ruleXSynchronizedExpression )
+                    // InternalSignalDSL.g:3311:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalSignalDSL.g:3312:3: ( ruleXSynchronizedExpression )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
                     }
-                    // InternalSignalDSL.g:3290:3: ( ruleXSynchronizedExpression )
-                    // InternalSignalDSL.g:3290:4: ruleXSynchronizedExpression
+                    // InternalSignalDSL.g:3313:3: ( ruleXSynchronizedExpression )
+                    // InternalSignalDSL.g:3313:4: ruleXSynchronizedExpression
                     {
                     pushFollow(FOLLOW_2);
                     ruleXSynchronizedExpression();
@@ -11847,10 +11994,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:3294:2: ( ruleXFeatureCall )
+                    // InternalSignalDSL.g:3317:2: ( ruleXFeatureCall )
                     {
-                    // InternalSignalDSL.g:3294:2: ( ruleXFeatureCall )
-                    // InternalSignalDSL.g:3295:3: ruleXFeatureCall
+                    // InternalSignalDSL.g:3317:2: ( ruleXFeatureCall )
+                    // InternalSignalDSL.g:3318:3: ruleXFeatureCall
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
@@ -11870,10 +12017,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:3300:2: ( ruleXLiteral )
+                    // InternalSignalDSL.g:3323:2: ( ruleXLiteral )
                     {
-                    // InternalSignalDSL.g:3300:2: ( ruleXLiteral )
-                    // InternalSignalDSL.g:3301:3: ruleXLiteral
+                    // InternalSignalDSL.g:3323:2: ( ruleXLiteral )
+                    // InternalSignalDSL.g:3324:3: ruleXLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
@@ -11893,10 +12040,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:3306:2: ( ruleXIfExpression )
+                    // InternalSignalDSL.g:3329:2: ( ruleXIfExpression )
                     {
-                    // InternalSignalDSL.g:3306:2: ( ruleXIfExpression )
-                    // InternalSignalDSL.g:3307:3: ruleXIfExpression
+                    // InternalSignalDSL.g:3329:2: ( ruleXIfExpression )
+                    // InternalSignalDSL.g:3330:3: ruleXIfExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
@@ -11916,16 +12063,16 @@
                     }
                     break;
                 case 8 :
-                    // InternalSignalDSL.g:3312:2: ( ( ruleXForLoopExpression ) )
+                    // InternalSignalDSL.g:3335:2: ( ( ruleXForLoopExpression ) )
                     {
-                    // InternalSignalDSL.g:3312:2: ( ( ruleXForLoopExpression ) )
-                    // InternalSignalDSL.g:3313:3: ( ruleXForLoopExpression )
+                    // InternalSignalDSL.g:3335:2: ( ( ruleXForLoopExpression ) )
+                    // InternalSignalDSL.g:3336:3: ( ruleXForLoopExpression )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
                     }
-                    // InternalSignalDSL.g:3314:3: ( ruleXForLoopExpression )
-                    // InternalSignalDSL.g:3314:4: ruleXForLoopExpression
+                    // InternalSignalDSL.g:3337:3: ( ruleXForLoopExpression )
+                    // InternalSignalDSL.g:3337:4: ruleXForLoopExpression
                     {
                     pushFollow(FOLLOW_2);
                     ruleXForLoopExpression();
@@ -11945,10 +12092,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalSignalDSL.g:3318:2: ( ruleXBasicForLoopExpression )
+                    // InternalSignalDSL.g:3341:2: ( ruleXBasicForLoopExpression )
                     {
-                    // InternalSignalDSL.g:3318:2: ( ruleXBasicForLoopExpression )
-                    // InternalSignalDSL.g:3319:3: ruleXBasicForLoopExpression
+                    // InternalSignalDSL.g:3341:2: ( ruleXBasicForLoopExpression )
+                    // InternalSignalDSL.g:3342:3: ruleXBasicForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
@@ -11968,10 +12115,10 @@
                     }
                     break;
                 case 10 :
-                    // InternalSignalDSL.g:3324:2: ( ruleXWhileExpression )
+                    // InternalSignalDSL.g:3347:2: ( ruleXWhileExpression )
                     {
-                    // InternalSignalDSL.g:3324:2: ( ruleXWhileExpression )
-                    // InternalSignalDSL.g:3325:3: ruleXWhileExpression
+                    // InternalSignalDSL.g:3347:2: ( ruleXWhileExpression )
+                    // InternalSignalDSL.g:3348:3: ruleXWhileExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
@@ -11991,10 +12138,10 @@
                     }
                     break;
                 case 11 :
-                    // InternalSignalDSL.g:3330:2: ( ruleXDoWhileExpression )
+                    // InternalSignalDSL.g:3353:2: ( ruleXDoWhileExpression )
                     {
-                    // InternalSignalDSL.g:3330:2: ( ruleXDoWhileExpression )
-                    // InternalSignalDSL.g:3331:3: ruleXDoWhileExpression
+                    // InternalSignalDSL.g:3353:2: ( ruleXDoWhileExpression )
+                    // InternalSignalDSL.g:3354:3: ruleXDoWhileExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
@@ -12014,10 +12161,10 @@
                     }
                     break;
                 case 12 :
-                    // InternalSignalDSL.g:3336:2: ( ruleXThrowExpression )
+                    // InternalSignalDSL.g:3359:2: ( ruleXThrowExpression )
                     {
-                    // InternalSignalDSL.g:3336:2: ( ruleXThrowExpression )
-                    // InternalSignalDSL.g:3337:3: ruleXThrowExpression
+                    // InternalSignalDSL.g:3359:2: ( ruleXThrowExpression )
+                    // InternalSignalDSL.g:3360:3: ruleXThrowExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
@@ -12037,10 +12184,10 @@
                     }
                     break;
                 case 13 :
-                    // InternalSignalDSL.g:3342:2: ( ruleXReturnExpression )
+                    // InternalSignalDSL.g:3365:2: ( ruleXReturnExpression )
                     {
-                    // InternalSignalDSL.g:3342:2: ( ruleXReturnExpression )
-                    // InternalSignalDSL.g:3343:3: ruleXReturnExpression
+                    // InternalSignalDSL.g:3365:2: ( ruleXReturnExpression )
+                    // InternalSignalDSL.g:3366:3: ruleXReturnExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
@@ -12060,10 +12207,10 @@
                     }
                     break;
                 case 14 :
-                    // InternalSignalDSL.g:3348:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalSignalDSL.g:3371:2: ( ruleXTryCatchFinallyExpression )
                     {
-                    // InternalSignalDSL.g:3348:2: ( ruleXTryCatchFinallyExpression )
-                    // InternalSignalDSL.g:3349:3: ruleXTryCatchFinallyExpression
+                    // InternalSignalDSL.g:3371:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalSignalDSL.g:3372:3: ruleXTryCatchFinallyExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
@@ -12083,10 +12230,10 @@
                     }
                     break;
                 case 15 :
-                    // InternalSignalDSL.g:3354:2: ( ruleXParenthesizedExpression )
+                    // InternalSignalDSL.g:3377:2: ( ruleXParenthesizedExpression )
                     {
-                    // InternalSignalDSL.g:3354:2: ( ruleXParenthesizedExpression )
-                    // InternalSignalDSL.g:3355:3: ruleXParenthesizedExpression
+                    // InternalSignalDSL.g:3377:2: ( ruleXParenthesizedExpression )
+                    // InternalSignalDSL.g:3378:3: ruleXParenthesizedExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
@@ -12123,67 +12270,67 @@
 
 
     // $ANTLR start "rule__XLiteral__Alternatives"
-    // InternalSignalDSL.g:3364:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
+    // InternalSignalDSL.g:3387:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
     public final void rule__XLiteral__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3368:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
-            int alt30=7;
+            // InternalSignalDSL.g:3391:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
+            int alt32=7;
             switch ( input.LA(1) ) {
-            case 82:
+            case 84:
                 {
-                alt30=1;
+                alt32=1;
                 }
                 break;
-            case 83:
+            case 85:
                 {
-                alt30=2;
+                alt32=2;
                 }
                 break;
-            case 50:
-            case 111:
+            case 51:
+            case 115:
                 {
-                alt30=3;
+                alt32=3;
                 }
                 break;
             case RULE_HEX:
             case RULE_INT:
             case RULE_DECIMAL:
                 {
-                alt30=4;
+                alt32=4;
                 }
                 break;
-            case 95:
+            case 97:
                 {
-                alt30=5;
+                alt32=5;
                 }
                 break;
             case RULE_STRING:
                 {
-                alt30=6;
+                alt32=6;
                 }
                 break;
-            case 96:
+            case 98:
                 {
-                alt30=7;
+                alt32=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 30, 0, input);
+                    new NoViableAltException("", 32, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt30) {
+            switch (alt32) {
                 case 1 :
-                    // InternalSignalDSL.g:3369:2: ( ruleXCollectionLiteral )
+                    // InternalSignalDSL.g:3392:2: ( ruleXCollectionLiteral )
                     {
-                    // InternalSignalDSL.g:3369:2: ( ruleXCollectionLiteral )
-                    // InternalSignalDSL.g:3370:3: ruleXCollectionLiteral
+                    // InternalSignalDSL.g:3392:2: ( ruleXCollectionLiteral )
+                    // InternalSignalDSL.g:3393:3: ruleXCollectionLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
@@ -12203,16 +12350,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3375:2: ( ( ruleXClosure ) )
+                    // InternalSignalDSL.g:3398:2: ( ( ruleXClosure ) )
                     {
-                    // InternalSignalDSL.g:3375:2: ( ( ruleXClosure ) )
-                    // InternalSignalDSL.g:3376:3: ( ruleXClosure )
+                    // InternalSignalDSL.g:3398:2: ( ( ruleXClosure ) )
+                    // InternalSignalDSL.g:3399:3: ( ruleXClosure )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
                     }
-                    // InternalSignalDSL.g:3377:3: ( ruleXClosure )
-                    // InternalSignalDSL.g:3377:4: ruleXClosure
+                    // InternalSignalDSL.g:3400:3: ( ruleXClosure )
+                    // InternalSignalDSL.g:3400:4: ruleXClosure
                     {
                     pushFollow(FOLLOW_2);
                     ruleXClosure();
@@ -12232,10 +12379,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3381:2: ( ruleXBooleanLiteral )
+                    // InternalSignalDSL.g:3404:2: ( ruleXBooleanLiteral )
                     {
-                    // InternalSignalDSL.g:3381:2: ( ruleXBooleanLiteral )
-                    // InternalSignalDSL.g:3382:3: ruleXBooleanLiteral
+                    // InternalSignalDSL.g:3404:2: ( ruleXBooleanLiteral )
+                    // InternalSignalDSL.g:3405:3: ruleXBooleanLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
@@ -12255,10 +12402,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3387:2: ( ruleXNumberLiteral )
+                    // InternalSignalDSL.g:3410:2: ( ruleXNumberLiteral )
                     {
-                    // InternalSignalDSL.g:3387:2: ( ruleXNumberLiteral )
-                    // InternalSignalDSL.g:3388:3: ruleXNumberLiteral
+                    // InternalSignalDSL.g:3410:2: ( ruleXNumberLiteral )
+                    // InternalSignalDSL.g:3411:3: ruleXNumberLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
@@ -12278,10 +12425,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:3393:2: ( ruleXNullLiteral )
+                    // InternalSignalDSL.g:3416:2: ( ruleXNullLiteral )
                     {
-                    // InternalSignalDSL.g:3393:2: ( ruleXNullLiteral )
-                    // InternalSignalDSL.g:3394:3: ruleXNullLiteral
+                    // InternalSignalDSL.g:3416:2: ( ruleXNullLiteral )
+                    // InternalSignalDSL.g:3417:3: ruleXNullLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
@@ -12301,10 +12448,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:3399:2: ( ruleXStringLiteral )
+                    // InternalSignalDSL.g:3422:2: ( ruleXStringLiteral )
                     {
-                    // InternalSignalDSL.g:3399:2: ( ruleXStringLiteral )
-                    // InternalSignalDSL.g:3400:3: ruleXStringLiteral
+                    // InternalSignalDSL.g:3422:2: ( ruleXStringLiteral )
+                    // InternalSignalDSL.g:3423:3: ruleXStringLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
@@ -12324,10 +12471,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:3405:2: ( ruleXTypeLiteral )
+                    // InternalSignalDSL.g:3428:2: ( ruleXTypeLiteral )
                     {
-                    // InternalSignalDSL.g:3405:2: ( ruleXTypeLiteral )
-                    // InternalSignalDSL.g:3406:3: ruleXTypeLiteral
+                    // InternalSignalDSL.g:3428:2: ( ruleXTypeLiteral )
+                    // InternalSignalDSL.g:3429:3: ruleXTypeLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
@@ -12364,29 +12511,29 @@
 
 
     // $ANTLR start "rule__XCollectionLiteral__Alternatives"
-    // InternalSignalDSL.g:3415:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
+    // InternalSignalDSL.g:3438:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
     public final void rule__XCollectionLiteral__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3419:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
-            int alt31=2;
-            int LA31_0 = input.LA(1);
+            // InternalSignalDSL.g:3442:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
+            int alt33=2;
+            int LA33_0 = input.LA(1);
 
-            if ( (LA31_0==82) ) {
-                int LA31_1 = input.LA(2);
+            if ( (LA33_0==84) ) {
+                int LA33_1 = input.LA(2);
 
-                if ( (LA31_1==62) ) {
-                    alt31=1;
+                if ( (LA33_1==63) ) {
+                    alt33=1;
                 }
-                else if ( (LA31_1==83) ) {
-                    alt31=2;
+                else if ( (LA33_1==85) ) {
+                    alt33=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 31, 1, input);
+                        new NoViableAltException("", 33, 1, input);
 
                     throw nvae;
                 }
@@ -12394,16 +12541,16 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 31, 0, input);
+                    new NoViableAltException("", 33, 0, input);
 
                 throw nvae;
             }
-            switch (alt31) {
+            switch (alt33) {
                 case 1 :
-                    // InternalSignalDSL.g:3420:2: ( ruleXSetLiteral )
+                    // InternalSignalDSL.g:3443:2: ( ruleXSetLiteral )
                     {
-                    // InternalSignalDSL.g:3420:2: ( ruleXSetLiteral )
-                    // InternalSignalDSL.g:3421:3: ruleXSetLiteral
+                    // InternalSignalDSL.g:3443:2: ( ruleXSetLiteral )
+                    // InternalSignalDSL.g:3444:3: ruleXSetLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
@@ -12423,10 +12570,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3426:2: ( ruleXListLiteral )
+                    // InternalSignalDSL.g:3449:2: ( ruleXListLiteral )
                     {
-                    // InternalSignalDSL.g:3426:2: ( ruleXListLiteral )
-                    // InternalSignalDSL.g:3427:3: ruleXListLiteral
+                    // InternalSignalDSL.g:3449:2: ( ruleXListLiteral )
+                    // InternalSignalDSL.g:3450:3: ruleXListLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
@@ -12463,27 +12610,27 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Alternatives_2"
-    // InternalSignalDSL.g:3436:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );
+    // InternalSignalDSL.g:3459:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );
     public final void rule__XSwitchExpression__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3440:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
-            int alt32=2;
-            alt32 = dfa32.predict(input);
-            switch (alt32) {
+            // InternalSignalDSL.g:3463:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
+            int alt34=2;
+            alt34 = dfa34.predict(input);
+            switch (alt34) {
                 case 1 :
-                    // InternalSignalDSL.g:3441:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:3464:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3441:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
-                    // InternalSignalDSL.g:3442:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalSignalDSL.g:3464:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:3465:3: ( rule__XSwitchExpression__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
                     }
-                    // InternalSignalDSL.g:3443:3: ( rule__XSwitchExpression__Group_2_0__0 )
-                    // InternalSignalDSL.g:3443:4: rule__XSwitchExpression__Group_2_0__0
+                    // InternalSignalDSL.g:3466:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalSignalDSL.g:3466:4: rule__XSwitchExpression__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_0__0();
@@ -12503,16 +12650,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3447:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalSignalDSL.g:3470:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3447:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
-                    // InternalSignalDSL.g:3448:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalSignalDSL.g:3470:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalSignalDSL.g:3471:3: ( rule__XSwitchExpression__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); 
                     }
-                    // InternalSignalDSL.g:3449:3: ( rule__XSwitchExpression__Group_2_1__0 )
-                    // InternalSignalDSL.g:3449:4: rule__XSwitchExpression__Group_2_1__0
+                    // InternalSignalDSL.g:3472:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalSignalDSL.g:3472:4: rule__XSwitchExpression__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_1__0();
@@ -12549,41 +12696,41 @@
 
 
     // $ANTLR start "rule__XCasePart__Alternatives_3"
-    // InternalSignalDSL.g:3457:1: rule__XCasePart__Alternatives_3 : ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) );
+    // InternalSignalDSL.g:3480:1: rule__XCasePart__Alternatives_3 : ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) );
     public final void rule__XCasePart__Alternatives_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3461:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
-            int alt33=2;
-            int LA33_0 = input.LA(1);
+            // InternalSignalDSL.g:3484:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
+            int alt35=2;
+            int LA35_0 = input.LA(1);
 
-            if ( (LA33_0==72) ) {
-                alt33=1;
+            if ( (LA35_0==72) ) {
+                alt35=1;
             }
-            else if ( (LA33_0==80) ) {
-                alt33=2;
+            else if ( (LA35_0==82) ) {
+                alt35=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 33, 0, input);
+                    new NoViableAltException("", 35, 0, input);
 
                 throw nvae;
             }
-            switch (alt33) {
+            switch (alt35) {
                 case 1 :
-                    // InternalSignalDSL.g:3462:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalSignalDSL.g:3485:2: ( ( rule__XCasePart__Group_3_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3462:2: ( ( rule__XCasePart__Group_3_0__0 ) )
-                    // InternalSignalDSL.g:3463:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalSignalDSL.g:3485:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalSignalDSL.g:3486:3: ( rule__XCasePart__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCasePartAccess().getGroup_3_0()); 
                     }
-                    // InternalSignalDSL.g:3464:3: ( rule__XCasePart__Group_3_0__0 )
-                    // InternalSignalDSL.g:3464:4: rule__XCasePart__Group_3_0__0
+                    // InternalSignalDSL.g:3487:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalSignalDSL.g:3487:4: rule__XCasePart__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__Group_3_0__0();
@@ -12603,16 +12750,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3468:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalSignalDSL.g:3491:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
                     {
-                    // InternalSignalDSL.g:3468:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
-                    // InternalSignalDSL.g:3469:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalSignalDSL.g:3491:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalSignalDSL.g:3492:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); 
                     }
-                    // InternalSignalDSL.g:3470:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
-                    // InternalSignalDSL.g:3470:4: rule__XCasePart__FallThroughAssignment_3_1
+                    // InternalSignalDSL.g:3493:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalSignalDSL.g:3493:4: rule__XCasePart__FallThroughAssignment_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__FallThroughAssignment_3_1();
@@ -12649,35 +12796,35 @@
 
 
     // $ANTLR start "rule__XExpressionOrVarDeclaration__Alternatives"
-    // InternalSignalDSL.g:3478:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
+    // InternalSignalDSL.g:3501:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
     public final void rule__XExpressionOrVarDeclaration__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3482:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
-            int alt34=2;
-            int LA34_0 = input.LA(1);
+            // InternalSignalDSL.g:3505:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
+            int alt36=2;
+            int LA36_0 = input.LA(1);
 
-            if ( (LA34_0==44||LA34_0==110) ) {
-                alt34=1;
+            if ( (LA36_0==45||LA36_0==114) ) {
+                alt36=1;
             }
-            else if ( ((LA34_0>=RULE_ID && LA34_0<=RULE_STRING)||LA34_0==27||(LA34_0>=34 && LA34_0<=35)||LA34_0==40||(LA34_0>=45 && LA34_0<=50)||LA34_0==62||LA34_0==78||(LA34_0>=82 && LA34_0<=83)||LA34_0==86||LA34_0==88||(LA34_0>=91 && LA34_0<=99)||LA34_0==101||LA34_0==111) ) {
-                alt34=2;
+            else if ( ((LA36_0>=RULE_ID && LA36_0<=RULE_STRING)||LA36_0==28||(LA36_0>=35 && LA36_0<=36)||LA36_0==41||(LA36_0>=46 && LA36_0<=51)||LA36_0==63||LA36_0==80||(LA36_0>=84 && LA36_0<=85)||LA36_0==88||LA36_0==90||(LA36_0>=93 && LA36_0<=101)||LA36_0==103||LA36_0==115) ) {
+                alt36=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 34, 0, input);
+                    new NoViableAltException("", 36, 0, input);
 
                 throw nvae;
             }
-            switch (alt34) {
+            switch (alt36) {
                 case 1 :
-                    // InternalSignalDSL.g:3483:2: ( ruleXVariableDeclaration )
+                    // InternalSignalDSL.g:3506:2: ( ruleXVariableDeclaration )
                     {
-                    // InternalSignalDSL.g:3483:2: ( ruleXVariableDeclaration )
-                    // InternalSignalDSL.g:3484:3: ruleXVariableDeclaration
+                    // InternalSignalDSL.g:3506:2: ( ruleXVariableDeclaration )
+                    // InternalSignalDSL.g:3507:3: ruleXVariableDeclaration
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
@@ -12697,10 +12844,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3489:2: ( ruleXExpression )
+                    // InternalSignalDSL.g:3512:2: ( ruleXExpression )
                     {
-                    // InternalSignalDSL.g:3489:2: ( ruleXExpression )
-                    // InternalSignalDSL.g:3490:3: ruleXExpression
+                    // InternalSignalDSL.g:3512:2: ( ruleXExpression )
+                    // InternalSignalDSL.g:3513:3: ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
@@ -12737,41 +12884,41 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Alternatives_1"
-    // InternalSignalDSL.g:3499:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
+    // InternalSignalDSL.g:3522:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
     public final void rule__XVariableDeclaration__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3503:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
-            int alt35=2;
-            int LA35_0 = input.LA(1);
+            // InternalSignalDSL.g:3526:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
+            int alt37=2;
+            int LA37_0 = input.LA(1);
 
-            if ( (LA35_0==110) ) {
-                alt35=1;
+            if ( (LA37_0==114) ) {
+                alt37=1;
             }
-            else if ( (LA35_0==44) ) {
-                alt35=2;
+            else if ( (LA37_0==45) ) {
+                alt37=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 35, 0, input);
+                    new NoViableAltException("", 37, 0, input);
 
                 throw nvae;
             }
-            switch (alt35) {
+            switch (alt37) {
                 case 1 :
-                    // InternalSignalDSL.g:3504:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalSignalDSL.g:3527:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
                     {
-                    // InternalSignalDSL.g:3504:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
-                    // InternalSignalDSL.g:3505:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalSignalDSL.g:3527:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalSignalDSL.g:3528:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); 
                     }
-                    // InternalSignalDSL.g:3506:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
-                    // InternalSignalDSL.g:3506:4: rule__XVariableDeclaration__WriteableAssignment_1_0
+                    // InternalSignalDSL.g:3529:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalSignalDSL.g:3529:4: rule__XVariableDeclaration__WriteableAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__WriteableAssignment_1_0();
@@ -12791,15 +12938,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3510:2: ( 'val' )
+                    // InternalSignalDSL.g:3533:2: ( 'val' )
                     {
-                    // InternalSignalDSL.g:3510:2: ( 'val' )
-                    // InternalSignalDSL.g:3511:3: 'val'
+                    // InternalSignalDSL.g:3533:2: ( 'val' )
+                    // InternalSignalDSL.g:3534:3: 'val'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); 
                     }
-                    match(input,44,FOLLOW_2); if (state.failed) return ;
+                    match(input,45,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); 
                     }
@@ -12827,55 +12974,55 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Alternatives_2"
-    // InternalSignalDSL.g:3520:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );
+    // InternalSignalDSL.g:3543:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );
     public final void rule__XVariableDeclaration__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3524:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
-            int alt36=2;
-            int LA36_0 = input.LA(1);
+            // InternalSignalDSL.g:3547:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
+            int alt38=2;
+            int LA38_0 = input.LA(1);
 
-            if ( (LA36_0==RULE_ID) ) {
-                int LA36_1 = input.LA(2);
+            if ( (LA38_0==RULE_ID) ) {
+                int LA38_1 = input.LA(2);
 
-                if ( (synpred80_InternalSignalDSL()) ) {
-                    alt36=1;
+                if ( (synpred83_InternalSignalDSL()) ) {
+                    alt38=1;
                 }
                 else if ( (true) ) {
-                    alt36=2;
+                    alt38=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 36, 1, input);
+                        new NoViableAltException("", 38, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA36_0==31||LA36_0==78) ) {
-                alt36=1;
+            else if ( (LA38_0==32||LA38_0==80) ) {
+                alt38=1;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 36, 0, input);
+                    new NoViableAltException("", 38, 0, input);
 
                 throw nvae;
             }
-            switch (alt36) {
+            switch (alt38) {
                 case 1 :
-                    // InternalSignalDSL.g:3525:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:3548:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3525:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
-                    // InternalSignalDSL.g:3526:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalSignalDSL.g:3548:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:3549:3: ( rule__XVariableDeclaration__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
                     }
-                    // InternalSignalDSL.g:3527:3: ( rule__XVariableDeclaration__Group_2_0__0 )
-                    // InternalSignalDSL.g:3527:4: rule__XVariableDeclaration__Group_2_0__0
+                    // InternalSignalDSL.g:3550:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalSignalDSL.g:3550:4: rule__XVariableDeclaration__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__Group_2_0__0();
@@ -12895,16 +13042,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3531:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalSignalDSL.g:3554:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
                     {
-                    // InternalSignalDSL.g:3531:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
-                    // InternalSignalDSL.g:3532:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalSignalDSL.g:3554:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalSignalDSL.g:3555:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); 
                     }
-                    // InternalSignalDSL.g:3533:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
-                    // InternalSignalDSL.g:3533:4: rule__XVariableDeclaration__NameAssignment_2_1
+                    // InternalSignalDSL.g:3556:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalSignalDSL.g:3556:4: rule__XVariableDeclaration__NameAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__NameAssignment_2_1();
@@ -12941,27 +13088,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Alternatives_3_1"
-    // InternalSignalDSL.g:3541:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );
+    // InternalSignalDSL.g:3564:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );
     public final void rule__XFeatureCall__Alternatives_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3545:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
-            int alt37=2;
-            alt37 = dfa37.predict(input);
-            switch (alt37) {
+            // InternalSignalDSL.g:3568:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
+            int alt39=2;
+            alt39 = dfa39.predict(input);
+            switch (alt39) {
                 case 1 :
-                    // InternalSignalDSL.g:3546:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalSignalDSL.g:3569:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
                     {
-                    // InternalSignalDSL.g:3546:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
-                    // InternalSignalDSL.g:3547:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalSignalDSL.g:3569:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalSignalDSL.g:3570:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
                     }
-                    // InternalSignalDSL.g:3548:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
-                    // InternalSignalDSL.g:3548:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+                    // InternalSignalDSL.g:3571:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalSignalDSL.g:3571:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
@@ -12981,16 +13128,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3552:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalSignalDSL.g:3575:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3552:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
-                    // InternalSignalDSL.g:3553:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalSignalDSL.g:3575:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalSignalDSL.g:3576:3: ( rule__XFeatureCall__Group_3_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); 
                     }
-                    // InternalSignalDSL.g:3554:3: ( rule__XFeatureCall__Group_3_1_1__0 )
-                    // InternalSignalDSL.g:3554:4: rule__XFeatureCall__Group_3_1_1__0
+                    // InternalSignalDSL.g:3577:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalSignalDSL.g:3577:4: rule__XFeatureCall__Group_3_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_3_1_1__0();
@@ -13027,54 +13174,54 @@
 
 
     // $ANTLR start "rule__FeatureCallID__Alternatives"
-    // InternalSignalDSL.g:3562:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
+    // InternalSignalDSL.g:3585:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
     public final void rule__FeatureCallID__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3566:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
-            int alt38=5;
+            // InternalSignalDSL.g:3589:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
+            int alt40=5;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                alt38=1;
-                }
-                break;
-            case 45:
-                {
-                alt38=2;
+                alt40=1;
                 }
                 break;
             case 46:
                 {
-                alt38=3;
+                alt40=2;
                 }
                 break;
             case 47:
                 {
-                alt38=4;
+                alt40=3;
                 }
                 break;
             case 48:
                 {
-                alt38=5;
+                alt40=4;
+                }
+                break;
+            case 49:
+                {
+                alt40=5;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 38, 0, input);
+                    new NoViableAltException("", 40, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt38) {
+            switch (alt40) {
                 case 1 :
-                    // InternalSignalDSL.g:3567:2: ( ruleValidID )
+                    // InternalSignalDSL.g:3590:2: ( ruleValidID )
                     {
-                    // InternalSignalDSL.g:3567:2: ( ruleValidID )
-                    // InternalSignalDSL.g:3568:3: ruleValidID
+                    // InternalSignalDSL.g:3590:2: ( ruleValidID )
+                    // InternalSignalDSL.g:3591:3: ruleValidID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
@@ -13094,15 +13241,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3573:2: ( 'extends' )
+                    // InternalSignalDSL.g:3596:2: ( 'extends' )
                     {
-                    // InternalSignalDSL.g:3573:2: ( 'extends' )
-                    // InternalSignalDSL.g:3574:3: 'extends'
+                    // InternalSignalDSL.g:3596:2: ( 'extends' )
+                    // InternalSignalDSL.g:3597:3: 'extends'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); 
                     }
-                    match(input,45,FOLLOW_2); if (state.failed) return ;
+                    match(input,46,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); 
                     }
@@ -13113,15 +13260,15 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3579:2: ( 'static' )
+                    // InternalSignalDSL.g:3602:2: ( 'static' )
                     {
-                    // InternalSignalDSL.g:3579:2: ( 'static' )
-                    // InternalSignalDSL.g:3580:3: 'static'
+                    // InternalSignalDSL.g:3602:2: ( 'static' )
+                    // InternalSignalDSL.g:3603:3: 'static'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); 
                     }
-                    match(input,46,FOLLOW_2); if (state.failed) return ;
+                    match(input,47,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); 
                     }
@@ -13132,15 +13279,15 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3585:2: ( 'import' )
+                    // InternalSignalDSL.g:3608:2: ( 'import' )
                     {
-                    // InternalSignalDSL.g:3585:2: ( 'import' )
-                    // InternalSignalDSL.g:3586:3: 'import'
+                    // InternalSignalDSL.g:3608:2: ( 'import' )
+                    // InternalSignalDSL.g:3609:3: 'import'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); 
                     }
-                    match(input,47,FOLLOW_2); if (state.failed) return ;
+                    match(input,48,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); 
                     }
@@ -13151,15 +13298,15 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:3591:2: ( 'extension' )
+                    // InternalSignalDSL.g:3614:2: ( 'extension' )
                     {
-                    // InternalSignalDSL.g:3591:2: ( 'extension' )
-                    // InternalSignalDSL.g:3592:3: 'extension'
+                    // InternalSignalDSL.g:3614:2: ( 'extension' )
+                    // InternalSignalDSL.g:3615:3: 'extension'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); 
                     }
-                    match(input,48,FOLLOW_2); if (state.failed) return ;
+                    match(input,49,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); 
                     }
@@ -13187,35 +13334,35 @@
 
 
     // $ANTLR start "rule__IdOrSuper__Alternatives"
-    // InternalSignalDSL.g:3601:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
+    // InternalSignalDSL.g:3624:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
     public final void rule__IdOrSuper__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3605:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
-            int alt39=2;
-            int LA39_0 = input.LA(1);
+            // InternalSignalDSL.g:3628:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
+            int alt41=2;
+            int LA41_0 = input.LA(1);
 
-            if ( (LA39_0==RULE_ID||(LA39_0>=45 && LA39_0<=48)) ) {
-                alt39=1;
+            if ( (LA41_0==RULE_ID||(LA41_0>=46 && LA41_0<=49)) ) {
+                alt41=1;
             }
-            else if ( (LA39_0==49) ) {
-                alt39=2;
+            else if ( (LA41_0==50) ) {
+                alt41=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 39, 0, input);
+                    new NoViableAltException("", 41, 0, input);
 
                 throw nvae;
             }
-            switch (alt39) {
+            switch (alt41) {
                 case 1 :
-                    // InternalSignalDSL.g:3606:2: ( ruleFeatureCallID )
+                    // InternalSignalDSL.g:3629:2: ( ruleFeatureCallID )
                     {
-                    // InternalSignalDSL.g:3606:2: ( ruleFeatureCallID )
-                    // InternalSignalDSL.g:3607:3: ruleFeatureCallID
+                    // InternalSignalDSL.g:3629:2: ( ruleFeatureCallID )
+                    // InternalSignalDSL.g:3630:3: ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
@@ -13235,15 +13382,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3612:2: ( 'super' )
+                    // InternalSignalDSL.g:3635:2: ( 'super' )
                     {
-                    // InternalSignalDSL.g:3612:2: ( 'super' )
-                    // InternalSignalDSL.g:3613:3: 'super'
+                    // InternalSignalDSL.g:3635:2: ( 'super' )
+                    // InternalSignalDSL.g:3636:3: 'super'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
                     }
-                    match(input,49,FOLLOW_2); if (state.failed) return ;
+                    match(input,50,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
                     }
@@ -13271,27 +13418,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Alternatives_4_1"
-    // InternalSignalDSL.g:3622:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );
+    // InternalSignalDSL.g:3645:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );
     public final void rule__XConstructorCall__Alternatives_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3626:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
-            int alt40=2;
-            alt40 = dfa40.predict(input);
-            switch (alt40) {
+            // InternalSignalDSL.g:3649:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
+            int alt42=2;
+            alt42 = dfa42.predict(input);
+            switch (alt42) {
                 case 1 :
-                    // InternalSignalDSL.g:3627:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalSignalDSL.g:3650:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
                     {
-                    // InternalSignalDSL.g:3627:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
-                    // InternalSignalDSL.g:3628:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalSignalDSL.g:3650:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalSignalDSL.g:3651:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
                     }
-                    // InternalSignalDSL.g:3629:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
-                    // InternalSignalDSL.g:3629:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+                    // InternalSignalDSL.g:3652:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalSignalDSL.g:3652:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__ArgumentsAssignment_4_1_0();
@@ -13311,16 +13458,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3633:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalSignalDSL.g:3656:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3633:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
-                    // InternalSignalDSL.g:3634:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalSignalDSL.g:3656:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalSignalDSL.g:3657:3: ( rule__XConstructorCall__Group_4_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); 
                     }
-                    // InternalSignalDSL.g:3635:3: ( rule__XConstructorCall__Group_4_1_1__0 )
-                    // InternalSignalDSL.g:3635:4: rule__XConstructorCall__Group_4_1_1__0
+                    // InternalSignalDSL.g:3658:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalSignalDSL.g:3658:4: rule__XConstructorCall__Group_4_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_4_1_1__0();
@@ -13357,40 +13504,40 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Alternatives_1"
-    // InternalSignalDSL.g:3643:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
+    // InternalSignalDSL.g:3666:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
     public final void rule__XBooleanLiteral__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3647:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
-            int alt41=2;
-            int LA41_0 = input.LA(1);
+            // InternalSignalDSL.g:3670:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
+            int alt43=2;
+            int LA43_0 = input.LA(1);
 
-            if ( (LA41_0==50) ) {
-                alt41=1;
+            if ( (LA43_0==51) ) {
+                alt43=1;
             }
-            else if ( (LA41_0==111) ) {
-                alt41=2;
+            else if ( (LA43_0==115) ) {
+                alt43=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 41, 0, input);
+                    new NoViableAltException("", 43, 0, input);
 
                 throw nvae;
             }
-            switch (alt41) {
+            switch (alt43) {
                 case 1 :
-                    // InternalSignalDSL.g:3648:2: ( 'false' )
+                    // InternalSignalDSL.g:3671:2: ( 'false' )
                     {
-                    // InternalSignalDSL.g:3648:2: ( 'false' )
-                    // InternalSignalDSL.g:3649:3: 'false'
+                    // InternalSignalDSL.g:3671:2: ( 'false' )
+                    // InternalSignalDSL.g:3672:3: 'false'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
                     }
-                    match(input,50,FOLLOW_2); if (state.failed) return ;
+                    match(input,51,FOLLOW_2); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
                     }
@@ -13401,16 +13548,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3654:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalSignalDSL.g:3677:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
                     {
-                    // InternalSignalDSL.g:3654:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
-                    // InternalSignalDSL.g:3655:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalSignalDSL.g:3677:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalSignalDSL.g:3678:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); 
                     }
-                    // InternalSignalDSL.g:3656:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
-                    // InternalSignalDSL.g:3656:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
+                    // InternalSignalDSL.g:3679:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalSignalDSL.g:3679:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBooleanLiteral__IsTrueAssignment_1_1();
@@ -13447,41 +13594,41 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Alternatives_3"
-    // InternalSignalDSL.g:3664:1: rule__XTryCatchFinallyExpression__Alternatives_3 : ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) );
+    // InternalSignalDSL.g:3687:1: rule__XTryCatchFinallyExpression__Alternatives_3 : ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) );
     public final void rule__XTryCatchFinallyExpression__Alternatives_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3668:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
-            int alt42=2;
-            int LA42_0 = input.LA(1);
+            // InternalSignalDSL.g:3691:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
+            int alt44=2;
+            int LA44_0 = input.LA(1);
 
-            if ( (LA42_0==102) ) {
-                alt42=1;
+            if ( (LA44_0==104) ) {
+                alt44=1;
             }
-            else if ( (LA42_0==100) ) {
-                alt42=2;
+            else if ( (LA44_0==102) ) {
+                alt44=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 42, 0, input);
+                    new NoViableAltException("", 44, 0, input);
 
                 throw nvae;
             }
-            switch (alt42) {
+            switch (alt44) {
                 case 1 :
-                    // InternalSignalDSL.g:3669:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalSignalDSL.g:3692:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3669:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
-                    // InternalSignalDSL.g:3670:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalSignalDSL.g:3692:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalSignalDSL.g:3693:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); 
                     }
-                    // InternalSignalDSL.g:3671:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
-                    // InternalSignalDSL.g:3671:4: rule__XTryCatchFinallyExpression__Group_3_0__0
+                    // InternalSignalDSL.g:3694:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalSignalDSL.g:3694:4: rule__XTryCatchFinallyExpression__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_0__0();
@@ -13501,16 +13648,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3675:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalSignalDSL.g:3698:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3675:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
-                    // InternalSignalDSL.g:3676:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalSignalDSL.g:3698:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalSignalDSL.g:3699:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); 
                     }
-                    // InternalSignalDSL.g:3677:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
-                    // InternalSignalDSL.g:3677:4: rule__XTryCatchFinallyExpression__Group_3_1__0
+                    // InternalSignalDSL.g:3700:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalSignalDSL.g:3700:4: rule__XTryCatchFinallyExpression__Group_3_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_1__0();
@@ -13547,35 +13694,35 @@
 
 
     // $ANTLR start "rule__Number__Alternatives"
-    // InternalSignalDSL.g:3685:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
+    // InternalSignalDSL.g:3708:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
     public final void rule__Number__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3689:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
-            int alt43=2;
-            int LA43_0 = input.LA(1);
+            // InternalSignalDSL.g:3712:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
+            int alt45=2;
+            int LA45_0 = input.LA(1);
 
-            if ( (LA43_0==RULE_HEX) ) {
-                alt43=1;
+            if ( (LA45_0==RULE_HEX) ) {
+                alt45=1;
             }
-            else if ( ((LA43_0>=RULE_INT && LA43_0<=RULE_DECIMAL)) ) {
-                alt43=2;
+            else if ( ((LA45_0>=RULE_INT && LA45_0<=RULE_DECIMAL)) ) {
+                alt45=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 43, 0, input);
+                    new NoViableAltException("", 45, 0, input);
 
                 throw nvae;
             }
-            switch (alt43) {
+            switch (alt45) {
                 case 1 :
-                    // InternalSignalDSL.g:3690:2: ( RULE_HEX )
+                    // InternalSignalDSL.g:3713:2: ( RULE_HEX )
                     {
-                    // InternalSignalDSL.g:3690:2: ( RULE_HEX )
-                    // InternalSignalDSL.g:3691:3: RULE_HEX
+                    // InternalSignalDSL.g:3713:2: ( RULE_HEX )
+                    // InternalSignalDSL.g:3714:3: RULE_HEX
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
@@ -13591,16 +13738,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3696:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalSignalDSL.g:3719:2: ( ( rule__Number__Group_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3696:2: ( ( rule__Number__Group_1__0 ) )
-                    // InternalSignalDSL.g:3697:3: ( rule__Number__Group_1__0 )
+                    // InternalSignalDSL.g:3719:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalSignalDSL.g:3720:3: ( rule__Number__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getGroup_1()); 
                     }
-                    // InternalSignalDSL.g:3698:3: ( rule__Number__Group_1__0 )
-                    // InternalSignalDSL.g:3698:4: rule__Number__Group_1__0
+                    // InternalSignalDSL.g:3721:3: ( rule__Number__Group_1__0 )
+                    // InternalSignalDSL.g:3721:4: rule__Number__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Number__Group_1__0();
@@ -13637,35 +13784,35 @@
 
 
     // $ANTLR start "rule__Number__Alternatives_1_0"
-    // InternalSignalDSL.g:3706:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    // InternalSignalDSL.g:3729:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
     public final void rule__Number__Alternatives_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3710:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
-            int alt44=2;
-            int LA44_0 = input.LA(1);
+            // InternalSignalDSL.g:3733:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            int alt46=2;
+            int LA46_0 = input.LA(1);
 
-            if ( (LA44_0==RULE_INT) ) {
-                alt44=1;
+            if ( (LA46_0==RULE_INT) ) {
+                alt46=1;
             }
-            else if ( (LA44_0==RULE_DECIMAL) ) {
-                alt44=2;
+            else if ( (LA46_0==RULE_DECIMAL) ) {
+                alt46=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 44, 0, input);
+                    new NoViableAltException("", 46, 0, input);
 
                 throw nvae;
             }
-            switch (alt44) {
+            switch (alt46) {
                 case 1 :
-                    // InternalSignalDSL.g:3711:2: ( RULE_INT )
+                    // InternalSignalDSL.g:3734:2: ( RULE_INT )
                     {
-                    // InternalSignalDSL.g:3711:2: ( RULE_INT )
-                    // InternalSignalDSL.g:3712:3: RULE_INT
+                    // InternalSignalDSL.g:3734:2: ( RULE_INT )
+                    // InternalSignalDSL.g:3735:3: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
@@ -13681,10 +13828,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3717:2: ( RULE_DECIMAL )
+                    // InternalSignalDSL.g:3740:2: ( RULE_DECIMAL )
                     {
-                    // InternalSignalDSL.g:3717:2: ( RULE_DECIMAL )
-                    // InternalSignalDSL.g:3718:3: RULE_DECIMAL
+                    // InternalSignalDSL.g:3740:2: ( RULE_DECIMAL )
+                    // InternalSignalDSL.g:3741:3: RULE_DECIMAL
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
@@ -13717,35 +13864,35 @@
 
 
     // $ANTLR start "rule__Number__Alternatives_1_1_1"
-    // InternalSignalDSL.g:3727:1: rule__Number__Alternatives_1_1_1 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    // InternalSignalDSL.g:3750:1: rule__Number__Alternatives_1_1_1 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
     public final void rule__Number__Alternatives_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3731:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
-            int alt45=2;
-            int LA45_0 = input.LA(1);
+            // InternalSignalDSL.g:3754:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            int alt47=2;
+            int LA47_0 = input.LA(1);
 
-            if ( (LA45_0==RULE_INT) ) {
-                alt45=1;
+            if ( (LA47_0==RULE_INT) ) {
+                alt47=1;
             }
-            else if ( (LA45_0==RULE_DECIMAL) ) {
-                alt45=2;
+            else if ( (LA47_0==RULE_DECIMAL) ) {
+                alt47=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 45, 0, input);
+                    new NoViableAltException("", 47, 0, input);
 
                 throw nvae;
             }
-            switch (alt45) {
+            switch (alt47) {
                 case 1 :
-                    // InternalSignalDSL.g:3732:2: ( RULE_INT )
+                    // InternalSignalDSL.g:3755:2: ( RULE_INT )
                     {
-                    // InternalSignalDSL.g:3732:2: ( RULE_INT )
-                    // InternalSignalDSL.g:3733:3: RULE_INT
+                    // InternalSignalDSL.g:3755:2: ( RULE_INT )
+                    // InternalSignalDSL.g:3756:3: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
@@ -13761,10 +13908,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3738:2: ( RULE_DECIMAL )
+                    // InternalSignalDSL.g:3761:2: ( RULE_DECIMAL )
                     {
-                    // InternalSignalDSL.g:3738:2: ( RULE_DECIMAL )
-                    // InternalSignalDSL.g:3739:3: RULE_DECIMAL
+                    // InternalSignalDSL.g:3761:2: ( RULE_DECIMAL )
+                    // InternalSignalDSL.g:3762:3: RULE_DECIMAL
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
@@ -13797,41 +13944,41 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Alternatives"
-    // InternalSignalDSL.g:3748:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
+    // InternalSignalDSL.g:3771:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
     public final void rule__JvmTypeReference__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3752:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
-            int alt46=2;
-            int LA46_0 = input.LA(1);
+            // InternalSignalDSL.g:3775:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
+            int alt48=2;
+            int LA48_0 = input.LA(1);
 
-            if ( (LA46_0==RULE_ID) ) {
-                alt46=1;
+            if ( (LA48_0==RULE_ID) ) {
+                alt48=1;
             }
-            else if ( (LA46_0==31||LA46_0==78) ) {
-                alt46=2;
+            else if ( (LA48_0==32||LA48_0==80) ) {
+                alt48=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 46, 0, input);
+                    new NoViableAltException("", 48, 0, input);
 
                 throw nvae;
             }
-            switch (alt46) {
+            switch (alt48) {
                 case 1 :
-                    // InternalSignalDSL.g:3753:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalSignalDSL.g:3776:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3753:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
-                    // InternalSignalDSL.g:3754:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalSignalDSL.g:3776:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalSignalDSL.g:3777:3: ( rule__JvmTypeReference__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); 
                     }
-                    // InternalSignalDSL.g:3755:3: ( rule__JvmTypeReference__Group_0__0 )
-                    // InternalSignalDSL.g:3755:4: rule__JvmTypeReference__Group_0__0
+                    // InternalSignalDSL.g:3778:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalSignalDSL.g:3778:4: rule__JvmTypeReference__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmTypeReference__Group_0__0();
@@ -13851,10 +13998,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3759:2: ( ruleXFunctionTypeRef )
+                    // InternalSignalDSL.g:3782:2: ( ruleXFunctionTypeRef )
                     {
-                    // InternalSignalDSL.g:3759:2: ( ruleXFunctionTypeRef )
-                    // InternalSignalDSL.g:3760:3: ruleXFunctionTypeRef
+                    // InternalSignalDSL.g:3782:2: ( ruleXFunctionTypeRef )
+                    // InternalSignalDSL.g:3783:3: ruleXFunctionTypeRef
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
@@ -13891,35 +14038,35 @@
 
 
     // $ANTLR start "rule__JvmArgumentTypeReference__Alternatives"
-    // InternalSignalDSL.g:3769:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
+    // InternalSignalDSL.g:3792:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
     public final void rule__JvmArgumentTypeReference__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3773:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
-            int alt47=2;
-            int LA47_0 = input.LA(1);
+            // InternalSignalDSL.g:3796:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
+            int alt49=2;
+            int LA49_0 = input.LA(1);
 
-            if ( (LA47_0==RULE_ID||LA47_0==31||LA47_0==78) ) {
-                alt47=1;
+            if ( (LA49_0==RULE_ID||LA49_0==32||LA49_0==80) ) {
+                alt49=1;
             }
-            else if ( (LA47_0==103) ) {
-                alt47=2;
+            else if ( (LA49_0==105) ) {
+                alt49=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 47, 0, input);
+                    new NoViableAltException("", 49, 0, input);
 
                 throw nvae;
             }
-            switch (alt47) {
+            switch (alt49) {
                 case 1 :
-                    // InternalSignalDSL.g:3774:2: ( ruleJvmTypeReference )
+                    // InternalSignalDSL.g:3797:2: ( ruleJvmTypeReference )
                     {
-                    // InternalSignalDSL.g:3774:2: ( ruleJvmTypeReference )
-                    // InternalSignalDSL.g:3775:3: ruleJvmTypeReference
+                    // InternalSignalDSL.g:3797:2: ( ruleJvmTypeReference )
+                    // InternalSignalDSL.g:3798:3: ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
@@ -13939,10 +14086,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3780:2: ( ruleJvmWildcardTypeReference )
+                    // InternalSignalDSL.g:3803:2: ( ruleJvmWildcardTypeReference )
                     {
-                    // InternalSignalDSL.g:3780:2: ( ruleJvmWildcardTypeReference )
-                    // InternalSignalDSL.g:3781:3: ruleJvmWildcardTypeReference
+                    // InternalSignalDSL.g:3803:2: ( ruleJvmWildcardTypeReference )
+                    // InternalSignalDSL.g:3804:3: ruleJvmWildcardTypeReference
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
@@ -13979,41 +14126,41 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Alternatives_2"
-    // InternalSignalDSL.g:3790:1: rule__JvmWildcardTypeReference__Alternatives_2 : ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) );
+    // InternalSignalDSL.g:3813:1: rule__JvmWildcardTypeReference__Alternatives_2 : ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) );
     public final void rule__JvmWildcardTypeReference__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3794:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
-            int alt48=2;
-            int LA48_0 = input.LA(1);
+            // InternalSignalDSL.g:3817:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
+            int alt50=2;
+            int LA50_0 = input.LA(1);
 
-            if ( (LA48_0==45) ) {
-                alt48=1;
+            if ( (LA50_0==46) ) {
+                alt50=1;
             }
-            else if ( (LA48_0==49) ) {
-                alt48=2;
+            else if ( (LA50_0==50) ) {
+                alt50=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 48, 0, input);
+                    new NoViableAltException("", 50, 0, input);
 
                 throw nvae;
             }
-            switch (alt48) {
+            switch (alt50) {
                 case 1 :
-                    // InternalSignalDSL.g:3795:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:3818:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
                     {
-                    // InternalSignalDSL.g:3795:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
-                    // InternalSignalDSL.g:3796:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalSignalDSL.g:3818:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalSignalDSL.g:3819:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); 
                     }
-                    // InternalSignalDSL.g:3797:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
-                    // InternalSignalDSL.g:3797:4: rule__JvmWildcardTypeReference__Group_2_0__0
+                    // InternalSignalDSL.g:3820:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalSignalDSL.g:3820:4: rule__JvmWildcardTypeReference__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Group_2_0__0();
@@ -14033,16 +14180,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3801:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalSignalDSL.g:3824:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
                     {
-                    // InternalSignalDSL.g:3801:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
-                    // InternalSignalDSL.g:3802:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalSignalDSL.g:3824:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalSignalDSL.g:3825:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); 
                     }
-                    // InternalSignalDSL.g:3803:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
-                    // InternalSignalDSL.g:3803:4: rule__JvmWildcardTypeReference__Group_2_1__0
+                    // InternalSignalDSL.g:3826:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalSignalDSL.g:3826:4: rule__JvmWildcardTypeReference__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Group_2_1__0();
@@ -14078,49 +14225,49 @@
     // $ANTLR end "rule__JvmWildcardTypeReference__Alternatives_2"
 
 
-    // $ANTLR start "rule__SignalActionEnum__Alternatives"
-    // InternalSignalDSL.g:3811:1: rule__SignalActionEnum__Alternatives : ( ( ( 'import' ) ) | ( ( 'export' ) ) );
-    public final void rule__SignalActionEnum__Alternatives() throws RecognitionException {
+    // $ANTLR start "rule__SignalActionTypeEnum__Alternatives"
+    // InternalSignalDSL.g:3834:1: rule__SignalActionTypeEnum__Alternatives : ( ( ( 'import' ) ) | ( ( 'export' ) ) );
+    public final void rule__SignalActionTypeEnum__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3815:1: ( ( ( 'import' ) ) | ( ( 'export' ) ) )
-            int alt49=2;
-            int LA49_0 = input.LA(1);
+            // InternalSignalDSL.g:3838:1: ( ( ( 'import' ) ) | ( ( 'export' ) ) )
+            int alt51=2;
+            int LA51_0 = input.LA(1);
 
-            if ( (LA49_0==47) ) {
-                alt49=1;
+            if ( (LA51_0==48) ) {
+                alt51=1;
             }
-            else if ( (LA49_0==51) ) {
-                alt49=2;
+            else if ( (LA51_0==52) ) {
+                alt51=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 49, 0, input);
+                    new NoViableAltException("", 51, 0, input);
 
                 throw nvae;
             }
-            switch (alt49) {
+            switch (alt51) {
                 case 1 :
-                    // InternalSignalDSL.g:3816:2: ( ( 'import' ) )
+                    // InternalSignalDSL.g:3839:2: ( ( 'import' ) )
                     {
-                    // InternalSignalDSL.g:3816:2: ( ( 'import' ) )
-                    // InternalSignalDSL.g:3817:3: ( 'import' )
+                    // InternalSignalDSL.g:3839:2: ( ( 'import' ) )
+                    // InternalSignalDSL.g:3840:3: ( 'import' )
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0()); 
+                       before(grammarAccess.getSignalActionTypeEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0()); 
                     }
-                    // InternalSignalDSL.g:3818:3: ( 'import' )
-                    // InternalSignalDSL.g:3818:4: 'import'
+                    // InternalSignalDSL.g:3841:3: ( 'import' )
+                    // InternalSignalDSL.g:3841:4: 'import'
                     {
-                    match(input,47,FOLLOW_2); if (state.failed) return ;
+                    match(input,48,FOLLOW_2); if (state.failed) return ;
 
                     }
 
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0()); 
+                       after(grammarAccess.getSignalActionTypeEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0()); 
                     }
 
                     }
@@ -14129,23 +14276,23 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3822:2: ( ( 'export' ) )
+                    // InternalSignalDSL.g:3845:2: ( ( 'export' ) )
                     {
-                    // InternalSignalDSL.g:3822:2: ( ( 'export' ) )
-                    // InternalSignalDSL.g:3823:3: ( 'export' )
+                    // InternalSignalDSL.g:3845:2: ( ( 'export' ) )
+                    // InternalSignalDSL.g:3846:3: ( 'export' )
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1()); 
+                       before(grammarAccess.getSignalActionTypeEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1()); 
                     }
-                    // InternalSignalDSL.g:3824:3: ( 'export' )
-                    // InternalSignalDSL.g:3824:4: 'export'
+                    // InternalSignalDSL.g:3847:3: ( 'export' )
+                    // InternalSignalDSL.g:3847:4: 'export'
                     {
-                    match(input,51,FOLLOW_2); if (state.failed) return ;
+                    match(input,52,FOLLOW_2); if (state.failed) return ;
 
                     }
 
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1()); 
+                       after(grammarAccess.getSignalActionTypeEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1()); 
                     }
 
                     }
@@ -14167,47 +14314,47 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalActionEnum__Alternatives"
+    // $ANTLR end "rule__SignalActionTypeEnum__Alternatives"
 
 
     // $ANTLR start "rule__SignalExecutionTypeEnum__Alternatives"
-    // InternalSignalDSL.g:3832:1: rule__SignalExecutionTypeEnum__Alternatives : ( ( ( 'sequential' ) ) | ( ( 'parallel' ) ) );
+    // InternalSignalDSL.g:3855:1: rule__SignalExecutionTypeEnum__Alternatives : ( ( ( 'sequential' ) ) | ( ( 'parallel' ) ) );
     public final void rule__SignalExecutionTypeEnum__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3836:1: ( ( ( 'sequential' ) ) | ( ( 'parallel' ) ) )
-            int alt50=2;
-            int LA50_0 = input.LA(1);
+            // InternalSignalDSL.g:3859:1: ( ( ( 'sequential' ) ) | ( ( 'parallel' ) ) )
+            int alt52=2;
+            int LA52_0 = input.LA(1);
 
-            if ( (LA50_0==52) ) {
-                alt50=1;
+            if ( (LA52_0==53) ) {
+                alt52=1;
             }
-            else if ( (LA50_0==53) ) {
-                alt50=2;
+            else if ( (LA52_0==54) ) {
+                alt52=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 50, 0, input);
+                    new NoViableAltException("", 52, 0, input);
 
                 throw nvae;
             }
-            switch (alt50) {
+            switch (alt52) {
                 case 1 :
-                    // InternalSignalDSL.g:3837:2: ( ( 'sequential' ) )
+                    // InternalSignalDSL.g:3860:2: ( ( 'sequential' ) )
                     {
-                    // InternalSignalDSL.g:3837:2: ( ( 'sequential' ) )
-                    // InternalSignalDSL.g:3838:3: ( 'sequential' )
+                    // InternalSignalDSL.g:3860:2: ( ( 'sequential' ) )
+                    // InternalSignalDSL.g:3861:3: ( 'sequential' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSignalExecutionTypeEnumAccess().getSEQEnumLiteralDeclaration_0()); 
                     }
-                    // InternalSignalDSL.g:3839:3: ( 'sequential' )
-                    // InternalSignalDSL.g:3839:4: 'sequential'
+                    // InternalSignalDSL.g:3862:3: ( 'sequential' )
+                    // InternalSignalDSL.g:3862:4: 'sequential'
                     {
-                    match(input,52,FOLLOW_2); if (state.failed) return ;
+                    match(input,53,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -14221,18 +14368,18 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3843:2: ( ( 'parallel' ) )
+                    // InternalSignalDSL.g:3866:2: ( ( 'parallel' ) )
                     {
-                    // InternalSignalDSL.g:3843:2: ( ( 'parallel' ) )
-                    // InternalSignalDSL.g:3844:3: ( 'parallel' )
+                    // InternalSignalDSL.g:3866:2: ( ( 'parallel' ) )
+                    // InternalSignalDSL.g:3867:3: ( 'parallel' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSignalExecutionTypeEnumAccess().getNOSEQEnumLiteralDeclaration_1()); 
                     }
-                    // InternalSignalDSL.g:3845:3: ( 'parallel' )
-                    // InternalSignalDSL.g:3845:4: 'parallel'
+                    // InternalSignalDSL.g:3868:3: ( 'parallel' )
+                    // InternalSignalDSL.g:3868:4: 'parallel'
                     {
-                    match(input,53,FOLLOW_2); if (state.failed) return ;
+                    match(input,54,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -14263,72 +14410,72 @@
 
 
     // $ANTLR start "rule__DayOfWeekEnum__Alternatives"
-    // InternalSignalDSL.g:3853:1: rule__DayOfWeekEnum__Alternatives : ( ( ( 'sunday' ) ) | ( ( 'monday' ) ) | ( ( 'tuesday' ) ) | ( ( 'wednesday' ) ) | ( ( 'thursday' ) ) | ( ( 'friday' ) ) | ( ( 'saturday' ) ) );
+    // InternalSignalDSL.g:3876:1: rule__DayOfWeekEnum__Alternatives : ( ( ( 'sunday' ) ) | ( ( 'monday' ) ) | ( ( 'tuesday' ) ) | ( ( 'wednesday' ) ) | ( ( 'thursday' ) ) | ( ( 'friday' ) ) | ( ( 'saturday' ) ) );
     public final void rule__DayOfWeekEnum__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3857:1: ( ( ( 'sunday' ) ) | ( ( 'monday' ) ) | ( ( 'tuesday' ) ) | ( ( 'wednesday' ) ) | ( ( 'thursday' ) ) | ( ( 'friday' ) ) | ( ( 'saturday' ) ) )
-            int alt51=7;
+            // InternalSignalDSL.g:3880:1: ( ( ( 'sunday' ) ) | ( ( 'monday' ) ) | ( ( 'tuesday' ) ) | ( ( 'wednesday' ) ) | ( ( 'thursday' ) ) | ( ( 'friday' ) ) | ( ( 'saturday' ) ) )
+            int alt53=7;
             switch ( input.LA(1) ) {
-            case 54:
-                {
-                alt51=1;
-                }
-                break;
             case 55:
                 {
-                alt51=2;
+                alt53=1;
                 }
                 break;
             case 56:
                 {
-                alt51=3;
+                alt53=2;
                 }
                 break;
             case 57:
                 {
-                alt51=4;
+                alt53=3;
                 }
                 break;
             case 58:
                 {
-                alt51=5;
+                alt53=4;
                 }
                 break;
             case 59:
                 {
-                alt51=6;
+                alt53=5;
                 }
                 break;
             case 60:
                 {
-                alt51=7;
+                alt53=6;
+                }
+                break;
+            case 61:
+                {
+                alt53=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 51, 0, input);
+                    new NoViableAltException("", 53, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt51) {
+            switch (alt53) {
                 case 1 :
-                    // InternalSignalDSL.g:3858:2: ( ( 'sunday' ) )
+                    // InternalSignalDSL.g:3881:2: ( ( 'sunday' ) )
                     {
-                    // InternalSignalDSL.g:3858:2: ( ( 'sunday' ) )
-                    // InternalSignalDSL.g:3859:3: ( 'sunday' )
+                    // InternalSignalDSL.g:3881:2: ( ( 'sunday' ) )
+                    // InternalSignalDSL.g:3882:3: ( 'sunday' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDayOfWeekEnumAccess().getSUNDAYEnumLiteralDeclaration_0()); 
                     }
-                    // InternalSignalDSL.g:3860:3: ( 'sunday' )
-                    // InternalSignalDSL.g:3860:4: 'sunday'
+                    // InternalSignalDSL.g:3883:3: ( 'sunday' )
+                    // InternalSignalDSL.g:3883:4: 'sunday'
                     {
-                    match(input,54,FOLLOW_2); if (state.failed) return ;
+                    match(input,55,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -14342,18 +14489,18 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3864:2: ( ( 'monday' ) )
+                    // InternalSignalDSL.g:3887:2: ( ( 'monday' ) )
                     {
-                    // InternalSignalDSL.g:3864:2: ( ( 'monday' ) )
-                    // InternalSignalDSL.g:3865:3: ( 'monday' )
+                    // InternalSignalDSL.g:3887:2: ( ( 'monday' ) )
+                    // InternalSignalDSL.g:3888:3: ( 'monday' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDayOfWeekEnumAccess().getMONDAYEnumLiteralDeclaration_1()); 
                     }
-                    // InternalSignalDSL.g:3866:3: ( 'monday' )
-                    // InternalSignalDSL.g:3866:4: 'monday'
+                    // InternalSignalDSL.g:3889:3: ( 'monday' )
+                    // InternalSignalDSL.g:3889:4: 'monday'
                     {
-                    match(input,55,FOLLOW_2); if (state.failed) return ;
+                    match(input,56,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -14367,18 +14514,18 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3870:2: ( ( 'tuesday' ) )
+                    // InternalSignalDSL.g:3893:2: ( ( 'tuesday' ) )
                     {
-                    // InternalSignalDSL.g:3870:2: ( ( 'tuesday' ) )
-                    // InternalSignalDSL.g:3871:3: ( 'tuesday' )
+                    // InternalSignalDSL.g:3893:2: ( ( 'tuesday' ) )
+                    // InternalSignalDSL.g:3894:3: ( 'tuesday' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDayOfWeekEnumAccess().getTUESDAYEnumLiteralDeclaration_2()); 
                     }
-                    // InternalSignalDSL.g:3872:3: ( 'tuesday' )
-                    // InternalSignalDSL.g:3872:4: 'tuesday'
+                    // InternalSignalDSL.g:3895:3: ( 'tuesday' )
+                    // InternalSignalDSL.g:3895:4: 'tuesday'
                     {
-                    match(input,56,FOLLOW_2); if (state.failed) return ;
+                    match(input,57,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -14392,18 +14539,18 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3876:2: ( ( 'wednesday' ) )
+                    // InternalSignalDSL.g:3899:2: ( ( 'wednesday' ) )
                     {
-                    // InternalSignalDSL.g:3876:2: ( ( 'wednesday' ) )
-                    // InternalSignalDSL.g:3877:3: ( 'wednesday' )
+                    // InternalSignalDSL.g:3899:2: ( ( 'wednesday' ) )
+                    // InternalSignalDSL.g:3900:3: ( 'wednesday' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDayOfWeekEnumAccess().getWEDNESDAYEnumLiteralDeclaration_3()); 
                     }
-                    // InternalSignalDSL.g:3878:3: ( 'wednesday' )
-                    // InternalSignalDSL.g:3878:4: 'wednesday'
+                    // InternalSignalDSL.g:3901:3: ( 'wednesday' )
+                    // InternalSignalDSL.g:3901:4: 'wednesday'
                     {
-                    match(input,57,FOLLOW_2); if (state.failed) return ;
+                    match(input,58,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -14417,18 +14564,18 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:3882:2: ( ( 'thursday' ) )
+                    // InternalSignalDSL.g:3905:2: ( ( 'thursday' ) )
                     {
-                    // InternalSignalDSL.g:3882:2: ( ( 'thursday' ) )
-                    // InternalSignalDSL.g:3883:3: ( 'thursday' )
+                    // InternalSignalDSL.g:3905:2: ( ( 'thursday' ) )
+                    // InternalSignalDSL.g:3906:3: ( 'thursday' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDayOfWeekEnumAccess().getTHURSDAYEnumLiteralDeclaration_4()); 
                     }
-                    // InternalSignalDSL.g:3884:3: ( 'thursday' )
-                    // InternalSignalDSL.g:3884:4: 'thursday'
+                    // InternalSignalDSL.g:3907:3: ( 'thursday' )
+                    // InternalSignalDSL.g:3907:4: 'thursday'
                     {
-                    match(input,58,FOLLOW_2); if (state.failed) return ;
+                    match(input,59,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -14442,18 +14589,18 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:3888:2: ( ( 'friday' ) )
+                    // InternalSignalDSL.g:3911:2: ( ( 'friday' ) )
                     {
-                    // InternalSignalDSL.g:3888:2: ( ( 'friday' ) )
-                    // InternalSignalDSL.g:3889:3: ( 'friday' )
+                    // InternalSignalDSL.g:3911:2: ( ( 'friday' ) )
+                    // InternalSignalDSL.g:3912:3: ( 'friday' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDayOfWeekEnumAccess().getFRIDAYEnumLiteralDeclaration_5()); 
                     }
-                    // InternalSignalDSL.g:3890:3: ( 'friday' )
-                    // InternalSignalDSL.g:3890:4: 'friday'
+                    // InternalSignalDSL.g:3913:3: ( 'friday' )
+                    // InternalSignalDSL.g:3913:4: 'friday'
                     {
-                    match(input,59,FOLLOW_2); if (state.failed) return ;
+                    match(input,60,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -14467,18 +14614,18 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:3894:2: ( ( 'saturday' ) )
+                    // InternalSignalDSL.g:3917:2: ( ( 'saturday' ) )
                     {
-                    // InternalSignalDSL.g:3894:2: ( ( 'saturday' ) )
-                    // InternalSignalDSL.g:3895:3: ( 'saturday' )
+                    // InternalSignalDSL.g:3917:2: ( ( 'saturday' ) )
+                    // InternalSignalDSL.g:3918:3: ( 'saturday' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDayOfWeekEnumAccess().getSATURDAYEnumLiteralDeclaration_6()); 
                     }
-                    // InternalSignalDSL.g:3896:3: ( 'saturday' )
-                    // InternalSignalDSL.g:3896:4: 'saturday'
+                    // InternalSignalDSL.g:3919:3: ( 'saturday' )
+                    // InternalSignalDSL.g:3919:4: 'saturday'
                     {
-                    match(input,60,FOLLOW_2); if (state.failed) return ;
+                    match(input,61,FOLLOW_2); if (state.failed) return ;
 
                     }
 
@@ -14509,14 +14656,14 @@
 
 
     // $ANTLR start "rule__SignalModel__Group__0"
-    // InternalSignalDSL.g:3904:1: rule__SignalModel__Group__0 : rule__SignalModel__Group__0__Impl rule__SignalModel__Group__1 ;
+    // InternalSignalDSL.g:3927:1: rule__SignalModel__Group__0 : rule__SignalModel__Group__0__Impl rule__SignalModel__Group__1 ;
     public final void rule__SignalModel__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3908:1: ( rule__SignalModel__Group__0__Impl rule__SignalModel__Group__1 )
-            // InternalSignalDSL.g:3909:2: rule__SignalModel__Group__0__Impl rule__SignalModel__Group__1
+            // InternalSignalDSL.g:3931:1: ( rule__SignalModel__Group__0__Impl rule__SignalModel__Group__1 )
+            // InternalSignalDSL.g:3932:2: rule__SignalModel__Group__0__Impl rule__SignalModel__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__SignalModel__Group__0__Impl();
@@ -14547,31 +14694,31 @@
 
 
     // $ANTLR start "rule__SignalModel__Group__0__Impl"
-    // InternalSignalDSL.g:3916:1: rule__SignalModel__Group__0__Impl : ( ( rule__SignalModel__ImportSectionAssignment_0 )? ) ;
+    // InternalSignalDSL.g:3939:1: rule__SignalModel__Group__0__Impl : ( ( rule__SignalModel__ImportSectionAssignment_0 )? ) ;
     public final void rule__SignalModel__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3920:1: ( ( ( rule__SignalModel__ImportSectionAssignment_0 )? ) )
-            // InternalSignalDSL.g:3921:1: ( ( rule__SignalModel__ImportSectionAssignment_0 )? )
+            // InternalSignalDSL.g:3943:1: ( ( ( rule__SignalModel__ImportSectionAssignment_0 )? ) )
+            // InternalSignalDSL.g:3944:1: ( ( rule__SignalModel__ImportSectionAssignment_0 )? )
             {
-            // InternalSignalDSL.g:3921:1: ( ( rule__SignalModel__ImportSectionAssignment_0 )? )
-            // InternalSignalDSL.g:3922:2: ( rule__SignalModel__ImportSectionAssignment_0 )?
+            // InternalSignalDSL.g:3944:1: ( ( rule__SignalModel__ImportSectionAssignment_0 )? )
+            // InternalSignalDSL.g:3945:2: ( rule__SignalModel__ImportSectionAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalModelAccess().getImportSectionAssignment_0()); 
             }
-            // InternalSignalDSL.g:3923:2: ( rule__SignalModel__ImportSectionAssignment_0 )?
-            int alt52=2;
-            int LA52_0 = input.LA(1);
+            // InternalSignalDSL.g:3946:2: ( rule__SignalModel__ImportSectionAssignment_0 )?
+            int alt54=2;
+            int LA54_0 = input.LA(1);
 
-            if ( (LA52_0==47) ) {
-                alt52=1;
+            if ( (LA54_0==48) ) {
+                alt54=1;
             }
-            switch (alt52) {
+            switch (alt54) {
                 case 1 :
-                    // InternalSignalDSL.g:3923:3: rule__SignalModel__ImportSectionAssignment_0
+                    // InternalSignalDSL.g:3946:3: rule__SignalModel__ImportSectionAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__SignalModel__ImportSectionAssignment_0();
@@ -14609,14 +14756,14 @@
 
 
     // $ANTLR start "rule__SignalModel__Group__1"
-    // InternalSignalDSL.g:3931:1: rule__SignalModel__Group__1 : rule__SignalModel__Group__1__Impl ;
+    // InternalSignalDSL.g:3954:1: rule__SignalModel__Group__1 : rule__SignalModel__Group__1__Impl ;
     public final void rule__SignalModel__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3935:1: ( rule__SignalModel__Group__1__Impl )
-            // InternalSignalDSL.g:3936:2: rule__SignalModel__Group__1__Impl
+            // InternalSignalDSL.g:3958:1: ( rule__SignalModel__Group__1__Impl )
+            // InternalSignalDSL.g:3959:2: rule__SignalModel__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SignalModel__Group__1__Impl();
@@ -14642,23 +14789,23 @@
 
 
     // $ANTLR start "rule__SignalModel__Group__1__Impl"
-    // InternalSignalDSL.g:3942:1: rule__SignalModel__Group__1__Impl : ( ( rule__SignalModel__PackagesAssignment_1 ) ) ;
+    // InternalSignalDSL.g:3965:1: rule__SignalModel__Group__1__Impl : ( ( rule__SignalModel__PackagesAssignment_1 ) ) ;
     public final void rule__SignalModel__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3946:1: ( ( ( rule__SignalModel__PackagesAssignment_1 ) ) )
-            // InternalSignalDSL.g:3947:1: ( ( rule__SignalModel__PackagesAssignment_1 ) )
+            // InternalSignalDSL.g:3969:1: ( ( ( rule__SignalModel__PackagesAssignment_1 ) ) )
+            // InternalSignalDSL.g:3970:1: ( ( rule__SignalModel__PackagesAssignment_1 ) )
             {
-            // InternalSignalDSL.g:3947:1: ( ( rule__SignalModel__PackagesAssignment_1 ) )
-            // InternalSignalDSL.g:3948:2: ( rule__SignalModel__PackagesAssignment_1 )
+            // InternalSignalDSL.g:3970:1: ( ( rule__SignalModel__PackagesAssignment_1 ) )
+            // InternalSignalDSL.g:3971:2: ( rule__SignalModel__PackagesAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalModelAccess().getPackagesAssignment_1()); 
             }
-            // InternalSignalDSL.g:3949:2: ( rule__SignalModel__PackagesAssignment_1 )
-            // InternalSignalDSL.g:3949:3: rule__SignalModel__PackagesAssignment_1
+            // InternalSignalDSL.g:3972:2: ( rule__SignalModel__PackagesAssignment_1 )
+            // InternalSignalDSL.g:3972:3: rule__SignalModel__PackagesAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__SignalModel__PackagesAssignment_1();
@@ -14693,14 +14840,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__0"
-    // InternalSignalDSL.g:3958:1: rule__SignalPackage__Group__0 : rule__SignalPackage__Group__0__Impl rule__SignalPackage__Group__1 ;
+    // InternalSignalDSL.g:3981:1: rule__SignalPackage__Group__0 : rule__SignalPackage__Group__0__Impl rule__SignalPackage__Group__1 ;
     public final void rule__SignalPackage__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3962:1: ( rule__SignalPackage__Group__0__Impl rule__SignalPackage__Group__1 )
-            // InternalSignalDSL.g:3963:2: rule__SignalPackage__Group__0__Impl rule__SignalPackage__Group__1
+            // InternalSignalDSL.g:3985:1: ( rule__SignalPackage__Group__0__Impl rule__SignalPackage__Group__1 )
+            // InternalSignalDSL.g:3986:2: rule__SignalPackage__Group__0__Impl rule__SignalPackage__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__SignalPackage__Group__0__Impl();
@@ -14731,23 +14878,23 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__0__Impl"
-    // InternalSignalDSL.g:3970:1: rule__SignalPackage__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:3993:1: rule__SignalPackage__Group__0__Impl : ( () ) ;
     public final void rule__SignalPackage__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3974:1: ( ( () ) )
-            // InternalSignalDSL.g:3975:1: ( () )
+            // InternalSignalDSL.g:3997:1: ( ( () ) )
+            // InternalSignalDSL.g:3998:1: ( () )
             {
-            // InternalSignalDSL.g:3975:1: ( () )
-            // InternalSignalDSL.g:3976:2: ()
+            // InternalSignalDSL.g:3998:1: ( () )
+            // InternalSignalDSL.g:3999:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getSignalPackageAction_0()); 
             }
-            // InternalSignalDSL.g:3977:2: ()
-            // InternalSignalDSL.g:3977:3: 
+            // InternalSignalDSL.g:4000:2: ()
+            // InternalSignalDSL.g:4000:3: 
             {
             }
 
@@ -14772,14 +14919,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__1"
-    // InternalSignalDSL.g:3985:1: rule__SignalPackage__Group__1 : rule__SignalPackage__Group__1__Impl rule__SignalPackage__Group__2 ;
+    // InternalSignalDSL.g:4008:1: rule__SignalPackage__Group__1 : rule__SignalPackage__Group__1__Impl rule__SignalPackage__Group__2 ;
     public final void rule__SignalPackage__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:3989:1: ( rule__SignalPackage__Group__1__Impl rule__SignalPackage__Group__2 )
-            // InternalSignalDSL.g:3990:2: rule__SignalPackage__Group__1__Impl rule__SignalPackage__Group__2
+            // InternalSignalDSL.g:4012:1: ( rule__SignalPackage__Group__1__Impl rule__SignalPackage__Group__2 )
+            // InternalSignalDSL.g:4013:2: rule__SignalPackage__Group__1__Impl rule__SignalPackage__Group__2
             {
             pushFollow(FOLLOW_6);
             rule__SignalPackage__Group__1__Impl();
@@ -14810,22 +14957,22 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__1__Impl"
-    // InternalSignalDSL.g:3997:1: rule__SignalPackage__Group__1__Impl : ( 'package' ) ;
+    // InternalSignalDSL.g:4020:1: rule__SignalPackage__Group__1__Impl : ( 'package' ) ;
     public final void rule__SignalPackage__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4001:1: ( ( 'package' ) )
-            // InternalSignalDSL.g:4002:1: ( 'package' )
+            // InternalSignalDSL.g:4024:1: ( ( 'package' ) )
+            // InternalSignalDSL.g:4025:1: ( 'package' )
             {
-            // InternalSignalDSL.g:4002:1: ( 'package' )
-            // InternalSignalDSL.g:4003:2: 'package'
+            // InternalSignalDSL.g:4025:1: ( 'package' )
+            // InternalSignalDSL.g:4026:2: 'package'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getPackageKeyword_1()); 
             }
-            match(input,61,FOLLOW_2); if (state.failed) return ;
+            match(input,62,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSignalPackageAccess().getPackageKeyword_1()); 
             }
@@ -14851,14 +14998,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__2"
-    // InternalSignalDSL.g:4012:1: rule__SignalPackage__Group__2 : rule__SignalPackage__Group__2__Impl rule__SignalPackage__Group__3 ;
+    // InternalSignalDSL.g:4035:1: rule__SignalPackage__Group__2 : rule__SignalPackage__Group__2__Impl rule__SignalPackage__Group__3 ;
     public final void rule__SignalPackage__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4016:1: ( rule__SignalPackage__Group__2__Impl rule__SignalPackage__Group__3 )
-            // InternalSignalDSL.g:4017:2: rule__SignalPackage__Group__2__Impl rule__SignalPackage__Group__3
+            // InternalSignalDSL.g:4039:1: ( rule__SignalPackage__Group__2__Impl rule__SignalPackage__Group__3 )
+            // InternalSignalDSL.g:4040:2: rule__SignalPackage__Group__2__Impl rule__SignalPackage__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__SignalPackage__Group__2__Impl();
@@ -14889,23 +15036,23 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__2__Impl"
-    // InternalSignalDSL.g:4024:1: rule__SignalPackage__Group__2__Impl : ( ( rule__SignalPackage__NameAssignment_2 ) ) ;
+    // InternalSignalDSL.g:4047:1: rule__SignalPackage__Group__2__Impl : ( ( rule__SignalPackage__NameAssignment_2 ) ) ;
     public final void rule__SignalPackage__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4028:1: ( ( ( rule__SignalPackage__NameAssignment_2 ) ) )
-            // InternalSignalDSL.g:4029:1: ( ( rule__SignalPackage__NameAssignment_2 ) )
+            // InternalSignalDSL.g:4051:1: ( ( ( rule__SignalPackage__NameAssignment_2 ) ) )
+            // InternalSignalDSL.g:4052:1: ( ( rule__SignalPackage__NameAssignment_2 ) )
             {
-            // InternalSignalDSL.g:4029:1: ( ( rule__SignalPackage__NameAssignment_2 ) )
-            // InternalSignalDSL.g:4030:2: ( rule__SignalPackage__NameAssignment_2 )
+            // InternalSignalDSL.g:4052:1: ( ( rule__SignalPackage__NameAssignment_2 ) )
+            // InternalSignalDSL.g:4053:2: ( rule__SignalPackage__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getNameAssignment_2()); 
             }
-            // InternalSignalDSL.g:4031:2: ( rule__SignalPackage__NameAssignment_2 )
-            // InternalSignalDSL.g:4031:3: rule__SignalPackage__NameAssignment_2
+            // InternalSignalDSL.g:4054:2: ( rule__SignalPackage__NameAssignment_2 )
+            // InternalSignalDSL.g:4054:3: rule__SignalPackage__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__SignalPackage__NameAssignment_2();
@@ -14940,14 +15087,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__3"
-    // InternalSignalDSL.g:4039:1: rule__SignalPackage__Group__3 : rule__SignalPackage__Group__3__Impl ;
+    // InternalSignalDSL.g:4062:1: rule__SignalPackage__Group__3 : rule__SignalPackage__Group__3__Impl ;
     public final void rule__SignalPackage__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4043:1: ( rule__SignalPackage__Group__3__Impl )
-            // InternalSignalDSL.g:4044:2: rule__SignalPackage__Group__3__Impl
+            // InternalSignalDSL.g:4066:1: ( rule__SignalPackage__Group__3__Impl )
+            // InternalSignalDSL.g:4067:2: rule__SignalPackage__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SignalPackage__Group__3__Impl();
@@ -14973,31 +15120,31 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group__3__Impl"
-    // InternalSignalDSL.g:4050:1: rule__SignalPackage__Group__3__Impl : ( ( rule__SignalPackage__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:4073:1: rule__SignalPackage__Group__3__Impl : ( ( rule__SignalPackage__Group_3__0 )? ) ;
     public final void rule__SignalPackage__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4054:1: ( ( ( rule__SignalPackage__Group_3__0 )? ) )
-            // InternalSignalDSL.g:4055:1: ( ( rule__SignalPackage__Group_3__0 )? )
+            // InternalSignalDSL.g:4077:1: ( ( ( rule__SignalPackage__Group_3__0 )? ) )
+            // InternalSignalDSL.g:4078:1: ( ( rule__SignalPackage__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:4055:1: ( ( rule__SignalPackage__Group_3__0 )? )
-            // InternalSignalDSL.g:4056:2: ( rule__SignalPackage__Group_3__0 )?
+            // InternalSignalDSL.g:4078:1: ( ( rule__SignalPackage__Group_3__0 )? )
+            // InternalSignalDSL.g:4079:2: ( rule__SignalPackage__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:4057:2: ( rule__SignalPackage__Group_3__0 )?
-            int alt53=2;
-            int LA53_0 = input.LA(1);
+            // InternalSignalDSL.g:4080:2: ( rule__SignalPackage__Group_3__0 )?
+            int alt55=2;
+            int LA55_0 = input.LA(1);
 
-            if ( (LA53_0==62) ) {
-                alt53=1;
+            if ( (LA55_0==63) ) {
+                alt55=1;
             }
-            switch (alt53) {
+            switch (alt55) {
                 case 1 :
-                    // InternalSignalDSL.g:4057:3: rule__SignalPackage__Group_3__0
+                    // InternalSignalDSL.g:4080:3: rule__SignalPackage__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__SignalPackage__Group_3__0();
@@ -15035,14 +15182,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group_3__0"
-    // InternalSignalDSL.g:4066:1: rule__SignalPackage__Group_3__0 : rule__SignalPackage__Group_3__0__Impl rule__SignalPackage__Group_3__1 ;
+    // InternalSignalDSL.g:4089:1: rule__SignalPackage__Group_3__0 : rule__SignalPackage__Group_3__0__Impl rule__SignalPackage__Group_3__1 ;
     public final void rule__SignalPackage__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4070:1: ( rule__SignalPackage__Group_3__0__Impl rule__SignalPackage__Group_3__1 )
-            // InternalSignalDSL.g:4071:2: rule__SignalPackage__Group_3__0__Impl rule__SignalPackage__Group_3__1
+            // InternalSignalDSL.g:4093:1: ( rule__SignalPackage__Group_3__0__Impl rule__SignalPackage__Group_3__1 )
+            // InternalSignalDSL.g:4094:2: rule__SignalPackage__Group_3__0__Impl rule__SignalPackage__Group_3__1
             {
             pushFollow(FOLLOW_8);
             rule__SignalPackage__Group_3__0__Impl();
@@ -15073,22 +15220,22 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group_3__0__Impl"
-    // InternalSignalDSL.g:4078:1: rule__SignalPackage__Group_3__0__Impl : ( '{' ) ;
+    // InternalSignalDSL.g:4101:1: rule__SignalPackage__Group_3__0__Impl : ( '{' ) ;
     public final void rule__SignalPackage__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4082:1: ( ( '{' ) )
-            // InternalSignalDSL.g:4083:1: ( '{' )
+            // InternalSignalDSL.g:4105:1: ( ( '{' ) )
+            // InternalSignalDSL.g:4106:1: ( '{' )
             {
-            // InternalSignalDSL.g:4083:1: ( '{' )
-            // InternalSignalDSL.g:4084:2: '{'
+            // InternalSignalDSL.g:4106:1: ( '{' )
+            // InternalSignalDSL.g:4107:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getLeftCurlyBracketKeyword_3_0()); 
             }
-            match(input,62,FOLLOW_2); if (state.failed) return ;
+            match(input,63,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSignalPackageAccess().getLeftCurlyBracketKeyword_3_0()); 
             }
@@ -15114,14 +15261,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group_3__1"
-    // InternalSignalDSL.g:4093:1: rule__SignalPackage__Group_3__1 : rule__SignalPackage__Group_3__1__Impl rule__SignalPackage__Group_3__2 ;
+    // InternalSignalDSL.g:4116:1: rule__SignalPackage__Group_3__1 : rule__SignalPackage__Group_3__1__Impl rule__SignalPackage__Group_3__2 ;
     public final void rule__SignalPackage__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4097:1: ( rule__SignalPackage__Group_3__1__Impl rule__SignalPackage__Group_3__2 )
-            // InternalSignalDSL.g:4098:2: rule__SignalPackage__Group_3__1__Impl rule__SignalPackage__Group_3__2
+            // InternalSignalDSL.g:4120:1: ( rule__SignalPackage__Group_3__1__Impl rule__SignalPackage__Group_3__2 )
+            // InternalSignalDSL.g:4121:2: rule__SignalPackage__Group_3__1__Impl rule__SignalPackage__Group_3__2
             {
             pushFollow(FOLLOW_8);
             rule__SignalPackage__Group_3__1__Impl();
@@ -15152,35 +15299,35 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group_3__1__Impl"
-    // InternalSignalDSL.g:4105:1: rule__SignalPackage__Group_3__1__Impl : ( ( rule__SignalPackage__SignalsAssignment_3_1 )* ) ;
+    // InternalSignalDSL.g:4128:1: rule__SignalPackage__Group_3__1__Impl : ( ( rule__SignalPackage__SignalsAssignment_3_1 )* ) ;
     public final void rule__SignalPackage__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4109:1: ( ( ( rule__SignalPackage__SignalsAssignment_3_1 )* ) )
-            // InternalSignalDSL.g:4110:1: ( ( rule__SignalPackage__SignalsAssignment_3_1 )* )
+            // InternalSignalDSL.g:4132:1: ( ( ( rule__SignalPackage__SignalsAssignment_3_1 )* ) )
+            // InternalSignalDSL.g:4133:1: ( ( rule__SignalPackage__SignalsAssignment_3_1 )* )
             {
-            // InternalSignalDSL.g:4110:1: ( ( rule__SignalPackage__SignalsAssignment_3_1 )* )
-            // InternalSignalDSL.g:4111:2: ( rule__SignalPackage__SignalsAssignment_3_1 )*
+            // InternalSignalDSL.g:4133:1: ( ( rule__SignalPackage__SignalsAssignment_3_1 )* )
+            // InternalSignalDSL.g:4134:2: ( rule__SignalPackage__SignalsAssignment_3_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getSignalsAssignment_3_1()); 
             }
-            // InternalSignalDSL.g:4112:2: ( rule__SignalPackage__SignalsAssignment_3_1 )*
-            loop54:
+            // InternalSignalDSL.g:4135:2: ( rule__SignalPackage__SignalsAssignment_3_1 )*
+            loop56:
             do {
-                int alt54=2;
-                int LA54_0 = input.LA(1);
+                int alt56=2;
+                int LA56_0 = input.LA(1);
 
-                if ( (LA54_0==64||LA54_0==68) ) {
-                    alt54=1;
+                if ( (LA56_0==65||LA56_0==68) ) {
+                    alt56=1;
                 }
 
 
-                switch (alt54) {
+                switch (alt56) {
             	case 1 :
-            	    // InternalSignalDSL.g:4112:3: rule__SignalPackage__SignalsAssignment_3_1
+            	    // InternalSignalDSL.g:4135:3: rule__SignalPackage__SignalsAssignment_3_1
             	    {
             	    pushFollow(FOLLOW_9);
             	    rule__SignalPackage__SignalsAssignment_3_1();
@@ -15192,7 +15339,7 @@
             	    break;
 
             	default :
-            	    break loop54;
+            	    break loop56;
                 }
             } while (true);
 
@@ -15221,14 +15368,14 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group_3__2"
-    // InternalSignalDSL.g:4120:1: rule__SignalPackage__Group_3__2 : rule__SignalPackage__Group_3__2__Impl ;
+    // InternalSignalDSL.g:4143:1: rule__SignalPackage__Group_3__2 : rule__SignalPackage__Group_3__2__Impl ;
     public final void rule__SignalPackage__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4124:1: ( rule__SignalPackage__Group_3__2__Impl )
-            // InternalSignalDSL.g:4125:2: rule__SignalPackage__Group_3__2__Impl
+            // InternalSignalDSL.g:4147:1: ( rule__SignalPackage__Group_3__2__Impl )
+            // InternalSignalDSL.g:4148:2: rule__SignalPackage__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SignalPackage__Group_3__2__Impl();
@@ -15254,22 +15401,22 @@
 
 
     // $ANTLR start "rule__SignalPackage__Group_3__2__Impl"
-    // InternalSignalDSL.g:4131:1: rule__SignalPackage__Group_3__2__Impl : ( '}' ) ;
+    // InternalSignalDSL.g:4154:1: rule__SignalPackage__Group_3__2__Impl : ( '}' ) ;
     public final void rule__SignalPackage__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4135:1: ( ( '}' ) )
-            // InternalSignalDSL.g:4136:1: ( '}' )
+            // InternalSignalDSL.g:4158:1: ( ( '}' ) )
+            // InternalSignalDSL.g:4159:1: ( '}' )
             {
-            // InternalSignalDSL.g:4136:1: ( '}' )
-            // InternalSignalDSL.g:4137:2: '}'
+            // InternalSignalDSL.g:4159:1: ( '}' )
+            // InternalSignalDSL.g:4160:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_2()); 
             }
-            match(input,63,FOLLOW_2); if (state.failed) return ;
+            match(input,64,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSignalPackageAccess().getRightCurlyBracketKeyword_3_2()); 
             }
@@ -15295,14 +15442,14 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__0"
-    // InternalSignalDSL.g:4147:1: rule__SignalWatcher__Group__0 : rule__SignalWatcher__Group__0__Impl rule__SignalWatcher__Group__1 ;
+    // InternalSignalDSL.g:4170:1: rule__SignalWatcher__Group__0 : rule__SignalWatcher__Group__0__Impl rule__SignalWatcher__Group__1 ;
     public final void rule__SignalWatcher__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4151:1: ( rule__SignalWatcher__Group__0__Impl rule__SignalWatcher__Group__1 )
-            // InternalSignalDSL.g:4152:2: rule__SignalWatcher__Group__0__Impl rule__SignalWatcher__Group__1
+            // InternalSignalDSL.g:4174:1: ( rule__SignalWatcher__Group__0__Impl rule__SignalWatcher__Group__1 )
+            // InternalSignalDSL.g:4175:2: rule__SignalWatcher__Group__0__Impl rule__SignalWatcher__Group__1
             {
             pushFollow(FOLLOW_10);
             rule__SignalWatcher__Group__0__Impl();
@@ -15333,23 +15480,23 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__0__Impl"
-    // InternalSignalDSL.g:4159:1: rule__SignalWatcher__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:4182:1: rule__SignalWatcher__Group__0__Impl : ( () ) ;
     public final void rule__SignalWatcher__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4163:1: ( ( () ) )
-            // InternalSignalDSL.g:4164:1: ( () )
+            // InternalSignalDSL.g:4186:1: ( ( () ) )
+            // InternalSignalDSL.g:4187:1: ( () )
             {
-            // InternalSignalDSL.g:4164:1: ( () )
-            // InternalSignalDSL.g:4165:2: ()
+            // InternalSignalDSL.g:4187:1: ( () )
+            // InternalSignalDSL.g:4188:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getSignalWatcherAction_0()); 
             }
-            // InternalSignalDSL.g:4166:2: ()
-            // InternalSignalDSL.g:4166:3: 
+            // InternalSignalDSL.g:4189:2: ()
+            // InternalSignalDSL.g:4189:3: 
             {
             }
 
@@ -15374,14 +15521,14 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__1"
-    // InternalSignalDSL.g:4174:1: rule__SignalWatcher__Group__1 : rule__SignalWatcher__Group__1__Impl rule__SignalWatcher__Group__2 ;
+    // InternalSignalDSL.g:4197:1: rule__SignalWatcher__Group__1 : rule__SignalWatcher__Group__1__Impl rule__SignalWatcher__Group__2 ;
     public final void rule__SignalWatcher__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4178:1: ( rule__SignalWatcher__Group__1__Impl rule__SignalWatcher__Group__2 )
-            // InternalSignalDSL.g:4179:2: rule__SignalWatcher__Group__1__Impl rule__SignalWatcher__Group__2
+            // InternalSignalDSL.g:4201:1: ( rule__SignalWatcher__Group__1__Impl rule__SignalWatcher__Group__2 )
+            // InternalSignalDSL.g:4202:2: rule__SignalWatcher__Group__1__Impl rule__SignalWatcher__Group__2
             {
             pushFollow(FOLLOW_6);
             rule__SignalWatcher__Group__1__Impl();
@@ -15412,22 +15559,22 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__1__Impl"
-    // InternalSignalDSL.g:4186:1: rule__SignalWatcher__Group__1__Impl : ( 'watcher' ) ;
+    // InternalSignalDSL.g:4209:1: rule__SignalWatcher__Group__1__Impl : ( 'watcher' ) ;
     public final void rule__SignalWatcher__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4190:1: ( ( 'watcher' ) )
-            // InternalSignalDSL.g:4191:1: ( 'watcher' )
+            // InternalSignalDSL.g:4213:1: ( ( 'watcher' ) )
+            // InternalSignalDSL.g:4214:1: ( 'watcher' )
             {
-            // InternalSignalDSL.g:4191:1: ( 'watcher' )
-            // InternalSignalDSL.g:4192:2: 'watcher'
+            // InternalSignalDSL.g:4214:1: ( 'watcher' )
+            // InternalSignalDSL.g:4215:2: 'watcher'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getWatcherKeyword_1()); 
             }
-            match(input,64,FOLLOW_2); if (state.failed) return ;
+            match(input,65,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSignalWatcherAccess().getWatcherKeyword_1()); 
             }
@@ -15453,14 +15600,14 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__2"
-    // InternalSignalDSL.g:4201:1: rule__SignalWatcher__Group__2 : rule__SignalWatcher__Group__2__Impl rule__SignalWatcher__Group__3 ;
+    // InternalSignalDSL.g:4224:1: rule__SignalWatcher__Group__2 : rule__SignalWatcher__Group__2__Impl rule__SignalWatcher__Group__3 ;
     public final void rule__SignalWatcher__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4205:1: ( rule__SignalWatcher__Group__2__Impl rule__SignalWatcher__Group__3 )
-            // InternalSignalDSL.g:4206:2: rule__SignalWatcher__Group__2__Impl rule__SignalWatcher__Group__3
+            // InternalSignalDSL.g:4228:1: ( rule__SignalWatcher__Group__2__Impl rule__SignalWatcher__Group__3 )
+            // InternalSignalDSL.g:4229:2: rule__SignalWatcher__Group__2__Impl rule__SignalWatcher__Group__3
             {
             pushFollow(FOLLOW_11);
             rule__SignalWatcher__Group__2__Impl();
@@ -15491,23 +15638,23 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__2__Impl"
-    // InternalSignalDSL.g:4213:1: rule__SignalWatcher__Group__2__Impl : ( ( rule__SignalWatcher__NameAssignment_2 ) ) ;
+    // InternalSignalDSL.g:4236:1: rule__SignalWatcher__Group__2__Impl : ( ( rule__SignalWatcher__NameAssignment_2 ) ) ;
     public final void rule__SignalWatcher__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4217:1: ( ( ( rule__SignalWatcher__NameAssignment_2 ) ) )
-            // InternalSignalDSL.g:4218:1: ( ( rule__SignalWatcher__NameAssignment_2 ) )
+            // InternalSignalDSL.g:4240:1: ( ( ( rule__SignalWatcher__NameAssignment_2 ) ) )
+            // InternalSignalDSL.g:4241:1: ( ( rule__SignalWatcher__NameAssignment_2 ) )
             {
-            // InternalSignalDSL.g:4218:1: ( ( rule__SignalWatcher__NameAssignment_2 ) )
-            // InternalSignalDSL.g:4219:2: ( rule__SignalWatcher__NameAssignment_2 )
+            // InternalSignalDSL.g:4241:1: ( ( rule__SignalWatcher__NameAssignment_2 ) )
+            // InternalSignalDSL.g:4242:2: ( rule__SignalWatcher__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getNameAssignment_2()); 
             }
-            // InternalSignalDSL.g:4220:2: ( rule__SignalWatcher__NameAssignment_2 )
-            // InternalSignalDSL.g:4220:3: rule__SignalWatcher__NameAssignment_2
+            // InternalSignalDSL.g:4243:2: ( rule__SignalWatcher__NameAssignment_2 )
+            // InternalSignalDSL.g:4243:3: rule__SignalWatcher__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__SignalWatcher__NameAssignment_2();
@@ -15542,20 +15689,25 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__3"
-    // InternalSignalDSL.g:4228:1: rule__SignalWatcher__Group__3 : rule__SignalWatcher__Group__3__Impl ;
+    // InternalSignalDSL.g:4251:1: rule__SignalWatcher__Group__3 : rule__SignalWatcher__Group__3__Impl rule__SignalWatcher__Group__4 ;
     public final void rule__SignalWatcher__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4232:1: ( rule__SignalWatcher__Group__3__Impl )
-            // InternalSignalDSL.g:4233:2: rule__SignalWatcher__Group__3__Impl
+            // InternalSignalDSL.g:4255:1: ( rule__SignalWatcher__Group__3__Impl rule__SignalWatcher__Group__4 )
+            // InternalSignalDSL.g:4256:2: rule__SignalWatcher__Group__3__Impl rule__SignalWatcher__Group__4
             {
-            pushFollow(FOLLOW_2);
+            pushFollow(FOLLOW_12);
             rule__SignalWatcher__Group__3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalWatcher__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
 
             }
 
@@ -15575,26 +15727,26 @@
 
 
     // $ANTLR start "rule__SignalWatcher__Group__3__Impl"
-    // InternalSignalDSL.g:4239:1: rule__SignalWatcher__Group__3__Impl : ( ( rule__SignalWatcher__DefinitionAssignment_3 ) ) ;
+    // InternalSignalDSL.g:4263:1: rule__SignalWatcher__Group__3__Impl : ( ( rule__SignalWatcher__Alternatives_3 ) ) ;
     public final void rule__SignalWatcher__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4243:1: ( ( ( rule__SignalWatcher__DefinitionAssignment_3 ) ) )
-            // InternalSignalDSL.g:4244:1: ( ( rule__SignalWatcher__DefinitionAssignment_3 ) )
+            // InternalSignalDSL.g:4267:1: ( ( ( rule__SignalWatcher__Alternatives_3 ) ) )
+            // InternalSignalDSL.g:4268:1: ( ( rule__SignalWatcher__Alternatives_3 ) )
             {
-            // InternalSignalDSL.g:4244:1: ( ( rule__SignalWatcher__DefinitionAssignment_3 ) )
-            // InternalSignalDSL.g:4245:2: ( rule__SignalWatcher__DefinitionAssignment_3 )
+            // InternalSignalDSL.g:4268:1: ( ( rule__SignalWatcher__Alternatives_3 ) )
+            // InternalSignalDSL.g:4269:2: ( rule__SignalWatcher__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalWatcherAccess().getDefinitionAssignment_3()); 
+               before(grammarAccess.getSignalWatcherAccess().getAlternatives_3()); 
             }
-            // InternalSignalDSL.g:4246:2: ( rule__SignalWatcher__DefinitionAssignment_3 )
-            // InternalSignalDSL.g:4246:3: rule__SignalWatcher__DefinitionAssignment_3
+            // InternalSignalDSL.g:4270:2: ( rule__SignalWatcher__Alternatives_3 )
+            // InternalSignalDSL.g:4270:3: rule__SignalWatcher__Alternatives_3
             {
             pushFollow(FOLLOW_2);
-            rule__SignalWatcher__DefinitionAssignment_3();
+            rule__SignalWatcher__Alternatives_3();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15602,7 +15754,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalWatcherAccess().getDefinitionAssignment_3()); 
+               after(grammarAccess.getSignalWatcherAccess().getAlternatives_3()); 
             }
 
             }
@@ -15625,102 +15777,23 @@
     // $ANTLR end "rule__SignalWatcher__Group__3__Impl"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__Group__0"
-    // InternalSignalDSL.g:4255:1: rule__WatcherWithFileMask__Group__0 : rule__WatcherWithFileMask__Group__0__Impl rule__WatcherWithFileMask__Group__1 ;
-    public final void rule__WatcherWithFileMask__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__4"
+    // InternalSignalDSL.g:4278:1: rule__SignalWatcher__Group__4 : rule__SignalWatcher__Group__4__Impl rule__SignalWatcher__Group__5 ;
+    public final void rule__SignalWatcher__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4259:1: ( rule__WatcherWithFileMask__Group__0__Impl rule__WatcherWithFileMask__Group__1 )
-            // InternalSignalDSL.g:4260:2: rule__WatcherWithFileMask__Group__0__Impl rule__WatcherWithFileMask__Group__1
-            {
-            pushFollow(FOLLOW_12);
-            rule__WatcherWithFileMask__Group__0__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__Group__1();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__0"
-
-
-    // $ANTLR start "rule__WatcherWithFileMask__Group__0__Impl"
-    // InternalSignalDSL.g:4267:1: rule__WatcherWithFileMask__Group__0__Impl : ( () ) ;
-    public final void rule__WatcherWithFileMask__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4271:1: ( ( () ) )
-            // InternalSignalDSL.g:4272:1: ( () )
-            {
-            // InternalSignalDSL.g:4272:1: ( () )
-            // InternalSignalDSL.g:4273:2: ()
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getWatcherWithFileMaskAction_0()); 
-            }
-            // InternalSignalDSL.g:4274:2: ()
-            // InternalSignalDSL.g:4274:3: 
-            {
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getWatcherWithFileMaskAction_0()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__0__Impl"
-
-
-    // $ANTLR start "rule__WatcherWithFileMask__Group__1"
-    // InternalSignalDSL.g:4282:1: rule__WatcherWithFileMask__Group__1 : rule__WatcherWithFileMask__Group__1__Impl rule__WatcherWithFileMask__Group__2 ;
-    public final void rule__WatcherWithFileMask__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4286:1: ( rule__WatcherWithFileMask__Group__1__Impl rule__WatcherWithFileMask__Group__2 )
-            // InternalSignalDSL.g:4287:2: rule__WatcherWithFileMask__Group__1__Impl rule__WatcherWithFileMask__Group__2
+            // InternalSignalDSL.g:4282:1: ( rule__SignalWatcher__Group__4__Impl rule__SignalWatcher__Group__5 )
+            // InternalSignalDSL.g:4283:2: rule__SignalWatcher__Group__4__Impl rule__SignalWatcher__Group__5
             {
             pushFollow(FOLLOW_13);
-            rule__WatcherWithFileMask__Group__1__Impl();
+            rule__SignalWatcher__Group__4__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__Group__2();
+            rule__SignalWatcher__Group__5();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15739,28 +15812,38 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__1"
+    // $ANTLR end "rule__SignalWatcher__Group__4"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__Group__1__Impl"
-    // InternalSignalDSL.g:4294:1: rule__WatcherWithFileMask__Group__1__Impl : ( 'filemask' ) ;
-    public final void rule__WatcherWithFileMask__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__4__Impl"
+    // InternalSignalDSL.g:4290:1: rule__SignalWatcher__Group__4__Impl : ( ( rule__SignalWatcher__IdentifierAssignment_4 ) ) ;
+    public final void rule__SignalWatcher__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4298:1: ( ( 'filemask' ) )
-            // InternalSignalDSL.g:4299:1: ( 'filemask' )
+            // InternalSignalDSL.g:4294:1: ( ( ( rule__SignalWatcher__IdentifierAssignment_4 ) ) )
+            // InternalSignalDSL.g:4295:1: ( ( rule__SignalWatcher__IdentifierAssignment_4 ) )
             {
-            // InternalSignalDSL.g:4299:1: ( 'filemask' )
-            // InternalSignalDSL.g:4300:2: 'filemask'
+            // InternalSignalDSL.g:4295:1: ( ( rule__SignalWatcher__IdentifierAssignment_4 ) )
+            // InternalSignalDSL.g:4296:2: ( rule__SignalWatcher__IdentifierAssignment_4 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskKeyword_1()); 
+               before(grammarAccess.getSignalWatcherAccess().getIdentifierAssignment_4()); 
             }
-            match(input,65,FOLLOW_2); if (state.failed) return ;
+            // InternalSignalDSL.g:4297:2: ( rule__SignalWatcher__IdentifierAssignment_4 )
+            // InternalSignalDSL.g:4297:3: rule__SignalWatcher__IdentifierAssignment_4
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalWatcher__IdentifierAssignment_4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskKeyword_1()); 
+               after(grammarAccess.getSignalWatcherAccess().getIdentifierAssignment_4()); 
             }
 
             }
@@ -15780,26 +15863,26 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__1__Impl"
+    // $ANTLR end "rule__SignalWatcher__Group__4__Impl"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__Group__2"
-    // InternalSignalDSL.g:4309:1: rule__WatcherWithFileMask__Group__2 : rule__WatcherWithFileMask__Group__2__Impl rule__WatcherWithFileMask__Group__3 ;
-    public final void rule__WatcherWithFileMask__Group__2() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__5"
+    // InternalSignalDSL.g:4305:1: rule__SignalWatcher__Group__5 : rule__SignalWatcher__Group__5__Impl rule__SignalWatcher__Group__6 ;
+    public final void rule__SignalWatcher__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4313:1: ( rule__WatcherWithFileMask__Group__2__Impl rule__WatcherWithFileMask__Group__3 )
-            // InternalSignalDSL.g:4314:2: rule__WatcherWithFileMask__Group__2__Impl rule__WatcherWithFileMask__Group__3
+            // InternalSignalDSL.g:4309:1: ( rule__SignalWatcher__Group__5__Impl rule__SignalWatcher__Group__6 )
+            // InternalSignalDSL.g:4310:2: rule__SignalWatcher__Group__5__Impl rule__SignalWatcher__Group__6
             {
             pushFollow(FOLLOW_14);
-            rule__WatcherWithFileMask__Group__2__Impl();
+            rule__SignalWatcher__Group__5__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__Group__3();
+            rule__SignalWatcher__Group__6();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15818,30 +15901,30 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__2"
+    // $ANTLR end "rule__SignalWatcher__Group__5"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__Group__2__Impl"
-    // InternalSignalDSL.g:4321:1: rule__WatcherWithFileMask__Group__2__Impl : ( ( rule__WatcherWithFileMask__FilemaskAssignment_2 ) ) ;
-    public final void rule__WatcherWithFileMask__Group__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__5__Impl"
+    // InternalSignalDSL.g:4317:1: rule__SignalWatcher__Group__5__Impl : ( ( rule__SignalWatcher__ExecutiontypeAssignment_5 ) ) ;
+    public final void rule__SignalWatcher__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4325:1: ( ( ( rule__WatcherWithFileMask__FilemaskAssignment_2 ) ) )
-            // InternalSignalDSL.g:4326:1: ( ( rule__WatcherWithFileMask__FilemaskAssignment_2 ) )
+            // InternalSignalDSL.g:4321:1: ( ( ( rule__SignalWatcher__ExecutiontypeAssignment_5 ) ) )
+            // InternalSignalDSL.g:4322:1: ( ( rule__SignalWatcher__ExecutiontypeAssignment_5 ) )
             {
-            // InternalSignalDSL.g:4326:1: ( ( rule__WatcherWithFileMask__FilemaskAssignment_2 ) )
-            // InternalSignalDSL.g:4327:2: ( rule__WatcherWithFileMask__FilemaskAssignment_2 )
+            // InternalSignalDSL.g:4322:1: ( ( rule__SignalWatcher__ExecutiontypeAssignment_5 ) )
+            // InternalSignalDSL.g:4323:2: ( rule__SignalWatcher__ExecutiontypeAssignment_5 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskAssignment_2()); 
+               before(grammarAccess.getSignalWatcherAccess().getExecutiontypeAssignment_5()); 
             }
-            // InternalSignalDSL.g:4328:2: ( rule__WatcherWithFileMask__FilemaskAssignment_2 )
-            // InternalSignalDSL.g:4328:3: rule__WatcherWithFileMask__FilemaskAssignment_2
+            // InternalSignalDSL.g:4324:2: ( rule__SignalWatcher__ExecutiontypeAssignment_5 )
+            // InternalSignalDSL.g:4324:3: rule__SignalWatcher__ExecutiontypeAssignment_5
             {
             pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__FilemaskAssignment_2();
+            rule__SignalWatcher__ExecutiontypeAssignment_5();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15849,7 +15932,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskAssignment_2()); 
+               after(grammarAccess.getSignalWatcherAccess().getExecutiontypeAssignment_5()); 
             }
 
             }
@@ -15869,115 +15952,26 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__2__Impl"
+    // $ANTLR end "rule__SignalWatcher__Group__5__Impl"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__Group__3"
-    // InternalSignalDSL.g:4336:1: rule__WatcherWithFileMask__Group__3 : rule__WatcherWithFileMask__Group__3__Impl rule__WatcherWithFileMask__Group__4 ;
-    public final void rule__WatcherWithFileMask__Group__3() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__6"
+    // InternalSignalDSL.g:4332:1: rule__SignalWatcher__Group__6 : rule__SignalWatcher__Group__6__Impl rule__SignalWatcher__Group__7 ;
+    public final void rule__SignalWatcher__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4340:1: ( rule__WatcherWithFileMask__Group__3__Impl rule__WatcherWithFileMask__Group__4 )
-            // InternalSignalDSL.g:4341:2: rule__WatcherWithFileMask__Group__3__Impl rule__WatcherWithFileMask__Group__4
-            {
-            pushFollow(FOLLOW_15);
-            rule__WatcherWithFileMask__Group__3__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__Group__4();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__3"
-
-
-    // $ANTLR start "rule__WatcherWithFileMask__Group__3__Impl"
-    // InternalSignalDSL.g:4348:1: rule__WatcherWithFileMask__Group__3__Impl : ( ( rule__WatcherWithFileMask__ExecutiontypeAssignment_3 ) ) ;
-    public final void rule__WatcherWithFileMask__Group__3__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4352:1: ( ( ( rule__WatcherWithFileMask__ExecutiontypeAssignment_3 ) ) )
-            // InternalSignalDSL.g:4353:1: ( ( rule__WatcherWithFileMask__ExecutiontypeAssignment_3 ) )
-            {
-            // InternalSignalDSL.g:4353:1: ( ( rule__WatcherWithFileMask__ExecutiontypeAssignment_3 ) )
-            // InternalSignalDSL.g:4354:2: ( rule__WatcherWithFileMask__ExecutiontypeAssignment_3 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getExecutiontypeAssignment_3()); 
-            }
-            // InternalSignalDSL.g:4355:2: ( rule__WatcherWithFileMask__ExecutiontypeAssignment_3 )
-            // InternalSignalDSL.g:4355:3: rule__WatcherWithFileMask__ExecutiontypeAssignment_3
-            {
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__ExecutiontypeAssignment_3();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getExecutiontypeAssignment_3()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__3__Impl"
-
-
-    // $ANTLR start "rule__WatcherWithFileMask__Group__4"
-    // InternalSignalDSL.g:4363:1: rule__WatcherWithFileMask__Group__4 : rule__WatcherWithFileMask__Group__4__Impl rule__WatcherWithFileMask__Group__5 ;
-    public final void rule__WatcherWithFileMask__Group__4() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4367:1: ( rule__WatcherWithFileMask__Group__4__Impl rule__WatcherWithFileMask__Group__5 )
-            // InternalSignalDSL.g:4368:2: rule__WatcherWithFileMask__Group__4__Impl rule__WatcherWithFileMask__Group__5
+            // InternalSignalDSL.g:4336:1: ( rule__SignalWatcher__Group__6__Impl rule__SignalWatcher__Group__7 )
+            // InternalSignalDSL.g:4337:2: rule__SignalWatcher__Group__6__Impl rule__SignalWatcher__Group__7
             {
             pushFollow(FOLLOW_6);
-            rule__WatcherWithFileMask__Group__4__Impl();
+            rule__SignalWatcher__Group__6__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__Group__5();
+            rule__SignalWatcher__Group__7();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15996,28 +15990,28 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__4"
+    // $ANTLR end "rule__SignalWatcher__Group__6"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__Group__4__Impl"
-    // InternalSignalDSL.g:4375:1: rule__WatcherWithFileMask__Group__4__Impl : ( 'from' ) ;
-    public final void rule__WatcherWithFileMask__Group__4__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__6__Impl"
+    // InternalSignalDSL.g:4344:1: rule__SignalWatcher__Group__6__Impl : ( 'from' ) ;
+    public final void rule__SignalWatcher__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4379:1: ( ( 'from' ) )
-            // InternalSignalDSL.g:4380:1: ( 'from' )
+            // InternalSignalDSL.g:4348:1: ( ( 'from' ) )
+            // InternalSignalDSL.g:4349:1: ( 'from' )
             {
-            // InternalSignalDSL.g:4380:1: ( 'from' )
-            // InternalSignalDSL.g:4381:2: 'from'
+            // InternalSignalDSL.g:4349:1: ( 'from' )
+            // InternalSignalDSL.g:4350:2: 'from'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getFromKeyword_4()); 
+               before(grammarAccess.getSignalWatcherAccess().getFromKeyword_6()); 
             }
             match(input,66,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getFromKeyword_4()); 
+               after(grammarAccess.getSignalWatcherAccess().getFromKeyword_6()); 
             }
 
             }
@@ -16037,26 +16031,26 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__4__Impl"
+    // $ANTLR end "rule__SignalWatcher__Group__6__Impl"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__Group__5"
-    // InternalSignalDSL.g:4390:1: rule__WatcherWithFileMask__Group__5 : rule__WatcherWithFileMask__Group__5__Impl rule__WatcherWithFileMask__Group__6 ;
-    public final void rule__WatcherWithFileMask__Group__5() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__7"
+    // InternalSignalDSL.g:4359:1: rule__SignalWatcher__Group__7 : rule__SignalWatcher__Group__7__Impl rule__SignalWatcher__Group__8 ;
+    public final void rule__SignalWatcher__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4394:1: ( rule__WatcherWithFileMask__Group__5__Impl rule__WatcherWithFileMask__Group__6 )
-            // InternalSignalDSL.g:4395:2: rule__WatcherWithFileMask__Group__5__Impl rule__WatcherWithFileMask__Group__6
+            // InternalSignalDSL.g:4363:1: ( rule__SignalWatcher__Group__7__Impl rule__SignalWatcher__Group__8 )
+            // InternalSignalDSL.g:4364:2: rule__SignalWatcher__Group__7__Impl rule__SignalWatcher__Group__8
             {
             pushFollow(FOLLOW_7);
-            rule__WatcherWithFileMask__Group__5__Impl();
+            rule__SignalWatcher__Group__7__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__Group__6();
+            rule__SignalWatcher__Group__8();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16075,30 +16069,30 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__5"
+    // $ANTLR end "rule__SignalWatcher__Group__7"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__Group__5__Impl"
-    // InternalSignalDSL.g:4402:1: rule__WatcherWithFileMask__Group__5__Impl : ( ( rule__WatcherWithFileMask__InterchangegroupAssignment_5 ) ) ;
-    public final void rule__WatcherWithFileMask__Group__5__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__7__Impl"
+    // InternalSignalDSL.g:4371:1: rule__SignalWatcher__Group__7__Impl : ( ( rule__SignalWatcher__InterchangegroupAssignment_7 ) ) ;
+    public final void rule__SignalWatcher__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4406:1: ( ( ( rule__WatcherWithFileMask__InterchangegroupAssignment_5 ) ) )
-            // InternalSignalDSL.g:4407:1: ( ( rule__WatcherWithFileMask__InterchangegroupAssignment_5 ) )
+            // InternalSignalDSL.g:4375:1: ( ( ( rule__SignalWatcher__InterchangegroupAssignment_7 ) ) )
+            // InternalSignalDSL.g:4376:1: ( ( rule__SignalWatcher__InterchangegroupAssignment_7 ) )
             {
-            // InternalSignalDSL.g:4407:1: ( ( rule__WatcherWithFileMask__InterchangegroupAssignment_5 ) )
-            // InternalSignalDSL.g:4408:2: ( rule__WatcherWithFileMask__InterchangegroupAssignment_5 )
+            // InternalSignalDSL.g:4376:1: ( ( rule__SignalWatcher__InterchangegroupAssignment_7 ) )
+            // InternalSignalDSL.g:4377:2: ( rule__SignalWatcher__InterchangegroupAssignment_7 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupAssignment_5()); 
+               before(grammarAccess.getSignalWatcherAccess().getInterchangegroupAssignment_7()); 
             }
-            // InternalSignalDSL.g:4409:2: ( rule__WatcherWithFileMask__InterchangegroupAssignment_5 )
-            // InternalSignalDSL.g:4409:3: rule__WatcherWithFileMask__InterchangegroupAssignment_5
+            // InternalSignalDSL.g:4378:2: ( rule__SignalWatcher__InterchangegroupAssignment_7 )
+            // InternalSignalDSL.g:4378:3: rule__SignalWatcher__InterchangegroupAssignment_7
             {
             pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__InterchangegroupAssignment_5();
+            rule__SignalWatcher__InterchangegroupAssignment_7();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16106,7 +16100,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupAssignment_5()); 
+               after(grammarAccess.getSignalWatcherAccess().getInterchangegroupAssignment_7()); 
             }
 
             }
@@ -16126,26 +16120,26 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__5__Impl"
+    // $ANTLR end "rule__SignalWatcher__Group__7__Impl"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__Group__6"
-    // InternalSignalDSL.g:4417:1: rule__WatcherWithFileMask__Group__6 : rule__WatcherWithFileMask__Group__6__Impl rule__WatcherWithFileMask__Group__7 ;
-    public final void rule__WatcherWithFileMask__Group__6() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__8"
+    // InternalSignalDSL.g:4386:1: rule__SignalWatcher__Group__8 : rule__SignalWatcher__Group__8__Impl rule__SignalWatcher__Group__9 ;
+    public final void rule__SignalWatcher__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4421:1: ( rule__WatcherWithFileMask__Group__6__Impl rule__WatcherWithFileMask__Group__7 )
-            // InternalSignalDSL.g:4422:2: rule__WatcherWithFileMask__Group__6__Impl rule__WatcherWithFileMask__Group__7
+            // InternalSignalDSL.g:4390:1: ( rule__SignalWatcher__Group__8__Impl rule__SignalWatcher__Group__9 )
+            // InternalSignalDSL.g:4391:2: rule__SignalWatcher__Group__8__Impl rule__SignalWatcher__Group__9
             {
-            pushFollow(FOLLOW_16);
-            rule__WatcherWithFileMask__Group__6__Impl();
+            pushFollow(FOLLOW_15);
+            rule__SignalWatcher__Group__8__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__Group__7();
+            rule__SignalWatcher__Group__9();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16164,191 +16158,28 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__6"
+    // $ANTLR end "rule__SignalWatcher__Group__8"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__Group__6__Impl"
-    // InternalSignalDSL.g:4429:1: rule__WatcherWithFileMask__Group__6__Impl : ( '{' ) ;
-    public final void rule__WatcherWithFileMask__Group__6__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__8__Impl"
+    // InternalSignalDSL.g:4398:1: rule__SignalWatcher__Group__8__Impl : ( '{' ) ;
+    public final void rule__SignalWatcher__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4433:1: ( ( '{' ) )
-            // InternalSignalDSL.g:4434:1: ( '{' )
+            // InternalSignalDSL.g:4402:1: ( ( '{' ) )
+            // InternalSignalDSL.g:4403:1: ( '{' )
             {
-            // InternalSignalDSL.g:4434:1: ( '{' )
-            // InternalSignalDSL.g:4435:2: '{'
+            // InternalSignalDSL.g:4403:1: ( '{' )
+            // InternalSignalDSL.g:4404:2: '{'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getLeftCurlyBracketKeyword_6()); 
-            }
-            match(input,62,FOLLOW_2); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getLeftCurlyBracketKeyword_6()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__6__Impl"
-
-
-    // $ANTLR start "rule__WatcherWithFileMask__Group__7"
-    // InternalSignalDSL.g:4444:1: rule__WatcherWithFileMask__Group__7 : rule__WatcherWithFileMask__Group__7__Impl rule__WatcherWithFileMask__Group__8 ;
-    public final void rule__WatcherWithFileMask__Group__7() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4448:1: ( rule__WatcherWithFileMask__Group__7__Impl rule__WatcherWithFileMask__Group__8 )
-            // InternalSignalDSL.g:4449:2: rule__WatcherWithFileMask__Group__7__Impl rule__WatcherWithFileMask__Group__8
-            {
-            pushFollow(FOLLOW_17);
-            rule__WatcherWithFileMask__Group__7__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__Group__8();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__7"
-
-
-    // $ANTLR start "rule__WatcherWithFileMask__Group__7__Impl"
-    // InternalSignalDSL.g:4456:1: rule__WatcherWithFileMask__Group__7__Impl : ( ( rule__WatcherWithFileMask__InterchangeAssignment_7 ) ) ;
-    public final void rule__WatcherWithFileMask__Group__7__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4460:1: ( ( ( rule__WatcherWithFileMask__InterchangeAssignment_7 ) ) )
-            // InternalSignalDSL.g:4461:1: ( ( rule__WatcherWithFileMask__InterchangeAssignment_7 ) )
-            {
-            // InternalSignalDSL.g:4461:1: ( ( rule__WatcherWithFileMask__InterchangeAssignment_7 ) )
-            // InternalSignalDSL.g:4462:2: ( rule__WatcherWithFileMask__InterchangeAssignment_7 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getInterchangeAssignment_7()); 
-            }
-            // InternalSignalDSL.g:4463:2: ( rule__WatcherWithFileMask__InterchangeAssignment_7 )
-            // InternalSignalDSL.g:4463:3: rule__WatcherWithFileMask__InterchangeAssignment_7
-            {
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__InterchangeAssignment_7();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getInterchangeAssignment_7()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__7__Impl"
-
-
-    // $ANTLR start "rule__WatcherWithFileMask__Group__8"
-    // InternalSignalDSL.g:4471:1: rule__WatcherWithFileMask__Group__8 : rule__WatcherWithFileMask__Group__8__Impl ;
-    public final void rule__WatcherWithFileMask__Group__8() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4475:1: ( rule__WatcherWithFileMask__Group__8__Impl )
-            // InternalSignalDSL.g:4476:2: rule__WatcherWithFileMask__Group__8__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileMask__Group__8__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__8"
-
-
-    // $ANTLR start "rule__WatcherWithFileMask__Group__8__Impl"
-    // InternalSignalDSL.g:4482:1: rule__WatcherWithFileMask__Group__8__Impl : ( '}' ) ;
-    public final void rule__WatcherWithFileMask__Group__8__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4486:1: ( ( '}' ) )
-            // InternalSignalDSL.g:4487:1: ( '}' )
-            {
-            // InternalSignalDSL.g:4487:1: ( '}' )
-            // InternalSignalDSL.g:4488:2: '}'
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getRightCurlyBracketKeyword_8()); 
+               before(grammarAccess.getSignalWatcherAccess().getLeftCurlyBracketKeyword_8()); 
             }
             match(input,63,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getRightCurlyBracketKeyword_8()); 
+               after(grammarAccess.getSignalWatcherAccess().getLeftCurlyBracketKeyword_8()); 
             }
 
             }
@@ -16368,273 +16199,26 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__Group__8__Impl"
+    // $ANTLR end "rule__SignalWatcher__Group__8__Impl"
 
 
-    // $ANTLR start "rule__WatcherWithFileName__Group__0"
-    // InternalSignalDSL.g:4498:1: rule__WatcherWithFileName__Group__0 : rule__WatcherWithFileName__Group__0__Impl rule__WatcherWithFileName__Group__1 ;
-    public final void rule__WatcherWithFileName__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__9"
+    // InternalSignalDSL.g:4413:1: rule__SignalWatcher__Group__9 : rule__SignalWatcher__Group__9__Impl rule__SignalWatcher__Group__10 ;
+    public final void rule__SignalWatcher__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4502:1: ( rule__WatcherWithFileName__Group__0__Impl rule__WatcherWithFileName__Group__1 )
-            // InternalSignalDSL.g:4503:2: rule__WatcherWithFileName__Group__0__Impl rule__WatcherWithFileName__Group__1
-            {
-            pushFollow(FOLLOW_11);
-            rule__WatcherWithFileName__Group__0__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__Group__1();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__Group__0"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__Group__0__Impl"
-    // InternalSignalDSL.g:4510:1: rule__WatcherWithFileName__Group__0__Impl : ( () ) ;
-    public final void rule__WatcherWithFileName__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4514:1: ( ( () ) )
-            // InternalSignalDSL.g:4515:1: ( () )
-            {
-            // InternalSignalDSL.g:4515:1: ( () )
-            // InternalSignalDSL.g:4516:2: ()
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getWatcherWithFileNameAction_0()); 
-            }
-            // InternalSignalDSL.g:4517:2: ()
-            // InternalSignalDSL.g:4517:3: 
-            {
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getWatcherWithFileNameAction_0()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__Group__0__Impl"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__Group__1"
-    // InternalSignalDSL.g:4525:1: rule__WatcherWithFileName__Group__1 : rule__WatcherWithFileName__Group__1__Impl rule__WatcherWithFileName__Group__2 ;
-    public final void rule__WatcherWithFileName__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4529:1: ( rule__WatcherWithFileName__Group__1__Impl rule__WatcherWithFileName__Group__2 )
-            // InternalSignalDSL.g:4530:2: rule__WatcherWithFileName__Group__1__Impl rule__WatcherWithFileName__Group__2
-            {
-            pushFollow(FOLLOW_13);
-            rule__WatcherWithFileName__Group__1__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__Group__2();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__Group__1"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__Group__1__Impl"
-    // InternalSignalDSL.g:4537:1: rule__WatcherWithFileName__Group__1__Impl : ( 'filename' ) ;
-    public final void rule__WatcherWithFileName__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4541:1: ( ( 'filename' ) )
-            // InternalSignalDSL.g:4542:1: ( 'filename' )
-            {
-            // InternalSignalDSL.g:4542:1: ( 'filename' )
-            // InternalSignalDSL.g:4543:2: 'filename'
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getFilenameKeyword_1()); 
-            }
-            match(input,67,FOLLOW_2); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getFilenameKeyword_1()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__Group__1__Impl"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__Group__2"
-    // InternalSignalDSL.g:4552:1: rule__WatcherWithFileName__Group__2 : rule__WatcherWithFileName__Group__2__Impl rule__WatcherWithFileName__Group__3 ;
-    public final void rule__WatcherWithFileName__Group__2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4556:1: ( rule__WatcherWithFileName__Group__2__Impl rule__WatcherWithFileName__Group__3 )
-            // InternalSignalDSL.g:4557:2: rule__WatcherWithFileName__Group__2__Impl rule__WatcherWithFileName__Group__3
-            {
-            pushFollow(FOLLOW_14);
-            rule__WatcherWithFileName__Group__2__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__Group__3();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__Group__2"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__Group__2__Impl"
-    // InternalSignalDSL.g:4564:1: rule__WatcherWithFileName__Group__2__Impl : ( ( rule__WatcherWithFileName__FilenameAssignment_2 ) ) ;
-    public final void rule__WatcherWithFileName__Group__2__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4568:1: ( ( ( rule__WatcherWithFileName__FilenameAssignment_2 ) ) )
-            // InternalSignalDSL.g:4569:1: ( ( rule__WatcherWithFileName__FilenameAssignment_2 ) )
-            {
-            // InternalSignalDSL.g:4569:1: ( ( rule__WatcherWithFileName__FilenameAssignment_2 ) )
-            // InternalSignalDSL.g:4570:2: ( rule__WatcherWithFileName__FilenameAssignment_2 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getFilenameAssignment_2()); 
-            }
-            // InternalSignalDSL.g:4571:2: ( rule__WatcherWithFileName__FilenameAssignment_2 )
-            // InternalSignalDSL.g:4571:3: rule__WatcherWithFileName__FilenameAssignment_2
-            {
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__FilenameAssignment_2();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getFilenameAssignment_2()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__Group__2__Impl"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__Group__3"
-    // InternalSignalDSL.g:4579:1: rule__WatcherWithFileName__Group__3 : rule__WatcherWithFileName__Group__3__Impl rule__WatcherWithFileName__Group__4 ;
-    public final void rule__WatcherWithFileName__Group__3() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4583:1: ( rule__WatcherWithFileName__Group__3__Impl rule__WatcherWithFileName__Group__4 )
-            // InternalSignalDSL.g:4584:2: rule__WatcherWithFileName__Group__3__Impl rule__WatcherWithFileName__Group__4
+            // InternalSignalDSL.g:4417:1: ( rule__SignalWatcher__Group__9__Impl rule__SignalWatcher__Group__10 )
+            // InternalSignalDSL.g:4418:2: rule__SignalWatcher__Group__9__Impl rule__SignalWatcher__Group__10
             {
             pushFollow(FOLLOW_15);
-            rule__WatcherWithFileName__Group__3__Impl();
+            rule__SignalWatcher__Group__9__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__Group__4();
+            rule__SignalWatcher__Group__10();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16653,38 +16237,49 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileName__Group__3"
+    // $ANTLR end "rule__SignalWatcher__Group__9"
 
 
-    // $ANTLR start "rule__WatcherWithFileName__Group__3__Impl"
-    // InternalSignalDSL.g:4591:1: rule__WatcherWithFileName__Group__3__Impl : ( ( rule__WatcherWithFileName__ExecutiontypeAssignment_3 ) ) ;
-    public final void rule__WatcherWithFileName__Group__3__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__9__Impl"
+    // InternalSignalDSL.g:4425:1: rule__SignalWatcher__Group__9__Impl : ( ( rule__SignalWatcher__Group_9__0 )? ) ;
+    public final void rule__SignalWatcher__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4595:1: ( ( ( rule__WatcherWithFileName__ExecutiontypeAssignment_3 ) ) )
-            // InternalSignalDSL.g:4596:1: ( ( rule__WatcherWithFileName__ExecutiontypeAssignment_3 ) )
+            // InternalSignalDSL.g:4429:1: ( ( ( rule__SignalWatcher__Group_9__0 )? ) )
+            // InternalSignalDSL.g:4430:1: ( ( rule__SignalWatcher__Group_9__0 )? )
             {
-            // InternalSignalDSL.g:4596:1: ( ( rule__WatcherWithFileName__ExecutiontypeAssignment_3 ) )
-            // InternalSignalDSL.g:4597:2: ( rule__WatcherWithFileName__ExecutiontypeAssignment_3 )
+            // InternalSignalDSL.g:4430:1: ( ( rule__SignalWatcher__Group_9__0 )? )
+            // InternalSignalDSL.g:4431:2: ( rule__SignalWatcher__Group_9__0 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getExecutiontypeAssignment_3()); 
+               before(grammarAccess.getSignalWatcherAccess().getGroup_9()); 
             }
-            // InternalSignalDSL.g:4598:2: ( rule__WatcherWithFileName__ExecutiontypeAssignment_3 )
-            // InternalSignalDSL.g:4598:3: rule__WatcherWithFileName__ExecutiontypeAssignment_3
-            {
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__ExecutiontypeAssignment_3();
+            // InternalSignalDSL.g:4432:2: ( rule__SignalWatcher__Group_9__0 )?
+            int alt57=2;
+            int LA57_0 = input.LA(1);
 
-            state._fsp--;
-            if (state.failed) return ;
+            if ( (LA57_0==67) ) {
+                alt57=1;
+            }
+            switch (alt57) {
+                case 1 :
+                    // InternalSignalDSL.g:4432:3: rule__SignalWatcher__Group_9__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__SignalWatcher__Group_9__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getExecutiontypeAssignment_3()); 
+               after(grammarAccess.getSignalWatcherAccess().getGroup_9()); 
             }
 
             }
@@ -16704,26 +16299,26 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileName__Group__3__Impl"
+    // $ANTLR end "rule__SignalWatcher__Group__9__Impl"
 
 
-    // $ANTLR start "rule__WatcherWithFileName__Group__4"
-    // InternalSignalDSL.g:4606:1: rule__WatcherWithFileName__Group__4 : rule__WatcherWithFileName__Group__4__Impl rule__WatcherWithFileName__Group__5 ;
-    public final void rule__WatcherWithFileName__Group__4() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__10"
+    // InternalSignalDSL.g:4440:1: rule__SignalWatcher__Group__10 : rule__SignalWatcher__Group__10__Impl rule__SignalWatcher__Group__11 ;
+    public final void rule__SignalWatcher__Group__10() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4610:1: ( rule__WatcherWithFileName__Group__4__Impl rule__WatcherWithFileName__Group__5 )
-            // InternalSignalDSL.g:4611:2: rule__WatcherWithFileName__Group__4__Impl rule__WatcherWithFileName__Group__5
+            // InternalSignalDSL.g:4444:1: ( rule__SignalWatcher__Group__10__Impl rule__SignalWatcher__Group__11 )
+            // InternalSignalDSL.g:4445:2: rule__SignalWatcher__Group__10__Impl rule__SignalWatcher__Group__11
             {
-            pushFollow(FOLLOW_6);
-            rule__WatcherWithFileName__Group__4__Impl();
+            pushFollow(FOLLOW_15);
+            rule__SignalWatcher__Group__10__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__Group__5();
+            rule__SignalWatcher__Group__11();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16742,289 +16337,42 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileName__Group__4"
+    // $ANTLR end "rule__SignalWatcher__Group__10"
 
 
-    // $ANTLR start "rule__WatcherWithFileName__Group__4__Impl"
-    // InternalSignalDSL.g:4618:1: rule__WatcherWithFileName__Group__4__Impl : ( 'from' ) ;
-    public final void rule__WatcherWithFileName__Group__4__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__10__Impl"
+    // InternalSignalDSL.g:4452:1: rule__SignalWatcher__Group__10__Impl : ( ( rule__SignalWatcher__TasksAssignment_10 )* ) ;
+    public final void rule__SignalWatcher__Group__10__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4622:1: ( ( 'from' ) )
-            // InternalSignalDSL.g:4623:1: ( 'from' )
+            // InternalSignalDSL.g:4456:1: ( ( ( rule__SignalWatcher__TasksAssignment_10 )* ) )
+            // InternalSignalDSL.g:4457:1: ( ( rule__SignalWatcher__TasksAssignment_10 )* )
             {
-            // InternalSignalDSL.g:4623:1: ( 'from' )
-            // InternalSignalDSL.g:4624:2: 'from'
+            // InternalSignalDSL.g:4457:1: ( ( rule__SignalWatcher__TasksAssignment_10 )* )
+            // InternalSignalDSL.g:4458:2: ( rule__SignalWatcher__TasksAssignment_10 )*
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getFromKeyword_4()); 
+               before(grammarAccess.getSignalWatcherAccess().getTasksAssignment_10()); 
             }
-            match(input,66,FOLLOW_2); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getFromKeyword_4()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__Group__4__Impl"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__Group__5"
-    // InternalSignalDSL.g:4633:1: rule__WatcherWithFileName__Group__5 : rule__WatcherWithFileName__Group__5__Impl rule__WatcherWithFileName__Group__6 ;
-    public final void rule__WatcherWithFileName__Group__5() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4637:1: ( rule__WatcherWithFileName__Group__5__Impl rule__WatcherWithFileName__Group__6 )
-            // InternalSignalDSL.g:4638:2: rule__WatcherWithFileName__Group__5__Impl rule__WatcherWithFileName__Group__6
-            {
-            pushFollow(FOLLOW_7);
-            rule__WatcherWithFileName__Group__5__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__Group__6();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__Group__5"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__Group__5__Impl"
-    // InternalSignalDSL.g:4645:1: rule__WatcherWithFileName__Group__5__Impl : ( ( rule__WatcherWithFileName__InterchangegroupAssignment_5 ) ) ;
-    public final void rule__WatcherWithFileName__Group__5__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4649:1: ( ( ( rule__WatcherWithFileName__InterchangegroupAssignment_5 ) ) )
-            // InternalSignalDSL.g:4650:1: ( ( rule__WatcherWithFileName__InterchangegroupAssignment_5 ) )
-            {
-            // InternalSignalDSL.g:4650:1: ( ( rule__WatcherWithFileName__InterchangegroupAssignment_5 ) )
-            // InternalSignalDSL.g:4651:2: ( rule__WatcherWithFileName__InterchangegroupAssignment_5 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupAssignment_5()); 
-            }
-            // InternalSignalDSL.g:4652:2: ( rule__WatcherWithFileName__InterchangegroupAssignment_5 )
-            // InternalSignalDSL.g:4652:3: rule__WatcherWithFileName__InterchangegroupAssignment_5
-            {
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__InterchangegroupAssignment_5();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupAssignment_5()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__Group__5__Impl"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__Group__6"
-    // InternalSignalDSL.g:4660:1: rule__WatcherWithFileName__Group__6 : rule__WatcherWithFileName__Group__6__Impl rule__WatcherWithFileName__Group__7 ;
-    public final void rule__WatcherWithFileName__Group__6() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4664:1: ( rule__WatcherWithFileName__Group__6__Impl rule__WatcherWithFileName__Group__7 )
-            // InternalSignalDSL.g:4665:2: rule__WatcherWithFileName__Group__6__Impl rule__WatcherWithFileName__Group__7
-            {
-            pushFollow(FOLLOW_18);
-            rule__WatcherWithFileName__Group__6__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__Group__7();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__Group__6"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__Group__6__Impl"
-    // InternalSignalDSL.g:4672:1: rule__WatcherWithFileName__Group__6__Impl : ( '{' ) ;
-    public final void rule__WatcherWithFileName__Group__6__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4676:1: ( ( '{' ) )
-            // InternalSignalDSL.g:4677:1: ( '{' )
-            {
-            // InternalSignalDSL.g:4677:1: ( '{' )
-            // InternalSignalDSL.g:4678:2: '{'
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getLeftCurlyBracketKeyword_6()); 
-            }
-            match(input,62,FOLLOW_2); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getLeftCurlyBracketKeyword_6()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__Group__6__Impl"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__Group__7"
-    // InternalSignalDSL.g:4687:1: rule__WatcherWithFileName__Group__7 : rule__WatcherWithFileName__Group__7__Impl rule__WatcherWithFileName__Group__8 ;
-    public final void rule__WatcherWithFileName__Group__7() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4691:1: ( rule__WatcherWithFileName__Group__7__Impl rule__WatcherWithFileName__Group__8 )
-            // InternalSignalDSL.g:4692:2: rule__WatcherWithFileName__Group__7__Impl rule__WatcherWithFileName__Group__8
-            {
-            pushFollow(FOLLOW_18);
-            rule__WatcherWithFileName__Group__7__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
-            pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__Group__8();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__Group__7"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__Group__7__Impl"
-    // InternalSignalDSL.g:4699:1: rule__WatcherWithFileName__Group__7__Impl : ( ( rule__WatcherWithFileName__InterchangesAssignment_7 )* ) ;
-    public final void rule__WatcherWithFileName__Group__7__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:4703:1: ( ( ( rule__WatcherWithFileName__InterchangesAssignment_7 )* ) )
-            // InternalSignalDSL.g:4704:1: ( ( rule__WatcherWithFileName__InterchangesAssignment_7 )* )
-            {
-            // InternalSignalDSL.g:4704:1: ( ( rule__WatcherWithFileName__InterchangesAssignment_7 )* )
-            // InternalSignalDSL.g:4705:2: ( rule__WatcherWithFileName__InterchangesAssignment_7 )*
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getInterchangesAssignment_7()); 
-            }
-            // InternalSignalDSL.g:4706:2: ( rule__WatcherWithFileName__InterchangesAssignment_7 )*
-            loop55:
+            // InternalSignalDSL.g:4459:2: ( rule__SignalWatcher__TasksAssignment_10 )*
+            loop58:
             do {
-                int alt55=2;
-                int LA55_0 = input.LA(1);
+                int alt58=2;
+                int LA58_0 = input.LA(1);
 
-                if ( (LA55_0==47||LA55_0==51) ) {
-                    alt55=1;
+                if ( (LA58_0==48||LA58_0==52||LA58_0==76) ) {
+                    alt58=1;
                 }
 
 
-                switch (alt55) {
+                switch (alt58) {
             	case 1 :
-            	    // InternalSignalDSL.g:4706:3: rule__WatcherWithFileName__InterchangesAssignment_7
+            	    // InternalSignalDSL.g:4459:3: rule__SignalWatcher__TasksAssignment_10
             	    {
-            	    pushFollow(FOLLOW_19);
-            	    rule__WatcherWithFileName__InterchangesAssignment_7();
+            	    pushFollow(FOLLOW_16);
+            	    rule__SignalWatcher__TasksAssignment_10();
 
             	    state._fsp--;
             	    if (state.failed) return ;
@@ -17033,12 +16381,12 @@
             	    break;
 
             	default :
-            	    break loop55;
+            	    break loop58;
                 }
             } while (true);
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getInterchangesAssignment_7()); 
+               after(grammarAccess.getSignalWatcherAccess().getTasksAssignment_10()); 
             }
 
             }
@@ -17058,21 +16406,21 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileName__Group__7__Impl"
+    // $ANTLR end "rule__SignalWatcher__Group__10__Impl"
 
 
-    // $ANTLR start "rule__WatcherWithFileName__Group__8"
-    // InternalSignalDSL.g:4714:1: rule__WatcherWithFileName__Group__8 : rule__WatcherWithFileName__Group__8__Impl ;
-    public final void rule__WatcherWithFileName__Group__8() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__11"
+    // InternalSignalDSL.g:4467:1: rule__SignalWatcher__Group__11 : rule__SignalWatcher__Group__11__Impl ;
+    public final void rule__SignalWatcher__Group__11() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4718:1: ( rule__WatcherWithFileName__Group__8__Impl )
-            // InternalSignalDSL.g:4719:2: rule__WatcherWithFileName__Group__8__Impl
+            // InternalSignalDSL.g:4471:1: ( rule__SignalWatcher__Group__11__Impl )
+            // InternalSignalDSL.g:4472:2: rule__SignalWatcher__Group__11__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__WatcherWithFileName__Group__8__Impl();
+            rule__SignalWatcher__Group__11__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17091,28 +16439,28 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileName__Group__8"
+    // $ANTLR end "rule__SignalWatcher__Group__11"
 
 
-    // $ANTLR start "rule__WatcherWithFileName__Group__8__Impl"
-    // InternalSignalDSL.g:4725:1: rule__WatcherWithFileName__Group__8__Impl : ( '}' ) ;
-    public final void rule__WatcherWithFileName__Group__8__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__Group__11__Impl"
+    // InternalSignalDSL.g:4478:1: rule__SignalWatcher__Group__11__Impl : ( '}' ) ;
+    public final void rule__SignalWatcher__Group__11__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4729:1: ( ( '}' ) )
-            // InternalSignalDSL.g:4730:1: ( '}' )
+            // InternalSignalDSL.g:4482:1: ( ( '}' ) )
+            // InternalSignalDSL.g:4483:1: ( '}' )
             {
-            // InternalSignalDSL.g:4730:1: ( '}' )
-            // InternalSignalDSL.g:4731:2: '}'
+            // InternalSignalDSL.g:4483:1: ( '}' )
+            // InternalSignalDSL.g:4484:2: '}'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getRightCurlyBracketKeyword_8()); 
+               before(grammarAccess.getSignalWatcherAccess().getRightCurlyBracketKeyword_11()); 
             }
-            match(input,63,FOLLOW_2); if (state.failed) return ;
+            match(input,64,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getRightCurlyBracketKeyword_8()); 
+               after(grammarAccess.getSignalWatcherAccess().getRightCurlyBracketKeyword_11()); 
             }
 
             }
@@ -17132,20 +16480,183 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileName__Group__8__Impl"
+    // $ANTLR end "rule__SignalWatcher__Group__11__Impl"
+
+
+    // $ANTLR start "rule__SignalWatcher__Group_9__0"
+    // InternalSignalDSL.g:4494:1: rule__SignalWatcher__Group_9__0 : rule__SignalWatcher__Group_9__0__Impl rule__SignalWatcher__Group_9__1 ;
+    public final void rule__SignalWatcher__Group_9__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4498:1: ( rule__SignalWatcher__Group_9__0__Impl rule__SignalWatcher__Group_9__1 )
+            // InternalSignalDSL.g:4499:2: rule__SignalWatcher__Group_9__0__Impl rule__SignalWatcher__Group_9__1
+            {
+            pushFollow(FOLLOW_6);
+            rule__SignalWatcher__Group_9__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalWatcher__Group_9__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalWatcher__Group_9__0"
+
+
+    // $ANTLR start "rule__SignalWatcher__Group_9__0__Impl"
+    // InternalSignalDSL.g:4506:1: rule__SignalWatcher__Group_9__0__Impl : ( 'applyon' ) ;
+    public final void rule__SignalWatcher__Group_9__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4510:1: ( ( 'applyon' ) )
+            // InternalSignalDSL.g:4511:1: ( 'applyon' )
+            {
+            // InternalSignalDSL.g:4511:1: ( 'applyon' )
+            // InternalSignalDSL.g:4512:2: 'applyon'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalWatcherAccess().getApplyonKeyword_9_0()); 
+            }
+            match(input,67,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalWatcherAccess().getApplyonKeyword_9_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalWatcher__Group_9__0__Impl"
+
+
+    // $ANTLR start "rule__SignalWatcher__Group_9__1"
+    // InternalSignalDSL.g:4521:1: rule__SignalWatcher__Group_9__1 : rule__SignalWatcher__Group_9__1__Impl ;
+    public final void rule__SignalWatcher__Group_9__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4525:1: ( rule__SignalWatcher__Group_9__1__Impl )
+            // InternalSignalDSL.g:4526:2: rule__SignalWatcher__Group_9__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalWatcher__Group_9__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalWatcher__Group_9__1"
+
+
+    // $ANTLR start "rule__SignalWatcher__Group_9__1__Impl"
+    // InternalSignalDSL.g:4532:1: rule__SignalWatcher__Group_9__1__Impl : ( ( rule__SignalWatcher__DefaultInterchangeAssignment_9_1 ) ) ;
+    public final void rule__SignalWatcher__Group_9__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:4536:1: ( ( ( rule__SignalWatcher__DefaultInterchangeAssignment_9_1 ) ) )
+            // InternalSignalDSL.g:4537:1: ( ( rule__SignalWatcher__DefaultInterchangeAssignment_9_1 ) )
+            {
+            // InternalSignalDSL.g:4537:1: ( ( rule__SignalWatcher__DefaultInterchangeAssignment_9_1 ) )
+            // InternalSignalDSL.g:4538:2: ( rule__SignalWatcher__DefaultInterchangeAssignment_9_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeAssignment_9_1()); 
+            }
+            // InternalSignalDSL.g:4539:2: ( rule__SignalWatcher__DefaultInterchangeAssignment_9_1 )
+            // InternalSignalDSL.g:4539:3: rule__SignalWatcher__DefaultInterchangeAssignment_9_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalWatcher__DefaultInterchangeAssignment_9_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeAssignment_9_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalWatcher__Group_9__1__Impl"
 
 
     // $ANTLR start "rule__SignalScheduler__Group__0"
-    // InternalSignalDSL.g:4741:1: rule__SignalScheduler__Group__0 : rule__SignalScheduler__Group__0__Impl rule__SignalScheduler__Group__1 ;
+    // InternalSignalDSL.g:4548:1: rule__SignalScheduler__Group__0 : rule__SignalScheduler__Group__0__Impl rule__SignalScheduler__Group__1 ;
     public final void rule__SignalScheduler__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4745:1: ( rule__SignalScheduler__Group__0__Impl rule__SignalScheduler__Group__1 )
-            // InternalSignalDSL.g:4746:2: rule__SignalScheduler__Group__0__Impl rule__SignalScheduler__Group__1
+            // InternalSignalDSL.g:4552:1: ( rule__SignalScheduler__Group__0__Impl rule__SignalScheduler__Group__1 )
+            // InternalSignalDSL.g:4553:2: rule__SignalScheduler__Group__0__Impl rule__SignalScheduler__Group__1
             {
-            pushFollow(FOLLOW_20);
+            pushFollow(FOLLOW_17);
             rule__SignalScheduler__Group__0__Impl();
 
             state._fsp--;
@@ -17174,23 +16685,23 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__0__Impl"
-    // InternalSignalDSL.g:4753:1: rule__SignalScheduler__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:4560:1: rule__SignalScheduler__Group__0__Impl : ( () ) ;
     public final void rule__SignalScheduler__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4757:1: ( ( () ) )
-            // InternalSignalDSL.g:4758:1: ( () )
+            // InternalSignalDSL.g:4564:1: ( ( () ) )
+            // InternalSignalDSL.g:4565:1: ( () )
             {
-            // InternalSignalDSL.g:4758:1: ( () )
-            // InternalSignalDSL.g:4759:2: ()
+            // InternalSignalDSL.g:4565:1: ( () )
+            // InternalSignalDSL.g:4566:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getSignalSchedulerAction_0()); 
             }
-            // InternalSignalDSL.g:4760:2: ()
-            // InternalSignalDSL.g:4760:3: 
+            // InternalSignalDSL.g:4567:2: ()
+            // InternalSignalDSL.g:4567:3: 
             {
             }
 
@@ -17215,14 +16726,14 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__1"
-    // InternalSignalDSL.g:4768:1: rule__SignalScheduler__Group__1 : rule__SignalScheduler__Group__1__Impl rule__SignalScheduler__Group__2 ;
+    // InternalSignalDSL.g:4575:1: rule__SignalScheduler__Group__1 : rule__SignalScheduler__Group__1__Impl rule__SignalScheduler__Group__2 ;
     public final void rule__SignalScheduler__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4772:1: ( rule__SignalScheduler__Group__1__Impl rule__SignalScheduler__Group__2 )
-            // InternalSignalDSL.g:4773:2: rule__SignalScheduler__Group__1__Impl rule__SignalScheduler__Group__2
+            // InternalSignalDSL.g:4579:1: ( rule__SignalScheduler__Group__1__Impl rule__SignalScheduler__Group__2 )
+            // InternalSignalDSL.g:4580:2: rule__SignalScheduler__Group__1__Impl rule__SignalScheduler__Group__2
             {
             pushFollow(FOLLOW_6);
             rule__SignalScheduler__Group__1__Impl();
@@ -17253,17 +16764,17 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__1__Impl"
-    // InternalSignalDSL.g:4780:1: rule__SignalScheduler__Group__1__Impl : ( 'scheduler' ) ;
+    // InternalSignalDSL.g:4587:1: rule__SignalScheduler__Group__1__Impl : ( 'scheduler' ) ;
     public final void rule__SignalScheduler__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4784:1: ( ( 'scheduler' ) )
-            // InternalSignalDSL.g:4785:1: ( 'scheduler' )
+            // InternalSignalDSL.g:4591:1: ( ( 'scheduler' ) )
+            // InternalSignalDSL.g:4592:1: ( 'scheduler' )
             {
-            // InternalSignalDSL.g:4785:1: ( 'scheduler' )
-            // InternalSignalDSL.g:4786:2: 'scheduler'
+            // InternalSignalDSL.g:4592:1: ( 'scheduler' )
+            // InternalSignalDSL.g:4593:2: 'scheduler'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getSchedulerKeyword_1()); 
@@ -17294,16 +16805,16 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__2"
-    // InternalSignalDSL.g:4795:1: rule__SignalScheduler__Group__2 : rule__SignalScheduler__Group__2__Impl rule__SignalScheduler__Group__3 ;
+    // InternalSignalDSL.g:4602:1: rule__SignalScheduler__Group__2 : rule__SignalScheduler__Group__2__Impl rule__SignalScheduler__Group__3 ;
     public final void rule__SignalScheduler__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4799:1: ( rule__SignalScheduler__Group__2__Impl rule__SignalScheduler__Group__3 )
-            // InternalSignalDSL.g:4800:2: rule__SignalScheduler__Group__2__Impl rule__SignalScheduler__Group__3
+            // InternalSignalDSL.g:4606:1: ( rule__SignalScheduler__Group__2__Impl rule__SignalScheduler__Group__3 )
+            // InternalSignalDSL.g:4607:2: rule__SignalScheduler__Group__2__Impl rule__SignalScheduler__Group__3
             {
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_18);
             rule__SignalScheduler__Group__2__Impl();
 
             state._fsp--;
@@ -17332,23 +16843,23 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__2__Impl"
-    // InternalSignalDSL.g:4807:1: rule__SignalScheduler__Group__2__Impl : ( ( rule__SignalScheduler__NameAssignment_2 ) ) ;
+    // InternalSignalDSL.g:4614:1: rule__SignalScheduler__Group__2__Impl : ( ( rule__SignalScheduler__NameAssignment_2 ) ) ;
     public final void rule__SignalScheduler__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4811:1: ( ( ( rule__SignalScheduler__NameAssignment_2 ) ) )
-            // InternalSignalDSL.g:4812:1: ( ( rule__SignalScheduler__NameAssignment_2 ) )
+            // InternalSignalDSL.g:4618:1: ( ( ( rule__SignalScheduler__NameAssignment_2 ) ) )
+            // InternalSignalDSL.g:4619:1: ( ( rule__SignalScheduler__NameAssignment_2 ) )
             {
-            // InternalSignalDSL.g:4812:1: ( ( rule__SignalScheduler__NameAssignment_2 ) )
-            // InternalSignalDSL.g:4813:2: ( rule__SignalScheduler__NameAssignment_2 )
+            // InternalSignalDSL.g:4619:1: ( ( rule__SignalScheduler__NameAssignment_2 ) )
+            // InternalSignalDSL.g:4620:2: ( rule__SignalScheduler__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getNameAssignment_2()); 
             }
-            // InternalSignalDSL.g:4814:2: ( rule__SignalScheduler__NameAssignment_2 )
-            // InternalSignalDSL.g:4814:3: rule__SignalScheduler__NameAssignment_2
+            // InternalSignalDSL.g:4621:2: ( rule__SignalScheduler__NameAssignment_2 )
+            // InternalSignalDSL.g:4621:3: rule__SignalScheduler__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__SignalScheduler__NameAssignment_2();
@@ -17383,16 +16894,16 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__3"
-    // InternalSignalDSL.g:4822:1: rule__SignalScheduler__Group__3 : rule__SignalScheduler__Group__3__Impl rule__SignalScheduler__Group__4 ;
+    // InternalSignalDSL.g:4629:1: rule__SignalScheduler__Group__3 : rule__SignalScheduler__Group__3__Impl rule__SignalScheduler__Group__4 ;
     public final void rule__SignalScheduler__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4826:1: ( rule__SignalScheduler__Group__3__Impl rule__SignalScheduler__Group__4 )
-            // InternalSignalDSL.g:4827:2: rule__SignalScheduler__Group__3__Impl rule__SignalScheduler__Group__4
+            // InternalSignalDSL.g:4633:1: ( rule__SignalScheduler__Group__3__Impl rule__SignalScheduler__Group__4 )
+            // InternalSignalDSL.g:4634:2: rule__SignalScheduler__Group__3__Impl rule__SignalScheduler__Group__4
             {
-            pushFollow(FOLLOW_22);
+            pushFollow(FOLLOW_19);
             rule__SignalScheduler__Group__3__Impl();
 
             state._fsp--;
@@ -17421,23 +16932,23 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__3__Impl"
-    // InternalSignalDSL.g:4834:1: rule__SignalScheduler__Group__3__Impl : ( ( rule__SignalScheduler__SchedulertypeAssignment_3 ) ) ;
+    // InternalSignalDSL.g:4641:1: rule__SignalScheduler__Group__3__Impl : ( ( rule__SignalScheduler__SchedulertypeAssignment_3 ) ) ;
     public final void rule__SignalScheduler__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4838:1: ( ( ( rule__SignalScheduler__SchedulertypeAssignment_3 ) ) )
-            // InternalSignalDSL.g:4839:1: ( ( rule__SignalScheduler__SchedulertypeAssignment_3 ) )
+            // InternalSignalDSL.g:4645:1: ( ( ( rule__SignalScheduler__SchedulertypeAssignment_3 ) ) )
+            // InternalSignalDSL.g:4646:1: ( ( rule__SignalScheduler__SchedulertypeAssignment_3 ) )
             {
-            // InternalSignalDSL.g:4839:1: ( ( rule__SignalScheduler__SchedulertypeAssignment_3 ) )
-            // InternalSignalDSL.g:4840:2: ( rule__SignalScheduler__SchedulertypeAssignment_3 )
+            // InternalSignalDSL.g:4646:1: ( ( rule__SignalScheduler__SchedulertypeAssignment_3 ) )
+            // InternalSignalDSL.g:4647:2: ( rule__SignalScheduler__SchedulertypeAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getSchedulertypeAssignment_3()); 
             }
-            // InternalSignalDSL.g:4841:2: ( rule__SignalScheduler__SchedulertypeAssignment_3 )
-            // InternalSignalDSL.g:4841:3: rule__SignalScheduler__SchedulertypeAssignment_3
+            // InternalSignalDSL.g:4648:2: ( rule__SignalScheduler__SchedulertypeAssignment_3 )
+            // InternalSignalDSL.g:4648:3: rule__SignalScheduler__SchedulertypeAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__SignalScheduler__SchedulertypeAssignment_3();
@@ -17472,16 +16983,16 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__4"
-    // InternalSignalDSL.g:4849:1: rule__SignalScheduler__Group__4 : rule__SignalScheduler__Group__4__Impl rule__SignalScheduler__Group__5 ;
+    // InternalSignalDSL.g:4656:1: rule__SignalScheduler__Group__4 : rule__SignalScheduler__Group__4__Impl rule__SignalScheduler__Group__5 ;
     public final void rule__SignalScheduler__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4853:1: ( rule__SignalScheduler__Group__4__Impl rule__SignalScheduler__Group__5 )
-            // InternalSignalDSL.g:4854:2: rule__SignalScheduler__Group__4__Impl rule__SignalScheduler__Group__5
+            // InternalSignalDSL.g:4660:1: ( rule__SignalScheduler__Group__4__Impl rule__SignalScheduler__Group__5 )
+            // InternalSignalDSL.g:4661:2: rule__SignalScheduler__Group__4__Impl rule__SignalScheduler__Group__5
             {
-            pushFollow(FOLLOW_22);
+            pushFollow(FOLLOW_19);
             rule__SignalScheduler__Group__4__Impl();
 
             state._fsp--;
@@ -17510,31 +17021,31 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__4__Impl"
-    // InternalSignalDSL.g:4861:1: rule__SignalScheduler__Group__4__Impl : ( ( rule__SignalScheduler__ExecutiontypeAssignment_4 )? ) ;
+    // InternalSignalDSL.g:4668:1: rule__SignalScheduler__Group__4__Impl : ( ( rule__SignalScheduler__ExecutiontypeAssignment_4 )? ) ;
     public final void rule__SignalScheduler__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4865:1: ( ( ( rule__SignalScheduler__ExecutiontypeAssignment_4 )? ) )
-            // InternalSignalDSL.g:4866:1: ( ( rule__SignalScheduler__ExecutiontypeAssignment_4 )? )
+            // InternalSignalDSL.g:4672:1: ( ( ( rule__SignalScheduler__ExecutiontypeAssignment_4 )? ) )
+            // InternalSignalDSL.g:4673:1: ( ( rule__SignalScheduler__ExecutiontypeAssignment_4 )? )
             {
-            // InternalSignalDSL.g:4866:1: ( ( rule__SignalScheduler__ExecutiontypeAssignment_4 )? )
-            // InternalSignalDSL.g:4867:2: ( rule__SignalScheduler__ExecutiontypeAssignment_4 )?
+            // InternalSignalDSL.g:4673:1: ( ( rule__SignalScheduler__ExecutiontypeAssignment_4 )? )
+            // InternalSignalDSL.g:4674:2: ( rule__SignalScheduler__ExecutiontypeAssignment_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getExecutiontypeAssignment_4()); 
             }
-            // InternalSignalDSL.g:4868:2: ( rule__SignalScheduler__ExecutiontypeAssignment_4 )?
-            int alt56=2;
-            int LA56_0 = input.LA(1);
+            // InternalSignalDSL.g:4675:2: ( rule__SignalScheduler__ExecutiontypeAssignment_4 )?
+            int alt59=2;
+            int LA59_0 = input.LA(1);
 
-            if ( ((LA56_0>=52 && LA56_0<=53)) ) {
-                alt56=1;
+            if ( ((LA59_0>=53 && LA59_0<=54)) ) {
+                alt59=1;
             }
-            switch (alt56) {
+            switch (alt59) {
                 case 1 :
-                    // InternalSignalDSL.g:4868:3: rule__SignalScheduler__ExecutiontypeAssignment_4
+                    // InternalSignalDSL.g:4675:3: rule__SignalScheduler__ExecutiontypeAssignment_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__SignalScheduler__ExecutiontypeAssignment_4();
@@ -17572,14 +17083,14 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__5"
-    // InternalSignalDSL.g:4876:1: rule__SignalScheduler__Group__5 : rule__SignalScheduler__Group__5__Impl rule__SignalScheduler__Group__6 ;
+    // InternalSignalDSL.g:4683:1: rule__SignalScheduler__Group__5 : rule__SignalScheduler__Group__5__Impl rule__SignalScheduler__Group__6 ;
     public final void rule__SignalScheduler__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4880:1: ( rule__SignalScheduler__Group__5__Impl rule__SignalScheduler__Group__6 )
-            // InternalSignalDSL.g:4881:2: rule__SignalScheduler__Group__5__Impl rule__SignalScheduler__Group__6
+            // InternalSignalDSL.g:4687:1: ( rule__SignalScheduler__Group__5__Impl rule__SignalScheduler__Group__6 )
+            // InternalSignalDSL.g:4688:2: rule__SignalScheduler__Group__5__Impl rule__SignalScheduler__Group__6
             {
             pushFollow(FOLLOW_6);
             rule__SignalScheduler__Group__5__Impl();
@@ -17610,17 +17121,17 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__5__Impl"
-    // InternalSignalDSL.g:4888:1: rule__SignalScheduler__Group__5__Impl : ( 'from' ) ;
+    // InternalSignalDSL.g:4695:1: rule__SignalScheduler__Group__5__Impl : ( 'from' ) ;
     public final void rule__SignalScheduler__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4892:1: ( ( 'from' ) )
-            // InternalSignalDSL.g:4893:1: ( 'from' )
+            // InternalSignalDSL.g:4699:1: ( ( 'from' ) )
+            // InternalSignalDSL.g:4700:1: ( 'from' )
             {
-            // InternalSignalDSL.g:4893:1: ( 'from' )
-            // InternalSignalDSL.g:4894:2: 'from'
+            // InternalSignalDSL.g:4700:1: ( 'from' )
+            // InternalSignalDSL.g:4701:2: 'from'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getFromKeyword_5()); 
@@ -17651,14 +17162,14 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__6"
-    // InternalSignalDSL.g:4903:1: rule__SignalScheduler__Group__6 : rule__SignalScheduler__Group__6__Impl rule__SignalScheduler__Group__7 ;
+    // InternalSignalDSL.g:4710:1: rule__SignalScheduler__Group__6 : rule__SignalScheduler__Group__6__Impl rule__SignalScheduler__Group__7 ;
     public final void rule__SignalScheduler__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4907:1: ( rule__SignalScheduler__Group__6__Impl rule__SignalScheduler__Group__7 )
-            // InternalSignalDSL.g:4908:2: rule__SignalScheduler__Group__6__Impl rule__SignalScheduler__Group__7
+            // InternalSignalDSL.g:4714:1: ( rule__SignalScheduler__Group__6__Impl rule__SignalScheduler__Group__7 )
+            // InternalSignalDSL.g:4715:2: rule__SignalScheduler__Group__6__Impl rule__SignalScheduler__Group__7
             {
             pushFollow(FOLLOW_7);
             rule__SignalScheduler__Group__6__Impl();
@@ -17689,23 +17200,23 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__6__Impl"
-    // InternalSignalDSL.g:4915:1: rule__SignalScheduler__Group__6__Impl : ( ( rule__SignalScheduler__InterchangegroupAssignment_6 ) ) ;
+    // InternalSignalDSL.g:4722:1: rule__SignalScheduler__Group__6__Impl : ( ( rule__SignalScheduler__InterchangegroupAssignment_6 ) ) ;
     public final void rule__SignalScheduler__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4919:1: ( ( ( rule__SignalScheduler__InterchangegroupAssignment_6 ) ) )
-            // InternalSignalDSL.g:4920:1: ( ( rule__SignalScheduler__InterchangegroupAssignment_6 ) )
+            // InternalSignalDSL.g:4726:1: ( ( ( rule__SignalScheduler__InterchangegroupAssignment_6 ) ) )
+            // InternalSignalDSL.g:4727:1: ( ( rule__SignalScheduler__InterchangegroupAssignment_6 ) )
             {
-            // InternalSignalDSL.g:4920:1: ( ( rule__SignalScheduler__InterchangegroupAssignment_6 ) )
-            // InternalSignalDSL.g:4921:2: ( rule__SignalScheduler__InterchangegroupAssignment_6 )
+            // InternalSignalDSL.g:4727:1: ( ( rule__SignalScheduler__InterchangegroupAssignment_6 ) )
+            // InternalSignalDSL.g:4728:2: ( rule__SignalScheduler__InterchangegroupAssignment_6 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getInterchangegroupAssignment_6()); 
             }
-            // InternalSignalDSL.g:4922:2: ( rule__SignalScheduler__InterchangegroupAssignment_6 )
-            // InternalSignalDSL.g:4922:3: rule__SignalScheduler__InterchangegroupAssignment_6
+            // InternalSignalDSL.g:4729:2: ( rule__SignalScheduler__InterchangegroupAssignment_6 )
+            // InternalSignalDSL.g:4729:3: rule__SignalScheduler__InterchangegroupAssignment_6
             {
             pushFollow(FOLLOW_2);
             rule__SignalScheduler__InterchangegroupAssignment_6();
@@ -17740,16 +17251,16 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__7"
-    // InternalSignalDSL.g:4930:1: rule__SignalScheduler__Group__7 : rule__SignalScheduler__Group__7__Impl rule__SignalScheduler__Group__8 ;
+    // InternalSignalDSL.g:4737:1: rule__SignalScheduler__Group__7 : rule__SignalScheduler__Group__7__Impl rule__SignalScheduler__Group__8 ;
     public final void rule__SignalScheduler__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4934:1: ( rule__SignalScheduler__Group__7__Impl rule__SignalScheduler__Group__8 )
-            // InternalSignalDSL.g:4935:2: rule__SignalScheduler__Group__7__Impl rule__SignalScheduler__Group__8
+            // InternalSignalDSL.g:4741:1: ( rule__SignalScheduler__Group__7__Impl rule__SignalScheduler__Group__8 )
+            // InternalSignalDSL.g:4742:2: rule__SignalScheduler__Group__7__Impl rule__SignalScheduler__Group__8
             {
-            pushFollow(FOLLOW_18);
+            pushFollow(FOLLOW_20);
             rule__SignalScheduler__Group__7__Impl();
 
             state._fsp--;
@@ -17778,22 +17289,22 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__7__Impl"
-    // InternalSignalDSL.g:4942:1: rule__SignalScheduler__Group__7__Impl : ( '{' ) ;
+    // InternalSignalDSL.g:4749:1: rule__SignalScheduler__Group__7__Impl : ( '{' ) ;
     public final void rule__SignalScheduler__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4946:1: ( ( '{' ) )
-            // InternalSignalDSL.g:4947:1: ( '{' )
+            // InternalSignalDSL.g:4753:1: ( ( '{' ) )
+            // InternalSignalDSL.g:4754:1: ( '{' )
             {
-            // InternalSignalDSL.g:4947:1: ( '{' )
-            // InternalSignalDSL.g:4948:2: '{'
+            // InternalSignalDSL.g:4754:1: ( '{' )
+            // InternalSignalDSL.g:4755:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getLeftCurlyBracketKeyword_7()); 
             }
-            match(input,62,FOLLOW_2); if (state.failed) return ;
+            match(input,63,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSignalSchedulerAccess().getLeftCurlyBracketKeyword_7()); 
             }
@@ -17819,16 +17330,16 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__8"
-    // InternalSignalDSL.g:4957:1: rule__SignalScheduler__Group__8 : rule__SignalScheduler__Group__8__Impl rule__SignalScheduler__Group__9 ;
+    // InternalSignalDSL.g:4764:1: rule__SignalScheduler__Group__8 : rule__SignalScheduler__Group__8__Impl rule__SignalScheduler__Group__9 ;
     public final void rule__SignalScheduler__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4961:1: ( rule__SignalScheduler__Group__8__Impl rule__SignalScheduler__Group__9 )
-            // InternalSignalDSL.g:4962:2: rule__SignalScheduler__Group__8__Impl rule__SignalScheduler__Group__9
+            // InternalSignalDSL.g:4768:1: ( rule__SignalScheduler__Group__8__Impl rule__SignalScheduler__Group__9 )
+            // InternalSignalDSL.g:4769:2: rule__SignalScheduler__Group__8__Impl rule__SignalScheduler__Group__9
             {
-            pushFollow(FOLLOW_18);
+            pushFollow(FOLLOW_20);
             rule__SignalScheduler__Group__8__Impl();
 
             state._fsp--;
@@ -17857,38 +17368,38 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__8__Impl"
-    // InternalSignalDSL.g:4969:1: rule__SignalScheduler__Group__8__Impl : ( ( rule__SignalScheduler__InterchangesAssignment_8 )* ) ;
+    // InternalSignalDSL.g:4776:1: rule__SignalScheduler__Group__8__Impl : ( ( rule__SignalScheduler__TasksAssignment_8 )* ) ;
     public final void rule__SignalScheduler__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4973:1: ( ( ( rule__SignalScheduler__InterchangesAssignment_8 )* ) )
-            // InternalSignalDSL.g:4974:1: ( ( rule__SignalScheduler__InterchangesAssignment_8 )* )
+            // InternalSignalDSL.g:4780:1: ( ( ( rule__SignalScheduler__TasksAssignment_8 )* ) )
+            // InternalSignalDSL.g:4781:1: ( ( rule__SignalScheduler__TasksAssignment_8 )* )
             {
-            // InternalSignalDSL.g:4974:1: ( ( rule__SignalScheduler__InterchangesAssignment_8 )* )
-            // InternalSignalDSL.g:4975:2: ( rule__SignalScheduler__InterchangesAssignment_8 )*
+            // InternalSignalDSL.g:4781:1: ( ( rule__SignalScheduler__TasksAssignment_8 )* )
+            // InternalSignalDSL.g:4782:2: ( rule__SignalScheduler__TasksAssignment_8 )*
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalSchedulerAccess().getInterchangesAssignment_8()); 
+               before(grammarAccess.getSignalSchedulerAccess().getTasksAssignment_8()); 
             }
-            // InternalSignalDSL.g:4976:2: ( rule__SignalScheduler__InterchangesAssignment_8 )*
-            loop57:
+            // InternalSignalDSL.g:4783:2: ( rule__SignalScheduler__TasksAssignment_8 )*
+            loop60:
             do {
-                int alt57=2;
-                int LA57_0 = input.LA(1);
+                int alt60=2;
+                int LA60_0 = input.LA(1);
 
-                if ( (LA57_0==47||LA57_0==51) ) {
-                    alt57=1;
+                if ( (LA60_0==48||LA60_0==52||LA60_0==76) ) {
+                    alt60=1;
                 }
 
 
-                switch (alt57) {
+                switch (alt60) {
             	case 1 :
-            	    // InternalSignalDSL.g:4976:3: rule__SignalScheduler__InterchangesAssignment_8
+            	    // InternalSignalDSL.g:4783:3: rule__SignalScheduler__TasksAssignment_8
             	    {
-            	    pushFollow(FOLLOW_19);
-            	    rule__SignalScheduler__InterchangesAssignment_8();
+            	    pushFollow(FOLLOW_16);
+            	    rule__SignalScheduler__TasksAssignment_8();
 
             	    state._fsp--;
             	    if (state.failed) return ;
@@ -17897,12 +17408,12 @@
             	    break;
 
             	default :
-            	    break loop57;
+            	    break loop60;
                 }
             } while (true);
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalSchedulerAccess().getInterchangesAssignment_8()); 
+               after(grammarAccess.getSignalSchedulerAccess().getTasksAssignment_8()); 
             }
 
             }
@@ -17926,14 +17437,14 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__9"
-    // InternalSignalDSL.g:4984:1: rule__SignalScheduler__Group__9 : rule__SignalScheduler__Group__9__Impl ;
+    // InternalSignalDSL.g:4791:1: rule__SignalScheduler__Group__9 : rule__SignalScheduler__Group__9__Impl ;
     public final void rule__SignalScheduler__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4988:1: ( rule__SignalScheduler__Group__9__Impl )
-            // InternalSignalDSL.g:4989:2: rule__SignalScheduler__Group__9__Impl
+            // InternalSignalDSL.g:4795:1: ( rule__SignalScheduler__Group__9__Impl )
+            // InternalSignalDSL.g:4796:2: rule__SignalScheduler__Group__9__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SignalScheduler__Group__9__Impl();
@@ -17959,22 +17470,22 @@
 
 
     // $ANTLR start "rule__SignalScheduler__Group__9__Impl"
-    // InternalSignalDSL.g:4995:1: rule__SignalScheduler__Group__9__Impl : ( '}' ) ;
+    // InternalSignalDSL.g:4802:1: rule__SignalScheduler__Group__9__Impl : ( '}' ) ;
     public final void rule__SignalScheduler__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:4999:1: ( ( '}' ) )
-            // InternalSignalDSL.g:5000:1: ( '}' )
+            // InternalSignalDSL.g:4806:1: ( ( '}' ) )
+            // InternalSignalDSL.g:4807:1: ( '}' )
             {
-            // InternalSignalDSL.g:5000:1: ( '}' )
-            // InternalSignalDSL.g:5001:2: '}'
+            // InternalSignalDSL.g:4807:1: ( '}' )
+            // InternalSignalDSL.g:4808:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getRightCurlyBracketKeyword_9()); 
             }
-            match(input,63,FOLLOW_2); if (state.failed) return ;
+            match(input,64,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSignalSchedulerAccess().getRightCurlyBracketKeyword_9()); 
             }
@@ -18000,16 +17511,16 @@
 
 
     // $ANTLR start "rule__CronScheduler__Group__0"
-    // InternalSignalDSL.g:5011:1: rule__CronScheduler__Group__0 : rule__CronScheduler__Group__0__Impl rule__CronScheduler__Group__1 ;
+    // InternalSignalDSL.g:4818:1: rule__CronScheduler__Group__0 : rule__CronScheduler__Group__0__Impl rule__CronScheduler__Group__1 ;
     public final void rule__CronScheduler__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5015:1: ( rule__CronScheduler__Group__0__Impl rule__CronScheduler__Group__1 )
-            // InternalSignalDSL.g:5016:2: rule__CronScheduler__Group__0__Impl rule__CronScheduler__Group__1
+            // InternalSignalDSL.g:4822:1: ( rule__CronScheduler__Group__0__Impl rule__CronScheduler__Group__1 )
+            // InternalSignalDSL.g:4823:2: rule__CronScheduler__Group__0__Impl rule__CronScheduler__Group__1
             {
-            pushFollow(FOLLOW_13);
+            pushFollow(FOLLOW_12);
             rule__CronScheduler__Group__0__Impl();
 
             state._fsp--;
@@ -18038,17 +17549,17 @@
 
 
     // $ANTLR start "rule__CronScheduler__Group__0__Impl"
-    // InternalSignalDSL.g:5023:1: rule__CronScheduler__Group__0__Impl : ( 'cron' ) ;
+    // InternalSignalDSL.g:4830:1: rule__CronScheduler__Group__0__Impl : ( 'cron' ) ;
     public final void rule__CronScheduler__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5027:1: ( ( 'cron' ) )
-            // InternalSignalDSL.g:5028:1: ( 'cron' )
+            // InternalSignalDSL.g:4834:1: ( ( 'cron' ) )
+            // InternalSignalDSL.g:4835:1: ( 'cron' )
             {
-            // InternalSignalDSL.g:5028:1: ( 'cron' )
-            // InternalSignalDSL.g:5029:2: 'cron'
+            // InternalSignalDSL.g:4835:1: ( 'cron' )
+            // InternalSignalDSL.g:4836:2: 'cron'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCronSchedulerAccess().getCronKeyword_0()); 
@@ -18079,14 +17590,14 @@
 
 
     // $ANTLR start "rule__CronScheduler__Group__1"
-    // InternalSignalDSL.g:5038:1: rule__CronScheduler__Group__1 : rule__CronScheduler__Group__1__Impl ;
+    // InternalSignalDSL.g:4845:1: rule__CronScheduler__Group__1 : rule__CronScheduler__Group__1__Impl ;
     public final void rule__CronScheduler__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5042:1: ( rule__CronScheduler__Group__1__Impl )
-            // InternalSignalDSL.g:5043:2: rule__CronScheduler__Group__1__Impl
+            // InternalSignalDSL.g:4849:1: ( rule__CronScheduler__Group__1__Impl )
+            // InternalSignalDSL.g:4850:2: rule__CronScheduler__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CronScheduler__Group__1__Impl();
@@ -18112,23 +17623,23 @@
 
 
     // $ANTLR start "rule__CronScheduler__Group__1__Impl"
-    // InternalSignalDSL.g:5049:1: rule__CronScheduler__Group__1__Impl : ( ( rule__CronScheduler__ExpressionAssignment_1 ) ) ;
+    // InternalSignalDSL.g:4856:1: rule__CronScheduler__Group__1__Impl : ( ( rule__CronScheduler__ExpressionAssignment_1 ) ) ;
     public final void rule__CronScheduler__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5053:1: ( ( ( rule__CronScheduler__ExpressionAssignment_1 ) ) )
-            // InternalSignalDSL.g:5054:1: ( ( rule__CronScheduler__ExpressionAssignment_1 ) )
+            // InternalSignalDSL.g:4860:1: ( ( ( rule__CronScheduler__ExpressionAssignment_1 ) ) )
+            // InternalSignalDSL.g:4861:1: ( ( rule__CronScheduler__ExpressionAssignment_1 ) )
             {
-            // InternalSignalDSL.g:5054:1: ( ( rule__CronScheduler__ExpressionAssignment_1 ) )
-            // InternalSignalDSL.g:5055:2: ( rule__CronScheduler__ExpressionAssignment_1 )
+            // InternalSignalDSL.g:4861:1: ( ( rule__CronScheduler__ExpressionAssignment_1 ) )
+            // InternalSignalDSL.g:4862:2: ( rule__CronScheduler__ExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCronSchedulerAccess().getExpressionAssignment_1()); 
             }
-            // InternalSignalDSL.g:5056:2: ( rule__CronScheduler__ExpressionAssignment_1 )
-            // InternalSignalDSL.g:5056:3: rule__CronScheduler__ExpressionAssignment_1
+            // InternalSignalDSL.g:4863:2: ( rule__CronScheduler__ExpressionAssignment_1 )
+            // InternalSignalDSL.g:4863:3: rule__CronScheduler__ExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CronScheduler__ExpressionAssignment_1();
@@ -18163,16 +17674,16 @@
 
 
     // $ANTLR start "rule__HourlyScheduler__Group__0"
-    // InternalSignalDSL.g:5065:1: rule__HourlyScheduler__Group__0 : rule__HourlyScheduler__Group__0__Impl rule__HourlyScheduler__Group__1 ;
+    // InternalSignalDSL.g:4872:1: rule__HourlyScheduler__Group__0 : rule__HourlyScheduler__Group__0__Impl rule__HourlyScheduler__Group__1 ;
     public final void rule__HourlyScheduler__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5069:1: ( rule__HourlyScheduler__Group__0__Impl rule__HourlyScheduler__Group__1 )
-            // InternalSignalDSL.g:5070:2: rule__HourlyScheduler__Group__0__Impl rule__HourlyScheduler__Group__1
+            // InternalSignalDSL.g:4876:1: ( rule__HourlyScheduler__Group__0__Impl rule__HourlyScheduler__Group__1 )
+            // InternalSignalDSL.g:4877:2: rule__HourlyScheduler__Group__0__Impl rule__HourlyScheduler__Group__1
             {
-            pushFollow(FOLLOW_23);
+            pushFollow(FOLLOW_21);
             rule__HourlyScheduler__Group__0__Impl();
 
             state._fsp--;
@@ -18201,17 +17712,17 @@
 
 
     // $ANTLR start "rule__HourlyScheduler__Group__0__Impl"
-    // InternalSignalDSL.g:5077:1: rule__HourlyScheduler__Group__0__Impl : ( 'hourlyat' ) ;
+    // InternalSignalDSL.g:4884:1: rule__HourlyScheduler__Group__0__Impl : ( 'hourlyat' ) ;
     public final void rule__HourlyScheduler__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5081:1: ( ( 'hourlyat' ) )
-            // InternalSignalDSL.g:5082:1: ( 'hourlyat' )
+            // InternalSignalDSL.g:4888:1: ( ( 'hourlyat' ) )
+            // InternalSignalDSL.g:4889:1: ( 'hourlyat' )
             {
-            // InternalSignalDSL.g:5082:1: ( 'hourlyat' )
-            // InternalSignalDSL.g:5083:2: 'hourlyat'
+            // InternalSignalDSL.g:4889:1: ( 'hourlyat' )
+            // InternalSignalDSL.g:4890:2: 'hourlyat'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHourlySchedulerAccess().getHourlyatKeyword_0()); 
@@ -18242,14 +17753,14 @@
 
 
     // $ANTLR start "rule__HourlyScheduler__Group__1"
-    // InternalSignalDSL.g:5092:1: rule__HourlyScheduler__Group__1 : rule__HourlyScheduler__Group__1__Impl ;
+    // InternalSignalDSL.g:4899:1: rule__HourlyScheduler__Group__1 : rule__HourlyScheduler__Group__1__Impl ;
     public final void rule__HourlyScheduler__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5096:1: ( rule__HourlyScheduler__Group__1__Impl )
-            // InternalSignalDSL.g:5097:2: rule__HourlyScheduler__Group__1__Impl
+            // InternalSignalDSL.g:4903:1: ( rule__HourlyScheduler__Group__1__Impl )
+            // InternalSignalDSL.g:4904:2: rule__HourlyScheduler__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__HourlyScheduler__Group__1__Impl();
@@ -18275,23 +17786,23 @@
 
 
     // $ANTLR start "rule__HourlyScheduler__Group__1__Impl"
-    // InternalSignalDSL.g:5103:1: rule__HourlyScheduler__Group__1__Impl : ( ( rule__HourlyScheduler__MinuteAssignment_1 ) ) ;
+    // InternalSignalDSL.g:4910:1: rule__HourlyScheduler__Group__1__Impl : ( ( rule__HourlyScheduler__MinuteAssignment_1 ) ) ;
     public final void rule__HourlyScheduler__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5107:1: ( ( ( rule__HourlyScheduler__MinuteAssignment_1 ) ) )
-            // InternalSignalDSL.g:5108:1: ( ( rule__HourlyScheduler__MinuteAssignment_1 ) )
+            // InternalSignalDSL.g:4914:1: ( ( ( rule__HourlyScheduler__MinuteAssignment_1 ) ) )
+            // InternalSignalDSL.g:4915:1: ( ( rule__HourlyScheduler__MinuteAssignment_1 ) )
             {
-            // InternalSignalDSL.g:5108:1: ( ( rule__HourlyScheduler__MinuteAssignment_1 ) )
-            // InternalSignalDSL.g:5109:2: ( rule__HourlyScheduler__MinuteAssignment_1 )
+            // InternalSignalDSL.g:4915:1: ( ( rule__HourlyScheduler__MinuteAssignment_1 ) )
+            // InternalSignalDSL.g:4916:2: ( rule__HourlyScheduler__MinuteAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHourlySchedulerAccess().getMinuteAssignment_1()); 
             }
-            // InternalSignalDSL.g:5110:2: ( rule__HourlyScheduler__MinuteAssignment_1 )
-            // InternalSignalDSL.g:5110:3: rule__HourlyScheduler__MinuteAssignment_1
+            // InternalSignalDSL.g:4917:2: ( rule__HourlyScheduler__MinuteAssignment_1 )
+            // InternalSignalDSL.g:4917:3: rule__HourlyScheduler__MinuteAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__HourlyScheduler__MinuteAssignment_1();
@@ -18326,16 +17837,16 @@
 
 
     // $ANTLR start "rule__DailyScheduler__Group__0"
-    // InternalSignalDSL.g:5119:1: rule__DailyScheduler__Group__0 : rule__DailyScheduler__Group__0__Impl rule__DailyScheduler__Group__1 ;
+    // InternalSignalDSL.g:4926:1: rule__DailyScheduler__Group__0 : rule__DailyScheduler__Group__0__Impl rule__DailyScheduler__Group__1 ;
     public final void rule__DailyScheduler__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5123:1: ( rule__DailyScheduler__Group__0__Impl rule__DailyScheduler__Group__1 )
-            // InternalSignalDSL.g:5124:2: rule__DailyScheduler__Group__0__Impl rule__DailyScheduler__Group__1
+            // InternalSignalDSL.g:4930:1: ( rule__DailyScheduler__Group__0__Impl rule__DailyScheduler__Group__1 )
+            // InternalSignalDSL.g:4931:2: rule__DailyScheduler__Group__0__Impl rule__DailyScheduler__Group__1
             {
-            pushFollow(FOLLOW_23);
+            pushFollow(FOLLOW_21);
             rule__DailyScheduler__Group__0__Impl();
 
             state._fsp--;
@@ -18364,17 +17875,17 @@
 
 
     // $ANTLR start "rule__DailyScheduler__Group__0__Impl"
-    // InternalSignalDSL.g:5131:1: rule__DailyScheduler__Group__0__Impl : ( 'dailyat' ) ;
+    // InternalSignalDSL.g:4938:1: rule__DailyScheduler__Group__0__Impl : ( 'dailyat' ) ;
     public final void rule__DailyScheduler__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5135:1: ( ( 'dailyat' ) )
-            // InternalSignalDSL.g:5136:1: ( 'dailyat' )
+            // InternalSignalDSL.g:4942:1: ( ( 'dailyat' ) )
+            // InternalSignalDSL.g:4943:1: ( 'dailyat' )
             {
-            // InternalSignalDSL.g:5136:1: ( 'dailyat' )
-            // InternalSignalDSL.g:5137:2: 'dailyat'
+            // InternalSignalDSL.g:4943:1: ( 'dailyat' )
+            // InternalSignalDSL.g:4944:2: 'dailyat'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDailySchedulerAccess().getDailyatKeyword_0()); 
@@ -18405,16 +17916,16 @@
 
 
     // $ANTLR start "rule__DailyScheduler__Group__1"
-    // InternalSignalDSL.g:5146:1: rule__DailyScheduler__Group__1 : rule__DailyScheduler__Group__1__Impl rule__DailyScheduler__Group__2 ;
+    // InternalSignalDSL.g:4953:1: rule__DailyScheduler__Group__1 : rule__DailyScheduler__Group__1__Impl rule__DailyScheduler__Group__2 ;
     public final void rule__DailyScheduler__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5150:1: ( rule__DailyScheduler__Group__1__Impl rule__DailyScheduler__Group__2 )
-            // InternalSignalDSL.g:5151:2: rule__DailyScheduler__Group__1__Impl rule__DailyScheduler__Group__2
+            // InternalSignalDSL.g:4957:1: ( rule__DailyScheduler__Group__1__Impl rule__DailyScheduler__Group__2 )
+            // InternalSignalDSL.g:4958:2: rule__DailyScheduler__Group__1__Impl rule__DailyScheduler__Group__2
             {
-            pushFollow(FOLLOW_24);
+            pushFollow(FOLLOW_22);
             rule__DailyScheduler__Group__1__Impl();
 
             state._fsp--;
@@ -18443,23 +17954,23 @@
 
 
     // $ANTLR start "rule__DailyScheduler__Group__1__Impl"
-    // InternalSignalDSL.g:5158:1: rule__DailyScheduler__Group__1__Impl : ( ( rule__DailyScheduler__HourAssignment_1 ) ) ;
+    // InternalSignalDSL.g:4965:1: rule__DailyScheduler__Group__1__Impl : ( ( rule__DailyScheduler__HourAssignment_1 ) ) ;
     public final void rule__DailyScheduler__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5162:1: ( ( ( rule__DailyScheduler__HourAssignment_1 ) ) )
-            // InternalSignalDSL.g:5163:1: ( ( rule__DailyScheduler__HourAssignment_1 ) )
+            // InternalSignalDSL.g:4969:1: ( ( ( rule__DailyScheduler__HourAssignment_1 ) ) )
+            // InternalSignalDSL.g:4970:1: ( ( rule__DailyScheduler__HourAssignment_1 ) )
             {
-            // InternalSignalDSL.g:5163:1: ( ( rule__DailyScheduler__HourAssignment_1 ) )
-            // InternalSignalDSL.g:5164:2: ( rule__DailyScheduler__HourAssignment_1 )
+            // InternalSignalDSL.g:4970:1: ( ( rule__DailyScheduler__HourAssignment_1 ) )
+            // InternalSignalDSL.g:4971:2: ( rule__DailyScheduler__HourAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDailySchedulerAccess().getHourAssignment_1()); 
             }
-            // InternalSignalDSL.g:5165:2: ( rule__DailyScheduler__HourAssignment_1 )
-            // InternalSignalDSL.g:5165:3: rule__DailyScheduler__HourAssignment_1
+            // InternalSignalDSL.g:4972:2: ( rule__DailyScheduler__HourAssignment_1 )
+            // InternalSignalDSL.g:4972:3: rule__DailyScheduler__HourAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__DailyScheduler__HourAssignment_1();
@@ -18494,16 +18005,16 @@
 
 
     // $ANTLR start "rule__DailyScheduler__Group__2"
-    // InternalSignalDSL.g:5173:1: rule__DailyScheduler__Group__2 : rule__DailyScheduler__Group__2__Impl rule__DailyScheduler__Group__3 ;
+    // InternalSignalDSL.g:4980:1: rule__DailyScheduler__Group__2 : rule__DailyScheduler__Group__2__Impl rule__DailyScheduler__Group__3 ;
     public final void rule__DailyScheduler__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5177:1: ( rule__DailyScheduler__Group__2__Impl rule__DailyScheduler__Group__3 )
-            // InternalSignalDSL.g:5178:2: rule__DailyScheduler__Group__2__Impl rule__DailyScheduler__Group__3
+            // InternalSignalDSL.g:4984:1: ( rule__DailyScheduler__Group__2__Impl rule__DailyScheduler__Group__3 )
+            // InternalSignalDSL.g:4985:2: rule__DailyScheduler__Group__2__Impl rule__DailyScheduler__Group__3
             {
-            pushFollow(FOLLOW_23);
+            pushFollow(FOLLOW_21);
             rule__DailyScheduler__Group__2__Impl();
 
             state._fsp--;
@@ -18532,17 +18043,17 @@
 
 
     // $ANTLR start "rule__DailyScheduler__Group__2__Impl"
-    // InternalSignalDSL.g:5185:1: rule__DailyScheduler__Group__2__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:4992:1: rule__DailyScheduler__Group__2__Impl : ( ':' ) ;
     public final void rule__DailyScheduler__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5189:1: ( ( ':' ) )
-            // InternalSignalDSL.g:5190:1: ( ':' )
+            // InternalSignalDSL.g:4996:1: ( ( ':' ) )
+            // InternalSignalDSL.g:4997:1: ( ':' )
             {
-            // InternalSignalDSL.g:5190:1: ( ':' )
-            // InternalSignalDSL.g:5191:2: ':'
+            // InternalSignalDSL.g:4997:1: ( ':' )
+            // InternalSignalDSL.g:4998:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDailySchedulerAccess().getColonKeyword_2()); 
@@ -18573,14 +18084,14 @@
 
 
     // $ANTLR start "rule__DailyScheduler__Group__3"
-    // InternalSignalDSL.g:5200:1: rule__DailyScheduler__Group__3 : rule__DailyScheduler__Group__3__Impl ;
+    // InternalSignalDSL.g:5007:1: rule__DailyScheduler__Group__3 : rule__DailyScheduler__Group__3__Impl ;
     public final void rule__DailyScheduler__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5204:1: ( rule__DailyScheduler__Group__3__Impl )
-            // InternalSignalDSL.g:5205:2: rule__DailyScheduler__Group__3__Impl
+            // InternalSignalDSL.g:5011:1: ( rule__DailyScheduler__Group__3__Impl )
+            // InternalSignalDSL.g:5012:2: rule__DailyScheduler__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DailyScheduler__Group__3__Impl();
@@ -18606,23 +18117,23 @@
 
 
     // $ANTLR start "rule__DailyScheduler__Group__3__Impl"
-    // InternalSignalDSL.g:5211:1: rule__DailyScheduler__Group__3__Impl : ( ( rule__DailyScheduler__MinuteAssignment_3 ) ) ;
+    // InternalSignalDSL.g:5018:1: rule__DailyScheduler__Group__3__Impl : ( ( rule__DailyScheduler__MinuteAssignment_3 ) ) ;
     public final void rule__DailyScheduler__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5215:1: ( ( ( rule__DailyScheduler__MinuteAssignment_3 ) ) )
-            // InternalSignalDSL.g:5216:1: ( ( rule__DailyScheduler__MinuteAssignment_3 ) )
+            // InternalSignalDSL.g:5022:1: ( ( ( rule__DailyScheduler__MinuteAssignment_3 ) ) )
+            // InternalSignalDSL.g:5023:1: ( ( rule__DailyScheduler__MinuteAssignment_3 ) )
             {
-            // InternalSignalDSL.g:5216:1: ( ( rule__DailyScheduler__MinuteAssignment_3 ) )
-            // InternalSignalDSL.g:5217:2: ( rule__DailyScheduler__MinuteAssignment_3 )
+            // InternalSignalDSL.g:5023:1: ( ( rule__DailyScheduler__MinuteAssignment_3 ) )
+            // InternalSignalDSL.g:5024:2: ( rule__DailyScheduler__MinuteAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDailySchedulerAccess().getMinuteAssignment_3()); 
             }
-            // InternalSignalDSL.g:5218:2: ( rule__DailyScheduler__MinuteAssignment_3 )
-            // InternalSignalDSL.g:5218:3: rule__DailyScheduler__MinuteAssignment_3
+            // InternalSignalDSL.g:5025:2: ( rule__DailyScheduler__MinuteAssignment_3 )
+            // InternalSignalDSL.g:5025:3: rule__DailyScheduler__MinuteAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__DailyScheduler__MinuteAssignment_3();
@@ -18657,16 +18168,16 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__Group__0"
-    // InternalSignalDSL.g:5227:1: rule__WeeklyScheduler__Group__0 : rule__WeeklyScheduler__Group__0__Impl rule__WeeklyScheduler__Group__1 ;
+    // InternalSignalDSL.g:5034:1: rule__WeeklyScheduler__Group__0 : rule__WeeklyScheduler__Group__0__Impl rule__WeeklyScheduler__Group__1 ;
     public final void rule__WeeklyScheduler__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5231:1: ( rule__WeeklyScheduler__Group__0__Impl rule__WeeklyScheduler__Group__1 )
-            // InternalSignalDSL.g:5232:2: rule__WeeklyScheduler__Group__0__Impl rule__WeeklyScheduler__Group__1
+            // InternalSignalDSL.g:5038:1: ( rule__WeeklyScheduler__Group__0__Impl rule__WeeklyScheduler__Group__1 )
+            // InternalSignalDSL.g:5039:2: rule__WeeklyScheduler__Group__0__Impl rule__WeeklyScheduler__Group__1
             {
-            pushFollow(FOLLOW_25);
+            pushFollow(FOLLOW_23);
             rule__WeeklyScheduler__Group__0__Impl();
 
             state._fsp--;
@@ -18695,17 +18206,17 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__Group__0__Impl"
-    // InternalSignalDSL.g:5239:1: rule__WeeklyScheduler__Group__0__Impl : ( 'weeklyon' ) ;
+    // InternalSignalDSL.g:5046:1: rule__WeeklyScheduler__Group__0__Impl : ( 'weeklyon' ) ;
     public final void rule__WeeklyScheduler__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5243:1: ( ( 'weeklyon' ) )
-            // InternalSignalDSL.g:5244:1: ( 'weeklyon' )
+            // InternalSignalDSL.g:5050:1: ( ( 'weeklyon' ) )
+            // InternalSignalDSL.g:5051:1: ( 'weeklyon' )
             {
-            // InternalSignalDSL.g:5244:1: ( 'weeklyon' )
-            // InternalSignalDSL.g:5245:2: 'weeklyon'
+            // InternalSignalDSL.g:5051:1: ( 'weeklyon' )
+            // InternalSignalDSL.g:5052:2: 'weeklyon'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWeeklySchedulerAccess().getWeeklyonKeyword_0()); 
@@ -18736,16 +18247,16 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__Group__1"
-    // InternalSignalDSL.g:5254:1: rule__WeeklyScheduler__Group__1 : rule__WeeklyScheduler__Group__1__Impl rule__WeeklyScheduler__Group__2 ;
+    // InternalSignalDSL.g:5061:1: rule__WeeklyScheduler__Group__1 : rule__WeeklyScheduler__Group__1__Impl rule__WeeklyScheduler__Group__2 ;
     public final void rule__WeeklyScheduler__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5258:1: ( rule__WeeklyScheduler__Group__1__Impl rule__WeeklyScheduler__Group__2 )
-            // InternalSignalDSL.g:5259:2: rule__WeeklyScheduler__Group__1__Impl rule__WeeklyScheduler__Group__2
+            // InternalSignalDSL.g:5065:1: ( rule__WeeklyScheduler__Group__1__Impl rule__WeeklyScheduler__Group__2 )
+            // InternalSignalDSL.g:5066:2: rule__WeeklyScheduler__Group__1__Impl rule__WeeklyScheduler__Group__2
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_24);
             rule__WeeklyScheduler__Group__1__Impl();
 
             state._fsp--;
@@ -18774,23 +18285,23 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__Group__1__Impl"
-    // InternalSignalDSL.g:5266:1: rule__WeeklyScheduler__Group__1__Impl : ( ( rule__WeeklyScheduler__DayofweekAssignment_1 ) ) ;
+    // InternalSignalDSL.g:5073:1: rule__WeeklyScheduler__Group__1__Impl : ( ( rule__WeeklyScheduler__DayofweekAssignment_1 ) ) ;
     public final void rule__WeeklyScheduler__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5270:1: ( ( ( rule__WeeklyScheduler__DayofweekAssignment_1 ) ) )
-            // InternalSignalDSL.g:5271:1: ( ( rule__WeeklyScheduler__DayofweekAssignment_1 ) )
+            // InternalSignalDSL.g:5077:1: ( ( ( rule__WeeklyScheduler__DayofweekAssignment_1 ) ) )
+            // InternalSignalDSL.g:5078:1: ( ( rule__WeeklyScheduler__DayofweekAssignment_1 ) )
             {
-            // InternalSignalDSL.g:5271:1: ( ( rule__WeeklyScheduler__DayofweekAssignment_1 ) )
-            // InternalSignalDSL.g:5272:2: ( rule__WeeklyScheduler__DayofweekAssignment_1 )
+            // InternalSignalDSL.g:5078:1: ( ( rule__WeeklyScheduler__DayofweekAssignment_1 ) )
+            // InternalSignalDSL.g:5079:2: ( rule__WeeklyScheduler__DayofweekAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWeeklySchedulerAccess().getDayofweekAssignment_1()); 
             }
-            // InternalSignalDSL.g:5273:2: ( rule__WeeklyScheduler__DayofweekAssignment_1 )
-            // InternalSignalDSL.g:5273:3: rule__WeeklyScheduler__DayofweekAssignment_1
+            // InternalSignalDSL.g:5080:2: ( rule__WeeklyScheduler__DayofweekAssignment_1 )
+            // InternalSignalDSL.g:5080:3: rule__WeeklyScheduler__DayofweekAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__WeeklyScheduler__DayofweekAssignment_1();
@@ -18825,16 +18336,16 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__Group__2"
-    // InternalSignalDSL.g:5281:1: rule__WeeklyScheduler__Group__2 : rule__WeeklyScheduler__Group__2__Impl rule__WeeklyScheduler__Group__3 ;
+    // InternalSignalDSL.g:5088:1: rule__WeeklyScheduler__Group__2 : rule__WeeklyScheduler__Group__2__Impl rule__WeeklyScheduler__Group__3 ;
     public final void rule__WeeklyScheduler__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5285:1: ( rule__WeeklyScheduler__Group__2__Impl rule__WeeklyScheduler__Group__3 )
-            // InternalSignalDSL.g:5286:2: rule__WeeklyScheduler__Group__2__Impl rule__WeeklyScheduler__Group__3
+            // InternalSignalDSL.g:5092:1: ( rule__WeeklyScheduler__Group__2__Impl rule__WeeklyScheduler__Group__3 )
+            // InternalSignalDSL.g:5093:2: rule__WeeklyScheduler__Group__2__Impl rule__WeeklyScheduler__Group__3
             {
-            pushFollow(FOLLOW_23);
+            pushFollow(FOLLOW_21);
             rule__WeeklyScheduler__Group__2__Impl();
 
             state._fsp--;
@@ -18863,17 +18374,17 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__Group__2__Impl"
-    // InternalSignalDSL.g:5293:1: rule__WeeklyScheduler__Group__2__Impl : ( 'at' ) ;
+    // InternalSignalDSL.g:5100:1: rule__WeeklyScheduler__Group__2__Impl : ( 'at' ) ;
     public final void rule__WeeklyScheduler__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5297:1: ( ( 'at' ) )
-            // InternalSignalDSL.g:5298:1: ( 'at' )
+            // InternalSignalDSL.g:5104:1: ( ( 'at' ) )
+            // InternalSignalDSL.g:5105:1: ( 'at' )
             {
-            // InternalSignalDSL.g:5298:1: ( 'at' )
-            // InternalSignalDSL.g:5299:2: 'at'
+            // InternalSignalDSL.g:5105:1: ( 'at' )
+            // InternalSignalDSL.g:5106:2: 'at'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWeeklySchedulerAccess().getAtKeyword_2()); 
@@ -18904,16 +18415,16 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__Group__3"
-    // InternalSignalDSL.g:5308:1: rule__WeeklyScheduler__Group__3 : rule__WeeklyScheduler__Group__3__Impl rule__WeeklyScheduler__Group__4 ;
+    // InternalSignalDSL.g:5115:1: rule__WeeklyScheduler__Group__3 : rule__WeeklyScheduler__Group__3__Impl rule__WeeklyScheduler__Group__4 ;
     public final void rule__WeeklyScheduler__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5312:1: ( rule__WeeklyScheduler__Group__3__Impl rule__WeeklyScheduler__Group__4 )
-            // InternalSignalDSL.g:5313:2: rule__WeeklyScheduler__Group__3__Impl rule__WeeklyScheduler__Group__4
+            // InternalSignalDSL.g:5119:1: ( rule__WeeklyScheduler__Group__3__Impl rule__WeeklyScheduler__Group__4 )
+            // InternalSignalDSL.g:5120:2: rule__WeeklyScheduler__Group__3__Impl rule__WeeklyScheduler__Group__4
             {
-            pushFollow(FOLLOW_24);
+            pushFollow(FOLLOW_22);
             rule__WeeklyScheduler__Group__3__Impl();
 
             state._fsp--;
@@ -18942,23 +18453,23 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__Group__3__Impl"
-    // InternalSignalDSL.g:5320:1: rule__WeeklyScheduler__Group__3__Impl : ( ( rule__WeeklyScheduler__HourAssignment_3 ) ) ;
+    // InternalSignalDSL.g:5127:1: rule__WeeklyScheduler__Group__3__Impl : ( ( rule__WeeklyScheduler__HourAssignment_3 ) ) ;
     public final void rule__WeeklyScheduler__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5324:1: ( ( ( rule__WeeklyScheduler__HourAssignment_3 ) ) )
-            // InternalSignalDSL.g:5325:1: ( ( rule__WeeklyScheduler__HourAssignment_3 ) )
+            // InternalSignalDSL.g:5131:1: ( ( ( rule__WeeklyScheduler__HourAssignment_3 ) ) )
+            // InternalSignalDSL.g:5132:1: ( ( rule__WeeklyScheduler__HourAssignment_3 ) )
             {
-            // InternalSignalDSL.g:5325:1: ( ( rule__WeeklyScheduler__HourAssignment_3 ) )
-            // InternalSignalDSL.g:5326:2: ( rule__WeeklyScheduler__HourAssignment_3 )
+            // InternalSignalDSL.g:5132:1: ( ( rule__WeeklyScheduler__HourAssignment_3 ) )
+            // InternalSignalDSL.g:5133:2: ( rule__WeeklyScheduler__HourAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWeeklySchedulerAccess().getHourAssignment_3()); 
             }
-            // InternalSignalDSL.g:5327:2: ( rule__WeeklyScheduler__HourAssignment_3 )
-            // InternalSignalDSL.g:5327:3: rule__WeeklyScheduler__HourAssignment_3
+            // InternalSignalDSL.g:5134:2: ( rule__WeeklyScheduler__HourAssignment_3 )
+            // InternalSignalDSL.g:5134:3: rule__WeeklyScheduler__HourAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__WeeklyScheduler__HourAssignment_3();
@@ -18993,16 +18504,16 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__Group__4"
-    // InternalSignalDSL.g:5335:1: rule__WeeklyScheduler__Group__4 : rule__WeeklyScheduler__Group__4__Impl rule__WeeklyScheduler__Group__5 ;
+    // InternalSignalDSL.g:5142:1: rule__WeeklyScheduler__Group__4 : rule__WeeklyScheduler__Group__4__Impl rule__WeeklyScheduler__Group__5 ;
     public final void rule__WeeklyScheduler__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5339:1: ( rule__WeeklyScheduler__Group__4__Impl rule__WeeklyScheduler__Group__5 )
-            // InternalSignalDSL.g:5340:2: rule__WeeklyScheduler__Group__4__Impl rule__WeeklyScheduler__Group__5
+            // InternalSignalDSL.g:5146:1: ( rule__WeeklyScheduler__Group__4__Impl rule__WeeklyScheduler__Group__5 )
+            // InternalSignalDSL.g:5147:2: rule__WeeklyScheduler__Group__4__Impl rule__WeeklyScheduler__Group__5
             {
-            pushFollow(FOLLOW_23);
+            pushFollow(FOLLOW_21);
             rule__WeeklyScheduler__Group__4__Impl();
 
             state._fsp--;
@@ -19031,17 +18542,17 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__Group__4__Impl"
-    // InternalSignalDSL.g:5347:1: rule__WeeklyScheduler__Group__4__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:5154:1: rule__WeeklyScheduler__Group__4__Impl : ( ':' ) ;
     public final void rule__WeeklyScheduler__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5351:1: ( ( ':' ) )
-            // InternalSignalDSL.g:5352:1: ( ':' )
+            // InternalSignalDSL.g:5158:1: ( ( ':' ) )
+            // InternalSignalDSL.g:5159:1: ( ':' )
             {
-            // InternalSignalDSL.g:5352:1: ( ':' )
-            // InternalSignalDSL.g:5353:2: ':'
+            // InternalSignalDSL.g:5159:1: ( ':' )
+            // InternalSignalDSL.g:5160:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWeeklySchedulerAccess().getColonKeyword_4()); 
@@ -19072,14 +18583,14 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__Group__5"
-    // InternalSignalDSL.g:5362:1: rule__WeeklyScheduler__Group__5 : rule__WeeklyScheduler__Group__5__Impl ;
+    // InternalSignalDSL.g:5169:1: rule__WeeklyScheduler__Group__5 : rule__WeeklyScheduler__Group__5__Impl ;
     public final void rule__WeeklyScheduler__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5366:1: ( rule__WeeklyScheduler__Group__5__Impl )
-            // InternalSignalDSL.g:5367:2: rule__WeeklyScheduler__Group__5__Impl
+            // InternalSignalDSL.g:5173:1: ( rule__WeeklyScheduler__Group__5__Impl )
+            // InternalSignalDSL.g:5174:2: rule__WeeklyScheduler__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__WeeklyScheduler__Group__5__Impl();
@@ -19105,23 +18616,23 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__Group__5__Impl"
-    // InternalSignalDSL.g:5373:1: rule__WeeklyScheduler__Group__5__Impl : ( ( rule__WeeklyScheduler__MinuteAssignment_5 ) ) ;
+    // InternalSignalDSL.g:5180:1: rule__WeeklyScheduler__Group__5__Impl : ( ( rule__WeeklyScheduler__MinuteAssignment_5 ) ) ;
     public final void rule__WeeklyScheduler__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5377:1: ( ( ( rule__WeeklyScheduler__MinuteAssignment_5 ) ) )
-            // InternalSignalDSL.g:5378:1: ( ( rule__WeeklyScheduler__MinuteAssignment_5 ) )
+            // InternalSignalDSL.g:5184:1: ( ( ( rule__WeeklyScheduler__MinuteAssignment_5 ) ) )
+            // InternalSignalDSL.g:5185:1: ( ( rule__WeeklyScheduler__MinuteAssignment_5 ) )
             {
-            // InternalSignalDSL.g:5378:1: ( ( rule__WeeklyScheduler__MinuteAssignment_5 ) )
-            // InternalSignalDSL.g:5379:2: ( rule__WeeklyScheduler__MinuteAssignment_5 )
+            // InternalSignalDSL.g:5185:1: ( ( rule__WeeklyScheduler__MinuteAssignment_5 ) )
+            // InternalSignalDSL.g:5186:2: ( rule__WeeklyScheduler__MinuteAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWeeklySchedulerAccess().getMinuteAssignment_5()); 
             }
-            // InternalSignalDSL.g:5380:2: ( rule__WeeklyScheduler__MinuteAssignment_5 )
-            // InternalSignalDSL.g:5380:3: rule__WeeklyScheduler__MinuteAssignment_5
+            // InternalSignalDSL.g:5187:2: ( rule__WeeklyScheduler__MinuteAssignment_5 )
+            // InternalSignalDSL.g:5187:3: rule__WeeklyScheduler__MinuteAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__WeeklyScheduler__MinuteAssignment_5();
@@ -19156,16 +18667,16 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__Group__0"
-    // InternalSignalDSL.g:5389:1: rule__MonthlyScheduler__Group__0 : rule__MonthlyScheduler__Group__0__Impl rule__MonthlyScheduler__Group__1 ;
+    // InternalSignalDSL.g:5196:1: rule__MonthlyScheduler__Group__0 : rule__MonthlyScheduler__Group__0__Impl rule__MonthlyScheduler__Group__1 ;
     public final void rule__MonthlyScheduler__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5393:1: ( rule__MonthlyScheduler__Group__0__Impl rule__MonthlyScheduler__Group__1 )
-            // InternalSignalDSL.g:5394:2: rule__MonthlyScheduler__Group__0__Impl rule__MonthlyScheduler__Group__1
+            // InternalSignalDSL.g:5200:1: ( rule__MonthlyScheduler__Group__0__Impl rule__MonthlyScheduler__Group__1 )
+            // InternalSignalDSL.g:5201:2: rule__MonthlyScheduler__Group__0__Impl rule__MonthlyScheduler__Group__1
             {
-            pushFollow(FOLLOW_23);
+            pushFollow(FOLLOW_21);
             rule__MonthlyScheduler__Group__0__Impl();
 
             state._fsp--;
@@ -19194,17 +18705,17 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__Group__0__Impl"
-    // InternalSignalDSL.g:5401:1: rule__MonthlyScheduler__Group__0__Impl : ( 'monthlyon' ) ;
+    // InternalSignalDSL.g:5208:1: rule__MonthlyScheduler__Group__0__Impl : ( 'monthlyon' ) ;
     public final void rule__MonthlyScheduler__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5405:1: ( ( 'monthlyon' ) )
-            // InternalSignalDSL.g:5406:1: ( 'monthlyon' )
+            // InternalSignalDSL.g:5212:1: ( ( 'monthlyon' ) )
+            // InternalSignalDSL.g:5213:1: ( 'monthlyon' )
             {
-            // InternalSignalDSL.g:5406:1: ( 'monthlyon' )
-            // InternalSignalDSL.g:5407:2: 'monthlyon'
+            // InternalSignalDSL.g:5213:1: ( 'monthlyon' )
+            // InternalSignalDSL.g:5214:2: 'monthlyon'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMonthlySchedulerAccess().getMonthlyonKeyword_0()); 
@@ -19235,16 +18746,16 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__Group__1"
-    // InternalSignalDSL.g:5416:1: rule__MonthlyScheduler__Group__1 : rule__MonthlyScheduler__Group__1__Impl rule__MonthlyScheduler__Group__2 ;
+    // InternalSignalDSL.g:5223:1: rule__MonthlyScheduler__Group__1 : rule__MonthlyScheduler__Group__1__Impl rule__MonthlyScheduler__Group__2 ;
     public final void rule__MonthlyScheduler__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5420:1: ( rule__MonthlyScheduler__Group__1__Impl rule__MonthlyScheduler__Group__2 )
-            // InternalSignalDSL.g:5421:2: rule__MonthlyScheduler__Group__1__Impl rule__MonthlyScheduler__Group__2
+            // InternalSignalDSL.g:5227:1: ( rule__MonthlyScheduler__Group__1__Impl rule__MonthlyScheduler__Group__2 )
+            // InternalSignalDSL.g:5228:2: rule__MonthlyScheduler__Group__1__Impl rule__MonthlyScheduler__Group__2
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_24);
             rule__MonthlyScheduler__Group__1__Impl();
 
             state._fsp--;
@@ -19273,23 +18784,23 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__Group__1__Impl"
-    // InternalSignalDSL.g:5428:1: rule__MonthlyScheduler__Group__1__Impl : ( ( rule__MonthlyScheduler__DayofmonthAssignment_1 ) ) ;
+    // InternalSignalDSL.g:5235:1: rule__MonthlyScheduler__Group__1__Impl : ( ( rule__MonthlyScheduler__DayofmonthAssignment_1 ) ) ;
     public final void rule__MonthlyScheduler__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5432:1: ( ( ( rule__MonthlyScheduler__DayofmonthAssignment_1 ) ) )
-            // InternalSignalDSL.g:5433:1: ( ( rule__MonthlyScheduler__DayofmonthAssignment_1 ) )
+            // InternalSignalDSL.g:5239:1: ( ( ( rule__MonthlyScheduler__DayofmonthAssignment_1 ) ) )
+            // InternalSignalDSL.g:5240:1: ( ( rule__MonthlyScheduler__DayofmonthAssignment_1 ) )
             {
-            // InternalSignalDSL.g:5433:1: ( ( rule__MonthlyScheduler__DayofmonthAssignment_1 ) )
-            // InternalSignalDSL.g:5434:2: ( rule__MonthlyScheduler__DayofmonthAssignment_1 )
+            // InternalSignalDSL.g:5240:1: ( ( rule__MonthlyScheduler__DayofmonthAssignment_1 ) )
+            // InternalSignalDSL.g:5241:2: ( rule__MonthlyScheduler__DayofmonthAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMonthlySchedulerAccess().getDayofmonthAssignment_1()); 
             }
-            // InternalSignalDSL.g:5435:2: ( rule__MonthlyScheduler__DayofmonthAssignment_1 )
-            // InternalSignalDSL.g:5435:3: rule__MonthlyScheduler__DayofmonthAssignment_1
+            // InternalSignalDSL.g:5242:2: ( rule__MonthlyScheduler__DayofmonthAssignment_1 )
+            // InternalSignalDSL.g:5242:3: rule__MonthlyScheduler__DayofmonthAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__MonthlyScheduler__DayofmonthAssignment_1();
@@ -19324,16 +18835,16 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__Group__2"
-    // InternalSignalDSL.g:5443:1: rule__MonthlyScheduler__Group__2 : rule__MonthlyScheduler__Group__2__Impl rule__MonthlyScheduler__Group__3 ;
+    // InternalSignalDSL.g:5250:1: rule__MonthlyScheduler__Group__2 : rule__MonthlyScheduler__Group__2__Impl rule__MonthlyScheduler__Group__3 ;
     public final void rule__MonthlyScheduler__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5447:1: ( rule__MonthlyScheduler__Group__2__Impl rule__MonthlyScheduler__Group__3 )
-            // InternalSignalDSL.g:5448:2: rule__MonthlyScheduler__Group__2__Impl rule__MonthlyScheduler__Group__3
+            // InternalSignalDSL.g:5254:1: ( rule__MonthlyScheduler__Group__2__Impl rule__MonthlyScheduler__Group__3 )
+            // InternalSignalDSL.g:5255:2: rule__MonthlyScheduler__Group__2__Impl rule__MonthlyScheduler__Group__3
             {
-            pushFollow(FOLLOW_23);
+            pushFollow(FOLLOW_21);
             rule__MonthlyScheduler__Group__2__Impl();
 
             state._fsp--;
@@ -19362,17 +18873,17 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__Group__2__Impl"
-    // InternalSignalDSL.g:5455:1: rule__MonthlyScheduler__Group__2__Impl : ( 'at' ) ;
+    // InternalSignalDSL.g:5262:1: rule__MonthlyScheduler__Group__2__Impl : ( 'at' ) ;
     public final void rule__MonthlyScheduler__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5459:1: ( ( 'at' ) )
-            // InternalSignalDSL.g:5460:1: ( 'at' )
+            // InternalSignalDSL.g:5266:1: ( ( 'at' ) )
+            // InternalSignalDSL.g:5267:1: ( 'at' )
             {
-            // InternalSignalDSL.g:5460:1: ( 'at' )
-            // InternalSignalDSL.g:5461:2: 'at'
+            // InternalSignalDSL.g:5267:1: ( 'at' )
+            // InternalSignalDSL.g:5268:2: 'at'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMonthlySchedulerAccess().getAtKeyword_2()); 
@@ -19403,16 +18914,16 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__Group__3"
-    // InternalSignalDSL.g:5470:1: rule__MonthlyScheduler__Group__3 : rule__MonthlyScheduler__Group__3__Impl rule__MonthlyScheduler__Group__4 ;
+    // InternalSignalDSL.g:5277:1: rule__MonthlyScheduler__Group__3 : rule__MonthlyScheduler__Group__3__Impl rule__MonthlyScheduler__Group__4 ;
     public final void rule__MonthlyScheduler__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5474:1: ( rule__MonthlyScheduler__Group__3__Impl rule__MonthlyScheduler__Group__4 )
-            // InternalSignalDSL.g:5475:2: rule__MonthlyScheduler__Group__3__Impl rule__MonthlyScheduler__Group__4
+            // InternalSignalDSL.g:5281:1: ( rule__MonthlyScheduler__Group__3__Impl rule__MonthlyScheduler__Group__4 )
+            // InternalSignalDSL.g:5282:2: rule__MonthlyScheduler__Group__3__Impl rule__MonthlyScheduler__Group__4
             {
-            pushFollow(FOLLOW_24);
+            pushFollow(FOLLOW_22);
             rule__MonthlyScheduler__Group__3__Impl();
 
             state._fsp--;
@@ -19441,23 +18952,23 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__Group__3__Impl"
-    // InternalSignalDSL.g:5482:1: rule__MonthlyScheduler__Group__3__Impl : ( ( rule__MonthlyScheduler__HourAssignment_3 ) ) ;
+    // InternalSignalDSL.g:5289:1: rule__MonthlyScheduler__Group__3__Impl : ( ( rule__MonthlyScheduler__HourAssignment_3 ) ) ;
     public final void rule__MonthlyScheduler__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5486:1: ( ( ( rule__MonthlyScheduler__HourAssignment_3 ) ) )
-            // InternalSignalDSL.g:5487:1: ( ( rule__MonthlyScheduler__HourAssignment_3 ) )
+            // InternalSignalDSL.g:5293:1: ( ( ( rule__MonthlyScheduler__HourAssignment_3 ) ) )
+            // InternalSignalDSL.g:5294:1: ( ( rule__MonthlyScheduler__HourAssignment_3 ) )
             {
-            // InternalSignalDSL.g:5487:1: ( ( rule__MonthlyScheduler__HourAssignment_3 ) )
-            // InternalSignalDSL.g:5488:2: ( rule__MonthlyScheduler__HourAssignment_3 )
+            // InternalSignalDSL.g:5294:1: ( ( rule__MonthlyScheduler__HourAssignment_3 ) )
+            // InternalSignalDSL.g:5295:2: ( rule__MonthlyScheduler__HourAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMonthlySchedulerAccess().getHourAssignment_3()); 
             }
-            // InternalSignalDSL.g:5489:2: ( rule__MonthlyScheduler__HourAssignment_3 )
-            // InternalSignalDSL.g:5489:3: rule__MonthlyScheduler__HourAssignment_3
+            // InternalSignalDSL.g:5296:2: ( rule__MonthlyScheduler__HourAssignment_3 )
+            // InternalSignalDSL.g:5296:3: rule__MonthlyScheduler__HourAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__MonthlyScheduler__HourAssignment_3();
@@ -19492,16 +19003,16 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__Group__4"
-    // InternalSignalDSL.g:5497:1: rule__MonthlyScheduler__Group__4 : rule__MonthlyScheduler__Group__4__Impl rule__MonthlyScheduler__Group__5 ;
+    // InternalSignalDSL.g:5304:1: rule__MonthlyScheduler__Group__4 : rule__MonthlyScheduler__Group__4__Impl rule__MonthlyScheduler__Group__5 ;
     public final void rule__MonthlyScheduler__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5501:1: ( rule__MonthlyScheduler__Group__4__Impl rule__MonthlyScheduler__Group__5 )
-            // InternalSignalDSL.g:5502:2: rule__MonthlyScheduler__Group__4__Impl rule__MonthlyScheduler__Group__5
+            // InternalSignalDSL.g:5308:1: ( rule__MonthlyScheduler__Group__4__Impl rule__MonthlyScheduler__Group__5 )
+            // InternalSignalDSL.g:5309:2: rule__MonthlyScheduler__Group__4__Impl rule__MonthlyScheduler__Group__5
             {
-            pushFollow(FOLLOW_23);
+            pushFollow(FOLLOW_21);
             rule__MonthlyScheduler__Group__4__Impl();
 
             state._fsp--;
@@ -19530,17 +19041,17 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__Group__4__Impl"
-    // InternalSignalDSL.g:5509:1: rule__MonthlyScheduler__Group__4__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:5316:1: rule__MonthlyScheduler__Group__4__Impl : ( ':' ) ;
     public final void rule__MonthlyScheduler__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5513:1: ( ( ':' ) )
-            // InternalSignalDSL.g:5514:1: ( ':' )
+            // InternalSignalDSL.g:5320:1: ( ( ':' ) )
+            // InternalSignalDSL.g:5321:1: ( ':' )
             {
-            // InternalSignalDSL.g:5514:1: ( ':' )
-            // InternalSignalDSL.g:5515:2: ':'
+            // InternalSignalDSL.g:5321:1: ( ':' )
+            // InternalSignalDSL.g:5322:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMonthlySchedulerAccess().getColonKeyword_4()); 
@@ -19571,14 +19082,14 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__Group__5"
-    // InternalSignalDSL.g:5524:1: rule__MonthlyScheduler__Group__5 : rule__MonthlyScheduler__Group__5__Impl ;
+    // InternalSignalDSL.g:5331:1: rule__MonthlyScheduler__Group__5 : rule__MonthlyScheduler__Group__5__Impl ;
     public final void rule__MonthlyScheduler__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5528:1: ( rule__MonthlyScheduler__Group__5__Impl )
-            // InternalSignalDSL.g:5529:2: rule__MonthlyScheduler__Group__5__Impl
+            // InternalSignalDSL.g:5335:1: ( rule__MonthlyScheduler__Group__5__Impl )
+            // InternalSignalDSL.g:5336:2: rule__MonthlyScheduler__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__MonthlyScheduler__Group__5__Impl();
@@ -19604,23 +19115,23 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__Group__5__Impl"
-    // InternalSignalDSL.g:5535:1: rule__MonthlyScheduler__Group__5__Impl : ( ( rule__MonthlyScheduler__MinuteAssignment_5 ) ) ;
+    // InternalSignalDSL.g:5342:1: rule__MonthlyScheduler__Group__5__Impl : ( ( rule__MonthlyScheduler__MinuteAssignment_5 ) ) ;
     public final void rule__MonthlyScheduler__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5539:1: ( ( ( rule__MonthlyScheduler__MinuteAssignment_5 ) ) )
-            // InternalSignalDSL.g:5540:1: ( ( rule__MonthlyScheduler__MinuteAssignment_5 ) )
+            // InternalSignalDSL.g:5346:1: ( ( ( rule__MonthlyScheduler__MinuteAssignment_5 ) ) )
+            // InternalSignalDSL.g:5347:1: ( ( rule__MonthlyScheduler__MinuteAssignment_5 ) )
             {
-            // InternalSignalDSL.g:5540:1: ( ( rule__MonthlyScheduler__MinuteAssignment_5 ) )
-            // InternalSignalDSL.g:5541:2: ( rule__MonthlyScheduler__MinuteAssignment_5 )
+            // InternalSignalDSL.g:5347:1: ( ( rule__MonthlyScheduler__MinuteAssignment_5 ) )
+            // InternalSignalDSL.g:5348:2: ( rule__MonthlyScheduler__MinuteAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMonthlySchedulerAccess().getMinuteAssignment_5()); 
             }
-            // InternalSignalDSL.g:5542:2: ( rule__MonthlyScheduler__MinuteAssignment_5 )
-            // InternalSignalDSL.g:5542:3: rule__MonthlyScheduler__MinuteAssignment_5
+            // InternalSignalDSL.g:5349:2: ( rule__MonthlyScheduler__MinuteAssignment_5 )
+            // InternalSignalDSL.g:5349:3: rule__MonthlyScheduler__MinuteAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__MonthlyScheduler__MinuteAssignment_5();
@@ -19655,14 +19166,14 @@
 
 
     // $ANTLR start "rule__SignalDatainterchange__Group__0"
-    // InternalSignalDSL.g:5551:1: rule__SignalDatainterchange__Group__0 : rule__SignalDatainterchange__Group__0__Impl rule__SignalDatainterchange__Group__1 ;
+    // InternalSignalDSL.g:5358:1: rule__SignalDatainterchange__Group__0 : rule__SignalDatainterchange__Group__0__Impl rule__SignalDatainterchange__Group__1 ;
     public final void rule__SignalDatainterchange__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5555:1: ( rule__SignalDatainterchange__Group__0__Impl rule__SignalDatainterchange__Group__1 )
-            // InternalSignalDSL.g:5556:2: rule__SignalDatainterchange__Group__0__Impl rule__SignalDatainterchange__Group__1
+            // InternalSignalDSL.g:5362:1: ( rule__SignalDatainterchange__Group__0__Impl rule__SignalDatainterchange__Group__1 )
+            // InternalSignalDSL.g:5363:2: rule__SignalDatainterchange__Group__0__Impl rule__SignalDatainterchange__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__SignalDatainterchange__Group__0__Impl();
@@ -19693,26 +19204,26 @@
 
 
     // $ANTLR start "rule__SignalDatainterchange__Group__0__Impl"
-    // InternalSignalDSL.g:5563:1: rule__SignalDatainterchange__Group__0__Impl : ( ( rule__SignalDatainterchange__DataActionAssignment_0 ) ) ;
+    // InternalSignalDSL.g:5370:1: rule__SignalDatainterchange__Group__0__Impl : ( ( rule__SignalDatainterchange__ActionTypeAssignment_0 ) ) ;
     public final void rule__SignalDatainterchange__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5567:1: ( ( ( rule__SignalDatainterchange__DataActionAssignment_0 ) ) )
-            // InternalSignalDSL.g:5568:1: ( ( rule__SignalDatainterchange__DataActionAssignment_0 ) )
+            // InternalSignalDSL.g:5374:1: ( ( ( rule__SignalDatainterchange__ActionTypeAssignment_0 ) ) )
+            // InternalSignalDSL.g:5375:1: ( ( rule__SignalDatainterchange__ActionTypeAssignment_0 ) )
             {
-            // InternalSignalDSL.g:5568:1: ( ( rule__SignalDatainterchange__DataActionAssignment_0 ) )
-            // InternalSignalDSL.g:5569:2: ( rule__SignalDatainterchange__DataActionAssignment_0 )
+            // InternalSignalDSL.g:5375:1: ( ( rule__SignalDatainterchange__ActionTypeAssignment_0 ) )
+            // InternalSignalDSL.g:5376:2: ( rule__SignalDatainterchange__ActionTypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalDatainterchangeAccess().getDataActionAssignment_0()); 
+               before(grammarAccess.getSignalDatainterchangeAccess().getActionTypeAssignment_0()); 
             }
-            // InternalSignalDSL.g:5570:2: ( rule__SignalDatainterchange__DataActionAssignment_0 )
-            // InternalSignalDSL.g:5570:3: rule__SignalDatainterchange__DataActionAssignment_0
+            // InternalSignalDSL.g:5377:2: ( rule__SignalDatainterchange__ActionTypeAssignment_0 )
+            // InternalSignalDSL.g:5377:3: rule__SignalDatainterchange__ActionTypeAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__SignalDatainterchange__DataActionAssignment_0();
+            rule__SignalDatainterchange__ActionTypeAssignment_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19720,7 +19231,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalDatainterchangeAccess().getDataActionAssignment_0()); 
+               after(grammarAccess.getSignalDatainterchangeAccess().getActionTypeAssignment_0()); 
             }
 
             }
@@ -19744,16 +19255,16 @@
 
 
     // $ANTLR start "rule__SignalDatainterchange__Group__1"
-    // InternalSignalDSL.g:5578:1: rule__SignalDatainterchange__Group__1 : rule__SignalDatainterchange__Group__1__Impl rule__SignalDatainterchange__Group__2 ;
+    // InternalSignalDSL.g:5385:1: rule__SignalDatainterchange__Group__1 : rule__SignalDatainterchange__Group__1__Impl rule__SignalDatainterchange__Group__2 ;
     public final void rule__SignalDatainterchange__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5582:1: ( rule__SignalDatainterchange__Group__1__Impl rule__SignalDatainterchange__Group__2 )
-            // InternalSignalDSL.g:5583:2: rule__SignalDatainterchange__Group__1__Impl rule__SignalDatainterchange__Group__2
+            // InternalSignalDSL.g:5389:1: ( rule__SignalDatainterchange__Group__1__Impl rule__SignalDatainterchange__Group__2 )
+            // InternalSignalDSL.g:5390:2: rule__SignalDatainterchange__Group__1__Impl rule__SignalDatainterchange__Group__2
             {
-            pushFollow(FOLLOW_27);
+            pushFollow(FOLLOW_25);
             rule__SignalDatainterchange__Group__1__Impl();
 
             state._fsp--;
@@ -19782,23 +19293,23 @@
 
 
     // $ANTLR start "rule__SignalDatainterchange__Group__1__Impl"
-    // InternalSignalDSL.g:5590:1: rule__SignalDatainterchange__Group__1__Impl : ( ( rule__SignalDatainterchange__DataRefAssignment_1 ) ) ;
+    // InternalSignalDSL.g:5397:1: rule__SignalDatainterchange__Group__1__Impl : ( ( rule__SignalDatainterchange__DataRefAssignment_1 ) ) ;
     public final void rule__SignalDatainterchange__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5594:1: ( ( ( rule__SignalDatainterchange__DataRefAssignment_1 ) ) )
-            // InternalSignalDSL.g:5595:1: ( ( rule__SignalDatainterchange__DataRefAssignment_1 ) )
+            // InternalSignalDSL.g:5401:1: ( ( ( rule__SignalDatainterchange__DataRefAssignment_1 ) ) )
+            // InternalSignalDSL.g:5402:1: ( ( rule__SignalDatainterchange__DataRefAssignment_1 ) )
             {
-            // InternalSignalDSL.g:5595:1: ( ( rule__SignalDatainterchange__DataRefAssignment_1 ) )
-            // InternalSignalDSL.g:5596:2: ( rule__SignalDatainterchange__DataRefAssignment_1 )
+            // InternalSignalDSL.g:5402:1: ( ( rule__SignalDatainterchange__DataRefAssignment_1 ) )
+            // InternalSignalDSL.g:5403:2: ( rule__SignalDatainterchange__DataRefAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalDatainterchangeAccess().getDataRefAssignment_1()); 
             }
-            // InternalSignalDSL.g:5597:2: ( rule__SignalDatainterchange__DataRefAssignment_1 )
-            // InternalSignalDSL.g:5597:3: rule__SignalDatainterchange__DataRefAssignment_1
+            // InternalSignalDSL.g:5404:2: ( rule__SignalDatainterchange__DataRefAssignment_1 )
+            // InternalSignalDSL.g:5404:3: rule__SignalDatainterchange__DataRefAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__SignalDatainterchange__DataRefAssignment_1();
@@ -19833,14 +19344,14 @@
 
 
     // $ANTLR start "rule__SignalDatainterchange__Group__2"
-    // InternalSignalDSL.g:5605:1: rule__SignalDatainterchange__Group__2 : rule__SignalDatainterchange__Group__2__Impl ;
+    // InternalSignalDSL.g:5412:1: rule__SignalDatainterchange__Group__2 : rule__SignalDatainterchange__Group__2__Impl ;
     public final void rule__SignalDatainterchange__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5609:1: ( rule__SignalDatainterchange__Group__2__Impl )
-            // InternalSignalDSL.g:5610:2: rule__SignalDatainterchange__Group__2__Impl
+            // InternalSignalDSL.g:5416:1: ( rule__SignalDatainterchange__Group__2__Impl )
+            // InternalSignalDSL.g:5417:2: rule__SignalDatainterchange__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SignalDatainterchange__Group__2__Impl();
@@ -19866,31 +19377,31 @@
 
 
     // $ANTLR start "rule__SignalDatainterchange__Group__2__Impl"
-    // InternalSignalDSL.g:5616:1: rule__SignalDatainterchange__Group__2__Impl : ( ( rule__SignalDatainterchange__BaseinterchangeAssignment_2 )? ) ;
+    // InternalSignalDSL.g:5423:1: rule__SignalDatainterchange__Group__2__Impl : ( ( rule__SignalDatainterchange__BaseinterchangeAssignment_2 )? ) ;
     public final void rule__SignalDatainterchange__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5620:1: ( ( ( rule__SignalDatainterchange__BaseinterchangeAssignment_2 )? ) )
-            // InternalSignalDSL.g:5621:1: ( ( rule__SignalDatainterchange__BaseinterchangeAssignment_2 )? )
+            // InternalSignalDSL.g:5427:1: ( ( ( rule__SignalDatainterchange__BaseinterchangeAssignment_2 )? ) )
+            // InternalSignalDSL.g:5428:1: ( ( rule__SignalDatainterchange__BaseinterchangeAssignment_2 )? )
             {
-            // InternalSignalDSL.g:5621:1: ( ( rule__SignalDatainterchange__BaseinterchangeAssignment_2 )? )
-            // InternalSignalDSL.g:5622:2: ( rule__SignalDatainterchange__BaseinterchangeAssignment_2 )?
+            // InternalSignalDSL.g:5428:1: ( ( rule__SignalDatainterchange__BaseinterchangeAssignment_2 )? )
+            // InternalSignalDSL.g:5429:2: ( rule__SignalDatainterchange__BaseinterchangeAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalDatainterchangeAccess().getBaseinterchangeAssignment_2()); 
             }
-            // InternalSignalDSL.g:5623:2: ( rule__SignalDatainterchange__BaseinterchangeAssignment_2 )?
-            int alt58=2;
-            int LA58_0 = input.LA(1);
+            // InternalSignalDSL.g:5430:2: ( rule__SignalDatainterchange__BaseinterchangeAssignment_2 )?
+            int alt61=2;
+            int LA61_0 = input.LA(1);
 
-            if ( (LA58_0==105) ) {
-                alt58=1;
+            if ( (LA61_0==67) ) {
+                alt61=1;
             }
-            switch (alt58) {
+            switch (alt61) {
                 case 1 :
-                    // InternalSignalDSL.g:5623:3: rule__SignalDatainterchange__BaseinterchangeAssignment_2
+                    // InternalSignalDSL.g:5430:3: rule__SignalDatainterchange__BaseinterchangeAssignment_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__SignalDatainterchange__BaseinterchangeAssignment_2();
@@ -19927,17 +19438,1114 @@
     // $ANTLR end "rule__SignalDatainterchange__Group__2__Impl"
 
 
+    // $ANTLR start "rule__SignalFunction__Group__0"
+    // InternalSignalDSL.g:5439:1: rule__SignalFunction__Group__0 : rule__SignalFunction__Group__0__Impl rule__SignalFunction__Group__1 ;
+    public final void rule__SignalFunction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5443:1: ( rule__SignalFunction__Group__0__Impl rule__SignalFunction__Group__1 )
+            // InternalSignalDSL.g:5444:2: rule__SignalFunction__Group__0__Impl rule__SignalFunction__Group__1
+            {
+            pushFollow(FOLLOW_6);
+            rule__SignalFunction__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group__0"
+
+
+    // $ANTLR start "rule__SignalFunction__Group__0__Impl"
+    // InternalSignalDSL.g:5451:1: rule__SignalFunction__Group__0__Impl : ( 'functionGroup' ) ;
+    public final void rule__SignalFunction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5455:1: ( ( 'functionGroup' ) )
+            // InternalSignalDSL.g:5456:1: ( 'functionGroup' )
+            {
+            // InternalSignalDSL.g:5456:1: ( 'functionGroup' )
+            // InternalSignalDSL.g:5457:2: 'functionGroup'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getFunctionGroupKeyword_0()); 
+            }
+            match(input,76,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getFunctionGroupKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__SignalFunction__Group__1"
+    // InternalSignalDSL.g:5466:1: rule__SignalFunction__Group__1 : rule__SignalFunction__Group__1__Impl rule__SignalFunction__Group__2 ;
+    public final void rule__SignalFunction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5470:1: ( rule__SignalFunction__Group__1__Impl rule__SignalFunction__Group__2 )
+            // InternalSignalDSL.g:5471:2: rule__SignalFunction__Group__1__Impl rule__SignalFunction__Group__2
+            {
+            pushFollow(FOLLOW_26);
+            rule__SignalFunction__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group__1"
+
+
+    // $ANTLR start "rule__SignalFunction__Group__1__Impl"
+    // InternalSignalDSL.g:5478:1: rule__SignalFunction__Group__1__Impl : ( ( rule__SignalFunction__GroupAssignment_1 ) ) ;
+    public final void rule__SignalFunction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5482:1: ( ( ( rule__SignalFunction__GroupAssignment_1 ) ) )
+            // InternalSignalDSL.g:5483:1: ( ( rule__SignalFunction__GroupAssignment_1 ) )
+            {
+            // InternalSignalDSL.g:5483:1: ( ( rule__SignalFunction__GroupAssignment_1 ) )
+            // InternalSignalDSL.g:5484:2: ( rule__SignalFunction__GroupAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getGroupAssignment_1()); 
+            }
+            // InternalSignalDSL.g:5485:2: ( rule__SignalFunction__GroupAssignment_1 )
+            // InternalSignalDSL.g:5485:3: rule__SignalFunction__GroupAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__GroupAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getGroupAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__SignalFunction__Group__2"
+    // InternalSignalDSL.g:5493:1: rule__SignalFunction__Group__2 : rule__SignalFunction__Group__2__Impl ;
+    public final void rule__SignalFunction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5497:1: ( rule__SignalFunction__Group__2__Impl )
+            // InternalSignalDSL.g:5498:2: rule__SignalFunction__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group__2"
+
+
+    // $ANTLR start "rule__SignalFunction__Group__2__Impl"
+    // InternalSignalDSL.g:5504:1: rule__SignalFunction__Group__2__Impl : ( ( rule__SignalFunction__Alternatives_2 ) ) ;
+    public final void rule__SignalFunction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5508:1: ( ( ( rule__SignalFunction__Alternatives_2 ) ) )
+            // InternalSignalDSL.g:5509:1: ( ( rule__SignalFunction__Alternatives_2 ) )
+            {
+            // InternalSignalDSL.g:5509:1: ( ( rule__SignalFunction__Alternatives_2 ) )
+            // InternalSignalDSL.g:5510:2: ( rule__SignalFunction__Alternatives_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getAlternatives_2()); 
+            }
+            // InternalSignalDSL.g:5511:2: ( rule__SignalFunction__Alternatives_2 )
+            // InternalSignalDSL.g:5511:3: rule__SignalFunction__Alternatives_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Alternatives_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getAlternatives_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_0__0"
+    // InternalSignalDSL.g:5520:1: rule__SignalFunction__Group_2_0__0 : rule__SignalFunction__Group_2_0__0__Impl rule__SignalFunction__Group_2_0__1 ;
+    public final void rule__SignalFunction__Group_2_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5524:1: ( rule__SignalFunction__Group_2_0__0__Impl rule__SignalFunction__Group_2_0__1 )
+            // InternalSignalDSL.g:5525:2: rule__SignalFunction__Group_2_0__0__Impl rule__SignalFunction__Group_2_0__1
+            {
+            pushFollow(FOLLOW_6);
+            rule__SignalFunction__Group_2_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group_2_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_0__0"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_0__0__Impl"
+    // InternalSignalDSL.g:5532:1: rule__SignalFunction__Group_2_0__0__Impl : ( 'execute' ) ;
+    public final void rule__SignalFunction__Group_2_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5536:1: ( ( 'execute' ) )
+            // InternalSignalDSL.g:5537:1: ( 'execute' )
+            {
+            // InternalSignalDSL.g:5537:1: ( 'execute' )
+            // InternalSignalDSL.g:5538:2: 'execute'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getExecuteKeyword_2_0_0()); 
+            }
+            match(input,77,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getExecuteKeyword_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_0__0__Impl"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_0__1"
+    // InternalSignalDSL.g:5547:1: rule__SignalFunction__Group_2_0__1 : rule__SignalFunction__Group_2_0__1__Impl ;
+    public final void rule__SignalFunction__Group_2_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5551:1: ( rule__SignalFunction__Group_2_0__1__Impl )
+            // InternalSignalDSL.g:5552:2: rule__SignalFunction__Group_2_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group_2_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_0__1"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_0__1__Impl"
+    // InternalSignalDSL.g:5558:1: rule__SignalFunction__Group_2_0__1__Impl : ( ( rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1 ) ) ;
+    public final void rule__SignalFunction__Group_2_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5562:1: ( ( ( rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1 ) ) )
+            // InternalSignalDSL.g:5563:1: ( ( rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1 ) )
+            {
+            // InternalSignalDSL.g:5563:1: ( ( rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1 ) )
+            // InternalSignalDSL.g:5564:2: ( rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_0_1()); 
+            }
+            // InternalSignalDSL.g:5565:2: ( rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1 )
+            // InternalSignalDSL.g:5565:3: rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_0__1__Impl"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_1__0"
+    // InternalSignalDSL.g:5574:1: rule__SignalFunction__Group_2_1__0 : rule__SignalFunction__Group_2_1__0__Impl rule__SignalFunction__Group_2_1__1 ;
+    public final void rule__SignalFunction__Group_2_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5578:1: ( rule__SignalFunction__Group_2_1__0__Impl rule__SignalFunction__Group_2_1__1 )
+            // InternalSignalDSL.g:5579:2: rule__SignalFunction__Group_2_1__0__Impl rule__SignalFunction__Group_2_1__1
+            {
+            pushFollow(FOLLOW_6);
+            rule__SignalFunction__Group_2_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group_2_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_1__0"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_1__0__Impl"
+    // InternalSignalDSL.g:5586:1: rule__SignalFunction__Group_2_1__0__Impl : ( ( rule__SignalFunction__OnImportFileAssignment_2_1_0 ) ) ;
+    public final void rule__SignalFunction__Group_2_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5590:1: ( ( ( rule__SignalFunction__OnImportFileAssignment_2_1_0 ) ) )
+            // InternalSignalDSL.g:5591:1: ( ( rule__SignalFunction__OnImportFileAssignment_2_1_0 ) )
+            {
+            // InternalSignalDSL.g:5591:1: ( ( rule__SignalFunction__OnImportFileAssignment_2_1_0 ) )
+            // InternalSignalDSL.g:5592:2: ( rule__SignalFunction__OnImportFileAssignment_2_1_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getOnImportFileAssignment_2_1_0()); 
+            }
+            // InternalSignalDSL.g:5593:2: ( rule__SignalFunction__OnImportFileAssignment_2_1_0 )
+            // InternalSignalDSL.g:5593:3: rule__SignalFunction__OnImportFileAssignment_2_1_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__OnImportFileAssignment_2_1_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getOnImportFileAssignment_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_1__0__Impl"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_1__1"
+    // InternalSignalDSL.g:5601:1: rule__SignalFunction__Group_2_1__1 : rule__SignalFunction__Group_2_1__1__Impl rule__SignalFunction__Group_2_1__2 ;
+    public final void rule__SignalFunction__Group_2_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5605:1: ( rule__SignalFunction__Group_2_1__1__Impl rule__SignalFunction__Group_2_1__2 )
+            // InternalSignalDSL.g:5606:2: rule__SignalFunction__Group_2_1__1__Impl rule__SignalFunction__Group_2_1__2
+            {
+            pushFollow(FOLLOW_14);
+            rule__SignalFunction__Group_2_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group_2_1__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_1__1"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_1__1__Impl"
+    // InternalSignalDSL.g:5613:1: rule__SignalFunction__Group_2_1__1__Impl : ( ( rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1 ) ) ;
+    public final void rule__SignalFunction__Group_2_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5617:1: ( ( ( rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1 ) ) )
+            // InternalSignalDSL.g:5618:1: ( ( rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1 ) )
+            {
+            // InternalSignalDSL.g:5618:1: ( ( rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1 ) )
+            // InternalSignalDSL.g:5619:2: ( rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_1_1()); 
+            }
+            // InternalSignalDSL.g:5620:2: ( rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1 )
+            // InternalSignalDSL.g:5620:3: rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_1__1__Impl"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_1__2"
+    // InternalSignalDSL.g:5628:1: rule__SignalFunction__Group_2_1__2 : rule__SignalFunction__Group_2_1__2__Impl rule__SignalFunction__Group_2_1__3 ;
+    public final void rule__SignalFunction__Group_2_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5632:1: ( rule__SignalFunction__Group_2_1__2__Impl rule__SignalFunction__Group_2_1__3 )
+            // InternalSignalDSL.g:5633:2: rule__SignalFunction__Group_2_1__2__Impl rule__SignalFunction__Group_2_1__3
+            {
+            pushFollow(FOLLOW_6);
+            rule__SignalFunction__Group_2_1__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group_2_1__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_1__2"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_1__2__Impl"
+    // InternalSignalDSL.g:5640:1: rule__SignalFunction__Group_2_1__2__Impl : ( 'from' ) ;
+    public final void rule__SignalFunction__Group_2_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5644:1: ( ( 'from' ) )
+            // InternalSignalDSL.g:5645:1: ( 'from' )
+            {
+            // InternalSignalDSL.g:5645:1: ( 'from' )
+            // InternalSignalDSL.g:5646:2: 'from'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getFromKeyword_2_1_2()); 
+            }
+            match(input,66,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getFromKeyword_2_1_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_1__2__Impl"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_1__3"
+    // InternalSignalDSL.g:5655:1: rule__SignalFunction__Group_2_1__3 : rule__SignalFunction__Group_2_1__3__Impl ;
+    public final void rule__SignalFunction__Group_2_1__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5659:1: ( rule__SignalFunction__Group_2_1__3__Impl )
+            // InternalSignalDSL.g:5660:2: rule__SignalFunction__Group_2_1__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group_2_1__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_1__3"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_1__3__Impl"
+    // InternalSignalDSL.g:5666:1: rule__SignalFunction__Group_2_1__3__Impl : ( ( rule__SignalFunction__SupportInterchangeAssignment_2_1_3 ) ) ;
+    public final void rule__SignalFunction__Group_2_1__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5670:1: ( ( ( rule__SignalFunction__SupportInterchangeAssignment_2_1_3 ) ) )
+            // InternalSignalDSL.g:5671:1: ( ( rule__SignalFunction__SupportInterchangeAssignment_2_1_3 ) )
+            {
+            // InternalSignalDSL.g:5671:1: ( ( rule__SignalFunction__SupportInterchangeAssignment_2_1_3 ) )
+            // InternalSignalDSL.g:5672:2: ( rule__SignalFunction__SupportInterchangeAssignment_2_1_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getSupportInterchangeAssignment_2_1_3()); 
+            }
+            // InternalSignalDSL.g:5673:2: ( rule__SignalFunction__SupportInterchangeAssignment_2_1_3 )
+            // InternalSignalDSL.g:5673:3: rule__SignalFunction__SupportInterchangeAssignment_2_1_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__SupportInterchangeAssignment_2_1_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getSupportInterchangeAssignment_2_1_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_1__3__Impl"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_2__0"
+    // InternalSignalDSL.g:5682:1: rule__SignalFunction__Group_2_2__0 : rule__SignalFunction__Group_2_2__0__Impl rule__SignalFunction__Group_2_2__1 ;
+    public final void rule__SignalFunction__Group_2_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5686:1: ( rule__SignalFunction__Group_2_2__0__Impl rule__SignalFunction__Group_2_2__1 )
+            // InternalSignalDSL.g:5687:2: rule__SignalFunction__Group_2_2__0__Impl rule__SignalFunction__Group_2_2__1
+            {
+            pushFollow(FOLLOW_6);
+            rule__SignalFunction__Group_2_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group_2_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_2__0"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_2__0__Impl"
+    // InternalSignalDSL.g:5694:1: rule__SignalFunction__Group_2_2__0__Impl : ( ( rule__SignalFunction__OnExportFileAssignment_2_2_0 ) ) ;
+    public final void rule__SignalFunction__Group_2_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5698:1: ( ( ( rule__SignalFunction__OnExportFileAssignment_2_2_0 ) ) )
+            // InternalSignalDSL.g:5699:1: ( ( rule__SignalFunction__OnExportFileAssignment_2_2_0 ) )
+            {
+            // InternalSignalDSL.g:5699:1: ( ( rule__SignalFunction__OnExportFileAssignment_2_2_0 ) )
+            // InternalSignalDSL.g:5700:2: ( rule__SignalFunction__OnExportFileAssignment_2_2_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getOnExportFileAssignment_2_2_0()); 
+            }
+            // InternalSignalDSL.g:5701:2: ( rule__SignalFunction__OnExportFileAssignment_2_2_0 )
+            // InternalSignalDSL.g:5701:3: rule__SignalFunction__OnExportFileAssignment_2_2_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__OnExportFileAssignment_2_2_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getOnExportFileAssignment_2_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_2__0__Impl"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_2__1"
+    // InternalSignalDSL.g:5709:1: rule__SignalFunction__Group_2_2__1 : rule__SignalFunction__Group_2_2__1__Impl rule__SignalFunction__Group_2_2__2 ;
+    public final void rule__SignalFunction__Group_2_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5713:1: ( rule__SignalFunction__Group_2_2__1__Impl rule__SignalFunction__Group_2_2__2 )
+            // InternalSignalDSL.g:5714:2: rule__SignalFunction__Group_2_2__1__Impl rule__SignalFunction__Group_2_2__2
+            {
+            pushFollow(FOLLOW_14);
+            rule__SignalFunction__Group_2_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group_2_2__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_2__1"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_2__1__Impl"
+    // InternalSignalDSL.g:5721:1: rule__SignalFunction__Group_2_2__1__Impl : ( ( rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1 ) ) ;
+    public final void rule__SignalFunction__Group_2_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5725:1: ( ( ( rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1 ) ) )
+            // InternalSignalDSL.g:5726:1: ( ( rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1 ) )
+            {
+            // InternalSignalDSL.g:5726:1: ( ( rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1 ) )
+            // InternalSignalDSL.g:5727:2: ( rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_2_1()); 
+            }
+            // InternalSignalDSL.g:5728:2: ( rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1 )
+            // InternalSignalDSL.g:5728:3: rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionAssignment_2_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_2__1__Impl"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_2__2"
+    // InternalSignalDSL.g:5736:1: rule__SignalFunction__Group_2_2__2 : rule__SignalFunction__Group_2_2__2__Impl rule__SignalFunction__Group_2_2__3 ;
+    public final void rule__SignalFunction__Group_2_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5740:1: ( rule__SignalFunction__Group_2_2__2__Impl rule__SignalFunction__Group_2_2__3 )
+            // InternalSignalDSL.g:5741:2: rule__SignalFunction__Group_2_2__2__Impl rule__SignalFunction__Group_2_2__3
+            {
+            pushFollow(FOLLOW_6);
+            rule__SignalFunction__Group_2_2__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group_2_2__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_2__2"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_2__2__Impl"
+    // InternalSignalDSL.g:5748:1: rule__SignalFunction__Group_2_2__2__Impl : ( 'from' ) ;
+    public final void rule__SignalFunction__Group_2_2__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5752:1: ( ( 'from' ) )
+            // InternalSignalDSL.g:5753:1: ( 'from' )
+            {
+            // InternalSignalDSL.g:5753:1: ( 'from' )
+            // InternalSignalDSL.g:5754:2: 'from'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getFromKeyword_2_2_2()); 
+            }
+            match(input,66,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getFromKeyword_2_2_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_2__2__Impl"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_2__3"
+    // InternalSignalDSL.g:5763:1: rule__SignalFunction__Group_2_2__3 : rule__SignalFunction__Group_2_2__3__Impl ;
+    public final void rule__SignalFunction__Group_2_2__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5767:1: ( rule__SignalFunction__Group_2_2__3__Impl )
+            // InternalSignalDSL.g:5768:2: rule__SignalFunction__Group_2_2__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__Group_2_2__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_2__3"
+
+
+    // $ANTLR start "rule__SignalFunction__Group_2_2__3__Impl"
+    // InternalSignalDSL.g:5774:1: rule__SignalFunction__Group_2_2__3__Impl : ( ( rule__SignalFunction__SupportInterchangeAssignment_2_2_3 ) ) ;
+    public final void rule__SignalFunction__Group_2_2__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:5778:1: ( ( ( rule__SignalFunction__SupportInterchangeAssignment_2_2_3 ) ) )
+            // InternalSignalDSL.g:5779:1: ( ( rule__SignalFunction__SupportInterchangeAssignment_2_2_3 ) )
+            {
+            // InternalSignalDSL.g:5779:1: ( ( rule__SignalFunction__SupportInterchangeAssignment_2_2_3 ) )
+            // InternalSignalDSL.g:5780:2: ( rule__SignalFunction__SupportInterchangeAssignment_2_2_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getSupportInterchangeAssignment_2_2_3()); 
+            }
+            // InternalSignalDSL.g:5781:2: ( rule__SignalFunction__SupportInterchangeAssignment_2_2_3 )
+            // InternalSignalDSL.g:5781:3: rule__SignalFunction__SupportInterchangeAssignment_2_2_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignalFunction__SupportInterchangeAssignment_2_2_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getSupportInterchangeAssignment_2_2_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__Group_2_2__3__Impl"
+
+
     // $ANTLR start "rule__XImportDeclaration__Group__0"
-    // InternalSignalDSL.g:5632:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
+    // InternalSignalDSL.g:5790:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
     public final void rule__XImportDeclaration__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5636:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
-            // InternalSignalDSL.g:5637:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
+            // InternalSignalDSL.g:5794:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
+            // InternalSignalDSL.g:5795:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_27);
             rule__XImportDeclaration__Group__0__Impl();
 
             state._fsp--;
@@ -19966,23 +20574,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0__Impl"
-    // InternalSignalDSL.g:5644:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:5802:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5648:1: ( ( () ) )
-            // InternalSignalDSL.g:5649:1: ( () )
+            // InternalSignalDSL.g:5806:1: ( ( () ) )
+            // InternalSignalDSL.g:5807:1: ( () )
             {
-            // InternalSignalDSL.g:5649:1: ( () )
-            // InternalSignalDSL.g:5650:2: ()
+            // InternalSignalDSL.g:5807:1: ( () )
+            // InternalSignalDSL.g:5808:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0()); 
             }
-            // InternalSignalDSL.g:5651:2: ()
-            // InternalSignalDSL.g:5651:3: 
+            // InternalSignalDSL.g:5809:2: ()
+            // InternalSignalDSL.g:5809:3: 
             {
             }
 
@@ -20007,16 +20615,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1"
-    // InternalSignalDSL.g:5659:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
+    // InternalSignalDSL.g:5817:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
     public final void rule__XImportDeclaration__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5663:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
-            // InternalSignalDSL.g:5664:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
+            // InternalSignalDSL.g:5821:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
+            // InternalSignalDSL.g:5822:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
             {
-            pushFollow(FOLLOW_29);
+            pushFollow(FOLLOW_28);
             rule__XImportDeclaration__Group__1__Impl();
 
             state._fsp--;
@@ -20045,22 +20653,22 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1__Impl"
-    // InternalSignalDSL.g:5671:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
+    // InternalSignalDSL.g:5829:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
     public final void rule__XImportDeclaration__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5675:1: ( ( 'import' ) )
-            // InternalSignalDSL.g:5676:1: ( 'import' )
+            // InternalSignalDSL.g:5833:1: ( ( 'import' ) )
+            // InternalSignalDSL.g:5834:1: ( 'import' )
             {
-            // InternalSignalDSL.g:5676:1: ( 'import' )
-            // InternalSignalDSL.g:5677:2: 'import'
+            // InternalSignalDSL.g:5834:1: ( 'import' )
+            // InternalSignalDSL.g:5835:2: 'import'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_1()); 
             }
-            match(input,47,FOLLOW_2); if (state.failed) return ;
+            match(input,48,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXImportDeclarationAccess().getImportKeyword_1()); 
             }
@@ -20086,16 +20694,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2"
-    // InternalSignalDSL.g:5686:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 ;
+    // InternalSignalDSL.g:5844:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 ;
     public final void rule__XImportDeclaration__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5690:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
-            // InternalSignalDSL.g:5691:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
+            // InternalSignalDSL.g:5848:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
+            // InternalSignalDSL.g:5849:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_29);
             rule__XImportDeclaration__Group__2__Impl();
 
             state._fsp--;
@@ -20124,23 +20732,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2__Impl"
-    // InternalSignalDSL.g:5698:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
+    // InternalSignalDSL.g:5856:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
     public final void rule__XImportDeclaration__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5702:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
-            // InternalSignalDSL.g:5703:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalSignalDSL.g:5860:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
+            // InternalSignalDSL.g:5861:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
             {
-            // InternalSignalDSL.g:5703:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
-            // InternalSignalDSL.g:5704:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalSignalDSL.g:5861:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalSignalDSL.g:5862:2: ( rule__XImportDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalSignalDSL.g:5705:2: ( rule__XImportDeclaration__Alternatives_2 )
-            // InternalSignalDSL.g:5705:3: rule__XImportDeclaration__Alternatives_2
+            // InternalSignalDSL.g:5863:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalSignalDSL.g:5863:3: rule__XImportDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2();
@@ -20175,14 +20783,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3"
-    // InternalSignalDSL.g:5713:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
+    // InternalSignalDSL.g:5871:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
     public final void rule__XImportDeclaration__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5717:1: ( rule__XImportDeclaration__Group__3__Impl )
-            // InternalSignalDSL.g:5718:2: rule__XImportDeclaration__Group__3__Impl
+            // InternalSignalDSL.g:5875:1: ( rule__XImportDeclaration__Group__3__Impl )
+            // InternalSignalDSL.g:5876:2: rule__XImportDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group__3__Impl();
@@ -20208,33 +20816,33 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3__Impl"
-    // InternalSignalDSL.g:5724:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
+    // InternalSignalDSL.g:5882:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
     public final void rule__XImportDeclaration__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5728:1: ( ( ( ';' )? ) )
-            // InternalSignalDSL.g:5729:1: ( ( ';' )? )
+            // InternalSignalDSL.g:5886:1: ( ( ( ';' )? ) )
+            // InternalSignalDSL.g:5887:1: ( ( ';' )? )
             {
-            // InternalSignalDSL.g:5729:1: ( ( ';' )? )
-            // InternalSignalDSL.g:5730:2: ( ';' )?
+            // InternalSignalDSL.g:5887:1: ( ( ';' )? )
+            // InternalSignalDSL.g:5888:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3()); 
             }
-            // InternalSignalDSL.g:5731:2: ( ';' )?
-            int alt59=2;
-            int LA59_0 = input.LA(1);
+            // InternalSignalDSL.g:5889:2: ( ';' )?
+            int alt62=2;
+            int LA62_0 = input.LA(1);
 
-            if ( (LA59_0==76) ) {
-                alt59=1;
+            if ( (LA62_0==78) ) {
+                alt62=1;
             }
-            switch (alt59) {
+            switch (alt62) {
                 case 1 :
-                    // InternalSignalDSL.g:5731:3: ';'
+                    // InternalSignalDSL.g:5889:3: ';'
                     {
-                    match(input,76,FOLLOW_2); if (state.failed) return ;
+                    match(input,78,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -20266,16 +20874,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0"
-    // InternalSignalDSL.g:5740:1: rule__XImportDeclaration__Group_2_0__0 : rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 ;
+    // InternalSignalDSL.g:5898:1: rule__XImportDeclaration__Group_2_0__0 : rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 ;
     public final void rule__XImportDeclaration__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5744:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
-            // InternalSignalDSL.g:5745:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
+            // InternalSignalDSL.g:5902:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
+            // InternalSignalDSL.g:5903:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
             {
-            pushFollow(FOLLOW_31);
+            pushFollow(FOLLOW_30);
             rule__XImportDeclaration__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -20304,23 +20912,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0__Impl"
-    // InternalSignalDSL.g:5752:1: rule__XImportDeclaration__Group_2_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) ;
+    // InternalSignalDSL.g:5910:1: rule__XImportDeclaration__Group_2_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) ;
     public final void rule__XImportDeclaration__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5756:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
-            // InternalSignalDSL.g:5757:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalSignalDSL.g:5914:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
+            // InternalSignalDSL.g:5915:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
             {
-            // InternalSignalDSL.g:5757:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
-            // InternalSignalDSL.g:5758:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalSignalDSL.g:5915:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalSignalDSL.g:5916:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0()); 
             }
-            // InternalSignalDSL.g:5759:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
-            // InternalSignalDSL.g:5759:3: rule__XImportDeclaration__StaticAssignment_2_0_0
+            // InternalSignalDSL.g:5917:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalSignalDSL.g:5917:3: rule__XImportDeclaration__StaticAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__StaticAssignment_2_0_0();
@@ -20355,16 +20963,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1"
-    // InternalSignalDSL.g:5767:1: rule__XImportDeclaration__Group_2_0__1 : rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 ;
+    // InternalSignalDSL.g:5925:1: rule__XImportDeclaration__Group_2_0__1 : rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 ;
     public final void rule__XImportDeclaration__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5771:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
-            // InternalSignalDSL.g:5772:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
+            // InternalSignalDSL.g:5929:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
+            // InternalSignalDSL.g:5930:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
             {
-            pushFollow(FOLLOW_31);
+            pushFollow(FOLLOW_30);
             rule__XImportDeclaration__Group_2_0__1__Impl();
 
             state._fsp--;
@@ -20393,31 +21001,31 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1__Impl"
-    // InternalSignalDSL.g:5779:1: rule__XImportDeclaration__Group_2_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) ;
+    // InternalSignalDSL.g:5937:1: rule__XImportDeclaration__Group_2_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) ;
     public final void rule__XImportDeclaration__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5783:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
-            // InternalSignalDSL.g:5784:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalSignalDSL.g:5941:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
+            // InternalSignalDSL.g:5942:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
             {
-            // InternalSignalDSL.g:5784:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
-            // InternalSignalDSL.g:5785:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            // InternalSignalDSL.g:5942:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalSignalDSL.g:5943:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1()); 
             }
-            // InternalSignalDSL.g:5786:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
-            int alt60=2;
-            int LA60_0 = input.LA(1);
+            // InternalSignalDSL.g:5944:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            int alt63=2;
+            int LA63_0 = input.LA(1);
 
-            if ( (LA60_0==48) ) {
-                alt60=1;
+            if ( (LA63_0==49) ) {
+                alt63=1;
             }
-            switch (alt60) {
+            switch (alt63) {
                 case 1 :
-                    // InternalSignalDSL.g:5786:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
+                    // InternalSignalDSL.g:5944:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ExtensionAssignment_2_0_1();
@@ -20455,16 +21063,16 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2"
-    // InternalSignalDSL.g:5794:1: rule__XImportDeclaration__Group_2_0__2 : rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 ;
+    // InternalSignalDSL.g:5952:1: rule__XImportDeclaration__Group_2_0__2 : rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 ;
     public final void rule__XImportDeclaration__Group_2_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5798:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
-            // InternalSignalDSL.g:5799:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
+            // InternalSignalDSL.g:5956:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
+            // InternalSignalDSL.g:5957:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
             {
-            pushFollow(FOLLOW_32);
+            pushFollow(FOLLOW_31);
             rule__XImportDeclaration__Group_2_0__2__Impl();
 
             state._fsp--;
@@ -20493,23 +21101,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2__Impl"
-    // InternalSignalDSL.g:5806:1: rule__XImportDeclaration__Group_2_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) ;
+    // InternalSignalDSL.g:5964:1: rule__XImportDeclaration__Group_2_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) ;
     public final void rule__XImportDeclaration__Group_2_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5810:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
-            // InternalSignalDSL.g:5811:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalSignalDSL.g:5968:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
+            // InternalSignalDSL.g:5969:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
             {
-            // InternalSignalDSL.g:5811:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
-            // InternalSignalDSL.g:5812:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalSignalDSL.g:5969:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalSignalDSL.g:5970:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2()); 
             }
-            // InternalSignalDSL.g:5813:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
-            // InternalSignalDSL.g:5813:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
+            // InternalSignalDSL.g:5971:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalSignalDSL.g:5971:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedTypeAssignment_2_0_2();
@@ -20544,14 +21152,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3"
-    // InternalSignalDSL.g:5821:1: rule__XImportDeclaration__Group_2_0__3 : rule__XImportDeclaration__Group_2_0__3__Impl ;
+    // InternalSignalDSL.g:5979:1: rule__XImportDeclaration__Group_2_0__3 : rule__XImportDeclaration__Group_2_0__3__Impl ;
     public final void rule__XImportDeclaration__Group_2_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5825:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
-            // InternalSignalDSL.g:5826:2: rule__XImportDeclaration__Group_2_0__3__Impl
+            // InternalSignalDSL.g:5983:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
+            // InternalSignalDSL.g:5984:2: rule__XImportDeclaration__Group_2_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_0__3__Impl();
@@ -20577,23 +21185,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3__Impl"
-    // InternalSignalDSL.g:5832:1: rule__XImportDeclaration__Group_2_0__3__Impl : ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) ;
+    // InternalSignalDSL.g:5990:1: rule__XImportDeclaration__Group_2_0__3__Impl : ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) ;
     public final void rule__XImportDeclaration__Group_2_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5836:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
-            // InternalSignalDSL.g:5837:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalSignalDSL.g:5994:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
+            // InternalSignalDSL.g:5995:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
             {
-            // InternalSignalDSL.g:5837:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
-            // InternalSignalDSL.g:5838:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalSignalDSL.g:5995:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalSignalDSL.g:5996:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3()); 
             }
-            // InternalSignalDSL.g:5839:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
-            // InternalSignalDSL.g:5839:3: rule__XImportDeclaration__Alternatives_2_0_3
+            // InternalSignalDSL.g:5997:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalSignalDSL.g:5997:3: rule__XImportDeclaration__Alternatives_2_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2_0_3();
@@ -20628,14 +21236,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0"
-    // InternalSignalDSL.g:5848:1: rule__XImportDeclaration__Group_2_3__0 : rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 ;
+    // InternalSignalDSL.g:6006:1: rule__XImportDeclaration__Group_2_3__0 : rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 ;
     public final void rule__XImportDeclaration__Group_2_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5852:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
-            // InternalSignalDSL.g:5853:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
+            // InternalSignalDSL.g:6010:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
+            // InternalSignalDSL.g:6011:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
             {
             pushFollow(FOLLOW_6);
             rule__XImportDeclaration__Group_2_3__0__Impl();
@@ -20666,23 +21274,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0__Impl"
-    // InternalSignalDSL.g:5860:1: rule__XImportDeclaration__Group_2_3__0__Impl : ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) ;
+    // InternalSignalDSL.g:6018:1: rule__XImportDeclaration__Group_2_3__0__Impl : ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) ;
     public final void rule__XImportDeclaration__Group_2_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5864:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
-            // InternalSignalDSL.g:5865:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalSignalDSL.g:6022:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
+            // InternalSignalDSL.g:6023:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
             {
-            // InternalSignalDSL.g:5865:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
-            // InternalSignalDSL.g:5866:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalSignalDSL.g:6023:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalSignalDSL.g:6024:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportAssignment_2_3_0()); 
             }
-            // InternalSignalDSL.g:5867:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
-            // InternalSignalDSL.g:5867:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
+            // InternalSignalDSL.g:6025:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalSignalDSL.g:6025:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__FqnImportAssignment_2_3_0();
@@ -20717,14 +21325,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1"
-    // InternalSignalDSL.g:5875:1: rule__XImportDeclaration__Group_2_3__1 : rule__XImportDeclaration__Group_2_3__1__Impl ;
+    // InternalSignalDSL.g:6033:1: rule__XImportDeclaration__Group_2_3__1 : rule__XImportDeclaration__Group_2_3__1__Impl ;
     public final void rule__XImportDeclaration__Group_2_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5879:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
-            // InternalSignalDSL.g:5880:2: rule__XImportDeclaration__Group_2_3__1__Impl
+            // InternalSignalDSL.g:6037:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
+            // InternalSignalDSL.g:6038:2: rule__XImportDeclaration__Group_2_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_3__1__Impl();
@@ -20750,23 +21358,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1__Impl"
-    // InternalSignalDSL.g:5886:1: rule__XImportDeclaration__Group_2_3__1__Impl : ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) ;
+    // InternalSignalDSL.g:6044:1: rule__XImportDeclaration__Group_2_3__1__Impl : ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) ;
     public final void rule__XImportDeclaration__Group_2_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5890:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
-            // InternalSignalDSL.g:5891:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalSignalDSL.g:6048:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
+            // InternalSignalDSL.g:6049:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
             {
-            // InternalSignalDSL.g:5891:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
-            // InternalSignalDSL.g:5892:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalSignalDSL.g:6049:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalSignalDSL.g:6050:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameAssignment_2_3_1()); 
             }
-            // InternalSignalDSL.g:5893:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
-            // InternalSignalDSL.g:5893:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
+            // InternalSignalDSL.g:6051:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalSignalDSL.g:6051:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1();
@@ -20801,16 +21409,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0"
-    // InternalSignalDSL.g:5902:1: rule__XAnnotation__Group__0 : rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 ;
+    // InternalSignalDSL.g:6060:1: rule__XAnnotation__Group__0 : rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 ;
     public final void rule__XAnnotation__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5906:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
-            // InternalSignalDSL.g:5907:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
+            // InternalSignalDSL.g:6064:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
+            // InternalSignalDSL.g:6065:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
             {
-            pushFollow(FOLLOW_33);
+            pushFollow(FOLLOW_32);
             rule__XAnnotation__Group__0__Impl();
 
             state._fsp--;
@@ -20839,23 +21447,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0__Impl"
-    // InternalSignalDSL.g:5914:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:6072:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
     public final void rule__XAnnotation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5918:1: ( ( () ) )
-            // InternalSignalDSL.g:5919:1: ( () )
+            // InternalSignalDSL.g:6076:1: ( ( () ) )
+            // InternalSignalDSL.g:6077:1: ( () )
             {
-            // InternalSignalDSL.g:5919:1: ( () )
-            // InternalSignalDSL.g:5920:2: ()
+            // InternalSignalDSL.g:6077:1: ( () )
+            // InternalSignalDSL.g:6078:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); 
             }
-            // InternalSignalDSL.g:5921:2: ()
-            // InternalSignalDSL.g:5921:3: 
+            // InternalSignalDSL.g:6079:2: ()
+            // InternalSignalDSL.g:6079:3: 
             {
             }
 
@@ -20880,14 +21488,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1"
-    // InternalSignalDSL.g:5929:1: rule__XAnnotation__Group__1 : rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 ;
+    // InternalSignalDSL.g:6087:1: rule__XAnnotation__Group__1 : rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 ;
     public final void rule__XAnnotation__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5933:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
-            // InternalSignalDSL.g:5934:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
+            // InternalSignalDSL.g:6091:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
+            // InternalSignalDSL.g:6092:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
             {
             pushFollow(FOLLOW_6);
             rule__XAnnotation__Group__1__Impl();
@@ -20918,22 +21526,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1__Impl"
-    // InternalSignalDSL.g:5941:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
+    // InternalSignalDSL.g:6099:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
     public final void rule__XAnnotation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5945:1: ( ( '@' ) )
-            // InternalSignalDSL.g:5946:1: ( '@' )
+            // InternalSignalDSL.g:6103:1: ( ( '@' ) )
+            // InternalSignalDSL.g:6104:1: ( '@' )
             {
-            // InternalSignalDSL.g:5946:1: ( '@' )
-            // InternalSignalDSL.g:5947:2: '@'
+            // InternalSignalDSL.g:6104:1: ( '@' )
+            // InternalSignalDSL.g:6105:2: '@'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
             }
@@ -20959,16 +21567,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2"
-    // InternalSignalDSL.g:5956:1: rule__XAnnotation__Group__2 : rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 ;
+    // InternalSignalDSL.g:6114:1: rule__XAnnotation__Group__2 : rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 ;
     public final void rule__XAnnotation__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5960:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
-            // InternalSignalDSL.g:5961:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
+            // InternalSignalDSL.g:6118:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
+            // InternalSignalDSL.g:6119:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_33);
             rule__XAnnotation__Group__2__Impl();
 
             state._fsp--;
@@ -20997,23 +21605,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2__Impl"
-    // InternalSignalDSL.g:5968:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
+    // InternalSignalDSL.g:6126:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
     public final void rule__XAnnotation__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5972:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
-            // InternalSignalDSL.g:5973:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalSignalDSL.g:6130:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
+            // InternalSignalDSL.g:6131:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
             {
-            // InternalSignalDSL.g:5973:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
-            // InternalSignalDSL.g:5974:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalSignalDSL.g:6131:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalSignalDSL.g:6132:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); 
             }
-            // InternalSignalDSL.g:5975:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
-            // InternalSignalDSL.g:5975:3: rule__XAnnotation__AnnotationTypeAssignment_2
+            // InternalSignalDSL.g:6133:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalSignalDSL.g:6133:3: rule__XAnnotation__AnnotationTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__AnnotationTypeAssignment_2();
@@ -21048,14 +21656,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3"
-    // InternalSignalDSL.g:5983:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
+    // InternalSignalDSL.g:6141:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
     public final void rule__XAnnotation__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5987:1: ( rule__XAnnotation__Group__3__Impl )
-            // InternalSignalDSL.g:5988:2: rule__XAnnotation__Group__3__Impl
+            // InternalSignalDSL.g:6145:1: ( rule__XAnnotation__Group__3__Impl )
+            // InternalSignalDSL.g:6146:2: rule__XAnnotation__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group__3__Impl();
@@ -21081,31 +21689,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3__Impl"
-    // InternalSignalDSL.g:5994:1: rule__XAnnotation__Group__3__Impl : ( ( rule__XAnnotation__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:6152:1: rule__XAnnotation__Group__3__Impl : ( ( rule__XAnnotation__Group_3__0 )? ) ;
     public final void rule__XAnnotation__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:5998:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
-            // InternalSignalDSL.g:5999:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalSignalDSL.g:6156:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
+            // InternalSignalDSL.g:6157:1: ( ( rule__XAnnotation__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:5999:1: ( ( rule__XAnnotation__Group_3__0 )? )
-            // InternalSignalDSL.g:6000:2: ( rule__XAnnotation__Group_3__0 )?
+            // InternalSignalDSL.g:6157:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalSignalDSL.g:6158:2: ( rule__XAnnotation__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:6001:2: ( rule__XAnnotation__Group_3__0 )?
-            int alt61=2;
-            int LA61_0 = input.LA(1);
+            // InternalSignalDSL.g:6159:2: ( rule__XAnnotation__Group_3__0 )?
+            int alt64=2;
+            int LA64_0 = input.LA(1);
 
-            if ( (LA61_0==78) ) {
-                alt61=1;
+            if ( (LA64_0==80) ) {
+                alt64=1;
             }
-            switch (alt61) {
+            switch (alt64) {
                 case 1 :
-                    // InternalSignalDSL.g:6001:3: rule__XAnnotation__Group_3__0
+                    // InternalSignalDSL.g:6159:3: rule__XAnnotation__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3__0();
@@ -21143,16 +21751,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0"
-    // InternalSignalDSL.g:6010:1: rule__XAnnotation__Group_3__0 : rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 ;
+    // InternalSignalDSL.g:6168:1: rule__XAnnotation__Group_3__0 : rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 ;
     public final void rule__XAnnotation__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6014:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
-            // InternalSignalDSL.g:6015:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
+            // InternalSignalDSL.g:6172:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
+            // InternalSignalDSL.g:6173:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
             {
-            pushFollow(FOLLOW_35);
+            pushFollow(FOLLOW_34);
             rule__XAnnotation__Group_3__0__Impl();
 
             state._fsp--;
@@ -21181,25 +21789,25 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0__Impl"
-    // InternalSignalDSL.g:6022:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
+    // InternalSignalDSL.g:6180:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
     public final void rule__XAnnotation__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6026:1: ( ( ( '(' ) ) )
-            // InternalSignalDSL.g:6027:1: ( ( '(' ) )
+            // InternalSignalDSL.g:6184:1: ( ( ( '(' ) ) )
+            // InternalSignalDSL.g:6185:1: ( ( '(' ) )
             {
-            // InternalSignalDSL.g:6027:1: ( ( '(' ) )
-            // InternalSignalDSL.g:6028:2: ( '(' )
+            // InternalSignalDSL.g:6185:1: ( ( '(' ) )
+            // InternalSignalDSL.g:6186:2: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); 
             }
-            // InternalSignalDSL.g:6029:2: ( '(' )
-            // InternalSignalDSL.g:6029:3: '('
+            // InternalSignalDSL.g:6187:2: ( '(' )
+            // InternalSignalDSL.g:6187:3: '('
             {
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -21228,16 +21836,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1"
-    // InternalSignalDSL.g:6037:1: rule__XAnnotation__Group_3__1 : rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 ;
+    // InternalSignalDSL.g:6195:1: rule__XAnnotation__Group_3__1 : rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 ;
     public final void rule__XAnnotation__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6041:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
-            // InternalSignalDSL.g:6042:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
+            // InternalSignalDSL.g:6199:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
+            // InternalSignalDSL.g:6200:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
             {
-            pushFollow(FOLLOW_35);
+            pushFollow(FOLLOW_34);
             rule__XAnnotation__Group_3__1__Impl();
 
             state._fsp--;
@@ -21266,31 +21874,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1__Impl"
-    // InternalSignalDSL.g:6049:1: rule__XAnnotation__Group_3__1__Impl : ( ( rule__XAnnotation__Alternatives_3_1 )? ) ;
+    // InternalSignalDSL.g:6207:1: rule__XAnnotation__Group_3__1__Impl : ( ( rule__XAnnotation__Alternatives_3_1 )? ) ;
     public final void rule__XAnnotation__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6053:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
-            // InternalSignalDSL.g:6054:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalSignalDSL.g:6211:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
+            // InternalSignalDSL.g:6212:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
             {
-            // InternalSignalDSL.g:6054:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
-            // InternalSignalDSL.g:6055:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            // InternalSignalDSL.g:6212:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalSignalDSL.g:6213:2: ( rule__XAnnotation__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); 
             }
-            // InternalSignalDSL.g:6056:2: ( rule__XAnnotation__Alternatives_3_1 )?
-            int alt62=2;
-            int LA62_0 = input.LA(1);
+            // InternalSignalDSL.g:6214:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            int alt65=2;
+            int LA65_0 = input.LA(1);
 
-            if ( ((LA62_0>=RULE_ID && LA62_0<=RULE_STRING)||LA62_0==27||(LA62_0>=34 && LA62_0<=35)||LA62_0==40||(LA62_0>=45 && LA62_0<=50)||LA62_0==62||(LA62_0>=77 && LA62_0<=78)||(LA62_0>=82 && LA62_0<=83)||LA62_0==86||LA62_0==88||(LA62_0>=91 && LA62_0<=99)||LA62_0==101||LA62_0==111) ) {
-                alt62=1;
+            if ( ((LA65_0>=RULE_ID && LA65_0<=RULE_STRING)||LA65_0==28||(LA65_0>=35 && LA65_0<=36)||LA65_0==41||(LA65_0>=46 && LA65_0<=51)||LA65_0==63||(LA65_0>=79 && LA65_0<=80)||(LA65_0>=84 && LA65_0<=85)||LA65_0==88||LA65_0==90||(LA65_0>=93 && LA65_0<=101)||LA65_0==103||LA65_0==115) ) {
+                alt65=1;
             }
-            switch (alt62) {
+            switch (alt65) {
                 case 1 :
-                    // InternalSignalDSL.g:6056:3: rule__XAnnotation__Alternatives_3_1
+                    // InternalSignalDSL.g:6214:3: rule__XAnnotation__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Alternatives_3_1();
@@ -21328,14 +21936,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2"
-    // InternalSignalDSL.g:6064:1: rule__XAnnotation__Group_3__2 : rule__XAnnotation__Group_3__2__Impl ;
+    // InternalSignalDSL.g:6222:1: rule__XAnnotation__Group_3__2 : rule__XAnnotation__Group_3__2__Impl ;
     public final void rule__XAnnotation__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6068:1: ( rule__XAnnotation__Group_3__2__Impl )
-            // InternalSignalDSL.g:6069:2: rule__XAnnotation__Group_3__2__Impl
+            // InternalSignalDSL.g:6226:1: ( rule__XAnnotation__Group_3__2__Impl )
+            // InternalSignalDSL.g:6227:2: rule__XAnnotation__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3__2__Impl();
@@ -21361,22 +21969,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2__Impl"
-    // InternalSignalDSL.g:6075:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:6233:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XAnnotation__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6079:1: ( ( ')' ) )
-            // InternalSignalDSL.g:6080:1: ( ')' )
+            // InternalSignalDSL.g:6237:1: ( ( ')' ) )
+            // InternalSignalDSL.g:6238:1: ( ')' )
             {
-            // InternalSignalDSL.g:6080:1: ( ')' )
-            // InternalSignalDSL.g:6081:2: ')'
+            // InternalSignalDSL.g:6238:1: ( ')' )
+            // InternalSignalDSL.g:6239:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
             }
@@ -21402,16 +22010,16 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0"
-    // InternalSignalDSL.g:6091:1: rule__XAnnotation__Group_3_1_0__0 : rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 ;
+    // InternalSignalDSL.g:6249:1: rule__XAnnotation__Group_3_1_0__0 : rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 ;
     public final void rule__XAnnotation__Group_3_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6095:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
-            // InternalSignalDSL.g:6096:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
+            // InternalSignalDSL.g:6253:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
+            // InternalSignalDSL.g:6254:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XAnnotation__Group_3_1_0__0__Impl();
 
             state._fsp--;
@@ -21440,23 +22048,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0__Impl"
-    // InternalSignalDSL.g:6103:1: rule__XAnnotation__Group_3_1_0__0__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) ;
+    // InternalSignalDSL.g:6261:1: rule__XAnnotation__Group_3_1_0__0__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) ;
     public final void rule__XAnnotation__Group_3_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6107:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
-            // InternalSignalDSL.g:6108:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalSignalDSL.g:6265:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
+            // InternalSignalDSL.g:6266:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
             {
-            // InternalSignalDSL.g:6108:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
-            // InternalSignalDSL.g:6109:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalSignalDSL.g:6266:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalSignalDSL.g:6267:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); 
             }
-            // InternalSignalDSL.g:6110:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
-            // InternalSignalDSL.g:6110:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
+            // InternalSignalDSL.g:6268:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalSignalDSL.g:6268:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0();
@@ -21491,14 +22099,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1"
-    // InternalSignalDSL.g:6118:1: rule__XAnnotation__Group_3_1_0__1 : rule__XAnnotation__Group_3_1_0__1__Impl ;
+    // InternalSignalDSL.g:6276:1: rule__XAnnotation__Group_3_1_0__1 : rule__XAnnotation__Group_3_1_0__1__Impl ;
     public final void rule__XAnnotation__Group_3_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6122:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
-            // InternalSignalDSL.g:6123:2: rule__XAnnotation__Group_3_1_0__1__Impl
+            // InternalSignalDSL.g:6280:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
+            // InternalSignalDSL.g:6281:2: rule__XAnnotation__Group_3_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0__1__Impl();
@@ -21524,37 +22132,37 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1__Impl"
-    // InternalSignalDSL.g:6129:1: rule__XAnnotation__Group_3_1_0__1__Impl : ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) ;
+    // InternalSignalDSL.g:6287:1: rule__XAnnotation__Group_3_1_0__1__Impl : ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) ;
     public final void rule__XAnnotation__Group_3_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6133:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
-            // InternalSignalDSL.g:6134:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalSignalDSL.g:6291:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
+            // InternalSignalDSL.g:6292:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
             {
-            // InternalSignalDSL.g:6134:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
-            // InternalSignalDSL.g:6135:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            // InternalSignalDSL.g:6292:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalSignalDSL.g:6293:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); 
             }
-            // InternalSignalDSL.g:6136:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
-            loop63:
+            // InternalSignalDSL.g:6294:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            loop66:
             do {
-                int alt63=2;
-                int LA63_0 = input.LA(1);
+                int alt66=2;
+                int LA66_0 = input.LA(1);
 
-                if ( (LA63_0==80) ) {
-                    alt63=1;
+                if ( (LA66_0==82) ) {
+                    alt66=1;
                 }
 
 
-                switch (alt63) {
+                switch (alt66) {
             	case 1 :
-            	    // InternalSignalDSL.g:6136:3: rule__XAnnotation__Group_3_1_0_1__0
+            	    // InternalSignalDSL.g:6294:3: rule__XAnnotation__Group_3_1_0_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XAnnotation__Group_3_1_0_1__0();
 
             	    state._fsp--;
@@ -21564,7 +22172,7 @@
             	    break;
 
             	default :
-            	    break loop63;
+            	    break loop66;
                 }
             } while (true);
 
@@ -21593,14 +22201,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0"
-    // InternalSignalDSL.g:6145:1: rule__XAnnotation__Group_3_1_0_1__0 : rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 ;
+    // InternalSignalDSL.g:6303:1: rule__XAnnotation__Group_3_1_0_1__0 : rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 ;
     public final void rule__XAnnotation__Group_3_1_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6149:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
-            // InternalSignalDSL.g:6150:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
+            // InternalSignalDSL.g:6307:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
+            // InternalSignalDSL.g:6308:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
             {
             pushFollow(FOLLOW_6);
             rule__XAnnotation__Group_3_1_0_1__0__Impl();
@@ -21631,22 +22239,22 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0__Impl"
-    // InternalSignalDSL.g:6157:1: rule__XAnnotation__Group_3_1_0_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:6315:1: rule__XAnnotation__Group_3_1_0_1__0__Impl : ( ',' ) ;
     public final void rule__XAnnotation__Group_3_1_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6161:1: ( ( ',' ) )
-            // InternalSignalDSL.g:6162:1: ( ',' )
+            // InternalSignalDSL.g:6319:1: ( ( ',' ) )
+            // InternalSignalDSL.g:6320:1: ( ',' )
             {
-            // InternalSignalDSL.g:6162:1: ( ',' )
-            // InternalSignalDSL.g:6163:2: ','
+            // InternalSignalDSL.g:6320:1: ( ',' )
+            // InternalSignalDSL.g:6321:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
             }
@@ -21672,14 +22280,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1"
-    // InternalSignalDSL.g:6172:1: rule__XAnnotation__Group_3_1_0_1__1 : rule__XAnnotation__Group_3_1_0_1__1__Impl ;
+    // InternalSignalDSL.g:6330:1: rule__XAnnotation__Group_3_1_0_1__1 : rule__XAnnotation__Group_3_1_0_1__1__Impl ;
     public final void rule__XAnnotation__Group_3_1_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6176:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
-            // InternalSignalDSL.g:6177:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
+            // InternalSignalDSL.g:6334:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
+            // InternalSignalDSL.g:6335:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0_1__1__Impl();
@@ -21705,23 +22313,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1__Impl"
-    // InternalSignalDSL.g:6183:1: rule__XAnnotation__Group_3_1_0_1__1__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) ;
+    // InternalSignalDSL.g:6341:1: rule__XAnnotation__Group_3_1_0_1__1__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) ;
     public final void rule__XAnnotation__Group_3_1_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6187:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
-            // InternalSignalDSL.g:6188:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalSignalDSL.g:6345:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
+            // InternalSignalDSL.g:6346:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
             {
-            // InternalSignalDSL.g:6188:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
-            // InternalSignalDSL.g:6189:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalSignalDSL.g:6346:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalSignalDSL.g:6347:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); 
             }
-            // InternalSignalDSL.g:6190:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
-            // InternalSignalDSL.g:6190:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
+            // InternalSignalDSL.g:6348:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalSignalDSL.g:6348:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1();
@@ -21756,16 +22364,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0"
-    // InternalSignalDSL.g:6199:1: rule__XAnnotationElementValuePair__Group__0 : rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 ;
+    // InternalSignalDSL.g:6357:1: rule__XAnnotationElementValuePair__Group__0 : rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 ;
     public final void rule__XAnnotationElementValuePair__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6203:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
-            // InternalSignalDSL.g:6204:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
+            // InternalSignalDSL.g:6361:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
+            // InternalSignalDSL.g:6362:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XAnnotationElementValuePair__Group__0__Impl();
 
             state._fsp--;
@@ -21794,23 +22402,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0__Impl"
-    // InternalSignalDSL.g:6211:1: rule__XAnnotationElementValuePair__Group__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) ;
+    // InternalSignalDSL.g:6369:1: rule__XAnnotationElementValuePair__Group__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6215:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
-            // InternalSignalDSL.g:6216:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalSignalDSL.g:6373:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
+            // InternalSignalDSL.g:6374:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
             {
-            // InternalSignalDSL.g:6216:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
-            // InternalSignalDSL.g:6217:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalSignalDSL.g:6374:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalSignalDSL.g:6375:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); 
             }
-            // InternalSignalDSL.g:6218:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
-            // InternalSignalDSL.g:6218:3: rule__XAnnotationElementValuePair__Group_0__0
+            // InternalSignalDSL.g:6376:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalSignalDSL.g:6376:3: rule__XAnnotationElementValuePair__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0();
@@ -21845,14 +22453,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1"
-    // InternalSignalDSL.g:6226:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
+    // InternalSignalDSL.g:6384:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
     public final void rule__XAnnotationElementValuePair__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6230:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
-            // InternalSignalDSL.g:6231:2: rule__XAnnotationElementValuePair__Group__1__Impl
+            // InternalSignalDSL.g:6388:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
+            // InternalSignalDSL.g:6389:2: rule__XAnnotationElementValuePair__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group__1__Impl();
@@ -21878,23 +22486,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1__Impl"
-    // InternalSignalDSL.g:6237:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
+    // InternalSignalDSL.g:6395:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6241:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
-            // InternalSignalDSL.g:6242:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalSignalDSL.g:6399:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
+            // InternalSignalDSL.g:6400:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
             {
-            // InternalSignalDSL.g:6242:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
-            // InternalSignalDSL.g:6243:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalSignalDSL.g:6400:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalSignalDSL.g:6401:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); 
             }
-            // InternalSignalDSL.g:6244:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
-            // InternalSignalDSL.g:6244:3: rule__XAnnotationElementValuePair__ValueAssignment_1
+            // InternalSignalDSL.g:6402:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalSignalDSL.g:6402:3: rule__XAnnotationElementValuePair__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ValueAssignment_1();
@@ -21929,14 +22537,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0"
-    // InternalSignalDSL.g:6253:1: rule__XAnnotationElementValuePair__Group_0__0 : rule__XAnnotationElementValuePair__Group_0__0__Impl ;
+    // InternalSignalDSL.g:6411:1: rule__XAnnotationElementValuePair__Group_0__0 : rule__XAnnotationElementValuePair__Group_0__0__Impl ;
     public final void rule__XAnnotationElementValuePair__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6257:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
-            // InternalSignalDSL.g:6258:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
+            // InternalSignalDSL.g:6415:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
+            // InternalSignalDSL.g:6416:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0__Impl();
@@ -21962,23 +22570,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0__Impl"
-    // InternalSignalDSL.g:6264:1: rule__XAnnotationElementValuePair__Group_0__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:6422:1: rule__XAnnotationElementValuePair__Group_0__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6268:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:6269:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalSignalDSL.g:6426:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:6427:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:6269:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
-            // InternalSignalDSL.g:6270:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalSignalDSL.g:6427:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalSignalDSL.g:6428:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:6271:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
-            // InternalSignalDSL.g:6271:3: rule__XAnnotationElementValuePair__Group_0_0__0
+            // InternalSignalDSL.g:6429:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalSignalDSL.g:6429:3: rule__XAnnotationElementValuePair__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__0();
@@ -22013,16 +22621,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0"
-    // InternalSignalDSL.g:6280:1: rule__XAnnotationElementValuePair__Group_0_0__0 : rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 ;
+    // InternalSignalDSL.g:6438:1: rule__XAnnotationElementValuePair__Group_0_0__0 : rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6284:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
-            // InternalSignalDSL.g:6285:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
+            // InternalSignalDSL.g:6442:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
+            // InternalSignalDSL.g:6443:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
             {
-            pushFollow(FOLLOW_39);
+            pushFollow(FOLLOW_38);
             rule__XAnnotationElementValuePair__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -22051,23 +22659,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:6292:1: rule__XAnnotationElementValuePair__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) ;
+    // InternalSignalDSL.g:6450:1: rule__XAnnotationElementValuePair__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6296:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
-            // InternalSignalDSL.g:6297:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalSignalDSL.g:6454:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
+            // InternalSignalDSL.g:6455:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
             {
-            // InternalSignalDSL.g:6297:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
-            // InternalSignalDSL.g:6298:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalSignalDSL.g:6455:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalSignalDSL.g:6456:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); 
             }
-            // InternalSignalDSL.g:6299:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
-            // InternalSignalDSL.g:6299:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
+            // InternalSignalDSL.g:6457:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalSignalDSL.g:6457:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ElementAssignment_0_0_0();
@@ -22102,14 +22710,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1"
-    // InternalSignalDSL.g:6307:1: rule__XAnnotationElementValuePair__Group_0_0__1 : rule__XAnnotationElementValuePair__Group_0_0__1__Impl ;
+    // InternalSignalDSL.g:6465:1: rule__XAnnotationElementValuePair__Group_0_0__1 : rule__XAnnotationElementValuePair__Group_0_0__1__Impl ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6311:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
-            // InternalSignalDSL.g:6312:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+            // InternalSignalDSL.g:6469:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
+            // InternalSignalDSL.g:6470:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__1__Impl();
@@ -22135,17 +22743,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1__Impl"
-    // InternalSignalDSL.g:6318:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
+    // InternalSignalDSL.g:6476:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6322:1: ( ( '=' ) )
-            // InternalSignalDSL.g:6323:1: ( '=' )
+            // InternalSignalDSL.g:6480:1: ( ( '=' ) )
+            // InternalSignalDSL.g:6481:1: ( '=' )
             {
-            // InternalSignalDSL.g:6323:1: ( '=' )
-            // InternalSignalDSL.g:6324:2: '='
+            // InternalSignalDSL.g:6481:1: ( '=' )
+            // InternalSignalDSL.g:6482:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); 
@@ -22176,16 +22784,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0"
-    // InternalSignalDSL.g:6334:1: rule__XAnnotationElementValueOrCommaList__Group_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 ;
+    // InternalSignalDSL.g:6492:1: rule__XAnnotationElementValueOrCommaList__Group_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6338:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
-            // InternalSignalDSL.g:6339:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
+            // InternalSignalDSL.g:6496:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
+            // InternalSignalDSL.g:6497:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
             {
-            pushFollow(FOLLOW_40);
+            pushFollow(FOLLOW_39);
             rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl();
 
             state._fsp--;
@@ -22214,23 +22822,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl"
-    // InternalSignalDSL.g:6346:1: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:6504:1: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6350:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:6351:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalSignalDSL.g:6508:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:6509:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:6351:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
-            // InternalSignalDSL.g:6352:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalSignalDSL.g:6509:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalSignalDSL.g:6510:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:6353:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
-            // InternalSignalDSL.g:6353:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
+            // InternalSignalDSL.g:6511:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalSignalDSL.g:6511:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0();
@@ -22265,16 +22873,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1"
-    // InternalSignalDSL.g:6361:1: rule__XAnnotationElementValueOrCommaList__Group_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 ;
+    // InternalSignalDSL.g:6519:1: rule__XAnnotationElementValueOrCommaList__Group_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6365:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
-            // InternalSignalDSL.g:6366:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
+            // InternalSignalDSL.g:6523:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
+            // InternalSignalDSL.g:6524:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
             {
-            pushFollow(FOLLOW_40);
+            pushFollow(FOLLOW_39);
             rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl();
 
             state._fsp--;
@@ -22303,31 +22911,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl"
-    // InternalSignalDSL.g:6373:1: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) ;
+    // InternalSignalDSL.g:6531:1: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6377:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
-            // InternalSignalDSL.g:6378:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalSignalDSL.g:6535:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
+            // InternalSignalDSL.g:6536:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
             {
-            // InternalSignalDSL.g:6378:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
-            // InternalSignalDSL.g:6379:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            // InternalSignalDSL.g:6536:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalSignalDSL.g:6537:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); 
             }
-            // InternalSignalDSL.g:6380:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
-            int alt64=2;
-            int LA64_0 = input.LA(1);
+            // InternalSignalDSL.g:6538:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            int alt67=2;
+            int LA67_0 = input.LA(1);
 
-            if ( ((LA64_0>=RULE_ID && LA64_0<=RULE_STRING)||LA64_0==27||(LA64_0>=34 && LA64_0<=35)||LA64_0==40||(LA64_0>=45 && LA64_0<=50)||LA64_0==62||(LA64_0>=77 && LA64_0<=78)||(LA64_0>=82 && LA64_0<=83)||LA64_0==86||LA64_0==88||(LA64_0>=91 && LA64_0<=99)||LA64_0==101||LA64_0==111) ) {
-                alt64=1;
+            if ( ((LA67_0>=RULE_ID && LA67_0<=RULE_STRING)||LA67_0==28||(LA67_0>=35 && LA67_0<=36)||LA67_0==41||(LA67_0>=46 && LA67_0<=51)||LA67_0==63||(LA67_0>=79 && LA67_0<=80)||(LA67_0>=84 && LA67_0<=85)||LA67_0==88||LA67_0==90||(LA67_0>=93 && LA67_0<=101)||LA67_0==103||LA67_0==115) ) {
+                alt67=1;
             }
-            switch (alt64) {
+            switch (alt67) {
                 case 1 :
-                    // InternalSignalDSL.g:6380:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
+                    // InternalSignalDSL.g:6538:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0_1__0();
@@ -22365,14 +22973,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2"
-    // InternalSignalDSL.g:6388:1: rule__XAnnotationElementValueOrCommaList__Group_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl ;
+    // InternalSignalDSL.g:6546:1: rule__XAnnotationElementValueOrCommaList__Group_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6392:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
-            // InternalSignalDSL.g:6393:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+            // InternalSignalDSL.g:6550:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
+            // InternalSignalDSL.g:6551:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl();
@@ -22398,22 +23006,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl"
-    // InternalSignalDSL.g:6399:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
+    // InternalSignalDSL.g:6557:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6403:1: ( ( ']' ) )
-            // InternalSignalDSL.g:6404:1: ( ']' )
+            // InternalSignalDSL.g:6561:1: ( ( ']' ) )
+            // InternalSignalDSL.g:6562:1: ( ']' )
             {
-            // InternalSignalDSL.g:6404:1: ( ']' )
-            // InternalSignalDSL.g:6405:2: ']'
+            // InternalSignalDSL.g:6562:1: ( ']' )
+            // InternalSignalDSL.g:6563:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,83,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
             }
@@ -22439,14 +23047,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0"
-    // InternalSignalDSL.g:6415:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl ;
+    // InternalSignalDSL.g:6573:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6419:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
-            // InternalSignalDSL.g:6420:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+            // InternalSignalDSL.g:6577:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
+            // InternalSignalDSL.g:6578:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl();
@@ -22472,23 +23080,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:6426:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) ;
+    // InternalSignalDSL.g:6584:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6430:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
-            // InternalSignalDSL.g:6431:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalSignalDSL.g:6588:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
+            // InternalSignalDSL.g:6589:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
             {
-            // InternalSignalDSL.g:6431:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
-            // InternalSignalDSL.g:6432:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalSignalDSL.g:6589:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalSignalDSL.g:6590:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); 
             }
-            // InternalSignalDSL.g:6433:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
-            // InternalSignalDSL.g:6433:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
+            // InternalSignalDSL.g:6591:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalSignalDSL.g:6591:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0();
@@ -22523,16 +23131,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0"
-    // InternalSignalDSL.g:6442:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 ;
+    // InternalSignalDSL.g:6600:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6446:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
-            // InternalSignalDSL.g:6447:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+            // InternalSignalDSL.g:6604:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
+            // InternalSignalDSL.g:6605:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
             {
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_40);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl();
 
             state._fsp--;
@@ -22561,23 +23169,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl"
-    // InternalSignalDSL.g:6454:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:6612:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl : ( () ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6458:1: ( ( () ) )
-            // InternalSignalDSL.g:6459:1: ( () )
+            // InternalSignalDSL.g:6616:1: ( ( () ) )
+            // InternalSignalDSL.g:6617:1: ( () )
             {
-            // InternalSignalDSL.g:6459:1: ( () )
-            // InternalSignalDSL.g:6460:2: ()
+            // InternalSignalDSL.g:6617:1: ( () )
+            // InternalSignalDSL.g:6618:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalSignalDSL.g:6461:2: ()
-            // InternalSignalDSL.g:6461:3: 
+            // InternalSignalDSL.g:6619:2: ()
+            // InternalSignalDSL.g:6619:3: 
             {
             }
 
@@ -22602,16 +23210,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1"
-    // InternalSignalDSL.g:6469:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 ;
+    // InternalSignalDSL.g:6627:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6473:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
-            // InternalSignalDSL.g:6474:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+            // InternalSignalDSL.g:6631:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
+            // InternalSignalDSL.g:6632:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
             {
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_41);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl();
 
             state._fsp--;
@@ -22640,22 +23248,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl"
-    // InternalSignalDSL.g:6481:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalSignalDSL.g:6639:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl : ( '#' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6485:1: ( ( '#' ) )
-            // InternalSignalDSL.g:6486:1: ( '#' )
+            // InternalSignalDSL.g:6643:1: ( ( '#' ) )
+            // InternalSignalDSL.g:6644:1: ( '#' )
             {
-            // InternalSignalDSL.g:6486:1: ( '#' )
-            // InternalSignalDSL.g:6487:2: '#'
+            // InternalSignalDSL.g:6644:1: ( '#' )
+            // InternalSignalDSL.g:6645:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
             }
-            match(input,82,FOLLOW_2); if (state.failed) return ;
+            match(input,84,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
             }
@@ -22681,14 +23289,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2"
-    // InternalSignalDSL.g:6496:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl ;
+    // InternalSignalDSL.g:6654:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6500:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
-            // InternalSignalDSL.g:6501:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+            // InternalSignalDSL.g:6658:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
+            // InternalSignalDSL.g:6659:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl();
@@ -22714,22 +23322,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl"
-    // InternalSignalDSL.g:6507:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalSignalDSL.g:6665:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl : ( '[' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6511:1: ( ( '[' ) )
-            // InternalSignalDSL.g:6512:1: ( '[' )
+            // InternalSignalDSL.g:6669:1: ( ( '[' ) )
+            // InternalSignalDSL.g:6670:1: ( '[' )
             {
-            // InternalSignalDSL.g:6512:1: ( '[' )
-            // InternalSignalDSL.g:6513:2: '['
+            // InternalSignalDSL.g:6670:1: ( '[' )
+            // InternalSignalDSL.g:6671:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
-            match(input,83,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
@@ -22755,16 +23363,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0"
-    // InternalSignalDSL.g:6523:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 ;
+    // InternalSignalDSL.g:6681:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6527:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
-            // InternalSignalDSL.g:6528:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+            // InternalSignalDSL.g:6685:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
+            // InternalSignalDSL.g:6686:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl();
 
             state._fsp--;
@@ -22793,23 +23401,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl"
-    // InternalSignalDSL.g:6535:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) ;
+    // InternalSignalDSL.g:6693:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6539:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
-            // InternalSignalDSL.g:6540:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalSignalDSL.g:6697:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
+            // InternalSignalDSL.g:6698:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
             {
-            // InternalSignalDSL.g:6540:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
-            // InternalSignalDSL.g:6541:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalSignalDSL.g:6698:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalSignalDSL.g:6699:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalSignalDSL.g:6542:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
-            // InternalSignalDSL.g:6542:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
+            // InternalSignalDSL.g:6700:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalSignalDSL.g:6700:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0();
@@ -22844,14 +23452,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1"
-    // InternalSignalDSL.g:6550:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl ;
+    // InternalSignalDSL.g:6708:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6554:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
-            // InternalSignalDSL.g:6555:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
+            // InternalSignalDSL.g:6712:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
+            // InternalSignalDSL.g:6713:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl();
@@ -22877,37 +23485,37 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl"
-    // InternalSignalDSL.g:6561:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) ;
+    // InternalSignalDSL.g:6719:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6565:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
-            // InternalSignalDSL.g:6566:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalSignalDSL.g:6723:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
+            // InternalSignalDSL.g:6724:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
             {
-            // InternalSignalDSL.g:6566:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
-            // InternalSignalDSL.g:6567:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            // InternalSignalDSL.g:6724:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalSignalDSL.g:6725:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); 
             }
-            // InternalSignalDSL.g:6568:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
-            loop65:
+            // InternalSignalDSL.g:6726:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            loop68:
             do {
-                int alt65=2;
-                int LA65_0 = input.LA(1);
+                int alt68=2;
+                int LA68_0 = input.LA(1);
 
-                if ( (LA65_0==80) ) {
-                    alt65=1;
+                if ( (LA68_0==82) ) {
+                    alt68=1;
                 }
 
 
-                switch (alt65) {
+                switch (alt68) {
             	case 1 :
-            	    // InternalSignalDSL.g:6568:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
+            	    // InternalSignalDSL.g:6726:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0();
 
             	    state._fsp--;
@@ -22917,7 +23525,7 @@
             	    break;
 
             	default :
-            	    break loop65;
+            	    break loop68;
                 }
             } while (true);
 
@@ -22946,16 +23554,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0"
-    // InternalSignalDSL.g:6577:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 ;
+    // InternalSignalDSL.g:6735:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6581:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
-            // InternalSignalDSL.g:6582:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
+            // InternalSignalDSL.g:6739:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
+            // InternalSignalDSL.g:6740:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl();
 
             state._fsp--;
@@ -22984,22 +23592,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl"
-    // InternalSignalDSL.g:6589:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:6747:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6593:1: ( ( ',' ) )
-            // InternalSignalDSL.g:6594:1: ( ',' )
+            // InternalSignalDSL.g:6751:1: ( ( ',' ) )
+            // InternalSignalDSL.g:6752:1: ( ',' )
             {
-            // InternalSignalDSL.g:6594:1: ( ',' )
-            // InternalSignalDSL.g:6595:2: ','
+            // InternalSignalDSL.g:6752:1: ( ',' )
+            // InternalSignalDSL.g:6753:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -23025,14 +23633,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1"
-    // InternalSignalDSL.g:6604:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl ;
+    // InternalSignalDSL.g:6762:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6608:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
-            // InternalSignalDSL.g:6609:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
+            // InternalSignalDSL.g:6766:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
+            // InternalSignalDSL.g:6767:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl();
@@ -23058,23 +23666,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl"
-    // InternalSignalDSL.g:6615:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalSignalDSL.g:6773:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6619:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalSignalDSL.g:6620:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalSignalDSL.g:6777:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalSignalDSL.g:6778:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalSignalDSL.g:6620:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
-            // InternalSignalDSL.g:6621:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalSignalDSL.g:6778:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalSignalDSL.g:6779:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalSignalDSL.g:6622:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
-            // InternalSignalDSL.g:6622:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
+            // InternalSignalDSL.g:6780:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalSignalDSL.g:6780:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1();
@@ -23109,16 +23717,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0"
-    // InternalSignalDSL.g:6631:1: rule__XAnnotationElementValueOrCommaList__Group_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 ;
+    // InternalSignalDSL.g:6789:1: rule__XAnnotationElementValueOrCommaList__Group_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6635:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
-            // InternalSignalDSL.g:6636:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
+            // InternalSignalDSL.g:6793:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
+            // InternalSignalDSL.g:6794:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl();
 
             state._fsp--;
@@ -23147,17 +23755,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl"
-    // InternalSignalDSL.g:6643:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:6801:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6647:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:6648:1: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:6805:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:6806:1: ( ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:6648:1: ( ruleXAnnotationOrExpression )
-            // InternalSignalDSL.g:6649:2: ruleXAnnotationOrExpression
+            // InternalSignalDSL.g:6806:1: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:6807:2: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
@@ -23192,14 +23800,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1"
-    // InternalSignalDSL.g:6658:1: rule__XAnnotationElementValueOrCommaList__Group_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl ;
+    // InternalSignalDSL.g:6816:1: rule__XAnnotationElementValueOrCommaList__Group_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6662:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
-            // InternalSignalDSL.g:6663:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
+            // InternalSignalDSL.g:6820:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
+            // InternalSignalDSL.g:6821:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl();
@@ -23225,31 +23833,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl"
-    // InternalSignalDSL.g:6669:1: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) ;
+    // InternalSignalDSL.g:6827:1: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6673:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
-            // InternalSignalDSL.g:6674:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalSignalDSL.g:6831:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
+            // InternalSignalDSL.g:6832:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
             {
-            // InternalSignalDSL.g:6674:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
-            // InternalSignalDSL.g:6675:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            // InternalSignalDSL.g:6832:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalSignalDSL.g:6833:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); 
             }
-            // InternalSignalDSL.g:6676:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
-            int alt66=2;
-            int LA66_0 = input.LA(1);
+            // InternalSignalDSL.g:6834:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            int alt69=2;
+            int LA69_0 = input.LA(1);
 
-            if ( (LA66_0==80) ) {
-                alt66=1;
+            if ( (LA69_0==82) ) {
+                alt69=1;
             }
-            switch (alt66) {
+            switch (alt69) {
                 case 1 :
-                    // InternalSignalDSL.g:6676:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
+                    // InternalSignalDSL.g:6834:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1_1__0();
@@ -23287,16 +23895,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0"
-    // InternalSignalDSL.g:6685:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 ;
+    // InternalSignalDSL.g:6843:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6689:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
-            // InternalSignalDSL.g:6690:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
+            // InternalSignalDSL.g:6847:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
+            // InternalSignalDSL.g:6848:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -23325,23 +23933,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl"
-    // InternalSignalDSL.g:6697:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:6855:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6701:1: ( ( () ) )
-            // InternalSignalDSL.g:6702:1: ( () )
+            // InternalSignalDSL.g:6859:1: ( ( () ) )
+            // InternalSignalDSL.g:6860:1: ( () )
             {
-            // InternalSignalDSL.g:6702:1: ( () )
-            // InternalSignalDSL.g:6703:2: ()
+            // InternalSignalDSL.g:6860:1: ( () )
+            // InternalSignalDSL.g:6861:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); 
             }
-            // InternalSignalDSL.g:6704:2: ()
-            // InternalSignalDSL.g:6704:3: 
+            // InternalSignalDSL.g:6862:2: ()
+            // InternalSignalDSL.g:6862:3: 
             {
             }
 
@@ -23366,14 +23974,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1"
-    // InternalSignalDSL.g:6712:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl ;
+    // InternalSignalDSL.g:6870:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6716:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
-            // InternalSignalDSL.g:6717:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
+            // InternalSignalDSL.g:6874:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
+            // InternalSignalDSL.g:6875:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl();
@@ -23399,28 +24007,28 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl"
-    // InternalSignalDSL.g:6723:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) ;
+    // InternalSignalDSL.g:6881:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6727:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
-            // InternalSignalDSL.g:6728:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalSignalDSL.g:6885:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
+            // InternalSignalDSL.g:6886:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
             {
-            // InternalSignalDSL.g:6728:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
-            // InternalSignalDSL.g:6729:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalSignalDSL.g:6886:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalSignalDSL.g:6887:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
             {
-            // InternalSignalDSL.g:6729:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
-            // InternalSignalDSL.g:6730:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalSignalDSL.g:6887:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
+            // InternalSignalDSL.g:6888:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalSignalDSL.g:6731:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
-            // InternalSignalDSL.g:6731:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            // InternalSignalDSL.g:6889:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalSignalDSL.g:6889:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             {
-            pushFollow(FOLLOW_37);
+            pushFollow(FOLLOW_36);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
 
             state._fsp--;
@@ -23434,28 +24042,28 @@
 
             }
 
-            // InternalSignalDSL.g:6734:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
-            // InternalSignalDSL.g:6735:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            // InternalSignalDSL.g:6892:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalSignalDSL.g:6893:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalSignalDSL.g:6736:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
-            loop67:
+            // InternalSignalDSL.g:6894:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            loop70:
             do {
-                int alt67=2;
-                int LA67_0 = input.LA(1);
+                int alt70=2;
+                int LA70_0 = input.LA(1);
 
-                if ( (LA67_0==80) ) {
-                    alt67=1;
+                if ( (LA70_0==82) ) {
+                    alt70=1;
                 }
 
 
-                switch (alt67) {
+                switch (alt70) {
             	case 1 :
-            	    // InternalSignalDSL.g:6736:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            	    // InternalSignalDSL.g:6894:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
 
             	    state._fsp--;
@@ -23465,7 +24073,7 @@
             	    break;
 
             	default :
-            	    break loop67;
+            	    break loop70;
                 }
             } while (true);
 
@@ -23497,16 +24105,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0"
-    // InternalSignalDSL.g:6746:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 ;
+    // InternalSignalDSL.g:6904:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6750:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
-            // InternalSignalDSL.g:6751:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
+            // InternalSignalDSL.g:6908:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
+            // InternalSignalDSL.g:6909:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl();
 
             state._fsp--;
@@ -23535,22 +24143,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl"
-    // InternalSignalDSL.g:6758:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:6916:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6762:1: ( ( ',' ) )
-            // InternalSignalDSL.g:6763:1: ( ',' )
+            // InternalSignalDSL.g:6920:1: ( ( ',' ) )
+            // InternalSignalDSL.g:6921:1: ( ',' )
             {
-            // InternalSignalDSL.g:6763:1: ( ',' )
-            // InternalSignalDSL.g:6764:2: ','
+            // InternalSignalDSL.g:6921:1: ( ',' )
+            // InternalSignalDSL.g:6922:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
             }
@@ -23576,14 +24184,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1"
-    // InternalSignalDSL.g:6773:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl ;
+    // InternalSignalDSL.g:6931:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6777:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
-            // InternalSignalDSL.g:6778:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
+            // InternalSignalDSL.g:6935:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
+            // InternalSignalDSL.g:6936:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl();
@@ -23609,23 +24217,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl"
-    // InternalSignalDSL.g:6784:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) ;
+    // InternalSignalDSL.g:6942:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6788:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
-            // InternalSignalDSL.g:6789:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalSignalDSL.g:6946:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
+            // InternalSignalDSL.g:6947:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
             {
-            // InternalSignalDSL.g:6789:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
-            // InternalSignalDSL.g:6790:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalSignalDSL.g:6947:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalSignalDSL.g:6948:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); 
             }
-            // InternalSignalDSL.g:6791:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
-            // InternalSignalDSL.g:6791:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
+            // InternalSignalDSL.g:6949:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalSignalDSL.g:6949:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1();
@@ -23660,16 +24268,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0"
-    // InternalSignalDSL.g:6800:1: rule__XAnnotationElementValue__Group_0__0 : rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 ;
+    // InternalSignalDSL.g:6958:1: rule__XAnnotationElementValue__Group_0__0 : rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 ;
     public final void rule__XAnnotationElementValue__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6804:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
-            // InternalSignalDSL.g:6805:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
+            // InternalSignalDSL.g:6962:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
+            // InternalSignalDSL.g:6963:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
             {
-            pushFollow(FOLLOW_40);
+            pushFollow(FOLLOW_39);
             rule__XAnnotationElementValue__Group_0__0__Impl();
 
             state._fsp--;
@@ -23698,23 +24306,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0__Impl"
-    // InternalSignalDSL.g:6812:1: rule__XAnnotationElementValue__Group_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:6970:1: rule__XAnnotationElementValue__Group_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValue__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6816:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:6817:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalSignalDSL.g:6974:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:6975:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:6817:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
-            // InternalSignalDSL.g:6818:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalSignalDSL.g:6975:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalSignalDSL.g:6976:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:6819:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
-            // InternalSignalDSL.g:6819:3: rule__XAnnotationElementValue__Group_0_0__0
+            // InternalSignalDSL.g:6977:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalSignalDSL.g:6977:3: rule__XAnnotationElementValue__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0();
@@ -23749,16 +24357,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1"
-    // InternalSignalDSL.g:6827:1: rule__XAnnotationElementValue__Group_0__1 : rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 ;
+    // InternalSignalDSL.g:6985:1: rule__XAnnotationElementValue__Group_0__1 : rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 ;
     public final void rule__XAnnotationElementValue__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6831:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
-            // InternalSignalDSL.g:6832:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
+            // InternalSignalDSL.g:6989:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
+            // InternalSignalDSL.g:6990:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
             {
-            pushFollow(FOLLOW_40);
+            pushFollow(FOLLOW_39);
             rule__XAnnotationElementValue__Group_0__1__Impl();
 
             state._fsp--;
@@ -23787,31 +24395,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1__Impl"
-    // InternalSignalDSL.g:6839:1: rule__XAnnotationElementValue__Group_0__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) ;
+    // InternalSignalDSL.g:6997:1: rule__XAnnotationElementValue__Group_0__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) ;
     public final void rule__XAnnotationElementValue__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6843:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
-            // InternalSignalDSL.g:6844:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalSignalDSL.g:7001:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
+            // InternalSignalDSL.g:7002:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
             {
-            // InternalSignalDSL.g:6844:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
-            // InternalSignalDSL.g:6845:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            // InternalSignalDSL.g:7002:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalSignalDSL.g:7003:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); 
             }
-            // InternalSignalDSL.g:6846:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
-            int alt68=2;
-            int LA68_0 = input.LA(1);
+            // InternalSignalDSL.g:7004:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            int alt71=2;
+            int LA71_0 = input.LA(1);
 
-            if ( ((LA68_0>=RULE_ID && LA68_0<=RULE_STRING)||LA68_0==27||(LA68_0>=34 && LA68_0<=35)||LA68_0==40||(LA68_0>=45 && LA68_0<=50)||LA68_0==62||(LA68_0>=77 && LA68_0<=78)||(LA68_0>=82 && LA68_0<=83)||LA68_0==86||LA68_0==88||(LA68_0>=91 && LA68_0<=99)||LA68_0==101||LA68_0==111) ) {
-                alt68=1;
+            if ( ((LA71_0>=RULE_ID && LA71_0<=RULE_STRING)||LA71_0==28||(LA71_0>=35 && LA71_0<=36)||LA71_0==41||(LA71_0>=46 && LA71_0<=51)||LA71_0==63||(LA71_0>=79 && LA71_0<=80)||(LA71_0>=84 && LA71_0<=85)||LA71_0==88||LA71_0==90||(LA71_0>=93 && LA71_0<=101)||LA71_0==103||LA71_0==115) ) {
+                alt71=1;
             }
-            switch (alt68) {
+            switch (alt71) {
                 case 1 :
-                    // InternalSignalDSL.g:6846:3: rule__XAnnotationElementValue__Group_0_1__0
+                    // InternalSignalDSL.g:7004:3: rule__XAnnotationElementValue__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0_1__0();
@@ -23849,14 +24457,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2"
-    // InternalSignalDSL.g:6854:1: rule__XAnnotationElementValue__Group_0__2 : rule__XAnnotationElementValue__Group_0__2__Impl ;
+    // InternalSignalDSL.g:7012:1: rule__XAnnotationElementValue__Group_0__2 : rule__XAnnotationElementValue__Group_0__2__Impl ;
     public final void rule__XAnnotationElementValue__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6858:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
-            // InternalSignalDSL.g:6859:2: rule__XAnnotationElementValue__Group_0__2__Impl
+            // InternalSignalDSL.g:7016:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
+            // InternalSignalDSL.g:7017:2: rule__XAnnotationElementValue__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0__2__Impl();
@@ -23882,22 +24490,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2__Impl"
-    // InternalSignalDSL.g:6865:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
+    // InternalSignalDSL.g:7023:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValue__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6869:1: ( ( ']' ) )
-            // InternalSignalDSL.g:6870:1: ( ']' )
+            // InternalSignalDSL.g:7027:1: ( ( ']' ) )
+            // InternalSignalDSL.g:7028:1: ( ']' )
             {
-            // InternalSignalDSL.g:6870:1: ( ']' )
-            // InternalSignalDSL.g:6871:2: ']'
+            // InternalSignalDSL.g:7028:1: ( ']' )
+            // InternalSignalDSL.g:7029:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,83,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
             }
@@ -23923,14 +24531,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0"
-    // InternalSignalDSL.g:6881:1: rule__XAnnotationElementValue__Group_0_0__0 : rule__XAnnotationElementValue__Group_0_0__0__Impl ;
+    // InternalSignalDSL.g:7039:1: rule__XAnnotationElementValue__Group_0_0__0 : rule__XAnnotationElementValue__Group_0_0__0__Impl ;
     public final void rule__XAnnotationElementValue__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6885:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
-            // InternalSignalDSL.g:6886:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
+            // InternalSignalDSL.g:7043:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
+            // InternalSignalDSL.g:7044:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0__Impl();
@@ -23956,23 +24564,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:6892:1: rule__XAnnotationElementValue__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) ;
+    // InternalSignalDSL.g:7050:1: rule__XAnnotationElementValue__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValue__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6896:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
-            // InternalSignalDSL.g:6897:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalSignalDSL.g:7054:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
+            // InternalSignalDSL.g:7055:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
             {
-            // InternalSignalDSL.g:6897:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
-            // InternalSignalDSL.g:6898:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalSignalDSL.g:7055:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalSignalDSL.g:7056:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); 
             }
-            // InternalSignalDSL.g:6899:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
-            // InternalSignalDSL.g:6899:3: rule__XAnnotationElementValue__Group_0_0_0__0
+            // InternalSignalDSL.g:7057:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalSignalDSL.g:7057:3: rule__XAnnotationElementValue__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__0();
@@ -24007,16 +24615,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0"
-    // InternalSignalDSL.g:6908:1: rule__XAnnotationElementValue__Group_0_0_0__0 : rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 ;
+    // InternalSignalDSL.g:7066:1: rule__XAnnotationElementValue__Group_0_0_0__0 : rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6912:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
-            // InternalSignalDSL.g:6913:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
+            // InternalSignalDSL.g:7070:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
+            // InternalSignalDSL.g:7071:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
             {
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_40);
             rule__XAnnotationElementValue__Group_0_0_0__0__Impl();
 
             state._fsp--;
@@ -24045,23 +24653,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0__Impl"
-    // InternalSignalDSL.g:6920:1: rule__XAnnotationElementValue__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:7078:1: rule__XAnnotationElementValue__Group_0_0_0__0__Impl : ( () ) ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6924:1: ( ( () ) )
-            // InternalSignalDSL.g:6925:1: ( () )
+            // InternalSignalDSL.g:7082:1: ( ( () ) )
+            // InternalSignalDSL.g:7083:1: ( () )
             {
-            // InternalSignalDSL.g:6925:1: ( () )
-            // InternalSignalDSL.g:6926:2: ()
+            // InternalSignalDSL.g:7083:1: ( () )
+            // InternalSignalDSL.g:7084:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalSignalDSL.g:6927:2: ()
-            // InternalSignalDSL.g:6927:3: 
+            // InternalSignalDSL.g:7085:2: ()
+            // InternalSignalDSL.g:7085:3: 
             {
             }
 
@@ -24086,16 +24694,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1"
-    // InternalSignalDSL.g:6935:1: rule__XAnnotationElementValue__Group_0_0_0__1 : rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 ;
+    // InternalSignalDSL.g:7093:1: rule__XAnnotationElementValue__Group_0_0_0__1 : rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6939:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
-            // InternalSignalDSL.g:6940:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
+            // InternalSignalDSL.g:7097:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
+            // InternalSignalDSL.g:7098:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
             {
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_41);
             rule__XAnnotationElementValue__Group_0_0_0__1__Impl();
 
             state._fsp--;
@@ -24124,22 +24732,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1__Impl"
-    // InternalSignalDSL.g:6947:1: rule__XAnnotationElementValue__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalSignalDSL.g:7105:1: rule__XAnnotationElementValue__Group_0_0_0__1__Impl : ( '#' ) ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6951:1: ( ( '#' ) )
-            // InternalSignalDSL.g:6952:1: ( '#' )
+            // InternalSignalDSL.g:7109:1: ( ( '#' ) )
+            // InternalSignalDSL.g:7110:1: ( '#' )
             {
-            // InternalSignalDSL.g:6952:1: ( '#' )
-            // InternalSignalDSL.g:6953:2: '#'
+            // InternalSignalDSL.g:7110:1: ( '#' )
+            // InternalSignalDSL.g:7111:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
             }
-            match(input,82,FOLLOW_2); if (state.failed) return ;
+            match(input,84,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
             }
@@ -24165,14 +24773,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2"
-    // InternalSignalDSL.g:6962:1: rule__XAnnotationElementValue__Group_0_0_0__2 : rule__XAnnotationElementValue__Group_0_0_0__2__Impl ;
+    // InternalSignalDSL.g:7120:1: rule__XAnnotationElementValue__Group_0_0_0__2 : rule__XAnnotationElementValue__Group_0_0_0__2__Impl ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6966:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
-            // InternalSignalDSL.g:6967:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
+            // InternalSignalDSL.g:7124:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
+            // InternalSignalDSL.g:7125:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__2__Impl();
@@ -24198,22 +24806,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2__Impl"
-    // InternalSignalDSL.g:6973:1: rule__XAnnotationElementValue__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalSignalDSL.g:7131:1: rule__XAnnotationElementValue__Group_0_0_0__2__Impl : ( '[' ) ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6977:1: ( ( '[' ) )
-            // InternalSignalDSL.g:6978:1: ( '[' )
+            // InternalSignalDSL.g:7135:1: ( ( '[' ) )
+            // InternalSignalDSL.g:7136:1: ( '[' )
             {
-            // InternalSignalDSL.g:6978:1: ( '[' )
-            // InternalSignalDSL.g:6979:2: '['
+            // InternalSignalDSL.g:7136:1: ( '[' )
+            // InternalSignalDSL.g:7137:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
-            match(input,83,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
             }
@@ -24239,16 +24847,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0"
-    // InternalSignalDSL.g:6989:1: rule__XAnnotationElementValue__Group_0_1__0 : rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 ;
+    // InternalSignalDSL.g:7147:1: rule__XAnnotationElementValue__Group_0_1__0 : rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 ;
     public final void rule__XAnnotationElementValue__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:6993:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
-            // InternalSignalDSL.g:6994:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
+            // InternalSignalDSL.g:7151:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
+            // InternalSignalDSL.g:7152:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XAnnotationElementValue__Group_0_1__0__Impl();
 
             state._fsp--;
@@ -24277,23 +24885,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0__Impl"
-    // InternalSignalDSL.g:7001:1: rule__XAnnotationElementValue__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) ;
+    // InternalSignalDSL.g:7159:1: rule__XAnnotationElementValue__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) ;
     public final void rule__XAnnotationElementValue__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7005:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
-            // InternalSignalDSL.g:7006:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalSignalDSL.g:7163:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
+            // InternalSignalDSL.g:7164:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
             {
-            // InternalSignalDSL.g:7006:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
-            // InternalSignalDSL.g:7007:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalSignalDSL.g:7164:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalSignalDSL.g:7165:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalSignalDSL.g:7008:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
-            // InternalSignalDSL.g:7008:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
+            // InternalSignalDSL.g:7166:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalSignalDSL.g:7166:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_0();
@@ -24328,14 +24936,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1"
-    // InternalSignalDSL.g:7016:1: rule__XAnnotationElementValue__Group_0_1__1 : rule__XAnnotationElementValue__Group_0_1__1__Impl ;
+    // InternalSignalDSL.g:7174:1: rule__XAnnotationElementValue__Group_0_1__1 : rule__XAnnotationElementValue__Group_0_1__1__Impl ;
     public final void rule__XAnnotationElementValue__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7020:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
-            // InternalSignalDSL.g:7021:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
+            // InternalSignalDSL.g:7178:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
+            // InternalSignalDSL.g:7179:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1__1__Impl();
@@ -24361,37 +24969,37 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1__Impl"
-    // InternalSignalDSL.g:7027:1: rule__XAnnotationElementValue__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) ;
+    // InternalSignalDSL.g:7185:1: rule__XAnnotationElementValue__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) ;
     public final void rule__XAnnotationElementValue__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7031:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
-            // InternalSignalDSL.g:7032:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalSignalDSL.g:7189:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
+            // InternalSignalDSL.g:7190:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
             {
-            // InternalSignalDSL.g:7032:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
-            // InternalSignalDSL.g:7033:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            // InternalSignalDSL.g:7190:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalSignalDSL.g:7191:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); 
             }
-            // InternalSignalDSL.g:7034:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
-            loop69:
+            // InternalSignalDSL.g:7192:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            loop72:
             do {
-                int alt69=2;
-                int LA69_0 = input.LA(1);
+                int alt72=2;
+                int LA72_0 = input.LA(1);
 
-                if ( (LA69_0==80) ) {
-                    alt69=1;
+                if ( (LA72_0==82) ) {
+                    alt72=1;
                 }
 
 
-                switch (alt69) {
+                switch (alt72) {
             	case 1 :
-            	    // InternalSignalDSL.g:7034:3: rule__XAnnotationElementValue__Group_0_1_1__0
+            	    // InternalSignalDSL.g:7192:3: rule__XAnnotationElementValue__Group_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XAnnotationElementValue__Group_0_1_1__0();
 
             	    state._fsp--;
@@ -24401,7 +25009,7 @@
             	    break;
 
             	default :
-            	    break loop69;
+            	    break loop72;
                 }
             } while (true);
 
@@ -24430,16 +25038,16 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0"
-    // InternalSignalDSL.g:7043:1: rule__XAnnotationElementValue__Group_0_1_1__0 : rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 ;
+    // InternalSignalDSL.g:7201:1: rule__XAnnotationElementValue__Group_0_1_1__0 : rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 ;
     public final void rule__XAnnotationElementValue__Group_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7047:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
-            // InternalSignalDSL.g:7048:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
+            // InternalSignalDSL.g:7205:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
+            // InternalSignalDSL.g:7206:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XAnnotationElementValue__Group_0_1_1__0__Impl();
 
             state._fsp--;
@@ -24468,22 +25076,22 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0__Impl"
-    // InternalSignalDSL.g:7055:1: rule__XAnnotationElementValue__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:7213:1: rule__XAnnotationElementValue__Group_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XAnnotationElementValue__Group_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7059:1: ( ( ',' ) )
-            // InternalSignalDSL.g:7060:1: ( ',' )
+            // InternalSignalDSL.g:7217:1: ( ( ',' ) )
+            // InternalSignalDSL.g:7218:1: ( ',' )
             {
-            // InternalSignalDSL.g:7060:1: ( ',' )
-            // InternalSignalDSL.g:7061:2: ','
+            // InternalSignalDSL.g:7218:1: ( ',' )
+            // InternalSignalDSL.g:7219:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -24509,14 +25117,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1"
-    // InternalSignalDSL.g:7070:1: rule__XAnnotationElementValue__Group_0_1_1__1 : rule__XAnnotationElementValue__Group_0_1_1__1__Impl ;
+    // InternalSignalDSL.g:7228:1: rule__XAnnotationElementValue__Group_0_1_1__1 : rule__XAnnotationElementValue__Group_0_1_1__1__Impl ;
     public final void rule__XAnnotationElementValue__Group_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7074:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
-            // InternalSignalDSL.g:7075:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
+            // InternalSignalDSL.g:7232:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
+            // InternalSignalDSL.g:7233:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1_1__1__Impl();
@@ -24542,23 +25150,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1__Impl"
-    // InternalSignalDSL.g:7081:1: rule__XAnnotationElementValue__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalSignalDSL.g:7239:1: rule__XAnnotationElementValue__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) ;
     public final void rule__XAnnotationElementValue__Group_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7085:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalSignalDSL.g:7086:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalSignalDSL.g:7243:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalSignalDSL.g:7244:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalSignalDSL.g:7086:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
-            // InternalSignalDSL.g:7087:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalSignalDSL.g:7244:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalSignalDSL.g:7245:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalSignalDSL.g:7088:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
-            // InternalSignalDSL.g:7088:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
+            // InternalSignalDSL.g:7246:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalSignalDSL.g:7246:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1();
@@ -24593,16 +25201,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0"
-    // InternalSignalDSL.g:7097:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
+    // InternalSignalDSL.g:7255:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
     public final void rule__XAssignment__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7101:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
-            // InternalSignalDSL.g:7102:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
+            // InternalSignalDSL.g:7259:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
+            // InternalSignalDSL.g:7260:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
             {
-            pushFollow(FOLLOW_43);
+            pushFollow(FOLLOW_42);
             rule__XAssignment__Group_0__0__Impl();
 
             state._fsp--;
@@ -24631,23 +25239,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0__Impl"
-    // InternalSignalDSL.g:7109:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:7267:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
     public final void rule__XAssignment__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7113:1: ( ( () ) )
-            // InternalSignalDSL.g:7114:1: ( () )
+            // InternalSignalDSL.g:7271:1: ( ( () ) )
+            // InternalSignalDSL.g:7272:1: ( () )
             {
-            // InternalSignalDSL.g:7114:1: ( () )
-            // InternalSignalDSL.g:7115:2: ()
+            // InternalSignalDSL.g:7272:1: ( () )
+            // InternalSignalDSL.g:7273:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); 
             }
-            // InternalSignalDSL.g:7116:2: ()
-            // InternalSignalDSL.g:7116:3: 
+            // InternalSignalDSL.g:7274:2: ()
+            // InternalSignalDSL.g:7274:3: 
             {
             }
 
@@ -24672,16 +25280,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1"
-    // InternalSignalDSL.g:7124:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
+    // InternalSignalDSL.g:7282:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
     public final void rule__XAssignment__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7128:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
-            // InternalSignalDSL.g:7129:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
+            // InternalSignalDSL.g:7286:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
+            // InternalSignalDSL.g:7287:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
             {
-            pushFollow(FOLLOW_39);
+            pushFollow(FOLLOW_38);
             rule__XAssignment__Group_0__1__Impl();
 
             state._fsp--;
@@ -24710,23 +25318,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1__Impl"
-    // InternalSignalDSL.g:7136:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
+    // InternalSignalDSL.g:7294:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
     public final void rule__XAssignment__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7140:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
-            // InternalSignalDSL.g:7141:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalSignalDSL.g:7298:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
+            // InternalSignalDSL.g:7299:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
             {
-            // InternalSignalDSL.g:7141:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
-            // InternalSignalDSL.g:7142:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalSignalDSL.g:7299:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalSignalDSL.g:7300:2: ( rule__XAssignment__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalSignalDSL.g:7143:2: ( rule__XAssignment__FeatureAssignment_0_1 )
-            // InternalSignalDSL.g:7143:3: rule__XAssignment__FeatureAssignment_0_1
+            // InternalSignalDSL.g:7301:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalSignalDSL.g:7301:3: rule__XAssignment__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_0_1();
@@ -24761,16 +25369,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2"
-    // InternalSignalDSL.g:7151:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
+    // InternalSignalDSL.g:7309:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
     public final void rule__XAssignment__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7155:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
-            // InternalSignalDSL.g:7156:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
+            // InternalSignalDSL.g:7313:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
+            // InternalSignalDSL.g:7314:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XAssignment__Group_0__2__Impl();
 
             state._fsp--;
@@ -24799,17 +25407,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2__Impl"
-    // InternalSignalDSL.g:7163:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
+    // InternalSignalDSL.g:7321:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
     public final void rule__XAssignment__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7167:1: ( ( ruleOpSingleAssign ) )
-            // InternalSignalDSL.g:7168:1: ( ruleOpSingleAssign )
+            // InternalSignalDSL.g:7325:1: ( ( ruleOpSingleAssign ) )
+            // InternalSignalDSL.g:7326:1: ( ruleOpSingleAssign )
             {
-            // InternalSignalDSL.g:7168:1: ( ruleOpSingleAssign )
-            // InternalSignalDSL.g:7169:2: ruleOpSingleAssign
+            // InternalSignalDSL.g:7326:1: ( ruleOpSingleAssign )
+            // InternalSignalDSL.g:7327:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
@@ -24844,14 +25452,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3"
-    // InternalSignalDSL.g:7178:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
+    // InternalSignalDSL.g:7336:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
     public final void rule__XAssignment__Group_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7182:1: ( rule__XAssignment__Group_0__3__Impl )
-            // InternalSignalDSL.g:7183:2: rule__XAssignment__Group_0__3__Impl
+            // InternalSignalDSL.g:7340:1: ( rule__XAssignment__Group_0__3__Impl )
+            // InternalSignalDSL.g:7341:2: rule__XAssignment__Group_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_0__3__Impl();
@@ -24877,23 +25485,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3__Impl"
-    // InternalSignalDSL.g:7189:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
+    // InternalSignalDSL.g:7347:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
     public final void rule__XAssignment__Group_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7193:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
-            // InternalSignalDSL.g:7194:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalSignalDSL.g:7351:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
+            // InternalSignalDSL.g:7352:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
             {
-            // InternalSignalDSL.g:7194:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
-            // InternalSignalDSL.g:7195:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalSignalDSL.g:7352:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalSignalDSL.g:7353:2: ( rule__XAssignment__ValueAssignment_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); 
             }
-            // InternalSignalDSL.g:7196:2: ( rule__XAssignment__ValueAssignment_0_3 )
-            // InternalSignalDSL.g:7196:3: rule__XAssignment__ValueAssignment_0_3
+            // InternalSignalDSL.g:7354:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalSignalDSL.g:7354:3: rule__XAssignment__ValueAssignment_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__ValueAssignment_0_3();
@@ -24928,16 +25536,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0"
-    // InternalSignalDSL.g:7205:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
+    // InternalSignalDSL.g:7363:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
     public final void rule__XAssignment__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7209:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
-            // InternalSignalDSL.g:7210:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
+            // InternalSignalDSL.g:7367:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
+            // InternalSignalDSL.g:7368:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
             {
-            pushFollow(FOLLOW_44);
+            pushFollow(FOLLOW_43);
             rule__XAssignment__Group_1__0__Impl();
 
             state._fsp--;
@@ -24966,17 +25574,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0__Impl"
-    // InternalSignalDSL.g:7217:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
+    // InternalSignalDSL.g:7375:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
     public final void rule__XAssignment__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7221:1: ( ( ruleXOrExpression ) )
-            // InternalSignalDSL.g:7222:1: ( ruleXOrExpression )
+            // InternalSignalDSL.g:7379:1: ( ( ruleXOrExpression ) )
+            // InternalSignalDSL.g:7380:1: ( ruleXOrExpression )
             {
-            // InternalSignalDSL.g:7222:1: ( ruleXOrExpression )
-            // InternalSignalDSL.g:7223:2: ruleXOrExpression
+            // InternalSignalDSL.g:7380:1: ( ruleXOrExpression )
+            // InternalSignalDSL.g:7381:2: ruleXOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
@@ -25011,14 +25619,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1"
-    // InternalSignalDSL.g:7232:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
+    // InternalSignalDSL.g:7390:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
     public final void rule__XAssignment__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7236:1: ( rule__XAssignment__Group_1__1__Impl )
-            // InternalSignalDSL.g:7237:2: rule__XAssignment__Group_1__1__Impl
+            // InternalSignalDSL.g:7394:1: ( rule__XAssignment__Group_1__1__Impl )
+            // InternalSignalDSL.g:7395:2: rule__XAssignment__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1__1__Impl();
@@ -25044,27 +25652,27 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1__Impl"
-    // InternalSignalDSL.g:7243:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
+    // InternalSignalDSL.g:7401:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
     public final void rule__XAssignment__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7247:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
-            // InternalSignalDSL.g:7248:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalSignalDSL.g:7405:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
+            // InternalSignalDSL.g:7406:1: ( ( rule__XAssignment__Group_1_1__0 )? )
             {
-            // InternalSignalDSL.g:7248:1: ( ( rule__XAssignment__Group_1_1__0 )? )
-            // InternalSignalDSL.g:7249:2: ( rule__XAssignment__Group_1_1__0 )?
+            // InternalSignalDSL.g:7406:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalSignalDSL.g:7407:2: ( rule__XAssignment__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); 
             }
-            // InternalSignalDSL.g:7250:2: ( rule__XAssignment__Group_1_1__0 )?
-            int alt70=2;
-            alt70 = dfa70.predict(input);
-            switch (alt70) {
+            // InternalSignalDSL.g:7408:2: ( rule__XAssignment__Group_1_1__0 )?
+            int alt73=2;
+            alt73 = dfa73.predict(input);
+            switch (alt73) {
                 case 1 :
-                    // InternalSignalDSL.g:7250:3: rule__XAssignment__Group_1_1__0
+                    // InternalSignalDSL.g:7408:3: rule__XAssignment__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1_1__0();
@@ -25102,16 +25710,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0"
-    // InternalSignalDSL.g:7259:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
+    // InternalSignalDSL.g:7417:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
     public final void rule__XAssignment__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7263:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
-            // InternalSignalDSL.g:7264:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
+            // InternalSignalDSL.g:7421:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
+            // InternalSignalDSL.g:7422:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XAssignment__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -25140,23 +25748,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0__Impl"
-    // InternalSignalDSL.g:7271:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
+    // InternalSignalDSL.g:7429:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
     public final void rule__XAssignment__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7275:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
-            // InternalSignalDSL.g:7276:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalSignalDSL.g:7433:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
+            // InternalSignalDSL.g:7434:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
             {
-            // InternalSignalDSL.g:7276:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
-            // InternalSignalDSL.g:7277:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalSignalDSL.g:7434:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalSignalDSL.g:7435:2: ( rule__XAssignment__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); 
             }
-            // InternalSignalDSL.g:7278:2: ( rule__XAssignment__Group_1_1_0__0 )
-            // InternalSignalDSL.g:7278:3: rule__XAssignment__Group_1_1_0__0
+            // InternalSignalDSL.g:7436:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalSignalDSL.g:7436:3: rule__XAssignment__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0();
@@ -25191,14 +25799,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1"
-    // InternalSignalDSL.g:7286:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
+    // InternalSignalDSL.g:7444:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
     public final void rule__XAssignment__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7290:1: ( rule__XAssignment__Group_1_1__1__Impl )
-            // InternalSignalDSL.g:7291:2: rule__XAssignment__Group_1_1__1__Impl
+            // InternalSignalDSL.g:7448:1: ( rule__XAssignment__Group_1_1__1__Impl )
+            // InternalSignalDSL.g:7449:2: rule__XAssignment__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1__1__Impl();
@@ -25224,23 +25832,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1__Impl"
-    // InternalSignalDSL.g:7297:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalSignalDSL.g:7455:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
     public final void rule__XAssignment__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7301:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
-            // InternalSignalDSL.g:7302:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalSignalDSL.g:7459:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
+            // InternalSignalDSL.g:7460:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalSignalDSL.g:7302:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
-            // InternalSignalDSL.g:7303:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalSignalDSL.g:7460:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalSignalDSL.g:7461:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalSignalDSL.g:7304:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
-            // InternalSignalDSL.g:7304:3: rule__XAssignment__RightOperandAssignment_1_1_1
+            // InternalSignalDSL.g:7462:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalSignalDSL.g:7462:3: rule__XAssignment__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__RightOperandAssignment_1_1_1();
@@ -25275,14 +25883,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0"
-    // InternalSignalDSL.g:7313:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
+    // InternalSignalDSL.g:7471:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
     public final void rule__XAssignment__Group_1_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7317:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
-            // InternalSignalDSL.g:7318:2: rule__XAssignment__Group_1_1_0__0__Impl
+            // InternalSignalDSL.g:7475:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
+            // InternalSignalDSL.g:7476:2: rule__XAssignment__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0__Impl();
@@ -25308,23 +25916,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0__Impl"
-    // InternalSignalDSL.g:7324:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:7482:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
     public final void rule__XAssignment__Group_1_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7328:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:7329:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalSignalDSL.g:7486:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:7487:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:7329:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
-            // InternalSignalDSL.g:7330:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalSignalDSL.g:7487:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalSignalDSL.g:7488:2: ( rule__XAssignment__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); 
             }
-            // InternalSignalDSL.g:7331:2: ( rule__XAssignment__Group_1_1_0_0__0 )
-            // InternalSignalDSL.g:7331:3: rule__XAssignment__Group_1_1_0_0__0
+            // InternalSignalDSL.g:7489:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalSignalDSL.g:7489:3: rule__XAssignment__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__0();
@@ -25359,16 +25967,16 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0"
-    // InternalSignalDSL.g:7340:1: rule__XAssignment__Group_1_1_0_0__0 : rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 ;
+    // InternalSignalDSL.g:7498:1: rule__XAssignment__Group_1_1_0_0__0 : rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 ;
     public final void rule__XAssignment__Group_1_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7344:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
-            // InternalSignalDSL.g:7345:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
+            // InternalSignalDSL.g:7502:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
+            // InternalSignalDSL.g:7503:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
             {
-            pushFollow(FOLLOW_44);
+            pushFollow(FOLLOW_43);
             rule__XAssignment__Group_1_1_0_0__0__Impl();
 
             state._fsp--;
@@ -25397,23 +26005,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0__Impl"
-    // InternalSignalDSL.g:7352:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:7510:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
     public final void rule__XAssignment__Group_1_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7356:1: ( ( () ) )
-            // InternalSignalDSL.g:7357:1: ( () )
+            // InternalSignalDSL.g:7514:1: ( ( () ) )
+            // InternalSignalDSL.g:7515:1: ( () )
             {
-            // InternalSignalDSL.g:7357:1: ( () )
-            // InternalSignalDSL.g:7358:2: ()
+            // InternalSignalDSL.g:7515:1: ( () )
+            // InternalSignalDSL.g:7516:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:7359:2: ()
-            // InternalSignalDSL.g:7359:3: 
+            // InternalSignalDSL.g:7517:2: ()
+            // InternalSignalDSL.g:7517:3: 
             {
             }
 
@@ -25438,14 +26046,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1"
-    // InternalSignalDSL.g:7367:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:7525:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
     public final void rule__XAssignment__Group_1_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7371:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
-            // InternalSignalDSL.g:7372:2: rule__XAssignment__Group_1_1_0_0__1__Impl
+            // InternalSignalDSL.g:7529:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
+            // InternalSignalDSL.g:7530:2: rule__XAssignment__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__1__Impl();
@@ -25471,23 +26079,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1__Impl"
-    // InternalSignalDSL.g:7378:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:7536:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
     public final void rule__XAssignment__Group_1_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7382:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:7383:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalSignalDSL.g:7540:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:7541:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:7383:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalSignalDSL.g:7384:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalSignalDSL.g:7541:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalSignalDSL.g:7542:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:7385:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
-            // InternalSignalDSL.g:7385:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
+            // InternalSignalDSL.g:7543:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalSignalDSL.g:7543:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_1_1_0_0_1();
@@ -25522,16 +26130,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0"
-    // InternalSignalDSL.g:7394:1: rule__OpMultiAssign__Group_5__0 : rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 ;
+    // InternalSignalDSL.g:7552:1: rule__OpMultiAssign__Group_5__0 : rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 ;
     public final void rule__OpMultiAssign__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7398:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
-            // InternalSignalDSL.g:7399:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
+            // InternalSignalDSL.g:7556:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
+            // InternalSignalDSL.g:7557:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
             {
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_44);
             rule__OpMultiAssign__Group_5__0__Impl();
 
             state._fsp--;
@@ -25560,22 +26168,22 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0__Impl"
-    // InternalSignalDSL.g:7406:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:7564:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7410:1: ( ( '<' ) )
-            // InternalSignalDSL.g:7411:1: ( '<' )
+            // InternalSignalDSL.g:7568:1: ( ( '<' ) )
+            // InternalSignalDSL.g:7569:1: ( '<' )
             {
-            // InternalSignalDSL.g:7411:1: ( '<' )
-            // InternalSignalDSL.g:7412:2: '<'
+            // InternalSignalDSL.g:7569:1: ( '<' )
+            // InternalSignalDSL.g:7570:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
             }
-            match(input,27,FOLLOW_2); if (state.failed) return ;
+            match(input,28,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
             }
@@ -25601,16 +26209,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1"
-    // InternalSignalDSL.g:7421:1: rule__OpMultiAssign__Group_5__1 : rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 ;
+    // InternalSignalDSL.g:7579:1: rule__OpMultiAssign__Group_5__1 : rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 ;
     public final void rule__OpMultiAssign__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7425:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
-            // InternalSignalDSL.g:7426:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
+            // InternalSignalDSL.g:7583:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
+            // InternalSignalDSL.g:7584:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
             {
-            pushFollow(FOLLOW_39);
+            pushFollow(FOLLOW_38);
             rule__OpMultiAssign__Group_5__1__Impl();
 
             state._fsp--;
@@ -25639,22 +26247,22 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1__Impl"
-    // InternalSignalDSL.g:7433:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:7591:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7437:1: ( ( '<' ) )
-            // InternalSignalDSL.g:7438:1: ( '<' )
+            // InternalSignalDSL.g:7595:1: ( ( '<' ) )
+            // InternalSignalDSL.g:7596:1: ( '<' )
             {
-            // InternalSignalDSL.g:7438:1: ( '<' )
-            // InternalSignalDSL.g:7439:2: '<'
+            // InternalSignalDSL.g:7596:1: ( '<' )
+            // InternalSignalDSL.g:7597:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
             }
-            match(input,27,FOLLOW_2); if (state.failed) return ;
+            match(input,28,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
             }
@@ -25680,14 +26288,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2"
-    // InternalSignalDSL.g:7448:1: rule__OpMultiAssign__Group_5__2 : rule__OpMultiAssign__Group_5__2__Impl ;
+    // InternalSignalDSL.g:7606:1: rule__OpMultiAssign__Group_5__2 : rule__OpMultiAssign__Group_5__2__Impl ;
     public final void rule__OpMultiAssign__Group_5__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7452:1: ( rule__OpMultiAssign__Group_5__2__Impl )
-            // InternalSignalDSL.g:7453:2: rule__OpMultiAssign__Group_5__2__Impl
+            // InternalSignalDSL.g:7610:1: ( rule__OpMultiAssign__Group_5__2__Impl )
+            // InternalSignalDSL.g:7611:2: rule__OpMultiAssign__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_5__2__Impl();
@@ -25713,17 +26321,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2__Impl"
-    // InternalSignalDSL.g:7459:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
+    // InternalSignalDSL.g:7617:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
     public final void rule__OpMultiAssign__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7463:1: ( ( '=' ) )
-            // InternalSignalDSL.g:7464:1: ( '=' )
+            // InternalSignalDSL.g:7621:1: ( ( '=' ) )
+            // InternalSignalDSL.g:7622:1: ( '=' )
             {
-            // InternalSignalDSL.g:7464:1: ( '=' )
-            // InternalSignalDSL.g:7465:2: '='
+            // InternalSignalDSL.g:7622:1: ( '=' )
+            // InternalSignalDSL.g:7623:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
@@ -25754,16 +26362,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0"
-    // InternalSignalDSL.g:7475:1: rule__OpMultiAssign__Group_6__0 : rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 ;
+    // InternalSignalDSL.g:7633:1: rule__OpMultiAssign__Group_6__0 : rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 ;
     public final void rule__OpMultiAssign__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7479:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
-            // InternalSignalDSL.g:7480:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
+            // InternalSignalDSL.g:7637:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
+            // InternalSignalDSL.g:7638:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
             {
-            pushFollow(FOLLOW_46);
+            pushFollow(FOLLOW_45);
             rule__OpMultiAssign__Group_6__0__Impl();
 
             state._fsp--;
@@ -25792,22 +26400,22 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0__Impl"
-    // InternalSignalDSL.g:7487:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:7645:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
     public final void rule__OpMultiAssign__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7491:1: ( ( '>' ) )
-            // InternalSignalDSL.g:7492:1: ( '>' )
+            // InternalSignalDSL.g:7649:1: ( ( '>' ) )
+            // InternalSignalDSL.g:7650:1: ( '>' )
             {
-            // InternalSignalDSL.g:7492:1: ( '>' )
-            // InternalSignalDSL.g:7493:2: '>'
+            // InternalSignalDSL.g:7650:1: ( '>' )
+            // InternalSignalDSL.g:7651:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
             }
-            match(input,26,FOLLOW_2); if (state.failed) return ;
+            match(input,27,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
             }
@@ -25833,16 +26441,16 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1"
-    // InternalSignalDSL.g:7502:1: rule__OpMultiAssign__Group_6__1 : rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 ;
+    // InternalSignalDSL.g:7660:1: rule__OpMultiAssign__Group_6__1 : rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 ;
     public final void rule__OpMultiAssign__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7506:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
-            // InternalSignalDSL.g:7507:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
+            // InternalSignalDSL.g:7664:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
+            // InternalSignalDSL.g:7665:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
             {
-            pushFollow(FOLLOW_46);
+            pushFollow(FOLLOW_45);
             rule__OpMultiAssign__Group_6__1__Impl();
 
             state._fsp--;
@@ -25871,33 +26479,33 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1__Impl"
-    // InternalSignalDSL.g:7514:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
+    // InternalSignalDSL.g:7672:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
     public final void rule__OpMultiAssign__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7518:1: ( ( ( '>' )? ) )
-            // InternalSignalDSL.g:7519:1: ( ( '>' )? )
+            // InternalSignalDSL.g:7676:1: ( ( ( '>' )? ) )
+            // InternalSignalDSL.g:7677:1: ( ( '>' )? )
             {
-            // InternalSignalDSL.g:7519:1: ( ( '>' )? )
-            // InternalSignalDSL.g:7520:2: ( '>' )?
+            // InternalSignalDSL.g:7677:1: ( ( '>' )? )
+            // InternalSignalDSL.g:7678:2: ( '>' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
             }
-            // InternalSignalDSL.g:7521:2: ( '>' )?
-            int alt71=2;
-            int LA71_0 = input.LA(1);
+            // InternalSignalDSL.g:7679:2: ( '>' )?
+            int alt74=2;
+            int LA74_0 = input.LA(1);
 
-            if ( (LA71_0==26) ) {
-                alt71=1;
+            if ( (LA74_0==27) ) {
+                alt74=1;
             }
-            switch (alt71) {
+            switch (alt74) {
                 case 1 :
-                    // InternalSignalDSL.g:7521:3: '>'
+                    // InternalSignalDSL.g:7679:3: '>'
                     {
-                    match(input,26,FOLLOW_2); if (state.failed) return ;
+                    match(input,27,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -25929,14 +26537,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2"
-    // InternalSignalDSL.g:7529:1: rule__OpMultiAssign__Group_6__2 : rule__OpMultiAssign__Group_6__2__Impl ;
+    // InternalSignalDSL.g:7687:1: rule__OpMultiAssign__Group_6__2 : rule__OpMultiAssign__Group_6__2__Impl ;
     public final void rule__OpMultiAssign__Group_6__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7533:1: ( rule__OpMultiAssign__Group_6__2__Impl )
-            // InternalSignalDSL.g:7534:2: rule__OpMultiAssign__Group_6__2__Impl
+            // InternalSignalDSL.g:7691:1: ( rule__OpMultiAssign__Group_6__2__Impl )
+            // InternalSignalDSL.g:7692:2: rule__OpMultiAssign__Group_6__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_6__2__Impl();
@@ -25962,22 +26570,22 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2__Impl"
-    // InternalSignalDSL.g:7540:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
+    // InternalSignalDSL.g:7698:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
     public final void rule__OpMultiAssign__Group_6__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7544:1: ( ( '>=' ) )
-            // InternalSignalDSL.g:7545:1: ( '>=' )
+            // InternalSignalDSL.g:7702:1: ( ( '>=' ) )
+            // InternalSignalDSL.g:7703:1: ( '>=' )
             {
-            // InternalSignalDSL.g:7545:1: ( '>=' )
-            // InternalSignalDSL.g:7546:2: '>='
+            // InternalSignalDSL.g:7703:1: ( '>=' )
+            // InternalSignalDSL.g:7704:2: '>='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
             }
-            match(input,25,FOLLOW_2); if (state.failed) return ;
+            match(input,26,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
             }
@@ -26003,16 +26611,16 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0"
-    // InternalSignalDSL.g:7556:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
+    // InternalSignalDSL.g:7714:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
     public final void rule__XOrExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7560:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
-            // InternalSignalDSL.g:7561:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
+            // InternalSignalDSL.g:7718:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
+            // InternalSignalDSL.g:7719:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_46);
             rule__XOrExpression__Group__0__Impl();
 
             state._fsp--;
@@ -26041,17 +26649,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0__Impl"
-    // InternalSignalDSL.g:7568:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
+    // InternalSignalDSL.g:7726:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7572:1: ( ( ruleXAndExpression ) )
-            // InternalSignalDSL.g:7573:1: ( ruleXAndExpression )
+            // InternalSignalDSL.g:7730:1: ( ( ruleXAndExpression ) )
+            // InternalSignalDSL.g:7731:1: ( ruleXAndExpression )
             {
-            // InternalSignalDSL.g:7573:1: ( ruleXAndExpression )
-            // InternalSignalDSL.g:7574:2: ruleXAndExpression
+            // InternalSignalDSL.g:7731:1: ( ruleXAndExpression )
+            // InternalSignalDSL.g:7732:2: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
@@ -26086,14 +26694,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1"
-    // InternalSignalDSL.g:7583:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:7741:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
     public final void rule__XOrExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7587:1: ( rule__XOrExpression__Group__1__Impl )
-            // InternalSignalDSL.g:7588:2: rule__XOrExpression__Group__1__Impl
+            // InternalSignalDSL.g:7745:1: ( rule__XOrExpression__Group__1__Impl )
+            // InternalSignalDSL.g:7746:2: rule__XOrExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group__1__Impl();
@@ -26119,43 +26727,43 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1__Impl"
-    // InternalSignalDSL.g:7594:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:7752:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
     public final void rule__XOrExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7598:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:7599:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:7756:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:7757:1: ( ( rule__XOrExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:7599:1: ( ( rule__XOrExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:7600:2: ( rule__XOrExpression__Group_1__0 )*
+            // InternalSignalDSL.g:7757:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:7758:2: ( rule__XOrExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:7601:2: ( rule__XOrExpression__Group_1__0 )*
-            loop72:
+            // InternalSignalDSL.g:7759:2: ( rule__XOrExpression__Group_1__0 )*
+            loop75:
             do {
-                int alt72=2;
-                int LA72_0 = input.LA(1);
+                int alt75=2;
+                int LA75_0 = input.LA(1);
 
-                if ( (LA72_0==14) ) {
-                    int LA72_2 = input.LA(2);
+                if ( (LA75_0==14) ) {
+                    int LA75_2 = input.LA(2);
 
-                    if ( (synpred124_InternalSignalDSL()) ) {
-                        alt72=1;
+                    if ( (synpred128_InternalSignalDSL()) ) {
+                        alt75=1;
                     }
 
 
                 }
 
 
-                switch (alt72) {
+                switch (alt75) {
             	case 1 :
-            	    // InternalSignalDSL.g:7601:3: rule__XOrExpression__Group_1__0
+            	    // InternalSignalDSL.g:7759:3: rule__XOrExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_48);
+            	    pushFollow(FOLLOW_47);
             	    rule__XOrExpression__Group_1__0();
 
             	    state._fsp--;
@@ -26165,7 +26773,7 @@
             	    break;
 
             	default :
-            	    break loop72;
+            	    break loop75;
                 }
             } while (true);
 
@@ -26194,16 +26802,16 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0"
-    // InternalSignalDSL.g:7610:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
+    // InternalSignalDSL.g:7768:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
     public final void rule__XOrExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7614:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
-            // InternalSignalDSL.g:7615:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
+            // InternalSignalDSL.g:7772:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
+            // InternalSignalDSL.g:7773:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XOrExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -26232,23 +26840,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:7622:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:7780:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
     public final void rule__XOrExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7626:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:7627:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:7784:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:7785:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:7627:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:7628:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:7785:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:7786:2: ( rule__XOrExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:7629:2: ( rule__XOrExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:7629:3: rule__XOrExpression__Group_1_0__0
+            // InternalSignalDSL.g:7787:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:7787:3: rule__XOrExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0();
@@ -26283,14 +26891,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1"
-    // InternalSignalDSL.g:7637:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:7795:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
     public final void rule__XOrExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7641:1: ( rule__XOrExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:7642:2: rule__XOrExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:7799:1: ( rule__XOrExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:7800:2: rule__XOrExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1__1__Impl();
@@ -26316,23 +26924,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:7648:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:7806:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XOrExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7652:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:7653:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:7810:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:7811:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:7653:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
-            // InternalSignalDSL.g:7654:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:7811:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:7812:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:7655:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
-            // InternalSignalDSL.g:7655:3: rule__XOrExpression__RightOperandAssignment_1_1
+            // InternalSignalDSL.g:7813:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:7813:3: rule__XOrExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__RightOperandAssignment_1_1();
@@ -26367,14 +26975,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0"
-    // InternalSignalDSL.g:7664:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:7822:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
     public final void rule__XOrExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7668:1: ( rule__XOrExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:7669:2: rule__XOrExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:7826:1: ( rule__XOrExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:7827:2: rule__XOrExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0__Impl();
@@ -26400,23 +27008,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:7675:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:7833:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XOrExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7679:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:7680:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:7837:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:7838:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:7680:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:7681:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:7838:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:7839:2: ( rule__XOrExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:7682:2: ( rule__XOrExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:7682:3: rule__XOrExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:7840:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:7840:3: rule__XOrExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__0();
@@ -26451,16 +27059,16 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:7691:1: rule__XOrExpression__Group_1_0_0__0 : rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 ;
+    // InternalSignalDSL.g:7849:1: rule__XOrExpression__Group_1_0_0__0 : rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 ;
     public final void rule__XOrExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7695:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:7696:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:7853:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:7854:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_46);
             rule__XOrExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -26489,23 +27097,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:7703:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:7861:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XOrExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7707:1: ( ( () ) )
-            // InternalSignalDSL.g:7708:1: ( () )
+            // InternalSignalDSL.g:7865:1: ( ( () ) )
+            // InternalSignalDSL.g:7866:1: ( () )
             {
-            // InternalSignalDSL.g:7708:1: ( () )
-            // InternalSignalDSL.g:7709:2: ()
+            // InternalSignalDSL.g:7866:1: ( () )
+            // InternalSignalDSL.g:7867:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:7710:2: ()
-            // InternalSignalDSL.g:7710:3: 
+            // InternalSignalDSL.g:7868:2: ()
+            // InternalSignalDSL.g:7868:3: 
             {
             }
 
@@ -26530,14 +27138,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:7718:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:7876:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
     public final void rule__XOrExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7722:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:7723:2: rule__XOrExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:7880:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:7881:2: rule__XOrExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__1__Impl();
@@ -26563,23 +27171,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:7729:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:7887:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XOrExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7733:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:7734:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:7891:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:7892:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:7734:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalSignalDSL.g:7735:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:7892:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:7893:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:7736:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
-            // InternalSignalDSL.g:7736:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
+            // InternalSignalDSL.g:7894:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:7894:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__FeatureAssignment_1_0_0_1();
@@ -26614,16 +27222,16 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0"
-    // InternalSignalDSL.g:7745:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
+    // InternalSignalDSL.g:7903:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
     public final void rule__XAndExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7749:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
-            // InternalSignalDSL.g:7750:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
+            // InternalSignalDSL.g:7907:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
+            // InternalSignalDSL.g:7908:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_48);
             rule__XAndExpression__Group__0__Impl();
 
             state._fsp--;
@@ -26652,17 +27260,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0__Impl"
-    // InternalSignalDSL.g:7757:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
+    // InternalSignalDSL.g:7915:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7761:1: ( ( ruleXEqualityExpression ) )
-            // InternalSignalDSL.g:7762:1: ( ruleXEqualityExpression )
+            // InternalSignalDSL.g:7919:1: ( ( ruleXEqualityExpression ) )
+            // InternalSignalDSL.g:7920:1: ( ruleXEqualityExpression )
             {
-            // InternalSignalDSL.g:7762:1: ( ruleXEqualityExpression )
-            // InternalSignalDSL.g:7763:2: ruleXEqualityExpression
+            // InternalSignalDSL.g:7920:1: ( ruleXEqualityExpression )
+            // InternalSignalDSL.g:7921:2: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
@@ -26697,14 +27305,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1"
-    // InternalSignalDSL.g:7772:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:7930:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
     public final void rule__XAndExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7776:1: ( rule__XAndExpression__Group__1__Impl )
-            // InternalSignalDSL.g:7777:2: rule__XAndExpression__Group__1__Impl
+            // InternalSignalDSL.g:7934:1: ( rule__XAndExpression__Group__1__Impl )
+            // InternalSignalDSL.g:7935:2: rule__XAndExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group__1__Impl();
@@ -26730,43 +27338,43 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1__Impl"
-    // InternalSignalDSL.g:7783:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:7941:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
     public final void rule__XAndExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7787:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:7788:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:7945:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:7946:1: ( ( rule__XAndExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:7788:1: ( ( rule__XAndExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:7789:2: ( rule__XAndExpression__Group_1__0 )*
+            // InternalSignalDSL.g:7946:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:7947:2: ( rule__XAndExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:7790:2: ( rule__XAndExpression__Group_1__0 )*
-            loop73:
+            // InternalSignalDSL.g:7948:2: ( rule__XAndExpression__Group_1__0 )*
+            loop76:
             do {
-                int alt73=2;
-                int LA73_0 = input.LA(1);
+                int alt76=2;
+                int LA76_0 = input.LA(1);
 
-                if ( (LA73_0==15) ) {
-                    int LA73_2 = input.LA(2);
+                if ( (LA76_0==15) ) {
+                    int LA76_2 = input.LA(2);
 
-                    if ( (synpred125_InternalSignalDSL()) ) {
-                        alt73=1;
+                    if ( (synpred129_InternalSignalDSL()) ) {
+                        alt76=1;
                     }
 
 
                 }
 
 
-                switch (alt73) {
+                switch (alt76) {
             	case 1 :
-            	    // InternalSignalDSL.g:7790:3: rule__XAndExpression__Group_1__0
+            	    // InternalSignalDSL.g:7948:3: rule__XAndExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_50);
+            	    pushFollow(FOLLOW_49);
             	    rule__XAndExpression__Group_1__0();
 
             	    state._fsp--;
@@ -26776,7 +27384,7 @@
             	    break;
 
             	default :
-            	    break loop73;
+            	    break loop76;
                 }
             } while (true);
 
@@ -26805,16 +27413,16 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0"
-    // InternalSignalDSL.g:7799:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
+    // InternalSignalDSL.g:7957:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
     public final void rule__XAndExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7803:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
-            // InternalSignalDSL.g:7804:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
+            // InternalSignalDSL.g:7961:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
+            // InternalSignalDSL.g:7962:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XAndExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -26843,23 +27451,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:7811:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:7969:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
     public final void rule__XAndExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7815:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:7816:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:7973:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:7974:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:7816:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:7817:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:7974:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:7975:2: ( rule__XAndExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:7818:2: ( rule__XAndExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:7818:3: rule__XAndExpression__Group_1_0__0
+            // InternalSignalDSL.g:7976:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:7976:3: rule__XAndExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0();
@@ -26894,14 +27502,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1"
-    // InternalSignalDSL.g:7826:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:7984:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
     public final void rule__XAndExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7830:1: ( rule__XAndExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:7831:2: rule__XAndExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:7988:1: ( rule__XAndExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:7989:2: rule__XAndExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1__1__Impl();
@@ -26927,23 +27535,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:7837:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:7995:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XAndExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7841:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:7842:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:7999:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:8000:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:7842:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
-            // InternalSignalDSL.g:7843:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:8000:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:8001:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:7844:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
-            // InternalSignalDSL.g:7844:3: rule__XAndExpression__RightOperandAssignment_1_1
+            // InternalSignalDSL.g:8002:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:8002:3: rule__XAndExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__RightOperandAssignment_1_1();
@@ -26978,14 +27586,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0"
-    // InternalSignalDSL.g:7853:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:8011:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
     public final void rule__XAndExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7857:1: ( rule__XAndExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:7858:2: rule__XAndExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:8015:1: ( rule__XAndExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:8016:2: rule__XAndExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0__Impl();
@@ -27011,23 +27619,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:7864:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:8022:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XAndExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7868:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:7869:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8026:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:8027:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:7869:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:7870:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8027:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8028:2: ( rule__XAndExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:7871:2: ( rule__XAndExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:7871:3: rule__XAndExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:8029:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8029:3: rule__XAndExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__0();
@@ -27062,16 +27670,16 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:7880:1: rule__XAndExpression__Group_1_0_0__0 : rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 ;
+    // InternalSignalDSL.g:8038:1: rule__XAndExpression__Group_1_0_0__0 : rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 ;
     public final void rule__XAndExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7884:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:7885:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:8042:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:8043:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_48);
             rule__XAndExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -27100,23 +27708,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:7892:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:8050:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XAndExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7896:1: ( ( () ) )
-            // InternalSignalDSL.g:7897:1: ( () )
+            // InternalSignalDSL.g:8054:1: ( ( () ) )
+            // InternalSignalDSL.g:8055:1: ( () )
             {
-            // InternalSignalDSL.g:7897:1: ( () )
-            // InternalSignalDSL.g:7898:2: ()
+            // InternalSignalDSL.g:8055:1: ( () )
+            // InternalSignalDSL.g:8056:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:7899:2: ()
-            // InternalSignalDSL.g:7899:3: 
+            // InternalSignalDSL.g:8057:2: ()
+            // InternalSignalDSL.g:8057:3: 
             {
             }
 
@@ -27141,14 +27749,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:7907:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:8065:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
     public final void rule__XAndExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7911:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:7912:2: rule__XAndExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:8069:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:8070:2: rule__XAndExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__1__Impl();
@@ -27174,23 +27782,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:7918:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:8076:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XAndExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7922:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:7923:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:8080:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:8081:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:7923:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalSignalDSL.g:7924:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:8081:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:8082:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:7925:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
-            // InternalSignalDSL.g:7925:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
+            // InternalSignalDSL.g:8083:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:8083:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__FeatureAssignment_1_0_0_1();
@@ -27225,16 +27833,16 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0"
-    // InternalSignalDSL.g:7934:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
+    // InternalSignalDSL.g:8092:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
     public final void rule__XEqualityExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7938:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
-            // InternalSignalDSL.g:7939:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
+            // InternalSignalDSL.g:8096:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
+            // InternalSignalDSL.g:8097:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XEqualityExpression__Group__0__Impl();
 
             state._fsp--;
@@ -27263,17 +27871,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0__Impl"
-    // InternalSignalDSL.g:7946:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
+    // InternalSignalDSL.g:8104:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7950:1: ( ( ruleXRelationalExpression ) )
-            // InternalSignalDSL.g:7951:1: ( ruleXRelationalExpression )
+            // InternalSignalDSL.g:8108:1: ( ( ruleXRelationalExpression ) )
+            // InternalSignalDSL.g:8109:1: ( ruleXRelationalExpression )
             {
-            // InternalSignalDSL.g:7951:1: ( ruleXRelationalExpression )
-            // InternalSignalDSL.g:7952:2: ruleXRelationalExpression
+            // InternalSignalDSL.g:8109:1: ( ruleXRelationalExpression )
+            // InternalSignalDSL.g:8110:2: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
@@ -27308,14 +27916,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1"
-    // InternalSignalDSL.g:7961:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:8119:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
     public final void rule__XEqualityExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7965:1: ( rule__XEqualityExpression__Group__1__Impl )
-            // InternalSignalDSL.g:7966:2: rule__XEqualityExpression__Group__1__Impl
+            // InternalSignalDSL.g:8123:1: ( rule__XEqualityExpression__Group__1__Impl )
+            // InternalSignalDSL.g:8124:2: rule__XEqualityExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group__1__Impl();
@@ -27341,43 +27949,32 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1__Impl"
-    // InternalSignalDSL.g:7972:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:8130:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
     public final void rule__XEqualityExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7976:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:7977:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:8134:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:8135:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:7977:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:7978:2: ( rule__XEqualityExpression__Group_1__0 )*
+            // InternalSignalDSL.g:8135:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:8136:2: ( rule__XEqualityExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:7979:2: ( rule__XEqualityExpression__Group_1__0 )*
-            loop74:
+            // InternalSignalDSL.g:8137:2: ( rule__XEqualityExpression__Group_1__0 )*
+            loop77:
             do {
-                int alt74=2;
+                int alt77=2;
                 switch ( input.LA(1) ) {
-                case 21:
-                    {
-                    int LA74_2 = input.LA(2);
-
-                    if ( (synpred126_InternalSignalDSL()) ) {
-                        alt74=1;
-                    }
-
-
-                    }
-                    break;
                 case 22:
                     {
-                    int LA74_3 = input.LA(2);
+                    int LA77_2 = input.LA(2);
 
-                    if ( (synpred126_InternalSignalDSL()) ) {
-                        alt74=1;
+                    if ( (synpred130_InternalSignalDSL()) ) {
+                        alt77=1;
                     }
 
 
@@ -27385,10 +27982,10 @@
                     break;
                 case 23:
                     {
-                    int LA74_4 = input.LA(2);
+                    int LA77_3 = input.LA(2);
 
-                    if ( (synpred126_InternalSignalDSL()) ) {
-                        alt74=1;
+                    if ( (synpred130_InternalSignalDSL()) ) {
+                        alt77=1;
                     }
 
 
@@ -27396,10 +27993,21 @@
                     break;
                 case 24:
                     {
-                    int LA74_5 = input.LA(2);
+                    int LA77_4 = input.LA(2);
 
-                    if ( (synpred126_InternalSignalDSL()) ) {
-                        alt74=1;
+                    if ( (synpred130_InternalSignalDSL()) ) {
+                        alt77=1;
+                    }
+
+
+                    }
+                    break;
+                case 25:
+                    {
+                    int LA77_5 = input.LA(2);
+
+                    if ( (synpred130_InternalSignalDSL()) ) {
+                        alt77=1;
                     }
 
 
@@ -27408,11 +28016,11 @@
 
                 }
 
-                switch (alt74) {
+                switch (alt77) {
             	case 1 :
-            	    // InternalSignalDSL.g:7979:3: rule__XEqualityExpression__Group_1__0
+            	    // InternalSignalDSL.g:8137:3: rule__XEqualityExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_51);
             	    rule__XEqualityExpression__Group_1__0();
 
             	    state._fsp--;
@@ -27422,7 +28030,7 @@
             	    break;
 
             	default :
-            	    break loop74;
+            	    break loop77;
                 }
             } while (true);
 
@@ -27451,16 +28059,16 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0"
-    // InternalSignalDSL.g:7988:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
+    // InternalSignalDSL.g:8146:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
     public final void rule__XEqualityExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:7992:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
-            // InternalSignalDSL.g:7993:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
+            // InternalSignalDSL.g:8150:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
+            // InternalSignalDSL.g:8151:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XEqualityExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -27489,23 +28097,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:8000:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:8158:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
     public final void rule__XEqualityExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8004:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:8005:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:8162:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:8163:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:8005:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:8006:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:8163:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:8164:2: ( rule__XEqualityExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:8007:2: ( rule__XEqualityExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:8007:3: rule__XEqualityExpression__Group_1_0__0
+            // InternalSignalDSL.g:8165:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:8165:3: rule__XEqualityExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0();
@@ -27540,14 +28148,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1"
-    // InternalSignalDSL.g:8015:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:8173:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
     public final void rule__XEqualityExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8019:1: ( rule__XEqualityExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:8020:2: rule__XEqualityExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:8177:1: ( rule__XEqualityExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:8178:2: rule__XEqualityExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1__1__Impl();
@@ -27573,23 +28181,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:8026:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:8184:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XEqualityExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8030:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:8031:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:8188:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:8189:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:8031:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
-            // InternalSignalDSL.g:8032:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:8189:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:8190:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:8033:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
-            // InternalSignalDSL.g:8033:3: rule__XEqualityExpression__RightOperandAssignment_1_1
+            // InternalSignalDSL.g:8191:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:8191:3: rule__XEqualityExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__RightOperandAssignment_1_1();
@@ -27624,14 +28232,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0"
-    // InternalSignalDSL.g:8042:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:8200:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
     public final void rule__XEqualityExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8046:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:8047:2: rule__XEqualityExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:8204:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:8205:2: rule__XEqualityExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0__Impl();
@@ -27657,23 +28265,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:8053:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:8211:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XEqualityExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8057:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:8058:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8215:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:8216:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:8058:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:8059:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8216:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8217:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:8060:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:8060:3: rule__XEqualityExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:8218:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8218:3: rule__XEqualityExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__0();
@@ -27708,16 +28316,16 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:8069:1: rule__XEqualityExpression__Group_1_0_0__0 : rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 ;
+    // InternalSignalDSL.g:8227:1: rule__XEqualityExpression__Group_1_0_0__0 : rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 ;
     public final void rule__XEqualityExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8073:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:8074:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:8231:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:8232:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_50);
             rule__XEqualityExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -27746,23 +28354,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:8081:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:8239:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XEqualityExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8085:1: ( ( () ) )
-            // InternalSignalDSL.g:8086:1: ( () )
+            // InternalSignalDSL.g:8243:1: ( ( () ) )
+            // InternalSignalDSL.g:8244:1: ( () )
             {
-            // InternalSignalDSL.g:8086:1: ( () )
-            // InternalSignalDSL.g:8087:2: ()
+            // InternalSignalDSL.g:8244:1: ( () )
+            // InternalSignalDSL.g:8245:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:8088:2: ()
-            // InternalSignalDSL.g:8088:3: 
+            // InternalSignalDSL.g:8246:2: ()
+            // InternalSignalDSL.g:8246:3: 
             {
             }
 
@@ -27787,14 +28395,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:8096:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:8254:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
     public final void rule__XEqualityExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8100:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:8101:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:8258:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:8259:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__1__Impl();
@@ -27820,23 +28428,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:8107:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:8265:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XEqualityExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8111:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:8112:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:8269:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:8270:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:8112:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalSignalDSL.g:8113:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:8270:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:8271:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:8114:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
-            // InternalSignalDSL.g:8114:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
+            // InternalSignalDSL.g:8272:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:8272:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__FeatureAssignment_1_0_0_1();
@@ -27871,16 +28479,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__0"
-    // InternalSignalDSL.g:8123:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
+    // InternalSignalDSL.g:8281:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
     public final void rule__XRelationalExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8127:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
-            // InternalSignalDSL.g:8128:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
+            // InternalSignalDSL.g:8285:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
+            // InternalSignalDSL.g:8286:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XRelationalExpression__Group__0__Impl();
 
             state._fsp--;
@@ -27909,17 +28517,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__0__Impl"
-    // InternalSignalDSL.g:8135:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
+    // InternalSignalDSL.g:8293:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
     public final void rule__XRelationalExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8139:1: ( ( ruleXOtherOperatorExpression ) )
-            // InternalSignalDSL.g:8140:1: ( ruleXOtherOperatorExpression )
+            // InternalSignalDSL.g:8297:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalSignalDSL.g:8298:1: ( ruleXOtherOperatorExpression )
             {
-            // InternalSignalDSL.g:8140:1: ( ruleXOtherOperatorExpression )
-            // InternalSignalDSL.g:8141:2: ruleXOtherOperatorExpression
+            // InternalSignalDSL.g:8298:1: ( ruleXOtherOperatorExpression )
+            // InternalSignalDSL.g:8299:2: ruleXOtherOperatorExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
@@ -27954,14 +28562,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__1"
-    // InternalSignalDSL.g:8150:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:8308:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
     public final void rule__XRelationalExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8154:1: ( rule__XRelationalExpression__Group__1__Impl )
-            // InternalSignalDSL.g:8155:2: rule__XRelationalExpression__Group__1__Impl
+            // InternalSignalDSL.g:8312:1: ( rule__XRelationalExpression__Group__1__Impl )
+            // InternalSignalDSL.g:8313:2: rule__XRelationalExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group__1__Impl();
@@ -27987,32 +28595,54 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__1__Impl"
-    // InternalSignalDSL.g:8161:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
+    // InternalSignalDSL.g:8319:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
     public final void rule__XRelationalExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8165:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
-            // InternalSignalDSL.g:8166:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalSignalDSL.g:8323:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
+            // InternalSignalDSL.g:8324:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
             {
-            // InternalSignalDSL.g:8166:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
-            // InternalSignalDSL.g:8167:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            // InternalSignalDSL.g:8324:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalSignalDSL.g:8325:2: ( rule__XRelationalExpression__Alternatives_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); 
             }
-            // InternalSignalDSL.g:8168:2: ( rule__XRelationalExpression__Alternatives_1 )*
-            loop75:
+            // InternalSignalDSL.g:8326:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            loop78:
             do {
-                int alt75=2;
+                int alt78=2;
                 switch ( input.LA(1) ) {
+                case 28:
+                    {
+                    int LA78_2 = input.LA(2);
+
+                    if ( (synpred131_InternalSignalDSL()) ) {
+                        alt78=1;
+                    }
+
+
+                    }
+                    break;
                 case 27:
                     {
-                    int LA75_2 = input.LA(2);
+                    int LA78_3 = input.LA(2);
 
-                    if ( (synpred127_InternalSignalDSL()) ) {
-                        alt75=1;
+                    if ( (synpred131_InternalSignalDSL()) ) {
+                        alt78=1;
+                    }
+
+
+                    }
+                    break;
+                case 86:
+                    {
+                    int LA78_4 = input.LA(2);
+
+                    if ( (synpred131_InternalSignalDSL()) ) {
+                        alt78=1;
                     }
 
 
@@ -28020,32 +28650,10 @@
                     break;
                 case 26:
                     {
-                    int LA75_3 = input.LA(2);
+                    int LA78_5 = input.LA(2);
 
-                    if ( (synpred127_InternalSignalDSL()) ) {
-                        alt75=1;
-                    }
-
-
-                    }
-                    break;
-                case 84:
-                    {
-                    int LA75_4 = input.LA(2);
-
-                    if ( (synpred127_InternalSignalDSL()) ) {
-                        alt75=1;
-                    }
-
-
-                    }
-                    break;
-                case 25:
-                    {
-                    int LA75_5 = input.LA(2);
-
-                    if ( (synpred127_InternalSignalDSL()) ) {
-                        alt75=1;
+                    if ( (synpred131_InternalSignalDSL()) ) {
+                        alt78=1;
                     }
 
 
@@ -28054,11 +28662,11 @@
 
                 }
 
-                switch (alt75) {
+                switch (alt78) {
             	case 1 :
-            	    // InternalSignalDSL.g:8168:3: rule__XRelationalExpression__Alternatives_1
+            	    // InternalSignalDSL.g:8326:3: rule__XRelationalExpression__Alternatives_1
             	    {
-            	    pushFollow(FOLLOW_54);
+            	    pushFollow(FOLLOW_53);
             	    rule__XRelationalExpression__Alternatives_1();
 
             	    state._fsp--;
@@ -28068,7 +28676,7 @@
             	    break;
 
             	default :
-            	    break loop75;
+            	    break loop78;
                 }
             } while (true);
 
@@ -28097,16 +28705,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__0"
-    // InternalSignalDSL.g:8177:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
+    // InternalSignalDSL.g:8335:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
     public final void rule__XRelationalExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8181:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
-            // InternalSignalDSL.g:8182:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
+            // InternalSignalDSL.g:8339:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
+            // InternalSignalDSL.g:8340:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XRelationalExpression__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -28135,23 +28743,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:8189:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:8347:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8193:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:8194:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8351:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:8352:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:8194:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:8195:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8352:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8353:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:8196:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:8196:3: rule__XRelationalExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:8354:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8354:3: rule__XRelationalExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0__0();
@@ -28186,14 +28794,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__1"
-    // InternalSignalDSL.g:8204:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
+    // InternalSignalDSL.g:8362:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8208:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
-            // InternalSignalDSL.g:8209:2: rule__XRelationalExpression__Group_1_0__1__Impl
+            // InternalSignalDSL.g:8366:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
+            // InternalSignalDSL.g:8367:2: rule__XRelationalExpression__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0__1__Impl();
@@ -28219,23 +28827,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__1__Impl"
-    // InternalSignalDSL.g:8215:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
+    // InternalSignalDSL.g:8373:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
     public final void rule__XRelationalExpression__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8219:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
-            // InternalSignalDSL.g:8220:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:8377:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
+            // InternalSignalDSL.g:8378:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
             {
-            // InternalSignalDSL.g:8220:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
-            // InternalSignalDSL.g:8221:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalSignalDSL.g:8378:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:8379:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); 
             }
-            // InternalSignalDSL.g:8222:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
-            // InternalSignalDSL.g:8222:3: rule__XRelationalExpression__TypeAssignment_1_0_1
+            // InternalSignalDSL.g:8380:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalSignalDSL.g:8380:3: rule__XRelationalExpression__TypeAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__TypeAssignment_1_0_1();
@@ -28270,14 +28878,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:8231:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
+    // InternalSignalDSL.g:8389:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
     public final void rule__XRelationalExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8235:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
-            // InternalSignalDSL.g:8236:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
+            // InternalSignalDSL.g:8393:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
+            // InternalSignalDSL.g:8394:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0__0__Impl();
@@ -28303,23 +28911,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:8242:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
+    // InternalSignalDSL.g:8400:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8246:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
-            // InternalSignalDSL.g:8247:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalSignalDSL.g:8404:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
+            // InternalSignalDSL.g:8405:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
             {
-            // InternalSignalDSL.g:8247:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
-            // InternalSignalDSL.g:8248:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalSignalDSL.g:8405:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalSignalDSL.g:8406:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:8249:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
-            // InternalSignalDSL.g:8249:3: rule__XRelationalExpression__Group_1_0_0_0__0
+            // InternalSignalDSL.g:8407:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalSignalDSL.g:8407:3: rule__XRelationalExpression__Group_1_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0_0__0();
@@ -28354,16 +28962,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0"
-    // InternalSignalDSL.g:8258:1: rule__XRelationalExpression__Group_1_0_0_0__0 : rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 ;
+    // InternalSignalDSL.g:8416:1: rule__XRelationalExpression__Group_1_0_0_0__0 : rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8262:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
-            // InternalSignalDSL.g:8263:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
+            // InternalSignalDSL.g:8420:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
+            // InternalSignalDSL.g:8421:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
             {
-            pushFollow(FOLLOW_56);
+            pushFollow(FOLLOW_55);
             rule__XRelationalExpression__Group_1_0_0_0__0__Impl();
 
             state._fsp--;
@@ -28392,23 +29000,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0__Impl"
-    // InternalSignalDSL.g:8270:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:8428:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8274:1: ( ( () ) )
-            // InternalSignalDSL.g:8275:1: ( () )
+            // InternalSignalDSL.g:8432:1: ( ( () ) )
+            // InternalSignalDSL.g:8433:1: ( () )
             {
-            // InternalSignalDSL.g:8275:1: ( () )
-            // InternalSignalDSL.g:8276:2: ()
+            // InternalSignalDSL.g:8433:1: ( () )
+            // InternalSignalDSL.g:8434:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); 
             }
-            // InternalSignalDSL.g:8277:2: ()
-            // InternalSignalDSL.g:8277:3: 
+            // InternalSignalDSL.g:8435:2: ()
+            // InternalSignalDSL.g:8435:3: 
             {
             }
 
@@ -28433,14 +29041,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1"
-    // InternalSignalDSL.g:8285:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
+    // InternalSignalDSL.g:8443:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8289:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
-            // InternalSignalDSL.g:8290:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+            // InternalSignalDSL.g:8447:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
+            // InternalSignalDSL.g:8448:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0_0__1__Impl();
@@ -28466,22 +29074,22 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1__Impl"
-    // InternalSignalDSL.g:8296:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
+    // InternalSignalDSL.g:8454:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8300:1: ( ( 'instanceof' ) )
-            // InternalSignalDSL.g:8301:1: ( 'instanceof' )
+            // InternalSignalDSL.g:8458:1: ( ( 'instanceof' ) )
+            // InternalSignalDSL.g:8459:1: ( 'instanceof' )
             {
-            // InternalSignalDSL.g:8301:1: ( 'instanceof' )
-            // InternalSignalDSL.g:8302:2: 'instanceof'
+            // InternalSignalDSL.g:8459:1: ( 'instanceof' )
+            // InternalSignalDSL.g:8460:2: 'instanceof'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
             }
-            match(input,84,FOLLOW_2); if (state.failed) return ;
+            match(input,86,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
             }
@@ -28507,16 +29115,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__0"
-    // InternalSignalDSL.g:8312:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
+    // InternalSignalDSL.g:8470:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
     public final void rule__XRelationalExpression__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8316:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
-            // InternalSignalDSL.g:8317:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
+            // InternalSignalDSL.g:8474:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
+            // InternalSignalDSL.g:8475:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XRelationalExpression__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -28545,23 +29153,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__0__Impl"
-    // InternalSignalDSL.g:8324:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
+    // InternalSignalDSL.g:8482:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8328:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
-            // InternalSignalDSL.g:8329:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalSignalDSL.g:8486:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
+            // InternalSignalDSL.g:8487:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
             {
-            // InternalSignalDSL.g:8329:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
-            // InternalSignalDSL.g:8330:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalSignalDSL.g:8487:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalSignalDSL.g:8488:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); 
             }
-            // InternalSignalDSL.g:8331:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
-            // InternalSignalDSL.g:8331:3: rule__XRelationalExpression__Group_1_1_0__0
+            // InternalSignalDSL.g:8489:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalSignalDSL.g:8489:3: rule__XRelationalExpression__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0__0();
@@ -28596,14 +29204,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__1"
-    // InternalSignalDSL.g:8339:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
+    // InternalSignalDSL.g:8497:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8343:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
-            // InternalSignalDSL.g:8344:2: rule__XRelationalExpression__Group_1_1__1__Impl
+            // InternalSignalDSL.g:8501:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
+            // InternalSignalDSL.g:8502:2: rule__XRelationalExpression__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1__1__Impl();
@@ -28629,23 +29237,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__1__Impl"
-    // InternalSignalDSL.g:8350:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalSignalDSL.g:8508:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8354:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
-            // InternalSignalDSL.g:8355:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalSignalDSL.g:8512:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
+            // InternalSignalDSL.g:8513:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalSignalDSL.g:8355:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
-            // InternalSignalDSL.g:8356:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalSignalDSL.g:8513:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalSignalDSL.g:8514:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalSignalDSL.g:8357:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
-            // InternalSignalDSL.g:8357:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
+            // InternalSignalDSL.g:8515:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalSignalDSL.g:8515:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__RightOperandAssignment_1_1_1();
@@ -28680,14 +29288,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0"
-    // InternalSignalDSL.g:8366:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
+    // InternalSignalDSL.g:8524:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
     public final void rule__XRelationalExpression__Group_1_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8370:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
-            // InternalSignalDSL.g:8371:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
+            // InternalSignalDSL.g:8528:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
+            // InternalSignalDSL.g:8529:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0__0__Impl();
@@ -28713,23 +29321,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0__Impl"
-    // InternalSignalDSL.g:8377:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:8535:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8381:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:8382:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalSignalDSL.g:8539:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:8540:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:8382:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
-            // InternalSignalDSL.g:8383:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalSignalDSL.g:8540:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalSignalDSL.g:8541:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); 
             }
-            // InternalSignalDSL.g:8384:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
-            // InternalSignalDSL.g:8384:3: rule__XRelationalExpression__Group_1_1_0_0__0
+            // InternalSignalDSL.g:8542:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalSignalDSL.g:8542:3: rule__XRelationalExpression__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0_0__0();
@@ -28764,16 +29372,16 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0"
-    // InternalSignalDSL.g:8393:1: rule__XRelationalExpression__Group_1_1_0_0__0 : rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 ;
+    // InternalSignalDSL.g:8551:1: rule__XRelationalExpression__Group_1_1_0_0__0 : rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8397:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
-            // InternalSignalDSL.g:8398:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
+            // InternalSignalDSL.g:8555:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
+            // InternalSignalDSL.g:8556:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_52);
             rule__XRelationalExpression__Group_1_1_0_0__0__Impl();
 
             state._fsp--;
@@ -28802,23 +29410,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0__Impl"
-    // InternalSignalDSL.g:8405:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:8563:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8409:1: ( ( () ) )
-            // InternalSignalDSL.g:8410:1: ( () )
+            // InternalSignalDSL.g:8567:1: ( ( () ) )
+            // InternalSignalDSL.g:8568:1: ( () )
             {
-            // InternalSignalDSL.g:8410:1: ( () )
-            // InternalSignalDSL.g:8411:2: ()
+            // InternalSignalDSL.g:8568:1: ( () )
+            // InternalSignalDSL.g:8569:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:8412:2: ()
-            // InternalSignalDSL.g:8412:3: 
+            // InternalSignalDSL.g:8570:2: ()
+            // InternalSignalDSL.g:8570:3: 
             {
             }
 
@@ -28843,14 +29451,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1"
-    // InternalSignalDSL.g:8420:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:8578:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8424:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
-            // InternalSignalDSL.g:8425:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+            // InternalSignalDSL.g:8582:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
+            // InternalSignalDSL.g:8583:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0_0__1__Impl();
@@ -28876,23 +29484,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1__Impl"
-    // InternalSignalDSL.g:8431:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:8589:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8435:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:8436:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalSignalDSL.g:8593:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:8594:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:8436:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalSignalDSL.g:8437:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalSignalDSL.g:8594:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalSignalDSL.g:8595:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:8438:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
-            // InternalSignalDSL.g:8438:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
+            // InternalSignalDSL.g:8596:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalSignalDSL.g:8596:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1();
@@ -28927,16 +29535,16 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__0"
-    // InternalSignalDSL.g:8447:1: rule__OpCompare__Group_1__0 : rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 ;
+    // InternalSignalDSL.g:8605:1: rule__OpCompare__Group_1__0 : rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 ;
     public final void rule__OpCompare__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8451:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
-            // InternalSignalDSL.g:8452:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
+            // InternalSignalDSL.g:8609:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
+            // InternalSignalDSL.g:8610:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
             {
-            pushFollow(FOLLOW_39);
+            pushFollow(FOLLOW_38);
             rule__OpCompare__Group_1__0__Impl();
 
             state._fsp--;
@@ -28965,22 +29573,22 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__0__Impl"
-    // InternalSignalDSL.g:8459:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:8617:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
     public final void rule__OpCompare__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8463:1: ( ( '<' ) )
-            // InternalSignalDSL.g:8464:1: ( '<' )
+            // InternalSignalDSL.g:8621:1: ( ( '<' ) )
+            // InternalSignalDSL.g:8622:1: ( '<' )
             {
-            // InternalSignalDSL.g:8464:1: ( '<' )
-            // InternalSignalDSL.g:8465:2: '<'
+            // InternalSignalDSL.g:8622:1: ( '<' )
+            // InternalSignalDSL.g:8623:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
             }
-            match(input,27,FOLLOW_2); if (state.failed) return ;
+            match(input,28,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
             }
@@ -29006,14 +29614,14 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__1"
-    // InternalSignalDSL.g:8474:1: rule__OpCompare__Group_1__1 : rule__OpCompare__Group_1__1__Impl ;
+    // InternalSignalDSL.g:8632:1: rule__OpCompare__Group_1__1 : rule__OpCompare__Group_1__1__Impl ;
     public final void rule__OpCompare__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8478:1: ( rule__OpCompare__Group_1__1__Impl )
-            // InternalSignalDSL.g:8479:2: rule__OpCompare__Group_1__1__Impl
+            // InternalSignalDSL.g:8636:1: ( rule__OpCompare__Group_1__1__Impl )
+            // InternalSignalDSL.g:8637:2: rule__OpCompare__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpCompare__Group_1__1__Impl();
@@ -29039,17 +29647,17 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__1__Impl"
-    // InternalSignalDSL.g:8485:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
+    // InternalSignalDSL.g:8643:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
     public final void rule__OpCompare__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8489:1: ( ( '=' ) )
-            // InternalSignalDSL.g:8490:1: ( '=' )
+            // InternalSignalDSL.g:8647:1: ( ( '=' ) )
+            // InternalSignalDSL.g:8648:1: ( '=' )
             {
-            // InternalSignalDSL.g:8490:1: ( '=' )
-            // InternalSignalDSL.g:8491:2: '='
+            // InternalSignalDSL.g:8648:1: ( '=' )
+            // InternalSignalDSL.g:8649:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
@@ -29080,16 +29688,16 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__0"
-    // InternalSignalDSL.g:8501:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
+    // InternalSignalDSL.g:8659:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
     public final void rule__XOtherOperatorExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8505:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
-            // InternalSignalDSL.g:8506:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
+            // InternalSignalDSL.g:8663:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
+            // InternalSignalDSL.g:8664:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_56);
             rule__XOtherOperatorExpression__Group__0__Impl();
 
             state._fsp--;
@@ -29118,17 +29726,17 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__0__Impl"
-    // InternalSignalDSL.g:8513:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
+    // InternalSignalDSL.g:8671:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
     public final void rule__XOtherOperatorExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8517:1: ( ( ruleXAdditiveExpression ) )
-            // InternalSignalDSL.g:8518:1: ( ruleXAdditiveExpression )
+            // InternalSignalDSL.g:8675:1: ( ( ruleXAdditiveExpression ) )
+            // InternalSignalDSL.g:8676:1: ( ruleXAdditiveExpression )
             {
-            // InternalSignalDSL.g:8518:1: ( ruleXAdditiveExpression )
-            // InternalSignalDSL.g:8519:2: ruleXAdditiveExpression
+            // InternalSignalDSL.g:8676:1: ( ruleXAdditiveExpression )
+            // InternalSignalDSL.g:8677:2: ruleXAdditiveExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
@@ -29163,14 +29771,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__1"
-    // InternalSignalDSL.g:8528:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:8686:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8532:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
-            // InternalSignalDSL.g:8533:2: rule__XOtherOperatorExpression__Group__1__Impl
+            // InternalSignalDSL.g:8690:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
+            // InternalSignalDSL.g:8691:2: rule__XOtherOperatorExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group__1__Impl();
@@ -29196,31 +29804,31 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__1__Impl"
-    // InternalSignalDSL.g:8539:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:8697:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
     public final void rule__XOtherOperatorExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8543:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:8544:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:8701:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:8702:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:8544:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:8545:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            // InternalSignalDSL.g:8702:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:8703:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:8546:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
-            loop76:
+            // InternalSignalDSL.g:8704:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            loop79:
             do {
-                int alt76=2;
-                alt76 = dfa76.predict(input);
-                switch (alt76) {
+                int alt79=2;
+                alt79 = dfa79.predict(input);
+                switch (alt79) {
             	case 1 :
-            	    // InternalSignalDSL.g:8546:3: rule__XOtherOperatorExpression__Group_1__0
+            	    // InternalSignalDSL.g:8704:3: rule__XOtherOperatorExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_58);
+            	    pushFollow(FOLLOW_57);
             	    rule__XOtherOperatorExpression__Group_1__0();
 
             	    state._fsp--;
@@ -29230,7 +29838,7 @@
             	    break;
 
             	default :
-            	    break loop76;
+            	    break loop79;
                 }
             } while (true);
 
@@ -29259,16 +29867,16 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0"
-    // InternalSignalDSL.g:8555:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
+    // InternalSignalDSL.g:8713:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
     public final void rule__XOtherOperatorExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8559:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
-            // InternalSignalDSL.g:8560:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
+            // InternalSignalDSL.g:8717:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
+            // InternalSignalDSL.g:8718:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XOtherOperatorExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -29297,23 +29905,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:8567:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:8725:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8571:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:8572:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:8729:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:8730:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:8572:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:8573:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:8730:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:8731:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:8574:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:8574:3: rule__XOtherOperatorExpression__Group_1_0__0
+            // InternalSignalDSL.g:8732:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:8732:3: rule__XOtherOperatorExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0__0();
@@ -29348,14 +29956,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1"
-    // InternalSignalDSL.g:8582:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:8740:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8586:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:8587:2: rule__XOtherOperatorExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:8744:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:8745:2: rule__XOtherOperatorExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1__1__Impl();
@@ -29381,23 +29989,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:8593:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:8751:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8597:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:8598:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:8755:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:8756:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:8598:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
-            // InternalSignalDSL.g:8599:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:8756:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:8757:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:8600:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
-            // InternalSignalDSL.g:8600:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
+            // InternalSignalDSL.g:8758:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:8758:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__RightOperandAssignment_1_1();
@@ -29432,14 +30040,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0"
-    // InternalSignalDSL.g:8609:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:8767:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
     public final void rule__XOtherOperatorExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8613:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:8614:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:8771:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:8772:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0__0__Impl();
@@ -29465,23 +30073,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:8620:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:8778:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8624:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:8625:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8782:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:8783:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:8625:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:8626:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8783:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:8784:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:8627:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:8627:3: rule__XOtherOperatorExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:8785:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:8785:3: rule__XOtherOperatorExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0_0__0();
@@ -29516,16 +30124,16 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:8636:1: rule__XOtherOperatorExpression__Group_1_0_0__0 : rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 ;
+    // InternalSignalDSL.g:8794:1: rule__XOtherOperatorExpression__Group_1_0_0__0 : rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8640:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:8641:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:8798:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:8799:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_56);
             rule__XOtherOperatorExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -29554,23 +30162,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:8648:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:8806:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8652:1: ( ( () ) )
-            // InternalSignalDSL.g:8653:1: ( () )
+            // InternalSignalDSL.g:8810:1: ( ( () ) )
+            // InternalSignalDSL.g:8811:1: ( () )
             {
-            // InternalSignalDSL.g:8653:1: ( () )
-            // InternalSignalDSL.g:8654:2: ()
+            // InternalSignalDSL.g:8811:1: ( () )
+            // InternalSignalDSL.g:8812:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:8655:2: ()
-            // InternalSignalDSL.g:8655:3: 
+            // InternalSignalDSL.g:8813:2: ()
+            // InternalSignalDSL.g:8813:3: 
             {
             }
 
@@ -29595,14 +30203,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:8663:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:8821:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8667:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:8668:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:8825:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:8826:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0_0__1__Impl();
@@ -29628,23 +30236,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:8674:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:8832:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8678:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:8679:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:8836:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:8837:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:8679:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalSignalDSL.g:8680:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:8837:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:8838:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:8681:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
-            // InternalSignalDSL.g:8681:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
+            // InternalSignalDSL.g:8839:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:8839:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1();
@@ -29679,16 +30287,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__0"
-    // InternalSignalDSL.g:8690:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
+    // InternalSignalDSL.g:8848:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
     public final void rule__OpOther__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8694:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
-            // InternalSignalDSL.g:8695:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
+            // InternalSignalDSL.g:8852:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
+            // InternalSignalDSL.g:8853:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
             {
-            pushFollow(FOLLOW_59);
+            pushFollow(FOLLOW_58);
             rule__OpOther__Group_2__0__Impl();
 
             state._fsp--;
@@ -29717,22 +30325,22 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__0__Impl"
-    // InternalSignalDSL.g:8702:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:8860:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8706:1: ( ( '>' ) )
-            // InternalSignalDSL.g:8707:1: ( '>' )
+            // InternalSignalDSL.g:8864:1: ( ( '>' ) )
+            // InternalSignalDSL.g:8865:1: ( '>' )
             {
-            // InternalSignalDSL.g:8707:1: ( '>' )
-            // InternalSignalDSL.g:8708:2: '>'
+            // InternalSignalDSL.g:8865:1: ( '>' )
+            // InternalSignalDSL.g:8866:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
             }
-            match(input,26,FOLLOW_2); if (state.failed) return ;
+            match(input,27,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
             }
@@ -29758,14 +30366,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__1"
-    // InternalSignalDSL.g:8717:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
+    // InternalSignalDSL.g:8875:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
     public final void rule__OpOther__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8721:1: ( rule__OpOther__Group_2__1__Impl )
-            // InternalSignalDSL.g:8722:2: rule__OpOther__Group_2__1__Impl
+            // InternalSignalDSL.g:8879:1: ( rule__OpOther__Group_2__1__Impl )
+            // InternalSignalDSL.g:8880:2: rule__OpOther__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_2__1__Impl();
@@ -29791,22 +30399,22 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__1__Impl"
-    // InternalSignalDSL.g:8728:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
+    // InternalSignalDSL.g:8886:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
     public final void rule__OpOther__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8732:1: ( ( '..' ) )
-            // InternalSignalDSL.g:8733:1: ( '..' )
+            // InternalSignalDSL.g:8890:1: ( ( '..' ) )
+            // InternalSignalDSL.g:8891:1: ( '..' )
             {
-            // InternalSignalDSL.g:8733:1: ( '..' )
-            // InternalSignalDSL.g:8734:2: '..'
+            // InternalSignalDSL.g:8891:1: ( '..' )
+            // InternalSignalDSL.g:8892:2: '..'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
             }
-            match(input,30,FOLLOW_2); if (state.failed) return ;
+            match(input,31,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
             }
@@ -29832,16 +30440,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__0"
-    // InternalSignalDSL.g:8744:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
+    // InternalSignalDSL.g:8902:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
     public final void rule__OpOther__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8748:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
-            // InternalSignalDSL.g:8749:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
+            // InternalSignalDSL.g:8906:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
+            // InternalSignalDSL.g:8907:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
             {
-            pushFollow(FOLLOW_60);
+            pushFollow(FOLLOW_59);
             rule__OpOther__Group_5__0__Impl();
 
             state._fsp--;
@@ -29870,22 +30478,22 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__0__Impl"
-    // InternalSignalDSL.g:8756:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:8914:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8760:1: ( ( '>' ) )
-            // InternalSignalDSL.g:8761:1: ( '>' )
+            // InternalSignalDSL.g:8918:1: ( ( '>' ) )
+            // InternalSignalDSL.g:8919:1: ( '>' )
             {
-            // InternalSignalDSL.g:8761:1: ( '>' )
-            // InternalSignalDSL.g:8762:2: '>'
+            // InternalSignalDSL.g:8919:1: ( '>' )
+            // InternalSignalDSL.g:8920:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
             }
-            match(input,26,FOLLOW_2); if (state.failed) return ;
+            match(input,27,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
             }
@@ -29911,14 +30519,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__1"
-    // InternalSignalDSL.g:8771:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
+    // InternalSignalDSL.g:8929:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
     public final void rule__OpOther__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8775:1: ( rule__OpOther__Group_5__1__Impl )
-            // InternalSignalDSL.g:8776:2: rule__OpOther__Group_5__1__Impl
+            // InternalSignalDSL.g:8933:1: ( rule__OpOther__Group_5__1__Impl )
+            // InternalSignalDSL.g:8934:2: rule__OpOther__Group_5__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5__1__Impl();
@@ -29944,23 +30552,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__1__Impl"
-    // InternalSignalDSL.g:8782:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
+    // InternalSignalDSL.g:8940:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
     public final void rule__OpOther__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8786:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
-            // InternalSignalDSL.g:8787:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalSignalDSL.g:8944:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
+            // InternalSignalDSL.g:8945:1: ( ( rule__OpOther__Alternatives_5_1 ) )
             {
-            // InternalSignalDSL.g:8787:1: ( ( rule__OpOther__Alternatives_5_1 ) )
-            // InternalSignalDSL.g:8788:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalSignalDSL.g:8945:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalSignalDSL.g:8946:2: ( rule__OpOther__Alternatives_5_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); 
             }
-            // InternalSignalDSL.g:8789:2: ( rule__OpOther__Alternatives_5_1 )
-            // InternalSignalDSL.g:8789:3: rule__OpOther__Alternatives_5_1
+            // InternalSignalDSL.g:8947:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalSignalDSL.g:8947:3: rule__OpOther__Alternatives_5_1
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives_5_1();
@@ -29995,14 +30603,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0__0"
-    // InternalSignalDSL.g:8798:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
+    // InternalSignalDSL.g:8956:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
     public final void rule__OpOther__Group_5_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8802:1: ( rule__OpOther__Group_5_1_0__0__Impl )
-            // InternalSignalDSL.g:8803:2: rule__OpOther__Group_5_1_0__0__Impl
+            // InternalSignalDSL.g:8960:1: ( rule__OpOther__Group_5_1_0__0__Impl )
+            // InternalSignalDSL.g:8961:2: rule__OpOther__Group_5_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0__0__Impl();
@@ -30028,23 +30636,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0__0__Impl"
-    // InternalSignalDSL.g:8809:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:8967:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
     public final void rule__OpOther__Group_5_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8813:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:8814:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalSignalDSL.g:8971:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:8972:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:8814:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
-            // InternalSignalDSL.g:8815:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalSignalDSL.g:8972:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalSignalDSL.g:8973:2: ( rule__OpOther__Group_5_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); 
             }
-            // InternalSignalDSL.g:8816:2: ( rule__OpOther__Group_5_1_0_0__0 )
-            // InternalSignalDSL.g:8816:3: rule__OpOther__Group_5_1_0_0__0
+            // InternalSignalDSL.g:8974:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalSignalDSL.g:8974:3: rule__OpOther__Group_5_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0_0__0();
@@ -30079,16 +30687,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__0"
-    // InternalSignalDSL.g:8825:1: rule__OpOther__Group_5_1_0_0__0 : rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 ;
+    // InternalSignalDSL.g:8983:1: rule__OpOther__Group_5_1_0_0__0 : rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 ;
     public final void rule__OpOther__Group_5_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8829:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
-            // InternalSignalDSL.g:8830:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
+            // InternalSignalDSL.g:8987:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
+            // InternalSignalDSL.g:8988:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
             {
-            pushFollow(FOLLOW_60);
+            pushFollow(FOLLOW_59);
             rule__OpOther__Group_5_1_0_0__0__Impl();
 
             state._fsp--;
@@ -30117,22 +30725,22 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__0__Impl"
-    // InternalSignalDSL.g:8837:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:8995:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8841:1: ( ( '>' ) )
-            // InternalSignalDSL.g:8842:1: ( '>' )
+            // InternalSignalDSL.g:8999:1: ( ( '>' ) )
+            // InternalSignalDSL.g:9000:1: ( '>' )
             {
-            // InternalSignalDSL.g:8842:1: ( '>' )
-            // InternalSignalDSL.g:8843:2: '>'
+            // InternalSignalDSL.g:9000:1: ( '>' )
+            // InternalSignalDSL.g:9001:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
             }
-            match(input,26,FOLLOW_2); if (state.failed) return ;
+            match(input,27,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
             }
@@ -30158,14 +30766,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__1"
-    // InternalSignalDSL.g:8852:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:9010:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
     public final void rule__OpOther__Group_5_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8856:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
-            // InternalSignalDSL.g:8857:2: rule__OpOther__Group_5_1_0_0__1__Impl
+            // InternalSignalDSL.g:9014:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
+            // InternalSignalDSL.g:9015:2: rule__OpOther__Group_5_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0_0__1__Impl();
@@ -30191,22 +30799,22 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__1__Impl"
-    // InternalSignalDSL.g:8863:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:9021:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8867:1: ( ( '>' ) )
-            // InternalSignalDSL.g:8868:1: ( '>' )
+            // InternalSignalDSL.g:9025:1: ( ( '>' ) )
+            // InternalSignalDSL.g:9026:1: ( '>' )
             {
-            // InternalSignalDSL.g:8868:1: ( '>' )
-            // InternalSignalDSL.g:8869:2: '>'
+            // InternalSignalDSL.g:9026:1: ( '>' )
+            // InternalSignalDSL.g:9027:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
             }
-            match(input,26,FOLLOW_2); if (state.failed) return ;
+            match(input,27,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
             }
@@ -30232,16 +30840,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__0"
-    // InternalSignalDSL.g:8879:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
+    // InternalSignalDSL.g:9037:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
     public final void rule__OpOther__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8883:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
-            // InternalSignalDSL.g:8884:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
+            // InternalSignalDSL.g:9041:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
+            // InternalSignalDSL.g:9042:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
             {
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_60);
             rule__OpOther__Group_6__0__Impl();
 
             state._fsp--;
@@ -30270,22 +30878,22 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__0__Impl"
-    // InternalSignalDSL.g:8891:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:9049:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8895:1: ( ( '<' ) )
-            // InternalSignalDSL.g:8896:1: ( '<' )
+            // InternalSignalDSL.g:9053:1: ( ( '<' ) )
+            // InternalSignalDSL.g:9054:1: ( '<' )
             {
-            // InternalSignalDSL.g:8896:1: ( '<' )
-            // InternalSignalDSL.g:8897:2: '<'
+            // InternalSignalDSL.g:9054:1: ( '<' )
+            // InternalSignalDSL.g:9055:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
             }
-            match(input,27,FOLLOW_2); if (state.failed) return ;
+            match(input,28,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
             }
@@ -30311,14 +30919,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__1"
-    // InternalSignalDSL.g:8906:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
+    // InternalSignalDSL.g:9064:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
     public final void rule__OpOther__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8910:1: ( rule__OpOther__Group_6__1__Impl )
-            // InternalSignalDSL.g:8911:2: rule__OpOther__Group_6__1__Impl
+            // InternalSignalDSL.g:9068:1: ( rule__OpOther__Group_6__1__Impl )
+            // InternalSignalDSL.g:9069:2: rule__OpOther__Group_6__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6__1__Impl();
@@ -30344,23 +30952,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__1__Impl"
-    // InternalSignalDSL.g:8917:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
+    // InternalSignalDSL.g:9075:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
     public final void rule__OpOther__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8921:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
-            // InternalSignalDSL.g:8922:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalSignalDSL.g:9079:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
+            // InternalSignalDSL.g:9080:1: ( ( rule__OpOther__Alternatives_6_1 ) )
             {
-            // InternalSignalDSL.g:8922:1: ( ( rule__OpOther__Alternatives_6_1 ) )
-            // InternalSignalDSL.g:8923:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalSignalDSL.g:9080:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalSignalDSL.g:9081:2: ( rule__OpOther__Alternatives_6_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); 
             }
-            // InternalSignalDSL.g:8924:2: ( rule__OpOther__Alternatives_6_1 )
-            // InternalSignalDSL.g:8924:3: rule__OpOther__Alternatives_6_1
+            // InternalSignalDSL.g:9082:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalSignalDSL.g:9082:3: rule__OpOther__Alternatives_6_1
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives_6_1();
@@ -30395,14 +31003,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0__0"
-    // InternalSignalDSL.g:8933:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
+    // InternalSignalDSL.g:9091:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
     public final void rule__OpOther__Group_6_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8937:1: ( rule__OpOther__Group_6_1_0__0__Impl )
-            // InternalSignalDSL.g:8938:2: rule__OpOther__Group_6_1_0__0__Impl
+            // InternalSignalDSL.g:9095:1: ( rule__OpOther__Group_6_1_0__0__Impl )
+            // InternalSignalDSL.g:9096:2: rule__OpOther__Group_6_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0__0__Impl();
@@ -30428,23 +31036,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0__0__Impl"
-    // InternalSignalDSL.g:8944:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:9102:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
     public final void rule__OpOther__Group_6_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8948:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:8949:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalSignalDSL.g:9106:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:9107:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:8949:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
-            // InternalSignalDSL.g:8950:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalSignalDSL.g:9107:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalSignalDSL.g:9108:2: ( rule__OpOther__Group_6_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); 
             }
-            // InternalSignalDSL.g:8951:2: ( rule__OpOther__Group_6_1_0_0__0 )
-            // InternalSignalDSL.g:8951:3: rule__OpOther__Group_6_1_0_0__0
+            // InternalSignalDSL.g:9109:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalSignalDSL.g:9109:3: rule__OpOther__Group_6_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0_0__0();
@@ -30479,16 +31087,16 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__0"
-    // InternalSignalDSL.g:8960:1: rule__OpOther__Group_6_1_0_0__0 : rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 ;
+    // InternalSignalDSL.g:9118:1: rule__OpOther__Group_6_1_0_0__0 : rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 ;
     public final void rule__OpOther__Group_6_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8964:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
-            // InternalSignalDSL.g:8965:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
+            // InternalSignalDSL.g:9122:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
+            // InternalSignalDSL.g:9123:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
             {
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_44);
             rule__OpOther__Group_6_1_0_0__0__Impl();
 
             state._fsp--;
@@ -30517,22 +31125,22 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__0__Impl"
-    // InternalSignalDSL.g:8972:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:9130:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8976:1: ( ( '<' ) )
-            // InternalSignalDSL.g:8977:1: ( '<' )
+            // InternalSignalDSL.g:9134:1: ( ( '<' ) )
+            // InternalSignalDSL.g:9135:1: ( '<' )
             {
-            // InternalSignalDSL.g:8977:1: ( '<' )
-            // InternalSignalDSL.g:8978:2: '<'
+            // InternalSignalDSL.g:9135:1: ( '<' )
+            // InternalSignalDSL.g:9136:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
             }
-            match(input,27,FOLLOW_2); if (state.failed) return ;
+            match(input,28,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
             }
@@ -30558,14 +31166,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__1"
-    // InternalSignalDSL.g:8987:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:9145:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
     public final void rule__OpOther__Group_6_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:8991:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
-            // InternalSignalDSL.g:8992:2: rule__OpOther__Group_6_1_0_0__1__Impl
+            // InternalSignalDSL.g:9149:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
+            // InternalSignalDSL.g:9150:2: rule__OpOther__Group_6_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0_0__1__Impl();
@@ -30591,22 +31199,22 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__1__Impl"
-    // InternalSignalDSL.g:8998:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:9156:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9002:1: ( ( '<' ) )
-            // InternalSignalDSL.g:9003:1: ( '<' )
+            // InternalSignalDSL.g:9160:1: ( ( '<' ) )
+            // InternalSignalDSL.g:9161:1: ( '<' )
             {
-            // InternalSignalDSL.g:9003:1: ( '<' )
-            // InternalSignalDSL.g:9004:2: '<'
+            // InternalSignalDSL.g:9161:1: ( '<' )
+            // InternalSignalDSL.g:9162:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
             }
-            match(input,27,FOLLOW_2); if (state.failed) return ;
+            match(input,28,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
             }
@@ -30632,16 +31240,16 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__0"
-    // InternalSignalDSL.g:9014:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
+    // InternalSignalDSL.g:9172:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
     public final void rule__XAdditiveExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9018:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
-            // InternalSignalDSL.g:9019:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
+            // InternalSignalDSL.g:9176:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
+            // InternalSignalDSL.g:9177:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
             {
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_61);
             rule__XAdditiveExpression__Group__0__Impl();
 
             state._fsp--;
@@ -30670,17 +31278,17 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__0__Impl"
-    // InternalSignalDSL.g:9026:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
+    // InternalSignalDSL.g:9184:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
     public final void rule__XAdditiveExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9030:1: ( ( ruleXMultiplicativeExpression ) )
-            // InternalSignalDSL.g:9031:1: ( ruleXMultiplicativeExpression )
+            // InternalSignalDSL.g:9188:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalSignalDSL.g:9189:1: ( ruleXMultiplicativeExpression )
             {
-            // InternalSignalDSL.g:9031:1: ( ruleXMultiplicativeExpression )
-            // InternalSignalDSL.g:9032:2: ruleXMultiplicativeExpression
+            // InternalSignalDSL.g:9189:1: ( ruleXMultiplicativeExpression )
+            // InternalSignalDSL.g:9190:2: ruleXMultiplicativeExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
@@ -30715,14 +31323,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__1"
-    // InternalSignalDSL.g:9041:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:9199:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
     public final void rule__XAdditiveExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9045:1: ( rule__XAdditiveExpression__Group__1__Impl )
-            // InternalSignalDSL.g:9046:2: rule__XAdditiveExpression__Group__1__Impl
+            // InternalSignalDSL.g:9203:1: ( rule__XAdditiveExpression__Group__1__Impl )
+            // InternalSignalDSL.g:9204:2: rule__XAdditiveExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group__1__Impl();
@@ -30748,52 +31356,52 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__1__Impl"
-    // InternalSignalDSL.g:9052:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:9210:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
     public final void rule__XAdditiveExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9056:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:9057:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:9214:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:9215:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:9057:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:9058:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            // InternalSignalDSL.g:9215:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:9216:2: ( rule__XAdditiveExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:9059:2: ( rule__XAdditiveExpression__Group_1__0 )*
-            loop77:
+            // InternalSignalDSL.g:9217:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            loop80:
             do {
-                int alt77=2;
-                int LA77_0 = input.LA(1);
+                int alt80=2;
+                int LA80_0 = input.LA(1);
 
-                if ( (LA77_0==35) ) {
-                    int LA77_2 = input.LA(2);
+                if ( (LA80_0==36) ) {
+                    int LA80_2 = input.LA(2);
 
-                    if ( (synpred129_InternalSignalDSL()) ) {
-                        alt77=1;
+                    if ( (synpred133_InternalSignalDSL()) ) {
+                        alt80=1;
                     }
 
 
                 }
-                else if ( (LA77_0==34) ) {
-                    int LA77_3 = input.LA(2);
+                else if ( (LA80_0==35) ) {
+                    int LA80_3 = input.LA(2);
 
-                    if ( (synpred129_InternalSignalDSL()) ) {
-                        alt77=1;
+                    if ( (synpred133_InternalSignalDSL()) ) {
+                        alt80=1;
                     }
 
 
                 }
 
 
-                switch (alt77) {
+                switch (alt80) {
             	case 1 :
-            	    // InternalSignalDSL.g:9059:3: rule__XAdditiveExpression__Group_1__0
+            	    // InternalSignalDSL.g:9217:3: rule__XAdditiveExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_63);
+            	    pushFollow(FOLLOW_62);
             	    rule__XAdditiveExpression__Group_1__0();
 
             	    state._fsp--;
@@ -30803,7 +31411,7 @@
             	    break;
 
             	default :
-            	    break loop77;
+            	    break loop80;
                 }
             } while (true);
 
@@ -30832,16 +31440,16 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__0"
-    // InternalSignalDSL.g:9068:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
+    // InternalSignalDSL.g:9226:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
     public final void rule__XAdditiveExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9072:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
-            // InternalSignalDSL.g:9073:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
+            // InternalSignalDSL.g:9230:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
+            // InternalSignalDSL.g:9231:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XAdditiveExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -30870,23 +31478,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:9080:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:9238:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
     public final void rule__XAdditiveExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9084:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:9085:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:9242:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:9243:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:9085:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:9086:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:9243:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:9244:2: ( rule__XAdditiveExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:9087:2: ( rule__XAdditiveExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:9087:3: rule__XAdditiveExpression__Group_1_0__0
+            // InternalSignalDSL.g:9245:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:9245:3: rule__XAdditiveExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0__0();
@@ -30921,14 +31529,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__1"
-    // InternalSignalDSL.g:9095:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:9253:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
     public final void rule__XAdditiveExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9099:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:9100:2: rule__XAdditiveExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:9257:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:9258:2: rule__XAdditiveExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1__1__Impl();
@@ -30954,23 +31562,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:9106:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:9264:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XAdditiveExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9110:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:9111:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:9268:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:9269:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:9111:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
-            // InternalSignalDSL.g:9112:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:9269:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:9270:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:9113:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
-            // InternalSignalDSL.g:9113:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
+            // InternalSignalDSL.g:9271:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:9271:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__RightOperandAssignment_1_1();
@@ -31005,14 +31613,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0"
-    // InternalSignalDSL.g:9122:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:9280:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
     public final void rule__XAdditiveExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9126:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:9127:2: rule__XAdditiveExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:9284:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:9285:2: rule__XAdditiveExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0__0__Impl();
@@ -31038,23 +31646,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:9133:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:9291:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XAdditiveExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9137:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:9138:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:9295:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:9296:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:9138:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:9139:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:9296:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:9297:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:9140:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:9140:3: rule__XAdditiveExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:9298:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:9298:3: rule__XAdditiveExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0_0__0();
@@ -31089,16 +31697,16 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:9149:1: rule__XAdditiveExpression__Group_1_0_0__0 : rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 ;
+    // InternalSignalDSL.g:9307:1: rule__XAdditiveExpression__Group_1_0_0__0 : rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 ;
     public final void rule__XAdditiveExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9153:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:9154:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:9311:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:9312:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_61);
             rule__XAdditiveExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -31127,23 +31735,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:9161:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:9319:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XAdditiveExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9165:1: ( ( () ) )
-            // InternalSignalDSL.g:9166:1: ( () )
+            // InternalSignalDSL.g:9323:1: ( ( () ) )
+            // InternalSignalDSL.g:9324:1: ( () )
             {
-            // InternalSignalDSL.g:9166:1: ( () )
-            // InternalSignalDSL.g:9167:2: ()
+            // InternalSignalDSL.g:9324:1: ( () )
+            // InternalSignalDSL.g:9325:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:9168:2: ()
-            // InternalSignalDSL.g:9168:3: 
+            // InternalSignalDSL.g:9326:2: ()
+            // InternalSignalDSL.g:9326:3: 
             {
             }
 
@@ -31168,14 +31776,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:9176:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:9334:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
     public final void rule__XAdditiveExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9180:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:9181:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:9338:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:9339:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0_0__1__Impl();
@@ -31201,23 +31809,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:9187:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:9345:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XAdditiveExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9191:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:9192:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:9349:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:9350:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:9192:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalSignalDSL.g:9193:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:9350:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:9351:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:9194:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
-            // InternalSignalDSL.g:9194:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
+            // InternalSignalDSL.g:9352:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:9352:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__FeatureAssignment_1_0_0_1();
@@ -31252,16 +31860,16 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__0"
-    // InternalSignalDSL.g:9203:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
+    // InternalSignalDSL.g:9361:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
     public final void rule__XMultiplicativeExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9207:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
-            // InternalSignalDSL.g:9208:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
+            // InternalSignalDSL.g:9365:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
+            // InternalSignalDSL.g:9366:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
             {
-            pushFollow(FOLLOW_64);
+            pushFollow(FOLLOW_63);
             rule__XMultiplicativeExpression__Group__0__Impl();
 
             state._fsp--;
@@ -31290,17 +31898,17 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__0__Impl"
-    // InternalSignalDSL.g:9215:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
+    // InternalSignalDSL.g:9373:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
     public final void rule__XMultiplicativeExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9219:1: ( ( ruleXUnaryOperation ) )
-            // InternalSignalDSL.g:9220:1: ( ruleXUnaryOperation )
+            // InternalSignalDSL.g:9377:1: ( ( ruleXUnaryOperation ) )
+            // InternalSignalDSL.g:9378:1: ( ruleXUnaryOperation )
             {
-            // InternalSignalDSL.g:9220:1: ( ruleXUnaryOperation )
-            // InternalSignalDSL.g:9221:2: ruleXUnaryOperation
+            // InternalSignalDSL.g:9378:1: ( ruleXUnaryOperation )
+            // InternalSignalDSL.g:9379:2: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
@@ -31335,14 +31943,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__1"
-    // InternalSignalDSL.g:9230:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:9388:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9234:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
-            // InternalSignalDSL.g:9235:2: rule__XMultiplicativeExpression__Group__1__Impl
+            // InternalSignalDSL.g:9392:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
+            // InternalSignalDSL.g:9393:2: rule__XMultiplicativeExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group__1__Impl();
@@ -31368,43 +31976,32 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__1__Impl"
-    // InternalSignalDSL.g:9241:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:9399:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
     public final void rule__XMultiplicativeExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9245:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:9246:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:9403:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:9404:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:9246:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:9247:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            // InternalSignalDSL.g:9404:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:9405:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:9248:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
-            loop78:
+            // InternalSignalDSL.g:9406:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            loop81:
             do {
-                int alt78=2;
+                int alt81=2;
                 switch ( input.LA(1) ) {
-                case 36:
-                    {
-                    int LA78_2 = input.LA(2);
-
-                    if ( (synpred130_InternalSignalDSL()) ) {
-                        alt78=1;
-                    }
-
-
-                    }
-                    break;
                 case 37:
                     {
-                    int LA78_3 = input.LA(2);
+                    int LA81_2 = input.LA(2);
 
-                    if ( (synpred130_InternalSignalDSL()) ) {
-                        alt78=1;
+                    if ( (synpred134_InternalSignalDSL()) ) {
+                        alt81=1;
                     }
 
 
@@ -31412,10 +32009,10 @@
                     break;
                 case 38:
                     {
-                    int LA78_4 = input.LA(2);
+                    int LA81_3 = input.LA(2);
 
-                    if ( (synpred130_InternalSignalDSL()) ) {
-                        alt78=1;
+                    if ( (synpred134_InternalSignalDSL()) ) {
+                        alt81=1;
                     }
 
 
@@ -31423,10 +32020,21 @@
                     break;
                 case 39:
                     {
-                    int LA78_5 = input.LA(2);
+                    int LA81_4 = input.LA(2);
 
-                    if ( (synpred130_InternalSignalDSL()) ) {
-                        alt78=1;
+                    if ( (synpred134_InternalSignalDSL()) ) {
+                        alt81=1;
+                    }
+
+
+                    }
+                    break;
+                case 40:
+                    {
+                    int LA81_5 = input.LA(2);
+
+                    if ( (synpred134_InternalSignalDSL()) ) {
+                        alt81=1;
                     }
 
 
@@ -31435,11 +32043,11 @@
 
                 }
 
-                switch (alt78) {
+                switch (alt81) {
             	case 1 :
-            	    // InternalSignalDSL.g:9248:3: rule__XMultiplicativeExpression__Group_1__0
+            	    // InternalSignalDSL.g:9406:3: rule__XMultiplicativeExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_65);
+            	    pushFollow(FOLLOW_64);
             	    rule__XMultiplicativeExpression__Group_1__0();
 
             	    state._fsp--;
@@ -31449,7 +32057,7 @@
             	    break;
 
             	default :
-            	    break loop78;
+            	    break loop81;
                 }
             } while (true);
 
@@ -31478,16 +32086,16 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0"
-    // InternalSignalDSL.g:9257:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
+    // InternalSignalDSL.g:9415:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
     public final void rule__XMultiplicativeExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9261:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
-            // InternalSignalDSL.g:9262:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
+            // InternalSignalDSL.g:9419:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
+            // InternalSignalDSL.g:9420:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XMultiplicativeExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -31516,23 +32124,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:9269:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:9427:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9273:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:9274:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:9431:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:9432:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:9274:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:9275:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:9432:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:9433:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:9276:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:9276:3: rule__XMultiplicativeExpression__Group_1_0__0
+            // InternalSignalDSL.g:9434:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:9434:3: rule__XMultiplicativeExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0__0();
@@ -31567,14 +32175,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1"
-    // InternalSignalDSL.g:9284:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:9442:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9288:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:9289:2: rule__XMultiplicativeExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:9446:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:9447:2: rule__XMultiplicativeExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1__1__Impl();
@@ -31600,23 +32208,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:9295:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:9453:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9299:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:9300:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:9457:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:9458:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:9300:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
-            // InternalSignalDSL.g:9301:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:9458:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalSignalDSL.g:9459:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:9302:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
-            // InternalSignalDSL.g:9302:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
+            // InternalSignalDSL.g:9460:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalSignalDSL.g:9460:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__RightOperandAssignment_1_1();
@@ -31651,14 +32259,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0"
-    // InternalSignalDSL.g:9311:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:9469:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
     public final void rule__XMultiplicativeExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9315:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:9316:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:9473:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:9474:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0__0__Impl();
@@ -31684,23 +32292,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:9322:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:9480:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9326:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:9327:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:9484:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:9485:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:9327:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:9328:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:9485:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:9486:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:9329:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:9329:3: rule__XMultiplicativeExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:9487:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:9487:3: rule__XMultiplicativeExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0_0__0();
@@ -31735,16 +32343,16 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:9338:1: rule__XMultiplicativeExpression__Group_1_0_0__0 : rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 ;
+    // InternalSignalDSL.g:9496:1: rule__XMultiplicativeExpression__Group_1_0_0__0 : rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9342:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:9343:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:9500:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:9501:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_64);
+            pushFollow(FOLLOW_63);
             rule__XMultiplicativeExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -31773,23 +32381,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:9350:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:9508:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9354:1: ( ( () ) )
-            // InternalSignalDSL.g:9355:1: ( () )
+            // InternalSignalDSL.g:9512:1: ( ( () ) )
+            // InternalSignalDSL.g:9513:1: ( () )
             {
-            // InternalSignalDSL.g:9355:1: ( () )
-            // InternalSignalDSL.g:9356:2: ()
+            // InternalSignalDSL.g:9513:1: ( () )
+            // InternalSignalDSL.g:9514:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:9357:2: ()
-            // InternalSignalDSL.g:9357:3: 
+            // InternalSignalDSL.g:9515:2: ()
+            // InternalSignalDSL.g:9515:3: 
             {
             }
 
@@ -31814,14 +32422,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:9365:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:9523:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9369:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:9370:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:9527:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:9528:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0_0__1__Impl();
@@ -31847,23 +32455,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:9376:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:9534:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9380:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:9381:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:9538:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:9539:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:9381:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalSignalDSL.g:9382:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:9539:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalSignalDSL.g:9540:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:9383:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
-            // InternalSignalDSL.g:9383:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
+            // InternalSignalDSL.g:9541:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalSignalDSL.g:9541:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1();
@@ -31898,16 +32506,16 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__0"
-    // InternalSignalDSL.g:9392:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
+    // InternalSignalDSL.g:9550:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
     public final void rule__XUnaryOperation__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9396:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
-            // InternalSignalDSL.g:9397:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
+            // InternalSignalDSL.g:9554:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
+            // InternalSignalDSL.g:9555:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
             {
-            pushFollow(FOLLOW_66);
+            pushFollow(FOLLOW_65);
             rule__XUnaryOperation__Group_0__0__Impl();
 
             state._fsp--;
@@ -31936,23 +32544,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__0__Impl"
-    // InternalSignalDSL.g:9404:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:9562:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
     public final void rule__XUnaryOperation__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9408:1: ( ( () ) )
-            // InternalSignalDSL.g:9409:1: ( () )
+            // InternalSignalDSL.g:9566:1: ( ( () ) )
+            // InternalSignalDSL.g:9567:1: ( () )
             {
-            // InternalSignalDSL.g:9409:1: ( () )
-            // InternalSignalDSL.g:9410:2: ()
+            // InternalSignalDSL.g:9567:1: ( () )
+            // InternalSignalDSL.g:9568:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); 
             }
-            // InternalSignalDSL.g:9411:2: ()
-            // InternalSignalDSL.g:9411:3: 
+            // InternalSignalDSL.g:9569:2: ()
+            // InternalSignalDSL.g:9569:3: 
             {
             }
 
@@ -31977,16 +32585,16 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__1"
-    // InternalSignalDSL.g:9419:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
+    // InternalSignalDSL.g:9577:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
     public final void rule__XUnaryOperation__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9423:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
-            // InternalSignalDSL.g:9424:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
+            // InternalSignalDSL.g:9581:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
+            // InternalSignalDSL.g:9582:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XUnaryOperation__Group_0__1__Impl();
 
             state._fsp--;
@@ -32015,23 +32623,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__1__Impl"
-    // InternalSignalDSL.g:9431:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
+    // InternalSignalDSL.g:9589:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
     public final void rule__XUnaryOperation__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9435:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
-            // InternalSignalDSL.g:9436:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalSignalDSL.g:9593:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
+            // InternalSignalDSL.g:9594:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
             {
-            // InternalSignalDSL.g:9436:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
-            // InternalSignalDSL.g:9437:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalSignalDSL.g:9594:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalSignalDSL.g:9595:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalSignalDSL.g:9438:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
-            // InternalSignalDSL.g:9438:3: rule__XUnaryOperation__FeatureAssignment_0_1
+            // InternalSignalDSL.g:9596:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalSignalDSL.g:9596:3: rule__XUnaryOperation__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__FeatureAssignment_0_1();
@@ -32066,14 +32674,14 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__2"
-    // InternalSignalDSL.g:9446:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
+    // InternalSignalDSL.g:9604:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
     public final void rule__XUnaryOperation__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9450:1: ( rule__XUnaryOperation__Group_0__2__Impl )
-            // InternalSignalDSL.g:9451:2: rule__XUnaryOperation__Group_0__2__Impl
+            // InternalSignalDSL.g:9608:1: ( rule__XUnaryOperation__Group_0__2__Impl )
+            // InternalSignalDSL.g:9609:2: rule__XUnaryOperation__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__Group_0__2__Impl();
@@ -32099,23 +32707,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__2__Impl"
-    // InternalSignalDSL.g:9457:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
+    // InternalSignalDSL.g:9615:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
     public final void rule__XUnaryOperation__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9461:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
-            // InternalSignalDSL.g:9462:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalSignalDSL.g:9619:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
+            // InternalSignalDSL.g:9620:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
             {
-            // InternalSignalDSL.g:9462:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
-            // InternalSignalDSL.g:9463:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalSignalDSL.g:9620:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalSignalDSL.g:9621:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); 
             }
-            // InternalSignalDSL.g:9464:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
-            // InternalSignalDSL.g:9464:3: rule__XUnaryOperation__OperandAssignment_0_2
+            // InternalSignalDSL.g:9622:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalSignalDSL.g:9622:3: rule__XUnaryOperation__OperandAssignment_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__OperandAssignment_0_2();
@@ -32150,16 +32758,16 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__0"
-    // InternalSignalDSL.g:9473:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
+    // InternalSignalDSL.g:9631:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
     public final void rule__XCastedExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9477:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
-            // InternalSignalDSL.g:9478:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
+            // InternalSignalDSL.g:9635:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
+            // InternalSignalDSL.g:9636:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_66);
             rule__XCastedExpression__Group__0__Impl();
 
             state._fsp--;
@@ -32188,17 +32796,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__0__Impl"
-    // InternalSignalDSL.g:9485:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
+    // InternalSignalDSL.g:9643:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
     public final void rule__XCastedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9489:1: ( ( ruleXPostfixOperation ) )
-            // InternalSignalDSL.g:9490:1: ( ruleXPostfixOperation )
+            // InternalSignalDSL.g:9647:1: ( ( ruleXPostfixOperation ) )
+            // InternalSignalDSL.g:9648:1: ( ruleXPostfixOperation )
             {
-            // InternalSignalDSL.g:9490:1: ( ruleXPostfixOperation )
-            // InternalSignalDSL.g:9491:2: ruleXPostfixOperation
+            // InternalSignalDSL.g:9648:1: ( ruleXPostfixOperation )
+            // InternalSignalDSL.g:9649:2: ruleXPostfixOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
@@ -32233,14 +32841,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__1"
-    // InternalSignalDSL.g:9500:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
+    // InternalSignalDSL.g:9658:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
     public final void rule__XCastedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9504:1: ( rule__XCastedExpression__Group__1__Impl )
-            // InternalSignalDSL.g:9505:2: rule__XCastedExpression__Group__1__Impl
+            // InternalSignalDSL.g:9662:1: ( rule__XCastedExpression__Group__1__Impl )
+            // InternalSignalDSL.g:9663:2: rule__XCastedExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group__1__Impl();
@@ -32266,43 +32874,43 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__1__Impl"
-    // InternalSignalDSL.g:9511:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:9669:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
     public final void rule__XCastedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9515:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
-            // InternalSignalDSL.g:9516:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:9673:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
+            // InternalSignalDSL.g:9674:1: ( ( rule__XCastedExpression__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:9516:1: ( ( rule__XCastedExpression__Group_1__0 )* )
-            // InternalSignalDSL.g:9517:2: ( rule__XCastedExpression__Group_1__0 )*
+            // InternalSignalDSL.g:9674:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalSignalDSL.g:9675:2: ( rule__XCastedExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:9518:2: ( rule__XCastedExpression__Group_1__0 )*
-            loop79:
+            // InternalSignalDSL.g:9676:2: ( rule__XCastedExpression__Group_1__0 )*
+            loop82:
             do {
-                int alt79=2;
-                int LA79_0 = input.LA(1);
+                int alt82=2;
+                int LA82_0 = input.LA(1);
 
-                if ( (LA79_0==85) ) {
-                    int LA79_2 = input.LA(2);
+                if ( (LA82_0==87) ) {
+                    int LA82_2 = input.LA(2);
 
-                    if ( (synpred131_InternalSignalDSL()) ) {
-                        alt79=1;
+                    if ( (synpred135_InternalSignalDSL()) ) {
+                        alt82=1;
                     }
 
 
                 }
 
 
-                switch (alt79) {
+                switch (alt82) {
             	case 1 :
-            	    // InternalSignalDSL.g:9518:3: rule__XCastedExpression__Group_1__0
+            	    // InternalSignalDSL.g:9676:3: rule__XCastedExpression__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_68);
+            	    pushFollow(FOLLOW_67);
             	    rule__XCastedExpression__Group_1__0();
 
             	    state._fsp--;
@@ -32312,7 +32920,7 @@
             	    break;
 
             	default :
-            	    break loop79;
+            	    break loop82;
                 }
             } while (true);
 
@@ -32341,16 +32949,16 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__0"
-    // InternalSignalDSL.g:9527:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
+    // InternalSignalDSL.g:9685:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
     public final void rule__XCastedExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9531:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
-            // InternalSignalDSL.g:9532:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
+            // InternalSignalDSL.g:9689:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
+            // InternalSignalDSL.g:9690:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XCastedExpression__Group_1__0__Impl();
 
             state._fsp--;
@@ -32379,23 +32987,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__0__Impl"
-    // InternalSignalDSL.g:9539:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:9697:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
     public final void rule__XCastedExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9543:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:9544:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:9701:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:9702:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:9544:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
-            // InternalSignalDSL.g:9545:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:9702:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalSignalDSL.g:9703:2: ( rule__XCastedExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:9546:2: ( rule__XCastedExpression__Group_1_0__0 )
-            // InternalSignalDSL.g:9546:3: rule__XCastedExpression__Group_1_0__0
+            // InternalSignalDSL.g:9704:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalSignalDSL.g:9704:3: rule__XCastedExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0__0();
@@ -32430,14 +33038,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__1"
-    // InternalSignalDSL.g:9554:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
+    // InternalSignalDSL.g:9712:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
     public final void rule__XCastedExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9558:1: ( rule__XCastedExpression__Group_1__1__Impl )
-            // InternalSignalDSL.g:9559:2: rule__XCastedExpression__Group_1__1__Impl
+            // InternalSignalDSL.g:9716:1: ( rule__XCastedExpression__Group_1__1__Impl )
+            // InternalSignalDSL.g:9717:2: rule__XCastedExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1__1__Impl();
@@ -32463,23 +33071,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__1__Impl"
-    // InternalSignalDSL.g:9565:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:9723:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
     public final void rule__XCastedExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9569:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:9570:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalSignalDSL.g:9727:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:9728:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:9570:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
-            // InternalSignalDSL.g:9571:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalSignalDSL.g:9728:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalSignalDSL.g:9729:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:9572:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
-            // InternalSignalDSL.g:9572:3: rule__XCastedExpression__TypeAssignment_1_1
+            // InternalSignalDSL.g:9730:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalSignalDSL.g:9730:3: rule__XCastedExpression__TypeAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__TypeAssignment_1_1();
@@ -32514,14 +33122,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0__0"
-    // InternalSignalDSL.g:9581:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
+    // InternalSignalDSL.g:9739:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
     public final void rule__XCastedExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9585:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
-            // InternalSignalDSL.g:9586:2: rule__XCastedExpression__Group_1_0__0__Impl
+            // InternalSignalDSL.g:9743:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
+            // InternalSignalDSL.g:9744:2: rule__XCastedExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0__0__Impl();
@@ -32547,23 +33155,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:9592:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:9750:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XCastedExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9596:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:9597:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:9754:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:9755:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:9597:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:9598:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:9755:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:9756:2: ( rule__XCastedExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:9599:2: ( rule__XCastedExpression__Group_1_0_0__0 )
-            // InternalSignalDSL.g:9599:3: rule__XCastedExpression__Group_1_0_0__0
+            // InternalSignalDSL.g:9757:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalSignalDSL.g:9757:3: rule__XCastedExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0_0__0();
@@ -32598,16 +33206,16 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0"
-    // InternalSignalDSL.g:9608:1: rule__XCastedExpression__Group_1_0_0__0 : rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 ;
+    // InternalSignalDSL.g:9766:1: rule__XCastedExpression__Group_1_0_0__0 : rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 ;
     public final void rule__XCastedExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9612:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
-            // InternalSignalDSL.g:9613:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
+            // InternalSignalDSL.g:9770:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
+            // InternalSignalDSL.g:9771:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_67);
+            pushFollow(FOLLOW_66);
             rule__XCastedExpression__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -32636,23 +33244,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:9620:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:9778:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XCastedExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9624:1: ( ( () ) )
-            // InternalSignalDSL.g:9625:1: ( () )
+            // InternalSignalDSL.g:9782:1: ( ( () ) )
+            // InternalSignalDSL.g:9783:1: ( () )
             {
-            // InternalSignalDSL.g:9625:1: ( () )
-            // InternalSignalDSL.g:9626:2: ()
+            // InternalSignalDSL.g:9783:1: ( () )
+            // InternalSignalDSL.g:9784:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:9627:2: ()
-            // InternalSignalDSL.g:9627:3: 
+            // InternalSignalDSL.g:9785:2: ()
+            // InternalSignalDSL.g:9785:3: 
             {
             }
 
@@ -32677,14 +33285,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1"
-    // InternalSignalDSL.g:9635:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:9793:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
     public final void rule__XCastedExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9639:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:9640:2: rule__XCastedExpression__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:9797:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:9798:2: rule__XCastedExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0_0__1__Impl();
@@ -32710,22 +33318,22 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:9646:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
+    // InternalSignalDSL.g:9804:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
     public final void rule__XCastedExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9650:1: ( ( 'as' ) )
-            // InternalSignalDSL.g:9651:1: ( 'as' )
+            // InternalSignalDSL.g:9808:1: ( ( 'as' ) )
+            // InternalSignalDSL.g:9809:1: ( 'as' )
             {
-            // InternalSignalDSL.g:9651:1: ( 'as' )
-            // InternalSignalDSL.g:9652:2: 'as'
+            // InternalSignalDSL.g:9809:1: ( 'as' )
+            // InternalSignalDSL.g:9810:2: 'as'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
             }
-            match(input,85,FOLLOW_2); if (state.failed) return ;
+            match(input,87,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
             }
@@ -32751,16 +33359,16 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__0"
-    // InternalSignalDSL.g:9662:1: rule__XPostfixOperation__Group__0 : rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 ;
+    // InternalSignalDSL.g:9820:1: rule__XPostfixOperation__Group__0 : rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 ;
     public final void rule__XPostfixOperation__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9666:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
-            // InternalSignalDSL.g:9667:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
+            // InternalSignalDSL.g:9824:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
+            // InternalSignalDSL.g:9825:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
             {
-            pushFollow(FOLLOW_69);
+            pushFollow(FOLLOW_68);
             rule__XPostfixOperation__Group__0__Impl();
 
             state._fsp--;
@@ -32789,17 +33397,17 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__0__Impl"
-    // InternalSignalDSL.g:9674:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
+    // InternalSignalDSL.g:9832:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
     public final void rule__XPostfixOperation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9678:1: ( ( ruleXMemberFeatureCall ) )
-            // InternalSignalDSL.g:9679:1: ( ruleXMemberFeatureCall )
+            // InternalSignalDSL.g:9836:1: ( ( ruleXMemberFeatureCall ) )
+            // InternalSignalDSL.g:9837:1: ( ruleXMemberFeatureCall )
             {
-            // InternalSignalDSL.g:9679:1: ( ruleXMemberFeatureCall )
-            // InternalSignalDSL.g:9680:2: ruleXMemberFeatureCall
+            // InternalSignalDSL.g:9837:1: ( ruleXMemberFeatureCall )
+            // InternalSignalDSL.g:9838:2: ruleXMemberFeatureCall
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
@@ -32834,14 +33442,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__1"
-    // InternalSignalDSL.g:9689:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
+    // InternalSignalDSL.g:9847:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
     public final void rule__XPostfixOperation__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9693:1: ( rule__XPostfixOperation__Group__1__Impl )
-            // InternalSignalDSL.g:9694:2: rule__XPostfixOperation__Group__1__Impl
+            // InternalSignalDSL.g:9851:1: ( rule__XPostfixOperation__Group__1__Impl )
+            // InternalSignalDSL.g:9852:2: rule__XPostfixOperation__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group__1__Impl();
@@ -32867,42 +33475,42 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__1__Impl"
-    // InternalSignalDSL.g:9700:1: rule__XPostfixOperation__Group__1__Impl : ( ( rule__XPostfixOperation__Group_1__0 )? ) ;
+    // InternalSignalDSL.g:9858:1: rule__XPostfixOperation__Group__1__Impl : ( ( rule__XPostfixOperation__Group_1__0 )? ) ;
     public final void rule__XPostfixOperation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9704:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
-            // InternalSignalDSL.g:9705:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalSignalDSL.g:9862:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
+            // InternalSignalDSL.g:9863:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
             {
-            // InternalSignalDSL.g:9705:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
-            // InternalSignalDSL.g:9706:2: ( rule__XPostfixOperation__Group_1__0 )?
+            // InternalSignalDSL.g:9863:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalSignalDSL.g:9864:2: ( rule__XPostfixOperation__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:9707:2: ( rule__XPostfixOperation__Group_1__0 )?
-            int alt80=2;
-            int LA80_0 = input.LA(1);
+            // InternalSignalDSL.g:9865:2: ( rule__XPostfixOperation__Group_1__0 )?
+            int alt83=2;
+            int LA83_0 = input.LA(1);
 
-            if ( (LA80_0==41) ) {
-                int LA80_1 = input.LA(2);
+            if ( (LA83_0==42) ) {
+                int LA83_1 = input.LA(2);
 
-                if ( (synpred132_InternalSignalDSL()) ) {
-                    alt80=1;
+                if ( (synpred136_InternalSignalDSL()) ) {
+                    alt83=1;
                 }
             }
-            else if ( (LA80_0==42) ) {
-                int LA80_2 = input.LA(2);
+            else if ( (LA83_0==43) ) {
+                int LA83_2 = input.LA(2);
 
-                if ( (synpred132_InternalSignalDSL()) ) {
-                    alt80=1;
+                if ( (synpred136_InternalSignalDSL()) ) {
+                    alt83=1;
                 }
             }
-            switch (alt80) {
+            switch (alt83) {
                 case 1 :
-                    // InternalSignalDSL.g:9707:3: rule__XPostfixOperation__Group_1__0
+                    // InternalSignalDSL.g:9865:3: rule__XPostfixOperation__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XPostfixOperation__Group_1__0();
@@ -32940,14 +33548,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1__0"
-    // InternalSignalDSL.g:9716:1: rule__XPostfixOperation__Group_1__0 : rule__XPostfixOperation__Group_1__0__Impl ;
+    // InternalSignalDSL.g:9874:1: rule__XPostfixOperation__Group_1__0 : rule__XPostfixOperation__Group_1__0__Impl ;
     public final void rule__XPostfixOperation__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9720:1: ( rule__XPostfixOperation__Group_1__0__Impl )
-            // InternalSignalDSL.g:9721:2: rule__XPostfixOperation__Group_1__0__Impl
+            // InternalSignalDSL.g:9878:1: ( rule__XPostfixOperation__Group_1__0__Impl )
+            // InternalSignalDSL.g:9879:2: rule__XPostfixOperation__Group_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1__0__Impl();
@@ -32973,23 +33581,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1__0__Impl"
-    // InternalSignalDSL.g:9727:1: rule__XPostfixOperation__Group_1__0__Impl : ( ( rule__XPostfixOperation__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:9885:1: rule__XPostfixOperation__Group_1__0__Impl : ( ( rule__XPostfixOperation__Group_1_0__0 ) ) ;
     public final void rule__XPostfixOperation__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9731:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:9732:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalSignalDSL.g:9889:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:9890:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:9732:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
-            // InternalSignalDSL.g:9733:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalSignalDSL.g:9890:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalSignalDSL.g:9891:2: ( rule__XPostfixOperation__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:9734:2: ( rule__XPostfixOperation__Group_1_0__0 )
-            // InternalSignalDSL.g:9734:3: rule__XPostfixOperation__Group_1_0__0
+            // InternalSignalDSL.g:9892:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalSignalDSL.g:9892:3: rule__XPostfixOperation__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1_0__0();
@@ -33024,16 +33632,16 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__0"
-    // InternalSignalDSL.g:9743:1: rule__XPostfixOperation__Group_1_0__0 : rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 ;
+    // InternalSignalDSL.g:9901:1: rule__XPostfixOperation__Group_1_0__0 : rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 ;
     public final void rule__XPostfixOperation__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9747:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
-            // InternalSignalDSL.g:9748:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
+            // InternalSignalDSL.g:9905:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
+            // InternalSignalDSL.g:9906:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
             {
-            pushFollow(FOLLOW_69);
+            pushFollow(FOLLOW_68);
             rule__XPostfixOperation__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -33062,23 +33670,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:9755:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:9913:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
     public final void rule__XPostfixOperation__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9759:1: ( ( () ) )
-            // InternalSignalDSL.g:9760:1: ( () )
+            // InternalSignalDSL.g:9917:1: ( ( () ) )
+            // InternalSignalDSL.g:9918:1: ( () )
             {
-            // InternalSignalDSL.g:9760:1: ( () )
-            // InternalSignalDSL.g:9761:2: ()
+            // InternalSignalDSL.g:9918:1: ( () )
+            // InternalSignalDSL.g:9919:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); 
             }
-            // InternalSignalDSL.g:9762:2: ()
-            // InternalSignalDSL.g:9762:3: 
+            // InternalSignalDSL.g:9920:2: ()
+            // InternalSignalDSL.g:9920:3: 
             {
             }
 
@@ -33103,14 +33711,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__1"
-    // InternalSignalDSL.g:9770:1: rule__XPostfixOperation__Group_1_0__1 : rule__XPostfixOperation__Group_1_0__1__Impl ;
+    // InternalSignalDSL.g:9928:1: rule__XPostfixOperation__Group_1_0__1 : rule__XPostfixOperation__Group_1_0__1__Impl ;
     public final void rule__XPostfixOperation__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9774:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
-            // InternalSignalDSL.g:9775:2: rule__XPostfixOperation__Group_1_0__1__Impl
+            // InternalSignalDSL.g:9932:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
+            // InternalSignalDSL.g:9933:2: rule__XPostfixOperation__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1_0__1__Impl();
@@ -33136,23 +33744,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__1__Impl"
-    // InternalSignalDSL.g:9781:1: rule__XPostfixOperation__Group_1_0__1__Impl : ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) ;
+    // InternalSignalDSL.g:9939:1: rule__XPostfixOperation__Group_1_0__1__Impl : ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) ;
     public final void rule__XPostfixOperation__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9785:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
-            // InternalSignalDSL.g:9786:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:9943:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
+            // InternalSignalDSL.g:9944:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
             {
-            // InternalSignalDSL.g:9786:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
-            // InternalSignalDSL.g:9787:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalSignalDSL.g:9944:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:9945:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); 
             }
-            // InternalSignalDSL.g:9788:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
-            // InternalSignalDSL.g:9788:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
+            // InternalSignalDSL.g:9946:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalSignalDSL.g:9946:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__FeatureAssignment_1_0_1();
@@ -33187,16 +33795,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__0"
-    // InternalSignalDSL.g:9797:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
+    // InternalSignalDSL.g:9955:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
     public final void rule__XMemberFeatureCall__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9801:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
-            // InternalSignalDSL.g:9802:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
+            // InternalSignalDSL.g:9959:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
+            // InternalSignalDSL.g:9960:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XMemberFeatureCall__Group__0__Impl();
 
             state._fsp--;
@@ -33225,17 +33833,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__0__Impl"
-    // InternalSignalDSL.g:9809:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
+    // InternalSignalDSL.g:9967:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
     public final void rule__XMemberFeatureCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9813:1: ( ( ruleXPrimaryExpression ) )
-            // InternalSignalDSL.g:9814:1: ( ruleXPrimaryExpression )
+            // InternalSignalDSL.g:9971:1: ( ( ruleXPrimaryExpression ) )
+            // InternalSignalDSL.g:9972:1: ( ruleXPrimaryExpression )
             {
-            // InternalSignalDSL.g:9814:1: ( ruleXPrimaryExpression )
-            // InternalSignalDSL.g:9815:2: ruleXPrimaryExpression
+            // InternalSignalDSL.g:9972:1: ( ruleXPrimaryExpression )
+            // InternalSignalDSL.g:9973:2: ruleXPrimaryExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
@@ -33270,14 +33878,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__1"
-    // InternalSignalDSL.g:9824:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
+    // InternalSignalDSL.g:9982:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
     public final void rule__XMemberFeatureCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9828:1: ( rule__XMemberFeatureCall__Group__1__Impl )
-            // InternalSignalDSL.g:9829:2: rule__XMemberFeatureCall__Group__1__Impl
+            // InternalSignalDSL.g:9986:1: ( rule__XMemberFeatureCall__Group__1__Impl )
+            // InternalSignalDSL.g:9987:2: rule__XMemberFeatureCall__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group__1__Impl();
@@ -33303,54 +33911,54 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__1__Impl"
-    // InternalSignalDSL.g:9835:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
+    // InternalSignalDSL.g:9993:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
     public final void rule__XMemberFeatureCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9839:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
-            // InternalSignalDSL.g:9840:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalSignalDSL.g:9997:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
+            // InternalSignalDSL.g:9998:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
             {
-            // InternalSignalDSL.g:9840:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
-            // InternalSignalDSL.g:9841:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            // InternalSignalDSL.g:9998:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalSignalDSL.g:9999:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); 
             }
-            // InternalSignalDSL.g:9842:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
-            loop81:
+            // InternalSignalDSL.g:10000:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            loop84:
             do {
-                int alt81=2;
+                int alt84=2;
                 switch ( input.LA(1) ) {
-                case 43:
+                case 44:
                     {
-                    int LA81_2 = input.LA(2);
+                    int LA84_2 = input.LA(2);
 
-                    if ( (synpred133_InternalSignalDSL()) ) {
-                        alt81=1;
+                    if ( (synpred137_InternalSignalDSL()) ) {
+                        alt84=1;
                     }
 
 
                     }
                     break;
-                case 107:
+                case 111:
                     {
-                    int LA81_3 = input.LA(2);
+                    int LA84_3 = input.LA(2);
 
-                    if ( (synpred133_InternalSignalDSL()) ) {
-                        alt81=1;
+                    if ( (synpred137_InternalSignalDSL()) ) {
+                        alt84=1;
                     }
 
 
                     }
                     break;
-                case 108:
+                case 112:
                     {
-                    int LA81_4 = input.LA(2);
+                    int LA84_4 = input.LA(2);
 
-                    if ( (synpred133_InternalSignalDSL()) ) {
-                        alt81=1;
+                    if ( (synpred137_InternalSignalDSL()) ) {
+                        alt84=1;
                     }
 
 
@@ -33359,11 +33967,11 @@
 
                 }
 
-                switch (alt81) {
+                switch (alt84) {
             	case 1 :
-            	    // InternalSignalDSL.g:9842:3: rule__XMemberFeatureCall__Alternatives_1
+            	    // InternalSignalDSL.g:10000:3: rule__XMemberFeatureCall__Alternatives_1
             	    {
-            	    pushFollow(FOLLOW_71);
+            	    pushFollow(FOLLOW_70);
             	    rule__XMemberFeatureCall__Alternatives_1();
 
             	    state._fsp--;
@@ -33373,7 +33981,7 @@
             	    break;
 
             	default :
-            	    break loop81;
+            	    break loop84;
                 }
             } while (true);
 
@@ -33402,16 +34010,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0"
-    // InternalSignalDSL.g:9851:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
+    // InternalSignalDSL.g:10009:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
     public final void rule__XMemberFeatureCall__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9855:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
-            // InternalSignalDSL.g:9856:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
+            // InternalSignalDSL.g:10013:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
+            // InternalSignalDSL.g:10014:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XMemberFeatureCall__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -33440,23 +34048,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:9863:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:10021:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9867:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:9868:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:10025:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:10026:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:9868:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
-            // InternalSignalDSL.g:9869:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalSignalDSL.g:10026:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalSignalDSL.g:10027:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:9870:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
-            // InternalSignalDSL.g:9870:3: rule__XMemberFeatureCall__Group_1_0_0__0
+            // InternalSignalDSL.g:10028:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalSignalDSL.g:10028:3: rule__XMemberFeatureCall__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0__0();
@@ -33491,14 +34099,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1"
-    // InternalSignalDSL.g:9878:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
+    // InternalSignalDSL.g:10036:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9882:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
-            // InternalSignalDSL.g:9883:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
+            // InternalSignalDSL.g:10040:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
+            // InternalSignalDSL.g:10041:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0__1__Impl();
@@ -33524,23 +34132,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1__Impl"
-    // InternalSignalDSL.g:9889:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
+    // InternalSignalDSL.g:10047:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9893:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
-            // InternalSignalDSL.g:9894:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:10051:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
+            // InternalSignalDSL.g:10052:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
             {
-            // InternalSignalDSL.g:9894:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
-            // InternalSignalDSL.g:9895:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalSignalDSL.g:10052:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:10053:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); 
             }
-            // InternalSignalDSL.g:9896:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
-            // InternalSignalDSL.g:9896:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
+            // InternalSignalDSL.g:10054:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalSignalDSL.g:10054:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__ValueAssignment_1_0_1();
@@ -33575,14 +34183,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0"
-    // InternalSignalDSL.g:9905:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
+    // InternalSignalDSL.g:10063:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9909:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
-            // InternalSignalDSL.g:9910:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
+            // InternalSignalDSL.g:10067:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
+            // InternalSignalDSL.g:10068:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0__0__Impl();
@@ -33608,23 +34216,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:9916:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
+    // InternalSignalDSL.g:10074:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9920:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
-            // InternalSignalDSL.g:9921:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalSignalDSL.g:10078:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
+            // InternalSignalDSL.g:10079:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
             {
-            // InternalSignalDSL.g:9921:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
-            // InternalSignalDSL.g:9922:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalSignalDSL.g:10079:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalSignalDSL.g:10080:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:9923:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
-            // InternalSignalDSL.g:9923:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
+            // InternalSignalDSL.g:10081:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalSignalDSL.g:10081:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0_0__0();
@@ -33659,16 +34267,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0"
-    // InternalSignalDSL.g:9932:1: rule__XMemberFeatureCall__Group_1_0_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 ;
+    // InternalSignalDSL.g:10090:1: rule__XMemberFeatureCall__Group_1_0_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9936:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
-            // InternalSignalDSL.g:9937:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
+            // InternalSignalDSL.g:10094:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
+            // InternalSignalDSL.g:10095:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
             {
-            pushFollow(FOLLOW_72);
+            pushFollow(FOLLOW_71);
             rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl();
 
             state._fsp--;
@@ -33697,23 +34305,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl"
-    // InternalSignalDSL.g:9944:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:10102:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9948:1: ( ( () ) )
-            // InternalSignalDSL.g:9949:1: ( () )
+            // InternalSignalDSL.g:10106:1: ( ( () ) )
+            // InternalSignalDSL.g:10107:1: ( () )
             {
-            // InternalSignalDSL.g:9949:1: ( () )
-            // InternalSignalDSL.g:9950:2: ()
+            // InternalSignalDSL.g:10107:1: ( () )
+            // InternalSignalDSL.g:10108:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); 
             }
-            // InternalSignalDSL.g:9951:2: ()
-            // InternalSignalDSL.g:9951:3: 
+            // InternalSignalDSL.g:10109:2: ()
+            // InternalSignalDSL.g:10109:3: 
             {
             }
 
@@ -33738,16 +34346,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1"
-    // InternalSignalDSL.g:9959:1: rule__XMemberFeatureCall__Group_1_0_0_0__1 : rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 ;
+    // InternalSignalDSL.g:10117:1: rule__XMemberFeatureCall__Group_1_0_0_0__1 : rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9963:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
-            // InternalSignalDSL.g:9964:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
+            // InternalSignalDSL.g:10121:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
+            // InternalSignalDSL.g:10122:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
             {
-            pushFollow(FOLLOW_43);
+            pushFollow(FOLLOW_42);
             rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl();
 
             state._fsp--;
@@ -33776,23 +34384,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl"
-    // InternalSignalDSL.g:9971:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
+    // InternalSignalDSL.g:10129:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9975:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
-            // InternalSignalDSL.g:9976:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalSignalDSL.g:10133:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
+            // InternalSignalDSL.g:10134:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
             {
-            // InternalSignalDSL.g:9976:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
-            // InternalSignalDSL.g:9977:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalSignalDSL.g:10134:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalSignalDSL.g:10135:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); 
             }
-            // InternalSignalDSL.g:9978:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
-            // InternalSignalDSL.g:9978:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
+            // InternalSignalDSL.g:10136:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalSignalDSL.g:10136:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Alternatives_1_0_0_0_1();
@@ -33827,16 +34435,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2"
-    // InternalSignalDSL.g:9986:1: rule__XMemberFeatureCall__Group_1_0_0_0__2 : rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 ;
+    // InternalSignalDSL.g:10144:1: rule__XMemberFeatureCall__Group_1_0_0_0__2 : rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:9990:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
-            // InternalSignalDSL.g:9991:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
+            // InternalSignalDSL.g:10148:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
+            // InternalSignalDSL.g:10149:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
             {
-            pushFollow(FOLLOW_39);
+            pushFollow(FOLLOW_38);
             rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl();
 
             state._fsp--;
@@ -33865,23 +34473,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl"
-    // InternalSignalDSL.g:9998:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
+    // InternalSignalDSL.g:10156:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10002:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
-            // InternalSignalDSL.g:10003:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalSignalDSL.g:10160:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
+            // InternalSignalDSL.g:10161:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
             {
-            // InternalSignalDSL.g:10003:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
-            // InternalSignalDSL.g:10004:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalSignalDSL.g:10161:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalSignalDSL.g:10162:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); 
             }
-            // InternalSignalDSL.g:10005:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
-            // InternalSignalDSL.g:10005:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
+            // InternalSignalDSL.g:10163:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalSignalDSL.g:10163:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2();
@@ -33916,14 +34524,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3"
-    // InternalSignalDSL.g:10013:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
+    // InternalSignalDSL.g:10171:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10017:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
-            // InternalSignalDSL.g:10018:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
+            // InternalSignalDSL.g:10175:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
+            // InternalSignalDSL.g:10176:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl();
@@ -33949,17 +34557,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl"
-    // InternalSignalDSL.g:10024:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
+    // InternalSignalDSL.g:10182:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10028:1: ( ( ruleOpSingleAssign ) )
-            // InternalSignalDSL.g:10029:1: ( ruleOpSingleAssign )
+            // InternalSignalDSL.g:10186:1: ( ( ruleOpSingleAssign ) )
+            // InternalSignalDSL.g:10187:1: ( ruleOpSingleAssign )
             {
-            // InternalSignalDSL.g:10029:1: ( ruleOpSingleAssign )
-            // InternalSignalDSL.g:10030:2: ruleOpSingleAssign
+            // InternalSignalDSL.g:10187:1: ( ruleOpSingleAssign )
+            // InternalSignalDSL.g:10188:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
@@ -33994,16 +34602,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0"
-    // InternalSignalDSL.g:10040:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
+    // InternalSignalDSL.g:10198:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10044:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
-            // InternalSignalDSL.g:10045:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
+            // InternalSignalDSL.g:10202:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
+            // InternalSignalDSL.g:10203:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
             {
-            pushFollow(FOLLOW_73);
+            pushFollow(FOLLOW_72);
             rule__XMemberFeatureCall__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -34032,23 +34640,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0__Impl"
-    // InternalSignalDSL.g:10052:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
+    // InternalSignalDSL.g:10210:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10056:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
-            // InternalSignalDSL.g:10057:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalSignalDSL.g:10214:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
+            // InternalSignalDSL.g:10215:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
             {
-            // InternalSignalDSL.g:10057:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
-            // InternalSignalDSL.g:10058:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalSignalDSL.g:10215:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalSignalDSL.g:10216:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); 
             }
-            // InternalSignalDSL.g:10059:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
-            // InternalSignalDSL.g:10059:3: rule__XMemberFeatureCall__Group_1_1_0__0
+            // InternalSignalDSL.g:10217:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalSignalDSL.g:10217:3: rule__XMemberFeatureCall__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0__0();
@@ -34083,16 +34691,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1"
-    // InternalSignalDSL.g:10067:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
+    // InternalSignalDSL.g:10225:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
     public final void rule__XMemberFeatureCall__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10071:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
-            // InternalSignalDSL.g:10072:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
+            // InternalSignalDSL.g:10229:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
+            // InternalSignalDSL.g:10230:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
             {
-            pushFollow(FOLLOW_73);
+            pushFollow(FOLLOW_72);
             rule__XMemberFeatureCall__Group_1_1__1__Impl();
 
             state._fsp--;
@@ -34121,31 +34729,31 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1__Impl"
-    // InternalSignalDSL.g:10079:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
+    // InternalSignalDSL.g:10237:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10083:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
-            // InternalSignalDSL.g:10084:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalSignalDSL.g:10241:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
+            // InternalSignalDSL.g:10242:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
             {
-            // InternalSignalDSL.g:10084:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
-            // InternalSignalDSL.g:10085:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            // InternalSignalDSL.g:10242:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalSignalDSL.g:10243:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); 
             }
-            // InternalSignalDSL.g:10086:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
-            int alt82=2;
-            int LA82_0 = input.LA(1);
+            // InternalSignalDSL.g:10244:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            int alt85=2;
+            int LA85_0 = input.LA(1);
 
-            if ( (LA82_0==27) ) {
-                alt82=1;
+            if ( (LA85_0==28) ) {
+                alt85=1;
             }
-            switch (alt82) {
+            switch (alt85) {
                 case 1 :
-                    // InternalSignalDSL.g:10086:3: rule__XMemberFeatureCall__Group_1_1_1__0
+                    // InternalSignalDSL.g:10244:3: rule__XMemberFeatureCall__Group_1_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_1__0();
@@ -34183,16 +34791,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2"
-    // InternalSignalDSL.g:10094:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
+    // InternalSignalDSL.g:10252:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
     public final void rule__XMemberFeatureCall__Group_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10098:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
-            // InternalSignalDSL.g:10099:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
+            // InternalSignalDSL.g:10256:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
+            // InternalSignalDSL.g:10257:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
             {
-            pushFollow(FOLLOW_74);
+            pushFollow(FOLLOW_73);
             rule__XMemberFeatureCall__Group_1_1__2__Impl();
 
             state._fsp--;
@@ -34221,23 +34829,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2__Impl"
-    // InternalSignalDSL.g:10106:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
+    // InternalSignalDSL.g:10264:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10110:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
-            // InternalSignalDSL.g:10111:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalSignalDSL.g:10268:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
+            // InternalSignalDSL.g:10269:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
             {
-            // InternalSignalDSL.g:10111:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
-            // InternalSignalDSL.g:10112:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalSignalDSL.g:10269:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalSignalDSL.g:10270:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); 
             }
-            // InternalSignalDSL.g:10113:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
-            // InternalSignalDSL.g:10113:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
+            // InternalSignalDSL.g:10271:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalSignalDSL.g:10271:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__FeatureAssignment_1_1_2();
@@ -34272,16 +34880,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3"
-    // InternalSignalDSL.g:10121:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
+    // InternalSignalDSL.g:10279:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
     public final void rule__XMemberFeatureCall__Group_1_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10125:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
-            // InternalSignalDSL.g:10126:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
+            // InternalSignalDSL.g:10283:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
+            // InternalSignalDSL.g:10284:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
             {
-            pushFollow(FOLLOW_74);
+            pushFollow(FOLLOW_73);
             rule__XMemberFeatureCall__Group_1_1__3__Impl();
 
             state._fsp--;
@@ -34310,27 +34918,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3__Impl"
-    // InternalSignalDSL.g:10133:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
+    // InternalSignalDSL.g:10291:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10137:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
-            // InternalSignalDSL.g:10138:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalSignalDSL.g:10295:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
+            // InternalSignalDSL.g:10296:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
             {
-            // InternalSignalDSL.g:10138:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
-            // InternalSignalDSL.g:10139:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            // InternalSignalDSL.g:10296:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalSignalDSL.g:10297:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); 
             }
-            // InternalSignalDSL.g:10140:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
-            int alt83=2;
-            alt83 = dfa83.predict(input);
-            switch (alt83) {
+            // InternalSignalDSL.g:10298:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            int alt86=2;
+            alt86 = dfa86.predict(input);
+            switch (alt86) {
                 case 1 :
-                    // InternalSignalDSL.g:10140:3: rule__XMemberFeatureCall__Group_1_1_3__0
+                    // InternalSignalDSL.g:10298:3: rule__XMemberFeatureCall__Group_1_1_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_3__0();
@@ -34368,14 +34976,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4"
-    // InternalSignalDSL.g:10148:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
+    // InternalSignalDSL.g:10306:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10152:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
-            // InternalSignalDSL.g:10153:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
+            // InternalSignalDSL.g:10310:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
+            // InternalSignalDSL.g:10311:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1__4__Impl();
@@ -34401,27 +35009,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4__Impl"
-    // InternalSignalDSL.g:10159:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
+    // InternalSignalDSL.g:10317:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10163:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
-            // InternalSignalDSL.g:10164:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalSignalDSL.g:10321:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
+            // InternalSignalDSL.g:10322:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
             {
-            // InternalSignalDSL.g:10164:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
-            // InternalSignalDSL.g:10165:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            // InternalSignalDSL.g:10322:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalSignalDSL.g:10323:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); 
             }
-            // InternalSignalDSL.g:10166:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
-            int alt84=2;
-            alt84 = dfa84.predict(input);
-            switch (alt84) {
+            // InternalSignalDSL.g:10324:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            int alt87=2;
+            alt87 = dfa87.predict(input);
+            switch (alt87) {
                 case 1 :
-                    // InternalSignalDSL.g:10166:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+                    // InternalSignalDSL.g:10324:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
@@ -34459,14 +35067,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0"
-    // InternalSignalDSL.g:10175:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
+    // InternalSignalDSL.g:10333:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10179:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
-            // InternalSignalDSL.g:10180:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
+            // InternalSignalDSL.g:10337:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
+            // InternalSignalDSL.g:10338:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0__0__Impl();
@@ -34492,23 +35100,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0__Impl"
-    // InternalSignalDSL.g:10186:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:10344:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10190:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:10191:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalSignalDSL.g:10348:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:10349:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:10191:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
-            // InternalSignalDSL.g:10192:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalSignalDSL.g:10349:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalSignalDSL.g:10350:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); 
             }
-            // InternalSignalDSL.g:10193:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
-            // InternalSignalDSL.g:10193:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
+            // InternalSignalDSL.g:10351:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalSignalDSL.g:10351:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0_0__0();
@@ -34543,16 +35151,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0"
-    // InternalSignalDSL.g:10202:1: rule__XMemberFeatureCall__Group_1_1_0_0__0 : rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 ;
+    // InternalSignalDSL.g:10360:1: rule__XMemberFeatureCall__Group_1_1_0_0__0 : rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10206:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
-            // InternalSignalDSL.g:10207:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
+            // InternalSignalDSL.g:10364:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
+            // InternalSignalDSL.g:10365:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
             {
-            pushFollow(FOLLOW_70);
+            pushFollow(FOLLOW_69);
             rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl();
 
             state._fsp--;
@@ -34581,23 +35189,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl"
-    // InternalSignalDSL.g:10214:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:10372:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10218:1: ( ( () ) )
-            // InternalSignalDSL.g:10219:1: ( () )
+            // InternalSignalDSL.g:10376:1: ( ( () ) )
+            // InternalSignalDSL.g:10377:1: ( () )
             {
-            // InternalSignalDSL.g:10219:1: ( () )
-            // InternalSignalDSL.g:10220:2: ()
+            // InternalSignalDSL.g:10377:1: ( () )
+            // InternalSignalDSL.g:10378:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:10221:2: ()
-            // InternalSignalDSL.g:10221:3: 
+            // InternalSignalDSL.g:10379:2: ()
+            // InternalSignalDSL.g:10379:3: 
             {
             }
 
@@ -34622,14 +35230,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1"
-    // InternalSignalDSL.g:10229:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:10387:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10233:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
-            // InternalSignalDSL.g:10234:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
+            // InternalSignalDSL.g:10391:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
+            // InternalSignalDSL.g:10392:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl();
@@ -34655,23 +35263,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl"
-    // InternalSignalDSL.g:10240:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
+    // InternalSignalDSL.g:10398:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10244:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
-            // InternalSignalDSL.g:10245:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalSignalDSL.g:10402:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
+            // InternalSignalDSL.g:10403:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
             {
-            // InternalSignalDSL.g:10245:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
-            // InternalSignalDSL.g:10246:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalSignalDSL.g:10403:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalSignalDSL.g:10404:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:10247:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
-            // InternalSignalDSL.g:10247:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
+            // InternalSignalDSL.g:10405:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalSignalDSL.g:10405:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Alternatives_1_1_0_0_1();
@@ -34706,16 +35314,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0"
-    // InternalSignalDSL.g:10256:1: rule__XMemberFeatureCall__Group_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 ;
+    // InternalSignalDSL.g:10414:1: rule__XMemberFeatureCall__Group_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10260:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
-            // InternalSignalDSL.g:10261:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
+            // InternalSignalDSL.g:10418:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
+            // InternalSignalDSL.g:10419:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__XMemberFeatureCall__Group_1_1_1__0__Impl();
 
             state._fsp--;
@@ -34744,22 +35352,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0__Impl"
-    // InternalSignalDSL.g:10268:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:10426:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10272:1: ( ( '<' ) )
-            // InternalSignalDSL.g:10273:1: ( '<' )
+            // InternalSignalDSL.g:10430:1: ( ( '<' ) )
+            // InternalSignalDSL.g:10431:1: ( '<' )
             {
-            // InternalSignalDSL.g:10273:1: ( '<' )
-            // InternalSignalDSL.g:10274:2: '<'
+            // InternalSignalDSL.g:10431:1: ( '<' )
+            // InternalSignalDSL.g:10432:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); 
             }
-            match(input,27,FOLLOW_2); if (state.failed) return ;
+            match(input,28,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); 
             }
@@ -34785,16 +35393,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1"
-    // InternalSignalDSL.g:10283:1: rule__XMemberFeatureCall__Group_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 ;
+    // InternalSignalDSL.g:10441:1: rule__XMemberFeatureCall__Group_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10287:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
-            // InternalSignalDSL.g:10288:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
+            // InternalSignalDSL.g:10445:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
+            // InternalSignalDSL.g:10446:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_75);
             rule__XMemberFeatureCall__Group_1_1_1__1__Impl();
 
             state._fsp--;
@@ -34823,23 +35431,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1__Impl"
-    // InternalSignalDSL.g:10295:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
+    // InternalSignalDSL.g:10453:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10299:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
-            // InternalSignalDSL.g:10300:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalSignalDSL.g:10457:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
+            // InternalSignalDSL.g:10458:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
             {
-            // InternalSignalDSL.g:10300:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
-            // InternalSignalDSL.g:10301:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalSignalDSL.g:10458:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalSignalDSL.g:10459:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); 
             }
-            // InternalSignalDSL.g:10302:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
-            // InternalSignalDSL.g:10302:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
+            // InternalSignalDSL.g:10460:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalSignalDSL.g:10460:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1();
@@ -34874,16 +35482,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2"
-    // InternalSignalDSL.g:10310:1: rule__XMemberFeatureCall__Group_1_1_1__2 : rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 ;
+    // InternalSignalDSL.g:10468:1: rule__XMemberFeatureCall__Group_1_1_1__2 : rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10314:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
-            // InternalSignalDSL.g:10315:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
+            // InternalSignalDSL.g:10472:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
+            // InternalSignalDSL.g:10473:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_75);
             rule__XMemberFeatureCall__Group_1_1_1__2__Impl();
 
             state._fsp--;
@@ -34912,37 +35520,37 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2__Impl"
-    // InternalSignalDSL.g:10322:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
+    // InternalSignalDSL.g:10480:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10326:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
-            // InternalSignalDSL.g:10327:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalSignalDSL.g:10484:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
+            // InternalSignalDSL.g:10485:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
             {
-            // InternalSignalDSL.g:10327:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
-            // InternalSignalDSL.g:10328:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            // InternalSignalDSL.g:10485:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalSignalDSL.g:10486:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); 
             }
-            // InternalSignalDSL.g:10329:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
-            loop85:
+            // InternalSignalDSL.g:10487:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            loop88:
             do {
-                int alt85=2;
-                int LA85_0 = input.LA(1);
+                int alt88=2;
+                int LA88_0 = input.LA(1);
 
-                if ( (LA85_0==80) ) {
-                    alt85=1;
+                if ( (LA88_0==82) ) {
+                    alt88=1;
                 }
 
 
-                switch (alt85) {
+                switch (alt88) {
             	case 1 :
-            	    // InternalSignalDSL.g:10329:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
+            	    // InternalSignalDSL.g:10487:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XMemberFeatureCall__Group_1_1_1_2__0();
 
             	    state._fsp--;
@@ -34952,7 +35560,7 @@
             	    break;
 
             	default :
-            	    break loop85;
+            	    break loop88;
                 }
             } while (true);
 
@@ -34981,14 +35589,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3"
-    // InternalSignalDSL.g:10337:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
+    // InternalSignalDSL.g:10495:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10341:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
-            // InternalSignalDSL.g:10342:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
+            // InternalSignalDSL.g:10499:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
+            // InternalSignalDSL.g:10500:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_1__3__Impl();
@@ -35014,22 +35622,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3__Impl"
-    // InternalSignalDSL.g:10348:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:10506:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10352:1: ( ( '>' ) )
-            // InternalSignalDSL.g:10353:1: ( '>' )
+            // InternalSignalDSL.g:10510:1: ( ( '>' ) )
+            // InternalSignalDSL.g:10511:1: ( '>' )
             {
-            // InternalSignalDSL.g:10353:1: ( '>' )
-            // InternalSignalDSL.g:10354:2: '>'
+            // InternalSignalDSL.g:10511:1: ( '>' )
+            // InternalSignalDSL.g:10512:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); 
             }
-            match(input,26,FOLLOW_2); if (state.failed) return ;
+            match(input,27,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); 
             }
@@ -35055,16 +35663,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0"
-    // InternalSignalDSL.g:10364:1: rule__XMemberFeatureCall__Group_1_1_1_2__0 : rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 ;
+    // InternalSignalDSL.g:10522:1: rule__XMemberFeatureCall__Group_1_1_1_2__0 : rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10368:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
-            // InternalSignalDSL.g:10369:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
+            // InternalSignalDSL.g:10526:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
+            // InternalSignalDSL.g:10527:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl();
 
             state._fsp--;
@@ -35093,22 +35701,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl"
-    // InternalSignalDSL.g:10376:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:10534:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10380:1: ( ( ',' ) )
-            // InternalSignalDSL.g:10381:1: ( ',' )
+            // InternalSignalDSL.g:10538:1: ( ( ',' ) )
+            // InternalSignalDSL.g:10539:1: ( ',' )
             {
-            // InternalSignalDSL.g:10381:1: ( ',' )
-            // InternalSignalDSL.g:10382:2: ','
+            // InternalSignalDSL.g:10539:1: ( ',' )
+            // InternalSignalDSL.g:10540:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
             }
@@ -35134,14 +35742,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1"
-    // InternalSignalDSL.g:10391:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
+    // InternalSignalDSL.g:10549:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10395:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
-            // InternalSignalDSL.g:10396:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
+            // InternalSignalDSL.g:10553:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
+            // InternalSignalDSL.g:10554:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl();
@@ -35167,23 +35775,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl"
-    // InternalSignalDSL.g:10402:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
+    // InternalSignalDSL.g:10560:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10406:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
-            // InternalSignalDSL.g:10407:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalSignalDSL.g:10564:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
+            // InternalSignalDSL.g:10565:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
             {
-            // InternalSignalDSL.g:10407:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
-            // InternalSignalDSL.g:10408:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalSignalDSL.g:10565:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalSignalDSL.g:10566:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); 
             }
-            // InternalSignalDSL.g:10409:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
-            // InternalSignalDSL.g:10409:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
+            // InternalSignalDSL.g:10567:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalSignalDSL.g:10567:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1();
@@ -35218,16 +35826,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0"
-    // InternalSignalDSL.g:10418:1: rule__XMemberFeatureCall__Group_1_1_3__0 : rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 ;
+    // InternalSignalDSL.g:10576:1: rule__XMemberFeatureCall__Group_1_1_3__0 : rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10422:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
-            // InternalSignalDSL.g:10423:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
+            // InternalSignalDSL.g:10580:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
+            // InternalSignalDSL.g:10581:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
             {
-            pushFollow(FOLLOW_77);
+            pushFollow(FOLLOW_76);
             rule__XMemberFeatureCall__Group_1_1_3__0__Impl();
 
             state._fsp--;
@@ -35256,23 +35864,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0__Impl"
-    // InternalSignalDSL.g:10430:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
+    // InternalSignalDSL.g:10588:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10434:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
-            // InternalSignalDSL.g:10435:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalSignalDSL.g:10592:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
+            // InternalSignalDSL.g:10593:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
             {
-            // InternalSignalDSL.g:10435:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
-            // InternalSignalDSL.g:10436:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalSignalDSL.g:10593:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalSignalDSL.g:10594:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); 
             }
-            // InternalSignalDSL.g:10437:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
-            // InternalSignalDSL.g:10437:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
+            // InternalSignalDSL.g:10595:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalSignalDSL.g:10595:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0();
@@ -35307,16 +35915,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1"
-    // InternalSignalDSL.g:10445:1: rule__XMemberFeatureCall__Group_1_1_3__1 : rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 ;
+    // InternalSignalDSL.g:10603:1: rule__XMemberFeatureCall__Group_1_1_3__1 : rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10449:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
-            // InternalSignalDSL.g:10450:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
+            // InternalSignalDSL.g:10607:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
+            // InternalSignalDSL.g:10608:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
             {
-            pushFollow(FOLLOW_77);
+            pushFollow(FOLLOW_76);
             rule__XMemberFeatureCall__Group_1_1_3__1__Impl();
 
             state._fsp--;
@@ -35345,31 +35953,31 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1__Impl"
-    // InternalSignalDSL.g:10457:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
+    // InternalSignalDSL.g:10615:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10461:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
-            // InternalSignalDSL.g:10462:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalSignalDSL.g:10619:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
+            // InternalSignalDSL.g:10620:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
             {
-            // InternalSignalDSL.g:10462:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
-            // InternalSignalDSL.g:10463:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            // InternalSignalDSL.g:10620:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalSignalDSL.g:10621:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); 
             }
-            // InternalSignalDSL.g:10464:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
-            int alt86=2;
-            int LA86_0 = input.LA(1);
+            // InternalSignalDSL.g:10622:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            int alt89=2;
+            int LA89_0 = input.LA(1);
 
-            if ( ((LA86_0>=RULE_ID && LA86_0<=RULE_STRING)||LA86_0==27||LA86_0==31||(LA86_0>=34 && LA86_0<=35)||LA86_0==40||(LA86_0>=45 && LA86_0<=50)||LA86_0==62||LA86_0==78||(LA86_0>=82 && LA86_0<=83)||LA86_0==86||LA86_0==88||(LA86_0>=91 && LA86_0<=99)||LA86_0==101||LA86_0==109||LA86_0==111) ) {
-                alt86=1;
+            if ( ((LA89_0>=RULE_ID && LA89_0<=RULE_STRING)||LA89_0==28||LA89_0==32||(LA89_0>=35 && LA89_0<=36)||LA89_0==41||(LA89_0>=46 && LA89_0<=51)||LA89_0==63||LA89_0==80||(LA89_0>=84 && LA89_0<=85)||LA89_0==88||LA89_0==90||(LA89_0>=93 && LA89_0<=101)||LA89_0==103||LA89_0==113||LA89_0==115) ) {
+                alt89=1;
             }
-            switch (alt86) {
+            switch (alt89) {
                 case 1 :
-                    // InternalSignalDSL.g:10464:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
+                    // InternalSignalDSL.g:10622:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Alternatives_1_1_3_1();
@@ -35407,14 +36015,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2"
-    // InternalSignalDSL.g:10472:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
+    // InternalSignalDSL.g:10630:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10476:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
-            // InternalSignalDSL.g:10477:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
+            // InternalSignalDSL.g:10634:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
+            // InternalSignalDSL.g:10635:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3__2__Impl();
@@ -35440,22 +36048,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2__Impl"
-    // InternalSignalDSL.g:10483:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:10641:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10487:1: ( ( ')' ) )
-            // InternalSignalDSL.g:10488:1: ( ')' )
+            // InternalSignalDSL.g:10645:1: ( ( ')' ) )
+            // InternalSignalDSL.g:10646:1: ( ')' )
             {
-            // InternalSignalDSL.g:10488:1: ( ')' )
-            // InternalSignalDSL.g:10489:2: ')'
+            // InternalSignalDSL.g:10646:1: ( ')' )
+            // InternalSignalDSL.g:10647:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
             }
@@ -35481,16 +36089,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0"
-    // InternalSignalDSL.g:10499:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 ;
+    // InternalSignalDSL.g:10657:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10503:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
-            // InternalSignalDSL.g:10504:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
+            // InternalSignalDSL.g:10661:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
+            // InternalSignalDSL.g:10662:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl();
 
             state._fsp--;
@@ -35519,23 +36127,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl"
-    // InternalSignalDSL.g:10511:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
+    // InternalSignalDSL.g:10669:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10515:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
-            // InternalSignalDSL.g:10516:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalSignalDSL.g:10673:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
+            // InternalSignalDSL.g:10674:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
             {
-            // InternalSignalDSL.g:10516:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
-            // InternalSignalDSL.g:10517:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalSignalDSL.g:10674:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalSignalDSL.g:10675:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); 
             }
-            // InternalSignalDSL.g:10518:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
-            // InternalSignalDSL.g:10518:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
+            // InternalSignalDSL.g:10676:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalSignalDSL.g:10676:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0();
@@ -35570,14 +36178,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1"
-    // InternalSignalDSL.g:10526:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
+    // InternalSignalDSL.g:10684:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10530:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
-            // InternalSignalDSL.g:10531:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
+            // InternalSignalDSL.g:10688:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
+            // InternalSignalDSL.g:10689:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl();
@@ -35603,37 +36211,37 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl"
-    // InternalSignalDSL.g:10537:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
+    // InternalSignalDSL.g:10695:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10541:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
-            // InternalSignalDSL.g:10542:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalSignalDSL.g:10699:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
+            // InternalSignalDSL.g:10700:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
             {
-            // InternalSignalDSL.g:10542:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
-            // InternalSignalDSL.g:10543:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            // InternalSignalDSL.g:10700:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalSignalDSL.g:10701:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); 
             }
-            // InternalSignalDSL.g:10544:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
-            loop87:
+            // InternalSignalDSL.g:10702:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            loop90:
             do {
-                int alt87=2;
-                int LA87_0 = input.LA(1);
+                int alt90=2;
+                int LA90_0 = input.LA(1);
 
-                if ( (LA87_0==80) ) {
-                    alt87=1;
+                if ( (LA90_0==82) ) {
+                    alt90=1;
                 }
 
 
-                switch (alt87) {
+                switch (alt90) {
             	case 1 :
-            	    // InternalSignalDSL.g:10544:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
+            	    // InternalSignalDSL.g:10702:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0();
 
             	    state._fsp--;
@@ -35643,7 +36251,7 @@
             	    break;
 
             	default :
-            	    break loop87;
+            	    break loop90;
                 }
             } while (true);
 
@@ -35672,16 +36280,16 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0"
-    // InternalSignalDSL.g:10553:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 ;
+    // InternalSignalDSL.g:10711:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10557:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
-            // InternalSignalDSL.g:10558:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
+            // InternalSignalDSL.g:10715:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
+            // InternalSignalDSL.g:10716:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl();
 
             state._fsp--;
@@ -35710,22 +36318,22 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl"
-    // InternalSignalDSL.g:10565:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:10723:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10569:1: ( ( ',' ) )
-            // InternalSignalDSL.g:10570:1: ( ',' )
+            // InternalSignalDSL.g:10727:1: ( ( ',' ) )
+            // InternalSignalDSL.g:10728:1: ( ',' )
             {
-            // InternalSignalDSL.g:10570:1: ( ',' )
-            // InternalSignalDSL.g:10571:2: ','
+            // InternalSignalDSL.g:10728:1: ( ',' )
+            // InternalSignalDSL.g:10729:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
             }
@@ -35751,14 +36359,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1"
-    // InternalSignalDSL.g:10580:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
+    // InternalSignalDSL.g:10738:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10584:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
-            // InternalSignalDSL.g:10585:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
+            // InternalSignalDSL.g:10742:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
+            // InternalSignalDSL.g:10743:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl();
@@ -35784,23 +36392,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl"
-    // InternalSignalDSL.g:10591:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
+    // InternalSignalDSL.g:10749:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10595:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
-            // InternalSignalDSL.g:10596:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalSignalDSL.g:10753:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
+            // InternalSignalDSL.g:10754:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
             {
-            // InternalSignalDSL.g:10596:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
-            // InternalSignalDSL.g:10597:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalSignalDSL.g:10754:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalSignalDSL.g:10755:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); 
             }
-            // InternalSignalDSL.g:10598:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
-            // InternalSignalDSL.g:10598:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
+            // InternalSignalDSL.g:10756:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalSignalDSL.g:10756:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1();
@@ -35835,16 +36443,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__0"
-    // InternalSignalDSL.g:10607:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
+    // InternalSignalDSL.g:10765:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
     public final void rule__XSetLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10611:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
-            // InternalSignalDSL.g:10612:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
+            // InternalSignalDSL.g:10769:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
+            // InternalSignalDSL.g:10770:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
             {
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_40);
             rule__XSetLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -35873,23 +36481,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:10619:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:10777:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XSetLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10623:1: ( ( () ) )
-            // InternalSignalDSL.g:10624:1: ( () )
+            // InternalSignalDSL.g:10781:1: ( ( () ) )
+            // InternalSignalDSL.g:10782:1: ( () )
             {
-            // InternalSignalDSL.g:10624:1: ( () )
-            // InternalSignalDSL.g:10625:2: ()
+            // InternalSignalDSL.g:10782:1: ( () )
+            // InternalSignalDSL.g:10783:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:10626:2: ()
-            // InternalSignalDSL.g:10626:3: 
+            // InternalSignalDSL.g:10784:2: ()
+            // InternalSignalDSL.g:10784:3: 
             {
             }
 
@@ -35914,14 +36522,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__1"
-    // InternalSignalDSL.g:10634:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
+    // InternalSignalDSL.g:10792:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
     public final void rule__XSetLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10638:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
-            // InternalSignalDSL.g:10639:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
+            // InternalSignalDSL.g:10796:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
+            // InternalSignalDSL.g:10797:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__XSetLiteral__Group__1__Impl();
@@ -35952,22 +36560,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:10646:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
+    // InternalSignalDSL.g:10804:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
     public final void rule__XSetLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10650:1: ( ( '#' ) )
-            // InternalSignalDSL.g:10651:1: ( '#' )
+            // InternalSignalDSL.g:10808:1: ( ( '#' ) )
+            // InternalSignalDSL.g:10809:1: ( '#' )
             {
-            // InternalSignalDSL.g:10651:1: ( '#' )
-            // InternalSignalDSL.g:10652:2: '#'
+            // InternalSignalDSL.g:10809:1: ( '#' )
+            // InternalSignalDSL.g:10810:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
             }
-            match(input,82,FOLLOW_2); if (state.failed) return ;
+            match(input,84,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
             }
@@ -35993,16 +36601,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__2"
-    // InternalSignalDSL.g:10661:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
+    // InternalSignalDSL.g:10819:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
     public final void rule__XSetLiteral__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10665:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
-            // InternalSignalDSL.g:10666:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
+            // InternalSignalDSL.g:10823:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
+            // InternalSignalDSL.g:10824:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_77);
             rule__XSetLiteral__Group__2__Impl();
 
             state._fsp--;
@@ -36031,22 +36639,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__2__Impl"
-    // InternalSignalDSL.g:10673:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
+    // InternalSignalDSL.g:10831:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
     public final void rule__XSetLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10677:1: ( ( '{' ) )
-            // InternalSignalDSL.g:10678:1: ( '{' )
+            // InternalSignalDSL.g:10835:1: ( ( '{' ) )
+            // InternalSignalDSL.g:10836:1: ( '{' )
             {
-            // InternalSignalDSL.g:10678:1: ( '{' )
-            // InternalSignalDSL.g:10679:2: '{'
+            // InternalSignalDSL.g:10836:1: ( '{' )
+            // InternalSignalDSL.g:10837:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
             }
-            match(input,62,FOLLOW_2); if (state.failed) return ;
+            match(input,63,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
             }
@@ -36072,16 +36680,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__3"
-    // InternalSignalDSL.g:10688:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
+    // InternalSignalDSL.g:10846:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
     public final void rule__XSetLiteral__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10692:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
-            // InternalSignalDSL.g:10693:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
+            // InternalSignalDSL.g:10850:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
+            // InternalSignalDSL.g:10851:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
             {
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_77);
             rule__XSetLiteral__Group__3__Impl();
 
             state._fsp--;
@@ -36110,31 +36718,31 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__3__Impl"
-    // InternalSignalDSL.g:10700:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:10858:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
     public final void rule__XSetLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10704:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
-            // InternalSignalDSL.g:10705:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalSignalDSL.g:10862:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
+            // InternalSignalDSL.g:10863:1: ( ( rule__XSetLiteral__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:10705:1: ( ( rule__XSetLiteral__Group_3__0 )? )
-            // InternalSignalDSL.g:10706:2: ( rule__XSetLiteral__Group_3__0 )?
+            // InternalSignalDSL.g:10863:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalSignalDSL.g:10864:2: ( rule__XSetLiteral__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:10707:2: ( rule__XSetLiteral__Group_3__0 )?
-            int alt88=2;
-            int LA88_0 = input.LA(1);
+            // InternalSignalDSL.g:10865:2: ( rule__XSetLiteral__Group_3__0 )?
+            int alt91=2;
+            int LA91_0 = input.LA(1);
 
-            if ( ((LA88_0>=RULE_ID && LA88_0<=RULE_STRING)||LA88_0==27||(LA88_0>=34 && LA88_0<=35)||LA88_0==40||(LA88_0>=45 && LA88_0<=50)||LA88_0==62||LA88_0==78||(LA88_0>=82 && LA88_0<=83)||LA88_0==86||LA88_0==88||(LA88_0>=91 && LA88_0<=99)||LA88_0==101||LA88_0==111) ) {
-                alt88=1;
+            if ( ((LA91_0>=RULE_ID && LA91_0<=RULE_STRING)||LA91_0==28||(LA91_0>=35 && LA91_0<=36)||LA91_0==41||(LA91_0>=46 && LA91_0<=51)||LA91_0==63||LA91_0==80||(LA91_0>=84 && LA91_0<=85)||LA91_0==88||LA91_0==90||(LA91_0>=93 && LA91_0<=101)||LA91_0==103||LA91_0==115) ) {
+                alt91=1;
             }
-            switch (alt88) {
+            switch (alt91) {
                 case 1 :
-                    // InternalSignalDSL.g:10707:3: rule__XSetLiteral__Group_3__0
+                    // InternalSignalDSL.g:10865:3: rule__XSetLiteral__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSetLiteral__Group_3__0();
@@ -36172,14 +36780,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__4"
-    // InternalSignalDSL.g:10715:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
+    // InternalSignalDSL.g:10873:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
     public final void rule__XSetLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10719:1: ( rule__XSetLiteral__Group__4__Impl )
-            // InternalSignalDSL.g:10720:2: rule__XSetLiteral__Group__4__Impl
+            // InternalSignalDSL.g:10877:1: ( rule__XSetLiteral__Group__4__Impl )
+            // InternalSignalDSL.g:10878:2: rule__XSetLiteral__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group__4__Impl();
@@ -36205,22 +36813,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__4__Impl"
-    // InternalSignalDSL.g:10726:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
+    // InternalSignalDSL.g:10884:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
     public final void rule__XSetLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10730:1: ( ( '}' ) )
-            // InternalSignalDSL.g:10731:1: ( '}' )
+            // InternalSignalDSL.g:10888:1: ( ( '}' ) )
+            // InternalSignalDSL.g:10889:1: ( '}' )
             {
-            // InternalSignalDSL.g:10731:1: ( '}' )
-            // InternalSignalDSL.g:10732:2: '}'
+            // InternalSignalDSL.g:10889:1: ( '}' )
+            // InternalSignalDSL.g:10890:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
             }
-            match(input,63,FOLLOW_2); if (state.failed) return ;
+            match(input,64,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
             }
@@ -36246,16 +36854,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__0"
-    // InternalSignalDSL.g:10742:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
+    // InternalSignalDSL.g:10900:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
     public final void rule__XSetLiteral__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10746:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
-            // InternalSignalDSL.g:10747:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
+            // InternalSignalDSL.g:10904:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
+            // InternalSignalDSL.g:10905:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XSetLiteral__Group_3__0__Impl();
 
             state._fsp--;
@@ -36284,23 +36892,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__0__Impl"
-    // InternalSignalDSL.g:10754:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
+    // InternalSignalDSL.g:10912:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
     public final void rule__XSetLiteral__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10758:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
-            // InternalSignalDSL.g:10759:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalSignalDSL.g:10916:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalSignalDSL.g:10917:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
             {
-            // InternalSignalDSL.g:10759:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
-            // InternalSignalDSL.g:10760:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalSignalDSL.g:10917:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalSignalDSL.g:10918:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); 
             }
-            // InternalSignalDSL.g:10761:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
-            // InternalSignalDSL.g:10761:3: rule__XSetLiteral__ElementsAssignment_3_0
+            // InternalSignalDSL.g:10919:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalSignalDSL.g:10919:3: rule__XSetLiteral__ElementsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__ElementsAssignment_3_0();
@@ -36335,14 +36943,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__1"
-    // InternalSignalDSL.g:10769:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
+    // InternalSignalDSL.g:10927:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
     public final void rule__XSetLiteral__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10773:1: ( rule__XSetLiteral__Group_3__1__Impl )
-            // InternalSignalDSL.g:10774:2: rule__XSetLiteral__Group_3__1__Impl
+            // InternalSignalDSL.g:10931:1: ( rule__XSetLiteral__Group_3__1__Impl )
+            // InternalSignalDSL.g:10932:2: rule__XSetLiteral__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group_3__1__Impl();
@@ -36368,37 +36976,37 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__1__Impl"
-    // InternalSignalDSL.g:10780:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
+    // InternalSignalDSL.g:10938:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
     public final void rule__XSetLiteral__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10784:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
-            // InternalSignalDSL.g:10785:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalSignalDSL.g:10942:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
+            // InternalSignalDSL.g:10943:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
             {
-            // InternalSignalDSL.g:10785:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
-            // InternalSignalDSL.g:10786:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            // InternalSignalDSL.g:10943:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalSignalDSL.g:10944:2: ( rule__XSetLiteral__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); 
             }
-            // InternalSignalDSL.g:10787:2: ( rule__XSetLiteral__Group_3_1__0 )*
-            loop89:
+            // InternalSignalDSL.g:10945:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            loop92:
             do {
-                int alt89=2;
-                int LA89_0 = input.LA(1);
+                int alt92=2;
+                int LA92_0 = input.LA(1);
 
-                if ( (LA89_0==80) ) {
-                    alt89=1;
+                if ( (LA92_0==82) ) {
+                    alt92=1;
                 }
 
 
-                switch (alt89) {
+                switch (alt92) {
             	case 1 :
-            	    // InternalSignalDSL.g:10787:3: rule__XSetLiteral__Group_3_1__0
+            	    // InternalSignalDSL.g:10945:3: rule__XSetLiteral__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XSetLiteral__Group_3_1__0();
 
             	    state._fsp--;
@@ -36408,7 +37016,7 @@
             	    break;
 
             	default :
-            	    break loop89;
+            	    break loop92;
                 }
             } while (true);
 
@@ -36437,16 +37045,16 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__0"
-    // InternalSignalDSL.g:10796:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
+    // InternalSignalDSL.g:10954:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
     public final void rule__XSetLiteral__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10800:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
-            // InternalSignalDSL.g:10801:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
+            // InternalSignalDSL.g:10958:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
+            // InternalSignalDSL.g:10959:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XSetLiteral__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -36475,22 +37083,22 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__0__Impl"
-    // InternalSignalDSL.g:10808:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:10966:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XSetLiteral__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10812:1: ( ( ',' ) )
-            // InternalSignalDSL.g:10813:1: ( ',' )
+            // InternalSignalDSL.g:10970:1: ( ( ',' ) )
+            // InternalSignalDSL.g:10971:1: ( ',' )
             {
-            // InternalSignalDSL.g:10813:1: ( ',' )
-            // InternalSignalDSL.g:10814:2: ','
+            // InternalSignalDSL.g:10971:1: ( ',' )
+            // InternalSignalDSL.g:10972:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
             }
@@ -36516,14 +37124,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__1"
-    // InternalSignalDSL.g:10823:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
+    // InternalSignalDSL.g:10981:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
     public final void rule__XSetLiteral__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10827:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
-            // InternalSignalDSL.g:10828:2: rule__XSetLiteral__Group_3_1__1__Impl
+            // InternalSignalDSL.g:10985:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
+            // InternalSignalDSL.g:10986:2: rule__XSetLiteral__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group_3_1__1__Impl();
@@ -36549,23 +37157,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__1__Impl"
-    // InternalSignalDSL.g:10834:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
+    // InternalSignalDSL.g:10992:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
     public final void rule__XSetLiteral__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10838:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
-            // InternalSignalDSL.g:10839:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:10996:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalSignalDSL.g:10997:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
             {
-            // InternalSignalDSL.g:10839:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
-            // InternalSignalDSL.g:10840:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalSignalDSL.g:10997:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:10998:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); 
             }
-            // InternalSignalDSL.g:10841:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
-            // InternalSignalDSL.g:10841:3: rule__XSetLiteral__ElementsAssignment_3_1_1
+            // InternalSignalDSL.g:10999:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalSignalDSL.g:10999:3: rule__XSetLiteral__ElementsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__ElementsAssignment_3_1_1();
@@ -36600,16 +37208,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__0"
-    // InternalSignalDSL.g:10850:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
+    // InternalSignalDSL.g:11008:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
     public final void rule__XListLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10854:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
-            // InternalSignalDSL.g:10855:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
+            // InternalSignalDSL.g:11012:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
+            // InternalSignalDSL.g:11013:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
             {
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_40);
             rule__XListLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -36638,23 +37246,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:10862:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:11020:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XListLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10866:1: ( ( () ) )
-            // InternalSignalDSL.g:10867:1: ( () )
+            // InternalSignalDSL.g:11024:1: ( ( () ) )
+            // InternalSignalDSL.g:11025:1: ( () )
             {
-            // InternalSignalDSL.g:10867:1: ( () )
-            // InternalSignalDSL.g:10868:2: ()
+            // InternalSignalDSL.g:11025:1: ( () )
+            // InternalSignalDSL.g:11026:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:10869:2: ()
-            // InternalSignalDSL.g:10869:3: 
+            // InternalSignalDSL.g:11027:2: ()
+            // InternalSignalDSL.g:11027:3: 
             {
             }
 
@@ -36679,16 +37287,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__1"
-    // InternalSignalDSL.g:10877:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
+    // InternalSignalDSL.g:11035:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
     public final void rule__XListLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10881:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
-            // InternalSignalDSL.g:10882:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
+            // InternalSignalDSL.g:11039:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
+            // InternalSignalDSL.g:11040:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
             {
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_41);
             rule__XListLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -36717,22 +37325,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:10889:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
+    // InternalSignalDSL.g:11047:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
     public final void rule__XListLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10893:1: ( ( '#' ) )
-            // InternalSignalDSL.g:10894:1: ( '#' )
+            // InternalSignalDSL.g:11051:1: ( ( '#' ) )
+            // InternalSignalDSL.g:11052:1: ( '#' )
             {
-            // InternalSignalDSL.g:10894:1: ( '#' )
-            // InternalSignalDSL.g:10895:2: '#'
+            // InternalSignalDSL.g:11052:1: ( '#' )
+            // InternalSignalDSL.g:11053:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
             }
-            match(input,82,FOLLOW_2); if (state.failed) return ;
+            match(input,84,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
             }
@@ -36758,16 +37366,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__2"
-    // InternalSignalDSL.g:10904:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
+    // InternalSignalDSL.g:11062:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
     public final void rule__XListLiteral__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10908:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
-            // InternalSignalDSL.g:10909:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
+            // InternalSignalDSL.g:11066:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
+            // InternalSignalDSL.g:11067:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
             {
-            pushFollow(FOLLOW_40);
+            pushFollow(FOLLOW_39);
             rule__XListLiteral__Group__2__Impl();
 
             state._fsp--;
@@ -36796,22 +37404,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__2__Impl"
-    // InternalSignalDSL.g:10916:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
+    // InternalSignalDSL.g:11074:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
     public final void rule__XListLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10920:1: ( ( '[' ) )
-            // InternalSignalDSL.g:10921:1: ( '[' )
+            // InternalSignalDSL.g:11078:1: ( ( '[' ) )
+            // InternalSignalDSL.g:11079:1: ( '[' )
             {
-            // InternalSignalDSL.g:10921:1: ( '[' )
-            // InternalSignalDSL.g:10922:2: '['
+            // InternalSignalDSL.g:11079:1: ( '[' )
+            // InternalSignalDSL.g:11080:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
             }
-            match(input,83,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
             }
@@ -36837,16 +37445,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__3"
-    // InternalSignalDSL.g:10931:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
+    // InternalSignalDSL.g:11089:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
     public final void rule__XListLiteral__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10935:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
-            // InternalSignalDSL.g:10936:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
+            // InternalSignalDSL.g:11093:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
+            // InternalSignalDSL.g:11094:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
             {
-            pushFollow(FOLLOW_40);
+            pushFollow(FOLLOW_39);
             rule__XListLiteral__Group__3__Impl();
 
             state._fsp--;
@@ -36875,31 +37483,31 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__3__Impl"
-    // InternalSignalDSL.g:10943:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:11101:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
     public final void rule__XListLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10947:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
-            // InternalSignalDSL.g:10948:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalSignalDSL.g:11105:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
+            // InternalSignalDSL.g:11106:1: ( ( rule__XListLiteral__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:10948:1: ( ( rule__XListLiteral__Group_3__0 )? )
-            // InternalSignalDSL.g:10949:2: ( rule__XListLiteral__Group_3__0 )?
+            // InternalSignalDSL.g:11106:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalSignalDSL.g:11107:2: ( rule__XListLiteral__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:10950:2: ( rule__XListLiteral__Group_3__0 )?
-            int alt90=2;
-            int LA90_0 = input.LA(1);
+            // InternalSignalDSL.g:11108:2: ( rule__XListLiteral__Group_3__0 )?
+            int alt93=2;
+            int LA93_0 = input.LA(1);
 
-            if ( ((LA90_0>=RULE_ID && LA90_0<=RULE_STRING)||LA90_0==27||(LA90_0>=34 && LA90_0<=35)||LA90_0==40||(LA90_0>=45 && LA90_0<=50)||LA90_0==62||LA90_0==78||(LA90_0>=82 && LA90_0<=83)||LA90_0==86||LA90_0==88||(LA90_0>=91 && LA90_0<=99)||LA90_0==101||LA90_0==111) ) {
-                alt90=1;
+            if ( ((LA93_0>=RULE_ID && LA93_0<=RULE_STRING)||LA93_0==28||(LA93_0>=35 && LA93_0<=36)||LA93_0==41||(LA93_0>=46 && LA93_0<=51)||LA93_0==63||LA93_0==80||(LA93_0>=84 && LA93_0<=85)||LA93_0==88||LA93_0==90||(LA93_0>=93 && LA93_0<=101)||LA93_0==103||LA93_0==115) ) {
+                alt93=1;
             }
-            switch (alt90) {
+            switch (alt93) {
                 case 1 :
-                    // InternalSignalDSL.g:10950:3: rule__XListLiteral__Group_3__0
+                    // InternalSignalDSL.g:11108:3: rule__XListLiteral__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XListLiteral__Group_3__0();
@@ -36937,14 +37545,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__4"
-    // InternalSignalDSL.g:10958:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
+    // InternalSignalDSL.g:11116:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
     public final void rule__XListLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10962:1: ( rule__XListLiteral__Group__4__Impl )
-            // InternalSignalDSL.g:10963:2: rule__XListLiteral__Group__4__Impl
+            // InternalSignalDSL.g:11120:1: ( rule__XListLiteral__Group__4__Impl )
+            // InternalSignalDSL.g:11121:2: rule__XListLiteral__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group__4__Impl();
@@ -36970,22 +37578,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__4__Impl"
-    // InternalSignalDSL.g:10969:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
+    // InternalSignalDSL.g:11127:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
     public final void rule__XListLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10973:1: ( ( ']' ) )
-            // InternalSignalDSL.g:10974:1: ( ']' )
+            // InternalSignalDSL.g:11131:1: ( ( ']' ) )
+            // InternalSignalDSL.g:11132:1: ( ']' )
             {
-            // InternalSignalDSL.g:10974:1: ( ']' )
-            // InternalSignalDSL.g:10975:2: ']'
+            // InternalSignalDSL.g:11132:1: ( ']' )
+            // InternalSignalDSL.g:11133:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,83,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
             }
@@ -37011,16 +37619,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__0"
-    // InternalSignalDSL.g:10985:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
+    // InternalSignalDSL.g:11143:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
     public final void rule__XListLiteral__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:10989:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
-            // InternalSignalDSL.g:10990:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
+            // InternalSignalDSL.g:11147:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
+            // InternalSignalDSL.g:11148:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XListLiteral__Group_3__0__Impl();
 
             state._fsp--;
@@ -37049,23 +37657,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__0__Impl"
-    // InternalSignalDSL.g:10997:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
+    // InternalSignalDSL.g:11155:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
     public final void rule__XListLiteral__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11001:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
-            // InternalSignalDSL.g:11002:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalSignalDSL.g:11159:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalSignalDSL.g:11160:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
             {
-            // InternalSignalDSL.g:11002:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
-            // InternalSignalDSL.g:11003:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalSignalDSL.g:11160:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalSignalDSL.g:11161:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); 
             }
-            // InternalSignalDSL.g:11004:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
-            // InternalSignalDSL.g:11004:3: rule__XListLiteral__ElementsAssignment_3_0
+            // InternalSignalDSL.g:11162:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalSignalDSL.g:11162:3: rule__XListLiteral__ElementsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__ElementsAssignment_3_0();
@@ -37100,14 +37708,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__1"
-    // InternalSignalDSL.g:11012:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
+    // InternalSignalDSL.g:11170:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
     public final void rule__XListLiteral__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11016:1: ( rule__XListLiteral__Group_3__1__Impl )
-            // InternalSignalDSL.g:11017:2: rule__XListLiteral__Group_3__1__Impl
+            // InternalSignalDSL.g:11174:1: ( rule__XListLiteral__Group_3__1__Impl )
+            // InternalSignalDSL.g:11175:2: rule__XListLiteral__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group_3__1__Impl();
@@ -37133,37 +37741,37 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__1__Impl"
-    // InternalSignalDSL.g:11023:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
+    // InternalSignalDSL.g:11181:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
     public final void rule__XListLiteral__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11027:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
-            // InternalSignalDSL.g:11028:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalSignalDSL.g:11185:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
+            // InternalSignalDSL.g:11186:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
             {
-            // InternalSignalDSL.g:11028:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
-            // InternalSignalDSL.g:11029:2: ( rule__XListLiteral__Group_3_1__0 )*
+            // InternalSignalDSL.g:11186:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalSignalDSL.g:11187:2: ( rule__XListLiteral__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup_3_1()); 
             }
-            // InternalSignalDSL.g:11030:2: ( rule__XListLiteral__Group_3_1__0 )*
-            loop91:
+            // InternalSignalDSL.g:11188:2: ( rule__XListLiteral__Group_3_1__0 )*
+            loop94:
             do {
-                int alt91=2;
-                int LA91_0 = input.LA(1);
+                int alt94=2;
+                int LA94_0 = input.LA(1);
 
-                if ( (LA91_0==80) ) {
-                    alt91=1;
+                if ( (LA94_0==82) ) {
+                    alt94=1;
                 }
 
 
-                switch (alt91) {
+                switch (alt94) {
             	case 1 :
-            	    // InternalSignalDSL.g:11030:3: rule__XListLiteral__Group_3_1__0
+            	    // InternalSignalDSL.g:11188:3: rule__XListLiteral__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XListLiteral__Group_3_1__0();
 
             	    state._fsp--;
@@ -37173,7 +37781,7 @@
             	    break;
 
             	default :
-            	    break loop91;
+            	    break loop94;
                 }
             } while (true);
 
@@ -37202,16 +37810,16 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__0"
-    // InternalSignalDSL.g:11039:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
+    // InternalSignalDSL.g:11197:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
     public final void rule__XListLiteral__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11043:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
-            // InternalSignalDSL.g:11044:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
+            // InternalSignalDSL.g:11201:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
+            // InternalSignalDSL.g:11202:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XListLiteral__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -37240,22 +37848,22 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__0__Impl"
-    // InternalSignalDSL.g:11051:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:11209:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XListLiteral__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11055:1: ( ( ',' ) )
-            // InternalSignalDSL.g:11056:1: ( ',' )
+            // InternalSignalDSL.g:11213:1: ( ( ',' ) )
+            // InternalSignalDSL.g:11214:1: ( ',' )
             {
-            // InternalSignalDSL.g:11056:1: ( ',' )
-            // InternalSignalDSL.g:11057:2: ','
+            // InternalSignalDSL.g:11214:1: ( ',' )
+            // InternalSignalDSL.g:11215:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
             }
@@ -37281,14 +37889,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__1"
-    // InternalSignalDSL.g:11066:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
+    // InternalSignalDSL.g:11224:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
     public final void rule__XListLiteral__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11070:1: ( rule__XListLiteral__Group_3_1__1__Impl )
-            // InternalSignalDSL.g:11071:2: rule__XListLiteral__Group_3_1__1__Impl
+            // InternalSignalDSL.g:11228:1: ( rule__XListLiteral__Group_3_1__1__Impl )
+            // InternalSignalDSL.g:11229:2: rule__XListLiteral__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group_3_1__1__Impl();
@@ -37314,23 +37922,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__1__Impl"
-    // InternalSignalDSL.g:11077:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
+    // InternalSignalDSL.g:11235:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
     public final void rule__XListLiteral__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11081:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
-            // InternalSignalDSL.g:11082:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:11239:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalSignalDSL.g:11240:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
             {
-            // InternalSignalDSL.g:11082:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
-            // InternalSignalDSL.g:11083:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalSignalDSL.g:11240:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:11241:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); 
             }
-            // InternalSignalDSL.g:11084:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
-            // InternalSignalDSL.g:11084:3: rule__XListLiteral__ElementsAssignment_3_1_1
+            // InternalSignalDSL.g:11242:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalSignalDSL.g:11242:3: rule__XListLiteral__ElementsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__ElementsAssignment_3_1_1();
@@ -37365,16 +37973,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group__0"
-    // InternalSignalDSL.g:11093:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
+    // InternalSignalDSL.g:11251:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
     public final void rule__XClosure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11097:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
-            // InternalSignalDSL.g:11098:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
+            // InternalSignalDSL.g:11255:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
+            // InternalSignalDSL.g:11256:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
             {
-            pushFollow(FOLLOW_79);
+            pushFollow(FOLLOW_78);
             rule__XClosure__Group__0__Impl();
 
             state._fsp--;
@@ -37403,23 +38011,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group__0__Impl"
-    // InternalSignalDSL.g:11105:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
+    // InternalSignalDSL.g:11263:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
     public final void rule__XClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11109:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
-            // InternalSignalDSL.g:11110:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalSignalDSL.g:11267:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
+            // InternalSignalDSL.g:11268:1: ( ( rule__XClosure__Group_0__0 ) )
             {
-            // InternalSignalDSL.g:11110:1: ( ( rule__XClosure__Group_0__0 ) )
-            // InternalSignalDSL.g:11111:2: ( rule__XClosure__Group_0__0 )
+            // InternalSignalDSL.g:11268:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalSignalDSL.g:11269:2: ( rule__XClosure__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_0()); 
             }
-            // InternalSignalDSL.g:11112:2: ( rule__XClosure__Group_0__0 )
-            // InternalSignalDSL.g:11112:3: rule__XClosure__Group_0__0
+            // InternalSignalDSL.g:11270:2: ( rule__XClosure__Group_0__0 )
+            // InternalSignalDSL.g:11270:3: rule__XClosure__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0__0();
@@ -37454,16 +38062,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group__1"
-    // InternalSignalDSL.g:11120:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
+    // InternalSignalDSL.g:11278:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
     public final void rule__XClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11124:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
-            // InternalSignalDSL.g:11125:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
+            // InternalSignalDSL.g:11282:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
+            // InternalSignalDSL.g:11283:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
             {
-            pushFollow(FOLLOW_79);
+            pushFollow(FOLLOW_78);
             rule__XClosure__Group__1__Impl();
 
             state._fsp--;
@@ -37492,27 +38100,27 @@
 
 
     // $ANTLR start "rule__XClosure__Group__1__Impl"
-    // InternalSignalDSL.g:11132:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
+    // InternalSignalDSL.g:11290:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
     public final void rule__XClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11136:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
-            // InternalSignalDSL.g:11137:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalSignalDSL.g:11294:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
+            // InternalSignalDSL.g:11295:1: ( ( rule__XClosure__Group_1__0 )? )
             {
-            // InternalSignalDSL.g:11137:1: ( ( rule__XClosure__Group_1__0 )? )
-            // InternalSignalDSL.g:11138:2: ( rule__XClosure__Group_1__0 )?
+            // InternalSignalDSL.g:11295:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalSignalDSL.g:11296:2: ( rule__XClosure__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:11139:2: ( rule__XClosure__Group_1__0 )?
-            int alt92=2;
-            alt92 = dfa92.predict(input);
-            switch (alt92) {
+            // InternalSignalDSL.g:11297:2: ( rule__XClosure__Group_1__0 )?
+            int alt95=2;
+            alt95 = dfa95.predict(input);
+            switch (alt95) {
                 case 1 :
-                    // InternalSignalDSL.g:11139:3: rule__XClosure__Group_1__0
+                    // InternalSignalDSL.g:11297:3: rule__XClosure__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XClosure__Group_1__0();
@@ -37550,16 +38158,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group__2"
-    // InternalSignalDSL.g:11147:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
+    // InternalSignalDSL.g:11305:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
     public final void rule__XClosure__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11151:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
-            // InternalSignalDSL.g:11152:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
+            // InternalSignalDSL.g:11309:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
+            // InternalSignalDSL.g:11310:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
             {
-            pushFollow(FOLLOW_80);
+            pushFollow(FOLLOW_79);
             rule__XClosure__Group__2__Impl();
 
             state._fsp--;
@@ -37588,23 +38196,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group__2__Impl"
-    // InternalSignalDSL.g:11159:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
+    // InternalSignalDSL.g:11317:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
     public final void rule__XClosure__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11163:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
-            // InternalSignalDSL.g:11164:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalSignalDSL.g:11321:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
+            // InternalSignalDSL.g:11322:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
             {
-            // InternalSignalDSL.g:11164:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
-            // InternalSignalDSL.g:11165:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalSignalDSL.g:11322:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalSignalDSL.g:11323:2: ( rule__XClosure__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); 
             }
-            // InternalSignalDSL.g:11166:2: ( rule__XClosure__ExpressionAssignment_2 )
-            // InternalSignalDSL.g:11166:3: rule__XClosure__ExpressionAssignment_2
+            // InternalSignalDSL.g:11324:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalSignalDSL.g:11324:3: rule__XClosure__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__ExpressionAssignment_2();
@@ -37639,14 +38247,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group__3"
-    // InternalSignalDSL.g:11174:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
+    // InternalSignalDSL.g:11332:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
     public final void rule__XClosure__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11178:1: ( rule__XClosure__Group__3__Impl )
-            // InternalSignalDSL.g:11179:2: rule__XClosure__Group__3__Impl
+            // InternalSignalDSL.g:11336:1: ( rule__XClosure__Group__3__Impl )
+            // InternalSignalDSL.g:11337:2: rule__XClosure__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group__3__Impl();
@@ -37672,22 +38280,22 @@
 
 
     // $ANTLR start "rule__XClosure__Group__3__Impl"
-    // InternalSignalDSL.g:11185:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
+    // InternalSignalDSL.g:11343:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
     public final void rule__XClosure__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11189:1: ( ( ']' ) )
-            // InternalSignalDSL.g:11190:1: ( ']' )
+            // InternalSignalDSL.g:11347:1: ( ( ']' ) )
+            // InternalSignalDSL.g:11348:1: ( ']' )
             {
-            // InternalSignalDSL.g:11190:1: ( ']' )
-            // InternalSignalDSL.g:11191:2: ']'
+            // InternalSignalDSL.g:11348:1: ( ']' )
+            // InternalSignalDSL.g:11349:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,83,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
             }
@@ -37713,14 +38321,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0__0"
-    // InternalSignalDSL.g:11201:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
+    // InternalSignalDSL.g:11359:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
     public final void rule__XClosure__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11205:1: ( rule__XClosure__Group_0__0__Impl )
-            // InternalSignalDSL.g:11206:2: rule__XClosure__Group_0__0__Impl
+            // InternalSignalDSL.g:11363:1: ( rule__XClosure__Group_0__0__Impl )
+            // InternalSignalDSL.g:11364:2: rule__XClosure__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0__0__Impl();
@@ -37746,23 +38354,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0__0__Impl"
-    // InternalSignalDSL.g:11212:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:11370:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
     public final void rule__XClosure__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11216:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:11217:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalSignalDSL.g:11374:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:11375:1: ( ( rule__XClosure__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:11217:1: ( ( rule__XClosure__Group_0_0__0 ) )
-            // InternalSignalDSL.g:11218:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalSignalDSL.g:11375:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalSignalDSL.g:11376:2: ( rule__XClosure__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:11219:2: ( rule__XClosure__Group_0_0__0 )
-            // InternalSignalDSL.g:11219:3: rule__XClosure__Group_0_0__0
+            // InternalSignalDSL.g:11377:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalSignalDSL.g:11377:3: rule__XClosure__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0_0__0();
@@ -37797,16 +38405,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__0"
-    // InternalSignalDSL.g:11228:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
+    // InternalSignalDSL.g:11386:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
     public final void rule__XClosure__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11232:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
-            // InternalSignalDSL.g:11233:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
+            // InternalSignalDSL.g:11390:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
+            // InternalSignalDSL.g:11391:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
             {
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_41);
             rule__XClosure__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -37835,23 +38443,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:11240:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:11398:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XClosure__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11244:1: ( ( () ) )
-            // InternalSignalDSL.g:11245:1: ( () )
+            // InternalSignalDSL.g:11402:1: ( ( () ) )
+            // InternalSignalDSL.g:11403:1: ( () )
             {
-            // InternalSignalDSL.g:11245:1: ( () )
-            // InternalSignalDSL.g:11246:2: ()
+            // InternalSignalDSL.g:11403:1: ( () )
+            // InternalSignalDSL.g:11404:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); 
             }
-            // InternalSignalDSL.g:11247:2: ()
-            // InternalSignalDSL.g:11247:3: 
+            // InternalSignalDSL.g:11405:2: ()
+            // InternalSignalDSL.g:11405:3: 
             {
             }
 
@@ -37876,14 +38484,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__1"
-    // InternalSignalDSL.g:11255:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
+    // InternalSignalDSL.g:11413:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
     public final void rule__XClosure__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11259:1: ( rule__XClosure__Group_0_0__1__Impl )
-            // InternalSignalDSL.g:11260:2: rule__XClosure__Group_0_0__1__Impl
+            // InternalSignalDSL.g:11417:1: ( rule__XClosure__Group_0_0__1__Impl )
+            // InternalSignalDSL.g:11418:2: rule__XClosure__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0_0__1__Impl();
@@ -37909,22 +38517,22 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__1__Impl"
-    // InternalSignalDSL.g:11266:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
+    // InternalSignalDSL.g:11424:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
     public final void rule__XClosure__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11270:1: ( ( '[' ) )
-            // InternalSignalDSL.g:11271:1: ( '[' )
+            // InternalSignalDSL.g:11428:1: ( ( '[' ) )
+            // InternalSignalDSL.g:11429:1: ( '[' )
             {
-            // InternalSignalDSL.g:11271:1: ( '[' )
-            // InternalSignalDSL.g:11272:2: '['
+            // InternalSignalDSL.g:11429:1: ( '[' )
+            // InternalSignalDSL.g:11430:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
             }
-            match(input,83,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
             }
@@ -37950,14 +38558,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1__0"
-    // InternalSignalDSL.g:11282:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
+    // InternalSignalDSL.g:11440:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
     public final void rule__XClosure__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11286:1: ( rule__XClosure__Group_1__0__Impl )
-            // InternalSignalDSL.g:11287:2: rule__XClosure__Group_1__0__Impl
+            // InternalSignalDSL.g:11444:1: ( rule__XClosure__Group_1__0__Impl )
+            // InternalSignalDSL.g:11445:2: rule__XClosure__Group_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1__0__Impl();
@@ -37983,23 +38591,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1__0__Impl"
-    // InternalSignalDSL.g:11293:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
+    // InternalSignalDSL.g:11451:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
     public final void rule__XClosure__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11297:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
-            // InternalSignalDSL.g:11298:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalSignalDSL.g:11455:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
+            // InternalSignalDSL.g:11456:1: ( ( rule__XClosure__Group_1_0__0 ) )
             {
-            // InternalSignalDSL.g:11298:1: ( ( rule__XClosure__Group_1_0__0 ) )
-            // InternalSignalDSL.g:11299:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalSignalDSL.g:11456:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalSignalDSL.g:11457:2: ( rule__XClosure__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0()); 
             }
-            // InternalSignalDSL.g:11300:2: ( rule__XClosure__Group_1_0__0 )
-            // InternalSignalDSL.g:11300:3: rule__XClosure__Group_1_0__0
+            // InternalSignalDSL.g:11458:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalSignalDSL.g:11458:3: rule__XClosure__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0__0();
@@ -38034,16 +38642,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__0"
-    // InternalSignalDSL.g:11309:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
+    // InternalSignalDSL.g:11467:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
     public final void rule__XClosure__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11313:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
-            // InternalSignalDSL.g:11314:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
+            // InternalSignalDSL.g:11471:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
+            // InternalSignalDSL.g:11472:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
             {
-            pushFollow(FOLLOW_81);
+            pushFollow(FOLLOW_80);
             rule__XClosure__Group_1_0__0__Impl();
 
             state._fsp--;
@@ -38072,31 +38680,31 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__0__Impl"
-    // InternalSignalDSL.g:11321:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
+    // InternalSignalDSL.g:11479:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
     public final void rule__XClosure__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11325:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
-            // InternalSignalDSL.g:11326:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalSignalDSL.g:11483:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
+            // InternalSignalDSL.g:11484:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
             {
-            // InternalSignalDSL.g:11326:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
-            // InternalSignalDSL.g:11327:2: ( rule__XClosure__Group_1_0_0__0 )?
+            // InternalSignalDSL.g:11484:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalSignalDSL.g:11485:2: ( rule__XClosure__Group_1_0_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0_0()); 
             }
-            // InternalSignalDSL.g:11328:2: ( rule__XClosure__Group_1_0_0__0 )?
-            int alt93=2;
-            int LA93_0 = input.LA(1);
+            // InternalSignalDSL.g:11486:2: ( rule__XClosure__Group_1_0_0__0 )?
+            int alt96=2;
+            int LA96_0 = input.LA(1);
 
-            if ( (LA93_0==RULE_ID||LA93_0==31||LA93_0==78) ) {
-                alt93=1;
+            if ( (LA96_0==RULE_ID||LA96_0==32||LA96_0==80) ) {
+                alt96=1;
             }
-            switch (alt93) {
+            switch (alt96) {
                 case 1 :
-                    // InternalSignalDSL.g:11328:3: rule__XClosure__Group_1_0_0__0
+                    // InternalSignalDSL.g:11486:3: rule__XClosure__Group_1_0_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XClosure__Group_1_0_0__0();
@@ -38134,14 +38742,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__1"
-    // InternalSignalDSL.g:11336:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
+    // InternalSignalDSL.g:11494:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
     public final void rule__XClosure__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11340:1: ( rule__XClosure__Group_1_0__1__Impl )
-            // InternalSignalDSL.g:11341:2: rule__XClosure__Group_1_0__1__Impl
+            // InternalSignalDSL.g:11498:1: ( rule__XClosure__Group_1_0__1__Impl )
+            // InternalSignalDSL.g:11499:2: rule__XClosure__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0__1__Impl();
@@ -38167,23 +38775,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__1__Impl"
-    // InternalSignalDSL.g:11347:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
+    // InternalSignalDSL.g:11505:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
     public final void rule__XClosure__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11351:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
-            // InternalSignalDSL.g:11352:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:11509:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
+            // InternalSignalDSL.g:11510:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
             {
-            // InternalSignalDSL.g:11352:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
-            // InternalSignalDSL.g:11353:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalSignalDSL.g:11510:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalSignalDSL.g:11511:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); 
             }
-            // InternalSignalDSL.g:11354:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
-            // InternalSignalDSL.g:11354:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
+            // InternalSignalDSL.g:11512:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalSignalDSL.g:11512:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__ExplicitSyntaxAssignment_1_0_1();
@@ -38218,16 +38826,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__0"
-    // InternalSignalDSL.g:11363:1: rule__XClosure__Group_1_0_0__0 : rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 ;
+    // InternalSignalDSL.g:11521:1: rule__XClosure__Group_1_0_0__0 : rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 ;
     public final void rule__XClosure__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11367:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
-            // InternalSignalDSL.g:11368:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
+            // InternalSignalDSL.g:11525:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
+            // InternalSignalDSL.g:11526:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XClosure__Group_1_0_0__0__Impl();
 
             state._fsp--;
@@ -38256,23 +38864,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__0__Impl"
-    // InternalSignalDSL.g:11375:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
+    // InternalSignalDSL.g:11533:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
     public final void rule__XClosure__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11379:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
-            // InternalSignalDSL.g:11380:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalSignalDSL.g:11537:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
+            // InternalSignalDSL.g:11538:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
             {
-            // InternalSignalDSL.g:11380:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
-            // InternalSignalDSL.g:11381:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalSignalDSL.g:11538:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalSignalDSL.g:11539:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:11382:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
-            // InternalSignalDSL.g:11382:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
+            // InternalSignalDSL.g:11540:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalSignalDSL.g:11540:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0();
@@ -38307,14 +38915,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__1"
-    // InternalSignalDSL.g:11390:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:11548:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
     public final void rule__XClosure__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11394:1: ( rule__XClosure__Group_1_0_0__1__Impl )
-            // InternalSignalDSL.g:11395:2: rule__XClosure__Group_1_0_0__1__Impl
+            // InternalSignalDSL.g:11552:1: ( rule__XClosure__Group_1_0_0__1__Impl )
+            // InternalSignalDSL.g:11553:2: rule__XClosure__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0_0__1__Impl();
@@ -38340,37 +38948,37 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__1__Impl"
-    // InternalSignalDSL.g:11401:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
+    // InternalSignalDSL.g:11559:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
     public final void rule__XClosure__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11405:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
-            // InternalSignalDSL.g:11406:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalSignalDSL.g:11563:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
+            // InternalSignalDSL.g:11564:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
             {
-            // InternalSignalDSL.g:11406:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
-            // InternalSignalDSL.g:11407:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            // InternalSignalDSL.g:11564:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalSignalDSL.g:11565:2: ( rule__XClosure__Group_1_0_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); 
             }
-            // InternalSignalDSL.g:11408:2: ( rule__XClosure__Group_1_0_0_1__0 )*
-            loop94:
+            // InternalSignalDSL.g:11566:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            loop97:
             do {
-                int alt94=2;
-                int LA94_0 = input.LA(1);
+                int alt97=2;
+                int LA97_0 = input.LA(1);
 
-                if ( (LA94_0==80) ) {
-                    alt94=1;
+                if ( (LA97_0==82) ) {
+                    alt97=1;
                 }
 
 
-                switch (alt94) {
+                switch (alt97) {
             	case 1 :
-            	    // InternalSignalDSL.g:11408:3: rule__XClosure__Group_1_0_0_1__0
+            	    // InternalSignalDSL.g:11566:3: rule__XClosure__Group_1_0_0_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XClosure__Group_1_0_0_1__0();
 
             	    state._fsp--;
@@ -38380,7 +38988,7 @@
             	    break;
 
             	default :
-            	    break loop94;
+            	    break loop97;
                 }
             } while (true);
 
@@ -38409,16 +39017,16 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__0"
-    // InternalSignalDSL.g:11417:1: rule__XClosure__Group_1_0_0_1__0 : rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 ;
+    // InternalSignalDSL.g:11575:1: rule__XClosure__Group_1_0_0_1__0 : rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 ;
     public final void rule__XClosure__Group_1_0_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11421:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
-            // InternalSignalDSL.g:11422:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
+            // InternalSignalDSL.g:11579:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
+            // InternalSignalDSL.g:11580:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XClosure__Group_1_0_0_1__0__Impl();
 
             state._fsp--;
@@ -38447,22 +39055,22 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__0__Impl"
-    // InternalSignalDSL.g:11429:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:11587:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
     public final void rule__XClosure__Group_1_0_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11433:1: ( ( ',' ) )
-            // InternalSignalDSL.g:11434:1: ( ',' )
+            // InternalSignalDSL.g:11591:1: ( ( ',' ) )
+            // InternalSignalDSL.g:11592:1: ( ',' )
             {
-            // InternalSignalDSL.g:11434:1: ( ',' )
-            // InternalSignalDSL.g:11435:2: ','
+            // InternalSignalDSL.g:11592:1: ( ',' )
+            // InternalSignalDSL.g:11593:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
             }
@@ -38488,14 +39096,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__1"
-    // InternalSignalDSL.g:11444:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
+    // InternalSignalDSL.g:11602:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
     public final void rule__XClosure__Group_1_0_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11448:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
-            // InternalSignalDSL.g:11449:2: rule__XClosure__Group_1_0_0_1__1__Impl
+            // InternalSignalDSL.g:11606:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
+            // InternalSignalDSL.g:11607:2: rule__XClosure__Group_1_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0_0_1__1__Impl();
@@ -38521,23 +39129,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__1__Impl"
-    // InternalSignalDSL.g:11455:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
+    // InternalSignalDSL.g:11613:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
     public final void rule__XClosure__Group_1_0_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11459:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
-            // InternalSignalDSL.g:11460:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalSignalDSL.g:11617:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
+            // InternalSignalDSL.g:11618:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
             {
-            // InternalSignalDSL.g:11460:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
-            // InternalSignalDSL.g:11461:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalSignalDSL.g:11618:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalSignalDSL.g:11619:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); 
             }
-            // InternalSignalDSL.g:11462:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
-            // InternalSignalDSL.g:11462:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
+            // InternalSignalDSL.g:11620:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalSignalDSL.g:11620:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1();
@@ -38572,16 +39180,16 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__0"
-    // InternalSignalDSL.g:11471:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
+    // InternalSignalDSL.g:11629:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
     public final void rule__XExpressionInClosure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11475:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
-            // InternalSignalDSL.g:11476:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
+            // InternalSignalDSL.g:11633:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
+            // InternalSignalDSL.g:11634:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
             {
-            pushFollow(FOLLOW_79);
+            pushFollow(FOLLOW_78);
             rule__XExpressionInClosure__Group__0__Impl();
 
             state._fsp--;
@@ -38610,23 +39218,23 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__0__Impl"
-    // InternalSignalDSL.g:11483:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:11641:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
     public final void rule__XExpressionInClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11487:1: ( ( () ) )
-            // InternalSignalDSL.g:11488:1: ( () )
+            // InternalSignalDSL.g:11645:1: ( ( () ) )
+            // InternalSignalDSL.g:11646:1: ( () )
             {
-            // InternalSignalDSL.g:11488:1: ( () )
-            // InternalSignalDSL.g:11489:2: ()
+            // InternalSignalDSL.g:11646:1: ( () )
+            // InternalSignalDSL.g:11647:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:11490:2: ()
-            // InternalSignalDSL.g:11490:3: 
+            // InternalSignalDSL.g:11648:2: ()
+            // InternalSignalDSL.g:11648:3: 
             {
             }
 
@@ -38651,14 +39259,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__1"
-    // InternalSignalDSL.g:11498:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
+    // InternalSignalDSL.g:11656:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
     public final void rule__XExpressionInClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11502:1: ( rule__XExpressionInClosure__Group__1__Impl )
-            // InternalSignalDSL.g:11503:2: rule__XExpressionInClosure__Group__1__Impl
+            // InternalSignalDSL.g:11660:1: ( rule__XExpressionInClosure__Group__1__Impl )
+            // InternalSignalDSL.g:11661:2: rule__XExpressionInClosure__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group__1__Impl();
@@ -38684,37 +39292,37 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__1__Impl"
-    // InternalSignalDSL.g:11509:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:11667:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
     public final void rule__XExpressionInClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11513:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
-            // InternalSignalDSL.g:11514:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalSignalDSL.g:11671:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
+            // InternalSignalDSL.g:11672:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:11514:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
-            // InternalSignalDSL.g:11515:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            // InternalSignalDSL.g:11672:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalSignalDSL.g:11673:2: ( rule__XExpressionInClosure__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:11516:2: ( rule__XExpressionInClosure__Group_1__0 )*
-            loop95:
+            // InternalSignalDSL.g:11674:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            loop98:
             do {
-                int alt95=2;
-                int LA95_0 = input.LA(1);
+                int alt98=2;
+                int LA98_0 = input.LA(1);
 
-                if ( ((LA95_0>=RULE_ID && LA95_0<=RULE_STRING)||LA95_0==27||(LA95_0>=34 && LA95_0<=35)||LA95_0==40||(LA95_0>=44 && LA95_0<=50)||LA95_0==62||LA95_0==78||(LA95_0>=82 && LA95_0<=83)||LA95_0==86||LA95_0==88||(LA95_0>=91 && LA95_0<=99)||LA95_0==101||(LA95_0>=110 && LA95_0<=111)) ) {
-                    alt95=1;
+                if ( ((LA98_0>=RULE_ID && LA98_0<=RULE_STRING)||LA98_0==28||(LA98_0>=35 && LA98_0<=36)||LA98_0==41||(LA98_0>=45 && LA98_0<=51)||LA98_0==63||LA98_0==80||(LA98_0>=84 && LA98_0<=85)||LA98_0==88||LA98_0==90||(LA98_0>=93 && LA98_0<=101)||LA98_0==103||(LA98_0>=114 && LA98_0<=115)) ) {
+                    alt98=1;
                 }
 
 
-                switch (alt95) {
+                switch (alt98) {
             	case 1 :
-            	    // InternalSignalDSL.g:11516:3: rule__XExpressionInClosure__Group_1__0
+            	    // InternalSignalDSL.g:11674:3: rule__XExpressionInClosure__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_82);
+            	    pushFollow(FOLLOW_81);
             	    rule__XExpressionInClosure__Group_1__0();
 
             	    state._fsp--;
@@ -38724,7 +39332,7 @@
             	    break;
 
             	default :
-            	    break loop95;
+            	    break loop98;
                 }
             } while (true);
 
@@ -38753,16 +39361,16 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__0"
-    // InternalSignalDSL.g:11525:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
+    // InternalSignalDSL.g:11683:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
     public final void rule__XExpressionInClosure__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11529:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
-            // InternalSignalDSL.g:11530:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
+            // InternalSignalDSL.g:11687:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
+            // InternalSignalDSL.g:11688:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_29);
             rule__XExpressionInClosure__Group_1__0__Impl();
 
             state._fsp--;
@@ -38791,23 +39399,23 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__0__Impl"
-    // InternalSignalDSL.g:11537:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
+    // InternalSignalDSL.g:11695:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
     public final void rule__XExpressionInClosure__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11541:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
-            // InternalSignalDSL.g:11542:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalSignalDSL.g:11699:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
+            // InternalSignalDSL.g:11700:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
             {
-            // InternalSignalDSL.g:11542:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
-            // InternalSignalDSL.g:11543:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalSignalDSL.g:11700:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalSignalDSL.g:11701:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); 
             }
-            // InternalSignalDSL.g:11544:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
-            // InternalSignalDSL.g:11544:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
+            // InternalSignalDSL.g:11702:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalSignalDSL.g:11702:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__ExpressionsAssignment_1_0();
@@ -38842,14 +39450,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__1"
-    // InternalSignalDSL.g:11552:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
+    // InternalSignalDSL.g:11710:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
     public final void rule__XExpressionInClosure__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11556:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
-            // InternalSignalDSL.g:11557:2: rule__XExpressionInClosure__Group_1__1__Impl
+            // InternalSignalDSL.g:11714:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
+            // InternalSignalDSL.g:11715:2: rule__XExpressionInClosure__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group_1__1__Impl();
@@ -38875,33 +39483,33 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__1__Impl"
-    // InternalSignalDSL.g:11563:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
+    // InternalSignalDSL.g:11721:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
     public final void rule__XExpressionInClosure__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11567:1: ( ( ( ';' )? ) )
-            // InternalSignalDSL.g:11568:1: ( ( ';' )? )
+            // InternalSignalDSL.g:11725:1: ( ( ( ';' )? ) )
+            // InternalSignalDSL.g:11726:1: ( ( ';' )? )
             {
-            // InternalSignalDSL.g:11568:1: ( ( ';' )? )
-            // InternalSignalDSL.g:11569:2: ( ';' )?
+            // InternalSignalDSL.g:11726:1: ( ( ';' )? )
+            // InternalSignalDSL.g:11727:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); 
             }
-            // InternalSignalDSL.g:11570:2: ( ';' )?
-            int alt96=2;
-            int LA96_0 = input.LA(1);
+            // InternalSignalDSL.g:11728:2: ( ';' )?
+            int alt99=2;
+            int LA99_0 = input.LA(1);
 
-            if ( (LA96_0==76) ) {
-                alt96=1;
+            if ( (LA99_0==78) ) {
+                alt99=1;
             }
-            switch (alt96) {
+            switch (alt99) {
                 case 1 :
-                    // InternalSignalDSL.g:11570:3: ';'
+                    // InternalSignalDSL.g:11728:3: ';'
                     {
-                    match(input,76,FOLLOW_2); if (state.failed) return ;
+                    match(input,78,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -38933,16 +39541,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__0"
-    // InternalSignalDSL.g:11579:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
+    // InternalSignalDSL.g:11737:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
     public final void rule__XShortClosure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11583:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
-            // InternalSignalDSL.g:11584:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
+            // InternalSignalDSL.g:11741:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
+            // InternalSignalDSL.g:11742:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XShortClosure__Group__0__Impl();
 
             state._fsp--;
@@ -38971,23 +39579,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__0__Impl"
-    // InternalSignalDSL.g:11591:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
+    // InternalSignalDSL.g:11749:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
     public final void rule__XShortClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11595:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
-            // InternalSignalDSL.g:11596:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalSignalDSL.g:11753:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
+            // InternalSignalDSL.g:11754:1: ( ( rule__XShortClosure__Group_0__0 ) )
             {
-            // InternalSignalDSL.g:11596:1: ( ( rule__XShortClosure__Group_0__0 ) )
-            // InternalSignalDSL.g:11597:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalSignalDSL.g:11754:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalSignalDSL.g:11755:2: ( rule__XShortClosure__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0()); 
             }
-            // InternalSignalDSL.g:11598:2: ( rule__XShortClosure__Group_0__0 )
-            // InternalSignalDSL.g:11598:3: rule__XShortClosure__Group_0__0
+            // InternalSignalDSL.g:11756:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalSignalDSL.g:11756:3: rule__XShortClosure__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0__0();
@@ -39022,14 +39630,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__1"
-    // InternalSignalDSL.g:11606:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
+    // InternalSignalDSL.g:11764:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
     public final void rule__XShortClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11610:1: ( rule__XShortClosure__Group__1__Impl )
-            // InternalSignalDSL.g:11611:2: rule__XShortClosure__Group__1__Impl
+            // InternalSignalDSL.g:11768:1: ( rule__XShortClosure__Group__1__Impl )
+            // InternalSignalDSL.g:11769:2: rule__XShortClosure__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group__1__Impl();
@@ -39055,23 +39663,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__1__Impl"
-    // InternalSignalDSL.g:11617:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
+    // InternalSignalDSL.g:11775:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
     public final void rule__XShortClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11621:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
-            // InternalSignalDSL.g:11622:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalSignalDSL.g:11779:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
+            // InternalSignalDSL.g:11780:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
             {
-            // InternalSignalDSL.g:11622:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
-            // InternalSignalDSL.g:11623:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalSignalDSL.g:11780:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalSignalDSL.g:11781:2: ( rule__XShortClosure__ExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); 
             }
-            // InternalSignalDSL.g:11624:2: ( rule__XShortClosure__ExpressionAssignment_1 )
-            // InternalSignalDSL.g:11624:3: rule__XShortClosure__ExpressionAssignment_1
+            // InternalSignalDSL.g:11782:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalSignalDSL.g:11782:3: rule__XShortClosure__ExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__ExpressionAssignment_1();
@@ -39106,14 +39714,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0__0"
-    // InternalSignalDSL.g:11633:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
+    // InternalSignalDSL.g:11791:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
     public final void rule__XShortClosure__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11637:1: ( rule__XShortClosure__Group_0__0__Impl )
-            // InternalSignalDSL.g:11638:2: rule__XShortClosure__Group_0__0__Impl
+            // InternalSignalDSL.g:11795:1: ( rule__XShortClosure__Group_0__0__Impl )
+            // InternalSignalDSL.g:11796:2: rule__XShortClosure__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0__0__Impl();
@@ -39139,23 +39747,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0__0__Impl"
-    // InternalSignalDSL.g:11644:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:11802:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
     public final void rule__XShortClosure__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11648:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:11649:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalSignalDSL.g:11806:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:11807:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:11649:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
-            // InternalSignalDSL.g:11650:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalSignalDSL.g:11807:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalSignalDSL.g:11808:2: ( rule__XShortClosure__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:11651:2: ( rule__XShortClosure__Group_0_0__0 )
-            // InternalSignalDSL.g:11651:3: rule__XShortClosure__Group_0_0__0
+            // InternalSignalDSL.g:11809:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalSignalDSL.g:11809:3: rule__XShortClosure__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0__0();
@@ -39190,16 +39798,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__0"
-    // InternalSignalDSL.g:11660:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
+    // InternalSignalDSL.g:11818:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
     public final void rule__XShortClosure__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11664:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
-            // InternalSignalDSL.g:11665:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
+            // InternalSignalDSL.g:11822:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
+            // InternalSignalDSL.g:11823:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
             {
-            pushFollow(FOLLOW_81);
+            pushFollow(FOLLOW_80);
             rule__XShortClosure__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -39228,23 +39836,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:11672:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:11830:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XShortClosure__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11676:1: ( ( () ) )
-            // InternalSignalDSL.g:11677:1: ( () )
+            // InternalSignalDSL.g:11834:1: ( ( () ) )
+            // InternalSignalDSL.g:11835:1: ( () )
             {
-            // InternalSignalDSL.g:11677:1: ( () )
-            // InternalSignalDSL.g:11678:2: ()
+            // InternalSignalDSL.g:11835:1: ( () )
+            // InternalSignalDSL.g:11836:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); 
             }
-            // InternalSignalDSL.g:11679:2: ()
-            // InternalSignalDSL.g:11679:3: 
+            // InternalSignalDSL.g:11837:2: ()
+            // InternalSignalDSL.g:11837:3: 
             {
             }
 
@@ -39269,16 +39877,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__1"
-    // InternalSignalDSL.g:11687:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
+    // InternalSignalDSL.g:11845:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
     public final void rule__XShortClosure__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11691:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
-            // InternalSignalDSL.g:11692:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
+            // InternalSignalDSL.g:11849:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
+            // InternalSignalDSL.g:11850:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
             {
-            pushFollow(FOLLOW_81);
+            pushFollow(FOLLOW_80);
             rule__XShortClosure__Group_0_0__1__Impl();
 
             state._fsp--;
@@ -39307,31 +39915,31 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__1__Impl"
-    // InternalSignalDSL.g:11699:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
+    // InternalSignalDSL.g:11857:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
     public final void rule__XShortClosure__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11703:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
-            // InternalSignalDSL.g:11704:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalSignalDSL.g:11861:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
+            // InternalSignalDSL.g:11862:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
             {
-            // InternalSignalDSL.g:11704:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
-            // InternalSignalDSL.g:11705:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            // InternalSignalDSL.g:11862:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalSignalDSL.g:11863:2: ( rule__XShortClosure__Group_0_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); 
             }
-            // InternalSignalDSL.g:11706:2: ( rule__XShortClosure__Group_0_0_1__0 )?
-            int alt97=2;
-            int LA97_0 = input.LA(1);
+            // InternalSignalDSL.g:11864:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            int alt100=2;
+            int LA100_0 = input.LA(1);
 
-            if ( (LA97_0==RULE_ID||LA97_0==31||LA97_0==78) ) {
-                alt97=1;
+            if ( (LA100_0==RULE_ID||LA100_0==32||LA100_0==80) ) {
+                alt100=1;
             }
-            switch (alt97) {
+            switch (alt100) {
                 case 1 :
-                    // InternalSignalDSL.g:11706:3: rule__XShortClosure__Group_0_0_1__0
+                    // InternalSignalDSL.g:11864:3: rule__XShortClosure__Group_0_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XShortClosure__Group_0_0_1__0();
@@ -39369,14 +39977,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__2"
-    // InternalSignalDSL.g:11714:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
+    // InternalSignalDSL.g:11872:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
     public final void rule__XShortClosure__Group_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11718:1: ( rule__XShortClosure__Group_0_0__2__Impl )
-            // InternalSignalDSL.g:11719:2: rule__XShortClosure__Group_0_0__2__Impl
+            // InternalSignalDSL.g:11876:1: ( rule__XShortClosure__Group_0_0__2__Impl )
+            // InternalSignalDSL.g:11877:2: rule__XShortClosure__Group_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0__2__Impl();
@@ -39402,23 +40010,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__2__Impl"
-    // InternalSignalDSL.g:11725:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
+    // InternalSignalDSL.g:11883:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
     public final void rule__XShortClosure__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11729:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
-            // InternalSignalDSL.g:11730:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalSignalDSL.g:11887:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
+            // InternalSignalDSL.g:11888:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
             {
-            // InternalSignalDSL.g:11730:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
-            // InternalSignalDSL.g:11731:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalSignalDSL.g:11888:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalSignalDSL.g:11889:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); 
             }
-            // InternalSignalDSL.g:11732:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
-            // InternalSignalDSL.g:11732:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
+            // InternalSignalDSL.g:11890:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalSignalDSL.g:11890:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2();
@@ -39453,16 +40061,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__0"
-    // InternalSignalDSL.g:11741:1: rule__XShortClosure__Group_0_0_1__0 : rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 ;
+    // InternalSignalDSL.g:11899:1: rule__XShortClosure__Group_0_0_1__0 : rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 ;
     public final void rule__XShortClosure__Group_0_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11745:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
-            // InternalSignalDSL.g:11746:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
+            // InternalSignalDSL.g:11903:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
+            // InternalSignalDSL.g:11904:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XShortClosure__Group_0_0_1__0__Impl();
 
             state._fsp--;
@@ -39491,23 +40099,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__0__Impl"
-    // InternalSignalDSL.g:11753:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
+    // InternalSignalDSL.g:11911:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
     public final void rule__XShortClosure__Group_0_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11757:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
-            // InternalSignalDSL.g:11758:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalSignalDSL.g:11915:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
+            // InternalSignalDSL.g:11916:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
             {
-            // InternalSignalDSL.g:11758:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
-            // InternalSignalDSL.g:11759:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalSignalDSL.g:11916:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalSignalDSL.g:11917:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:11760:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
-            // InternalSignalDSL.g:11760:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
+            // InternalSignalDSL.g:11918:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalSignalDSL.g:11918:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0();
@@ -39542,14 +40150,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__1"
-    // InternalSignalDSL.g:11768:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
+    // InternalSignalDSL.g:11926:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
     public final void rule__XShortClosure__Group_0_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11772:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
-            // InternalSignalDSL.g:11773:2: rule__XShortClosure__Group_0_0_1__1__Impl
+            // InternalSignalDSL.g:11930:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
+            // InternalSignalDSL.g:11931:2: rule__XShortClosure__Group_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0_1__1__Impl();
@@ -39575,37 +40183,37 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__1__Impl"
-    // InternalSignalDSL.g:11779:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
+    // InternalSignalDSL.g:11937:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
     public final void rule__XShortClosure__Group_0_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11783:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
-            // InternalSignalDSL.g:11784:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalSignalDSL.g:11941:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
+            // InternalSignalDSL.g:11942:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
             {
-            // InternalSignalDSL.g:11784:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
-            // InternalSignalDSL.g:11785:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            // InternalSignalDSL.g:11942:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalSignalDSL.g:11943:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); 
             }
-            // InternalSignalDSL.g:11786:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
-            loop98:
+            // InternalSignalDSL.g:11944:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            loop101:
             do {
-                int alt98=2;
-                int LA98_0 = input.LA(1);
+                int alt101=2;
+                int LA101_0 = input.LA(1);
 
-                if ( (LA98_0==80) ) {
-                    alt98=1;
+                if ( (LA101_0==82) ) {
+                    alt101=1;
                 }
 
 
-                switch (alt98) {
+                switch (alt101) {
             	case 1 :
-            	    // InternalSignalDSL.g:11786:3: rule__XShortClosure__Group_0_0_1_1__0
+            	    // InternalSignalDSL.g:11944:3: rule__XShortClosure__Group_0_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XShortClosure__Group_0_0_1_1__0();
 
             	    state._fsp--;
@@ -39615,7 +40223,7 @@
             	    break;
 
             	default :
-            	    break loop98;
+            	    break loop101;
                 }
             } while (true);
 
@@ -39644,16 +40252,16 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0"
-    // InternalSignalDSL.g:11795:1: rule__XShortClosure__Group_0_0_1_1__0 : rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 ;
+    // InternalSignalDSL.g:11953:1: rule__XShortClosure__Group_0_0_1_1__0 : rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 ;
     public final void rule__XShortClosure__Group_0_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11799:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
-            // InternalSignalDSL.g:11800:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
+            // InternalSignalDSL.g:11957:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
+            // InternalSignalDSL.g:11958:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XShortClosure__Group_0_0_1_1__0__Impl();
 
             state._fsp--;
@@ -39682,22 +40290,22 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0__Impl"
-    // InternalSignalDSL.g:11807:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:11965:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XShortClosure__Group_0_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11811:1: ( ( ',' ) )
-            // InternalSignalDSL.g:11812:1: ( ',' )
+            // InternalSignalDSL.g:11969:1: ( ( ',' ) )
+            // InternalSignalDSL.g:11970:1: ( ',' )
             {
-            // InternalSignalDSL.g:11812:1: ( ',' )
-            // InternalSignalDSL.g:11813:2: ','
+            // InternalSignalDSL.g:11970:1: ( ',' )
+            // InternalSignalDSL.g:11971:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
             }
@@ -39723,14 +40331,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1"
-    // InternalSignalDSL.g:11822:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
+    // InternalSignalDSL.g:11980:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
     public final void rule__XShortClosure__Group_0_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11826:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
-            // InternalSignalDSL.g:11827:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
+            // InternalSignalDSL.g:11984:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
+            // InternalSignalDSL.g:11985:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0_1_1__1__Impl();
@@ -39756,23 +40364,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1__Impl"
-    // InternalSignalDSL.g:11833:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
+    // InternalSignalDSL.g:11991:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
     public final void rule__XShortClosure__Group_0_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11837:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
-            // InternalSignalDSL.g:11838:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalSignalDSL.g:11995:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
+            // InternalSignalDSL.g:11996:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
             {
-            // InternalSignalDSL.g:11838:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
-            // InternalSignalDSL.g:11839:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalSignalDSL.g:11996:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalSignalDSL.g:11997:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); 
             }
-            // InternalSignalDSL.g:11840:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
-            // InternalSignalDSL.g:11840:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
+            // InternalSignalDSL.g:11998:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalSignalDSL.g:11998:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1();
@@ -39807,16 +40415,16 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__0"
-    // InternalSignalDSL.g:11849:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
+    // InternalSignalDSL.g:12007:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
     public final void rule__XParenthesizedExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11853:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
-            // InternalSignalDSL.g:11854:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
+            // InternalSignalDSL.g:12011:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
+            // InternalSignalDSL.g:12012:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XParenthesizedExpression__Group__0__Impl();
 
             state._fsp--;
@@ -39845,22 +40453,22 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__0__Impl"
-    // InternalSignalDSL.g:11861:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:12019:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
     public final void rule__XParenthesizedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11865:1: ( ( '(' ) )
-            // InternalSignalDSL.g:11866:1: ( '(' )
+            // InternalSignalDSL.g:12023:1: ( ( '(' ) )
+            // InternalSignalDSL.g:12024:1: ( '(' )
             {
-            // InternalSignalDSL.g:11866:1: ( '(' )
-            // InternalSignalDSL.g:11867:2: '('
+            // InternalSignalDSL.g:12024:1: ( '(' )
+            // InternalSignalDSL.g:12025:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
             }
@@ -39886,16 +40494,16 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__1"
-    // InternalSignalDSL.g:11876:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
+    // InternalSignalDSL.g:12034:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
     public final void rule__XParenthesizedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11880:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
-            // InternalSignalDSL.g:11881:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
+            // InternalSignalDSL.g:12038:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
+            // InternalSignalDSL.g:12039:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_82);
             rule__XParenthesizedExpression__Group__1__Impl();
 
             state._fsp--;
@@ -39924,17 +40532,17 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__1__Impl"
-    // InternalSignalDSL.g:11888:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:12046:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
     public final void rule__XParenthesizedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11892:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:11893:1: ( ruleXExpression )
+            // InternalSignalDSL.g:12050:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:12051:1: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:11893:1: ( ruleXExpression )
-            // InternalSignalDSL.g:11894:2: ruleXExpression
+            // InternalSignalDSL.g:12051:1: ( ruleXExpression )
+            // InternalSignalDSL.g:12052:2: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
@@ -39969,14 +40577,14 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__2"
-    // InternalSignalDSL.g:11903:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
+    // InternalSignalDSL.g:12061:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
     public final void rule__XParenthesizedExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11907:1: ( rule__XParenthesizedExpression__Group__2__Impl )
-            // InternalSignalDSL.g:11908:2: rule__XParenthesizedExpression__Group__2__Impl
+            // InternalSignalDSL.g:12065:1: ( rule__XParenthesizedExpression__Group__2__Impl )
+            // InternalSignalDSL.g:12066:2: rule__XParenthesizedExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XParenthesizedExpression__Group__2__Impl();
@@ -40002,22 +40610,22 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__2__Impl"
-    // InternalSignalDSL.g:11914:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:12072:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XParenthesizedExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11918:1: ( ( ')' ) )
-            // InternalSignalDSL.g:11919:1: ( ')' )
+            // InternalSignalDSL.g:12076:1: ( ( ')' ) )
+            // InternalSignalDSL.g:12077:1: ( ')' )
             {
-            // InternalSignalDSL.g:11919:1: ( ')' )
-            // InternalSignalDSL.g:11920:2: ')'
+            // InternalSignalDSL.g:12077:1: ( ')' )
+            // InternalSignalDSL.g:12078:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
@@ -40043,16 +40651,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__0"
-    // InternalSignalDSL.g:11930:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
+    // InternalSignalDSL.g:12088:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
     public final void rule__XIfExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11934:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
-            // InternalSignalDSL.g:11935:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
+            // InternalSignalDSL.g:12092:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
+            // InternalSignalDSL.g:12093:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
             {
-            pushFollow(FOLLOW_84);
+            pushFollow(FOLLOW_83);
             rule__XIfExpression__Group__0__Impl();
 
             state._fsp--;
@@ -40081,23 +40689,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__0__Impl"
-    // InternalSignalDSL.g:11942:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:12100:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
     public final void rule__XIfExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11946:1: ( ( () ) )
-            // InternalSignalDSL.g:11947:1: ( () )
+            // InternalSignalDSL.g:12104:1: ( ( () ) )
+            // InternalSignalDSL.g:12105:1: ( () )
             {
-            // InternalSignalDSL.g:11947:1: ( () )
-            // InternalSignalDSL.g:11948:2: ()
+            // InternalSignalDSL.g:12105:1: ( () )
+            // InternalSignalDSL.g:12106:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:11949:2: ()
-            // InternalSignalDSL.g:11949:3: 
+            // InternalSignalDSL.g:12107:2: ()
+            // InternalSignalDSL.g:12107:3: 
             {
             }
 
@@ -40122,16 +40730,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__1"
-    // InternalSignalDSL.g:11957:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
+    // InternalSignalDSL.g:12115:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
     public final void rule__XIfExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11961:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
-            // InternalSignalDSL.g:11962:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
+            // InternalSignalDSL.g:12119:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
+            // InternalSignalDSL.g:12120:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_33);
             rule__XIfExpression__Group__1__Impl();
 
             state._fsp--;
@@ -40160,22 +40768,22 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__1__Impl"
-    // InternalSignalDSL.g:11969:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
+    // InternalSignalDSL.g:12127:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
     public final void rule__XIfExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11973:1: ( ( 'if' ) )
-            // InternalSignalDSL.g:11974:1: ( 'if' )
+            // InternalSignalDSL.g:12131:1: ( ( 'if' ) )
+            // InternalSignalDSL.g:12132:1: ( 'if' )
             {
-            // InternalSignalDSL.g:11974:1: ( 'if' )
-            // InternalSignalDSL.g:11975:2: 'if'
+            // InternalSignalDSL.g:12132:1: ( 'if' )
+            // InternalSignalDSL.g:12133:2: 'if'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
             }
-            match(input,86,FOLLOW_2); if (state.failed) return ;
+            match(input,88,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
             }
@@ -40201,16 +40809,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__2"
-    // InternalSignalDSL.g:11984:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
+    // InternalSignalDSL.g:12142:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
     public final void rule__XIfExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:11988:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
-            // InternalSignalDSL.g:11989:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
+            // InternalSignalDSL.g:12146:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
+            // InternalSignalDSL.g:12147:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XIfExpression__Group__2__Impl();
 
             state._fsp--;
@@ -40239,22 +40847,22 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__2__Impl"
-    // InternalSignalDSL.g:11996:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:12154:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XIfExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12000:1: ( ( '(' ) )
-            // InternalSignalDSL.g:12001:1: ( '(' )
+            // InternalSignalDSL.g:12158:1: ( ( '(' ) )
+            // InternalSignalDSL.g:12159:1: ( '(' )
             {
-            // InternalSignalDSL.g:12001:1: ( '(' )
-            // InternalSignalDSL.g:12002:2: '('
+            // InternalSignalDSL.g:12159:1: ( '(' )
+            // InternalSignalDSL.g:12160:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -40280,16 +40888,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__3"
-    // InternalSignalDSL.g:12011:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
+    // InternalSignalDSL.g:12169:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
     public final void rule__XIfExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12015:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
-            // InternalSignalDSL.g:12016:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
+            // InternalSignalDSL.g:12173:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
+            // InternalSignalDSL.g:12174:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_82);
             rule__XIfExpression__Group__3__Impl();
 
             state._fsp--;
@@ -40318,23 +40926,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__3__Impl"
-    // InternalSignalDSL.g:12023:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
+    // InternalSignalDSL.g:12181:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
     public final void rule__XIfExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12027:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
-            // InternalSignalDSL.g:12028:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalSignalDSL.g:12185:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
+            // InternalSignalDSL.g:12186:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
             {
-            // InternalSignalDSL.g:12028:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
-            // InternalSignalDSL.g:12029:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalSignalDSL.g:12186:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalSignalDSL.g:12187:2: ( rule__XIfExpression__IfAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); 
             }
-            // InternalSignalDSL.g:12030:2: ( rule__XIfExpression__IfAssignment_3 )
-            // InternalSignalDSL.g:12030:3: rule__XIfExpression__IfAssignment_3
+            // InternalSignalDSL.g:12188:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalSignalDSL.g:12188:3: rule__XIfExpression__IfAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__IfAssignment_3();
@@ -40369,16 +40977,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__4"
-    // InternalSignalDSL.g:12038:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
+    // InternalSignalDSL.g:12196:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
     public final void rule__XIfExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12042:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
-            // InternalSignalDSL.g:12043:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
+            // InternalSignalDSL.g:12200:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
+            // InternalSignalDSL.g:12201:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XIfExpression__Group__4__Impl();
 
             state._fsp--;
@@ -40407,22 +41015,22 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__4__Impl"
-    // InternalSignalDSL.g:12050:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:12208:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__XIfExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12054:1: ( ( ')' ) )
-            // InternalSignalDSL.g:12055:1: ( ')' )
+            // InternalSignalDSL.g:12212:1: ( ( ')' ) )
+            // InternalSignalDSL.g:12213:1: ( ')' )
             {
-            // InternalSignalDSL.g:12055:1: ( ')' )
-            // InternalSignalDSL.g:12056:2: ')'
+            // InternalSignalDSL.g:12213:1: ( ')' )
+            // InternalSignalDSL.g:12214:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
             }
@@ -40448,16 +41056,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__5"
-    // InternalSignalDSL.g:12065:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
+    // InternalSignalDSL.g:12223:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
     public final void rule__XIfExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12069:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
-            // InternalSignalDSL.g:12070:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
+            // InternalSignalDSL.g:12227:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
+            // InternalSignalDSL.g:12228:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
             {
-            pushFollow(FOLLOW_85);
+            pushFollow(FOLLOW_84);
             rule__XIfExpression__Group__5__Impl();
 
             state._fsp--;
@@ -40486,23 +41094,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__5__Impl"
-    // InternalSignalDSL.g:12077:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
+    // InternalSignalDSL.g:12235:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
     public final void rule__XIfExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12081:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
-            // InternalSignalDSL.g:12082:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalSignalDSL.g:12239:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
+            // InternalSignalDSL.g:12240:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
             {
-            // InternalSignalDSL.g:12082:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
-            // InternalSignalDSL.g:12083:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalSignalDSL.g:12240:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalSignalDSL.g:12241:2: ( rule__XIfExpression__ThenAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); 
             }
-            // InternalSignalDSL.g:12084:2: ( rule__XIfExpression__ThenAssignment_5 )
-            // InternalSignalDSL.g:12084:3: rule__XIfExpression__ThenAssignment_5
+            // InternalSignalDSL.g:12242:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalSignalDSL.g:12242:3: rule__XIfExpression__ThenAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__ThenAssignment_5();
@@ -40537,14 +41145,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__6"
-    // InternalSignalDSL.g:12092:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
+    // InternalSignalDSL.g:12250:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
     public final void rule__XIfExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12096:1: ( rule__XIfExpression__Group__6__Impl )
-            // InternalSignalDSL.g:12097:2: rule__XIfExpression__Group__6__Impl
+            // InternalSignalDSL.g:12254:1: ( rule__XIfExpression__Group__6__Impl )
+            // InternalSignalDSL.g:12255:2: rule__XIfExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group__6__Impl();
@@ -40570,35 +41178,35 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__6__Impl"
-    // InternalSignalDSL.g:12103:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
+    // InternalSignalDSL.g:12261:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
     public final void rule__XIfExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12107:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
-            // InternalSignalDSL.g:12108:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalSignalDSL.g:12265:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
+            // InternalSignalDSL.g:12266:1: ( ( rule__XIfExpression__Group_6__0 )? )
             {
-            // InternalSignalDSL.g:12108:1: ( ( rule__XIfExpression__Group_6__0 )? )
-            // InternalSignalDSL.g:12109:2: ( rule__XIfExpression__Group_6__0 )?
+            // InternalSignalDSL.g:12266:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalSignalDSL.g:12267:2: ( rule__XIfExpression__Group_6__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getGroup_6()); 
             }
-            // InternalSignalDSL.g:12110:2: ( rule__XIfExpression__Group_6__0 )?
-            int alt99=2;
-            int LA99_0 = input.LA(1);
+            // InternalSignalDSL.g:12268:2: ( rule__XIfExpression__Group_6__0 )?
+            int alt102=2;
+            int LA102_0 = input.LA(1);
 
-            if ( (LA99_0==87) ) {
-                int LA99_1 = input.LA(2);
+            if ( (LA102_0==89) ) {
+                int LA102_1 = input.LA(2);
 
-                if ( (synpred151_InternalSignalDSL()) ) {
-                    alt99=1;
+                if ( (synpred155_InternalSignalDSL()) ) {
+                    alt102=1;
                 }
             }
-            switch (alt99) {
+            switch (alt102) {
                 case 1 :
-                    // InternalSignalDSL.g:12110:3: rule__XIfExpression__Group_6__0
+                    // InternalSignalDSL.g:12268:3: rule__XIfExpression__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XIfExpression__Group_6__0();
@@ -40636,16 +41244,16 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__0"
-    // InternalSignalDSL.g:12119:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
+    // InternalSignalDSL.g:12277:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
     public final void rule__XIfExpression__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12123:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
-            // InternalSignalDSL.g:12124:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
+            // InternalSignalDSL.g:12281:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
+            // InternalSignalDSL.g:12282:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XIfExpression__Group_6__0__Impl();
 
             state._fsp--;
@@ -40674,25 +41282,25 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__0__Impl"
-    // InternalSignalDSL.g:12131:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
+    // InternalSignalDSL.g:12289:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
     public final void rule__XIfExpression__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12135:1: ( ( ( 'else' ) ) )
-            // InternalSignalDSL.g:12136:1: ( ( 'else' ) )
+            // InternalSignalDSL.g:12293:1: ( ( ( 'else' ) ) )
+            // InternalSignalDSL.g:12294:1: ( ( 'else' ) )
             {
-            // InternalSignalDSL.g:12136:1: ( ( 'else' ) )
-            // InternalSignalDSL.g:12137:2: ( 'else' )
+            // InternalSignalDSL.g:12294:1: ( ( 'else' ) )
+            // InternalSignalDSL.g:12295:2: ( 'else' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); 
             }
-            // InternalSignalDSL.g:12138:2: ( 'else' )
-            // InternalSignalDSL.g:12138:3: 'else'
+            // InternalSignalDSL.g:12296:2: ( 'else' )
+            // InternalSignalDSL.g:12296:3: 'else'
             {
-            match(input,87,FOLLOW_2); if (state.failed) return ;
+            match(input,89,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -40721,14 +41329,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__1"
-    // InternalSignalDSL.g:12146:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
+    // InternalSignalDSL.g:12304:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
     public final void rule__XIfExpression__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12150:1: ( rule__XIfExpression__Group_6__1__Impl )
-            // InternalSignalDSL.g:12151:2: rule__XIfExpression__Group_6__1__Impl
+            // InternalSignalDSL.g:12308:1: ( rule__XIfExpression__Group_6__1__Impl )
+            // InternalSignalDSL.g:12309:2: rule__XIfExpression__Group_6__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group_6__1__Impl();
@@ -40754,23 +41362,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__1__Impl"
-    // InternalSignalDSL.g:12157:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
+    // InternalSignalDSL.g:12315:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
     public final void rule__XIfExpression__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12161:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
-            // InternalSignalDSL.g:12162:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalSignalDSL.g:12319:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
+            // InternalSignalDSL.g:12320:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
             {
-            // InternalSignalDSL.g:12162:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
-            // InternalSignalDSL.g:12163:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalSignalDSL.g:12320:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalSignalDSL.g:12321:2: ( rule__XIfExpression__ElseAssignment_6_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); 
             }
-            // InternalSignalDSL.g:12164:2: ( rule__XIfExpression__ElseAssignment_6_1 )
-            // InternalSignalDSL.g:12164:3: rule__XIfExpression__ElseAssignment_6_1
+            // InternalSignalDSL.g:12322:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalSignalDSL.g:12322:3: rule__XIfExpression__ElseAssignment_6_1
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__ElseAssignment_6_1();
@@ -40805,16 +41413,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__0"
-    // InternalSignalDSL.g:12173:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
+    // InternalSignalDSL.g:12331:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
     public final void rule__XSwitchExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12177:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
-            // InternalSignalDSL.g:12178:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
+            // InternalSignalDSL.g:12335:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
+            // InternalSignalDSL.g:12336:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
             {
-            pushFollow(FOLLOW_86);
+            pushFollow(FOLLOW_85);
             rule__XSwitchExpression__Group__0__Impl();
 
             state._fsp--;
@@ -40843,23 +41451,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__0__Impl"
-    // InternalSignalDSL.g:12185:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:12343:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
     public final void rule__XSwitchExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12189:1: ( ( () ) )
-            // InternalSignalDSL.g:12190:1: ( () )
+            // InternalSignalDSL.g:12347:1: ( ( () ) )
+            // InternalSignalDSL.g:12348:1: ( () )
             {
-            // InternalSignalDSL.g:12190:1: ( () )
-            // InternalSignalDSL.g:12191:2: ()
+            // InternalSignalDSL.g:12348:1: ( () )
+            // InternalSignalDSL.g:12349:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:12192:2: ()
-            // InternalSignalDSL.g:12192:3: 
+            // InternalSignalDSL.g:12350:2: ()
+            // InternalSignalDSL.g:12350:3: 
             {
             }
 
@@ -40884,16 +41492,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__1"
-    // InternalSignalDSL.g:12200:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
+    // InternalSignalDSL.g:12358:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
     public final void rule__XSwitchExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12204:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
-            // InternalSignalDSL.g:12205:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
+            // InternalSignalDSL.g:12362:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
+            // InternalSignalDSL.g:12363:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
             {
-            pushFollow(FOLLOW_87);
+            pushFollow(FOLLOW_86);
             rule__XSwitchExpression__Group__1__Impl();
 
             state._fsp--;
@@ -40922,22 +41530,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__1__Impl"
-    // InternalSignalDSL.g:12212:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
+    // InternalSignalDSL.g:12370:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
     public final void rule__XSwitchExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12216:1: ( ( 'switch' ) )
-            // InternalSignalDSL.g:12217:1: ( 'switch' )
+            // InternalSignalDSL.g:12374:1: ( ( 'switch' ) )
+            // InternalSignalDSL.g:12375:1: ( 'switch' )
             {
-            // InternalSignalDSL.g:12217:1: ( 'switch' )
-            // InternalSignalDSL.g:12218:2: 'switch'
+            // InternalSignalDSL.g:12375:1: ( 'switch' )
+            // InternalSignalDSL.g:12376:2: 'switch'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
             }
-            match(input,88,FOLLOW_2); if (state.failed) return ;
+            match(input,90,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
             }
@@ -40963,14 +41571,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__2"
-    // InternalSignalDSL.g:12227:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
+    // InternalSignalDSL.g:12385:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
     public final void rule__XSwitchExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12231:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
-            // InternalSignalDSL.g:12232:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
+            // InternalSignalDSL.g:12389:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
+            // InternalSignalDSL.g:12390:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__XSwitchExpression__Group__2__Impl();
@@ -41001,23 +41609,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__2__Impl"
-    // InternalSignalDSL.g:12239:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
+    // InternalSignalDSL.g:12397:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
     public final void rule__XSwitchExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12243:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
-            // InternalSignalDSL.g:12244:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalSignalDSL.g:12401:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
+            // InternalSignalDSL.g:12402:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
             {
-            // InternalSignalDSL.g:12244:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
-            // InternalSignalDSL.g:12245:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalSignalDSL.g:12402:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalSignalDSL.g:12403:2: ( rule__XSwitchExpression__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); 
             }
-            // InternalSignalDSL.g:12246:2: ( rule__XSwitchExpression__Alternatives_2 )
-            // InternalSignalDSL.g:12246:3: rule__XSwitchExpression__Alternatives_2
+            // InternalSignalDSL.g:12404:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalSignalDSL.g:12404:3: rule__XSwitchExpression__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Alternatives_2();
@@ -41052,16 +41660,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__3"
-    // InternalSignalDSL.g:12254:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
+    // InternalSignalDSL.g:12412:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
     public final void rule__XSwitchExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12258:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
-            // InternalSignalDSL.g:12259:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
+            // InternalSignalDSL.g:12416:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
+            // InternalSignalDSL.g:12417:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
             {
-            pushFollow(FOLLOW_88);
+            pushFollow(FOLLOW_87);
             rule__XSwitchExpression__Group__3__Impl();
 
             state._fsp--;
@@ -41090,22 +41698,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__3__Impl"
-    // InternalSignalDSL.g:12266:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
+    // InternalSignalDSL.g:12424:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
     public final void rule__XSwitchExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12270:1: ( ( '{' ) )
-            // InternalSignalDSL.g:12271:1: ( '{' )
+            // InternalSignalDSL.g:12428:1: ( ( '{' ) )
+            // InternalSignalDSL.g:12429:1: ( '{' )
             {
-            // InternalSignalDSL.g:12271:1: ( '{' )
-            // InternalSignalDSL.g:12272:2: '{'
+            // InternalSignalDSL.g:12429:1: ( '{' )
+            // InternalSignalDSL.g:12430:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
             }
-            match(input,62,FOLLOW_2); if (state.failed) return ;
+            match(input,63,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
             }
@@ -41131,16 +41739,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__4"
-    // InternalSignalDSL.g:12281:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
+    // InternalSignalDSL.g:12439:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
     public final void rule__XSwitchExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12285:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
-            // InternalSignalDSL.g:12286:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
+            // InternalSignalDSL.g:12443:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
+            // InternalSignalDSL.g:12444:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
             {
-            pushFollow(FOLLOW_88);
+            pushFollow(FOLLOW_87);
             rule__XSwitchExpression__Group__4__Impl();
 
             state._fsp--;
@@ -41169,37 +41777,37 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__4__Impl"
-    // InternalSignalDSL.g:12293:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
+    // InternalSignalDSL.g:12451:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
     public final void rule__XSwitchExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12297:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
-            // InternalSignalDSL.g:12298:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalSignalDSL.g:12455:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
+            // InternalSignalDSL.g:12456:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
             {
-            // InternalSignalDSL.g:12298:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
-            // InternalSignalDSL.g:12299:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            // InternalSignalDSL.g:12456:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalSignalDSL.g:12457:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); 
             }
-            // InternalSignalDSL.g:12300:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
-            loop100:
+            // InternalSignalDSL.g:12458:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            loop103:
             do {
-                int alt100=2;
-                int LA100_0 = input.LA(1);
+                int alt103=2;
+                int LA103_0 = input.LA(1);
 
-                if ( (LA100_0==RULE_ID||LA100_0==31||LA100_0==72||LA100_0==78||LA100_0==80||LA100_0==90) ) {
-                    alt100=1;
+                if ( (LA103_0==RULE_ID||LA103_0==32||LA103_0==72||LA103_0==80||LA103_0==82||LA103_0==92) ) {
+                    alt103=1;
                 }
 
 
-                switch (alt100) {
+                switch (alt103) {
             	case 1 :
-            	    // InternalSignalDSL.g:12300:3: rule__XSwitchExpression__CasesAssignment_4
+            	    // InternalSignalDSL.g:12458:3: rule__XSwitchExpression__CasesAssignment_4
             	    {
-            	    pushFollow(FOLLOW_89);
+            	    pushFollow(FOLLOW_88);
             	    rule__XSwitchExpression__CasesAssignment_4();
 
             	    state._fsp--;
@@ -41209,7 +41817,7 @@
             	    break;
 
             	default :
-            	    break loop100;
+            	    break loop103;
                 }
             } while (true);
 
@@ -41238,16 +41846,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__5"
-    // InternalSignalDSL.g:12308:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
+    // InternalSignalDSL.g:12466:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
     public final void rule__XSwitchExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12312:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
-            // InternalSignalDSL.g:12313:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
+            // InternalSignalDSL.g:12470:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
+            // InternalSignalDSL.g:12471:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
             {
-            pushFollow(FOLLOW_88);
+            pushFollow(FOLLOW_87);
             rule__XSwitchExpression__Group__5__Impl();
 
             state._fsp--;
@@ -41276,31 +41884,31 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__5__Impl"
-    // InternalSignalDSL.g:12320:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
+    // InternalSignalDSL.g:12478:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
     public final void rule__XSwitchExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12324:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
-            // InternalSignalDSL.g:12325:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalSignalDSL.g:12482:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
+            // InternalSignalDSL.g:12483:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
             {
-            // InternalSignalDSL.g:12325:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
-            // InternalSignalDSL.g:12326:2: ( rule__XSwitchExpression__Group_5__0 )?
+            // InternalSignalDSL.g:12483:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalSignalDSL.g:12484:2: ( rule__XSwitchExpression__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); 
             }
-            // InternalSignalDSL.g:12327:2: ( rule__XSwitchExpression__Group_5__0 )?
-            int alt101=2;
-            int LA101_0 = input.LA(1);
+            // InternalSignalDSL.g:12485:2: ( rule__XSwitchExpression__Group_5__0 )?
+            int alt104=2;
+            int LA104_0 = input.LA(1);
 
-            if ( (LA101_0==89) ) {
-                alt101=1;
+            if ( (LA104_0==91) ) {
+                alt104=1;
             }
-            switch (alt101) {
+            switch (alt104) {
                 case 1 :
-                    // InternalSignalDSL.g:12327:3: rule__XSwitchExpression__Group_5__0
+                    // InternalSignalDSL.g:12485:3: rule__XSwitchExpression__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_5__0();
@@ -41338,14 +41946,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__6"
-    // InternalSignalDSL.g:12335:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
+    // InternalSignalDSL.g:12493:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
     public final void rule__XSwitchExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12339:1: ( rule__XSwitchExpression__Group__6__Impl )
-            // InternalSignalDSL.g:12340:2: rule__XSwitchExpression__Group__6__Impl
+            // InternalSignalDSL.g:12497:1: ( rule__XSwitchExpression__Group__6__Impl )
+            // InternalSignalDSL.g:12498:2: rule__XSwitchExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group__6__Impl();
@@ -41371,22 +41979,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__6__Impl"
-    // InternalSignalDSL.g:12346:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
+    // InternalSignalDSL.g:12504:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
     public final void rule__XSwitchExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12350:1: ( ( '}' ) )
-            // InternalSignalDSL.g:12351:1: ( '}' )
+            // InternalSignalDSL.g:12508:1: ( ( '}' ) )
+            // InternalSignalDSL.g:12509:1: ( '}' )
             {
-            // InternalSignalDSL.g:12351:1: ( '}' )
-            // InternalSignalDSL.g:12352:2: '}'
+            // InternalSignalDSL.g:12509:1: ( '}' )
+            // InternalSignalDSL.g:12510:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
             }
-            match(input,63,FOLLOW_2); if (state.failed) return ;
+            match(input,64,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
             }
@@ -41412,16 +42020,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__0"
-    // InternalSignalDSL.g:12362:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
+    // InternalSignalDSL.g:12520:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
     public final void rule__XSwitchExpression__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12366:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
-            // InternalSignalDSL.g:12367:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
+            // InternalSignalDSL.g:12524:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
+            // InternalSignalDSL.g:12525:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XSwitchExpression__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -41450,23 +42058,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__0__Impl"
-    // InternalSignalDSL.g:12374:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) ;
+    // InternalSignalDSL.g:12532:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12378:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
-            // InternalSignalDSL.g:12379:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalSignalDSL.g:12536:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
+            // InternalSignalDSL.g:12537:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
             {
-            // InternalSignalDSL.g:12379:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
-            // InternalSignalDSL.g:12380:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalSignalDSL.g:12537:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalSignalDSL.g:12538:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); 
             }
-            // InternalSignalDSL.g:12381:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
-            // InternalSignalDSL.g:12381:3: rule__XSwitchExpression__Group_2_0_0__0
+            // InternalSignalDSL.g:12539:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalSignalDSL.g:12539:3: rule__XSwitchExpression__Group_2_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0__0();
@@ -41501,16 +42109,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__1"
-    // InternalSignalDSL.g:12389:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 ;
+    // InternalSignalDSL.g:12547:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 ;
     public final void rule__XSwitchExpression__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12393:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
-            // InternalSignalDSL.g:12394:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
+            // InternalSignalDSL.g:12551:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
+            // InternalSignalDSL.g:12552:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_82);
             rule__XSwitchExpression__Group_2_0__1__Impl();
 
             state._fsp--;
@@ -41539,23 +42147,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__1__Impl"
-    // InternalSignalDSL.g:12401:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
+    // InternalSignalDSL.g:12559:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12405:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
-            // InternalSignalDSL.g:12406:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalSignalDSL.g:12563:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
+            // InternalSignalDSL.g:12564:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
             {
-            // InternalSignalDSL.g:12406:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
-            // InternalSignalDSL.g:12407:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalSignalDSL.g:12564:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalSignalDSL.g:12565:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); 
             }
-            // InternalSignalDSL.g:12408:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
-            // InternalSignalDSL.g:12408:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
+            // InternalSignalDSL.g:12566:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalSignalDSL.g:12566:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__SwitchAssignment_2_0_1();
@@ -41590,14 +42198,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__2"
-    // InternalSignalDSL.g:12416:1: rule__XSwitchExpression__Group_2_0__2 : rule__XSwitchExpression__Group_2_0__2__Impl ;
+    // InternalSignalDSL.g:12574:1: rule__XSwitchExpression__Group_2_0__2 : rule__XSwitchExpression__Group_2_0__2__Impl ;
     public final void rule__XSwitchExpression__Group_2_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12420:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
-            // InternalSignalDSL.g:12421:2: rule__XSwitchExpression__Group_2_0__2__Impl
+            // InternalSignalDSL.g:12578:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
+            // InternalSignalDSL.g:12579:2: rule__XSwitchExpression__Group_2_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0__2__Impl();
@@ -41623,22 +42231,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__2__Impl"
-    // InternalSignalDSL.g:12427:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:12585:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
     public final void rule__XSwitchExpression__Group_2_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12431:1: ( ( ')' ) )
-            // InternalSignalDSL.g:12432:1: ( ')' )
+            // InternalSignalDSL.g:12589:1: ( ( ')' ) )
+            // InternalSignalDSL.g:12590:1: ( ')' )
             {
-            // InternalSignalDSL.g:12432:1: ( ')' )
-            // InternalSignalDSL.g:12433:2: ')'
+            // InternalSignalDSL.g:12590:1: ( ')' )
+            // InternalSignalDSL.g:12591:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
             }
@@ -41664,14 +42272,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0"
-    // InternalSignalDSL.g:12443:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
+    // InternalSignalDSL.g:12601:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
     public final void rule__XSwitchExpression__Group_2_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12447:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
-            // InternalSignalDSL.g:12448:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
+            // InternalSignalDSL.g:12605:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
+            // InternalSignalDSL.g:12606:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0__0__Impl();
@@ -41697,23 +42305,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0__Impl"
-    // InternalSignalDSL.g:12454:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
+    // InternalSignalDSL.g:12612:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12458:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
-            // InternalSignalDSL.g:12459:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalSignalDSL.g:12616:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
+            // InternalSignalDSL.g:12617:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
             {
-            // InternalSignalDSL.g:12459:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
-            // InternalSignalDSL.g:12460:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalSignalDSL.g:12617:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalSignalDSL.g:12618:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); 
             }
-            // InternalSignalDSL.g:12461:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
-            // InternalSignalDSL.g:12461:3: rule__XSwitchExpression__Group_2_0_0_0__0
+            // InternalSignalDSL.g:12619:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalSignalDSL.g:12619:3: rule__XSwitchExpression__Group_2_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0_0__0();
@@ -41748,16 +42356,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0"
-    // InternalSignalDSL.g:12470:1: rule__XSwitchExpression__Group_2_0_0_0__0 : rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 ;
+    // InternalSignalDSL.g:12628:1: rule__XSwitchExpression__Group_2_0_0_0__0 : rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12474:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
-            // InternalSignalDSL.g:12475:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
+            // InternalSignalDSL.g:12632:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
+            // InternalSignalDSL.g:12633:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XSwitchExpression__Group_2_0_0_0__0__Impl();
 
             state._fsp--;
@@ -41786,22 +42394,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0__Impl"
-    // InternalSignalDSL.g:12482:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:12640:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( '(' ) ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12486:1: ( ( '(' ) )
-            // InternalSignalDSL.g:12487:1: ( '(' )
+            // InternalSignalDSL.g:12644:1: ( ( '(' ) )
+            // InternalSignalDSL.g:12645:1: ( '(' )
             {
-            // InternalSignalDSL.g:12487:1: ( '(' )
-            // InternalSignalDSL.g:12488:2: '('
+            // InternalSignalDSL.g:12645:1: ( '(' )
+            // InternalSignalDSL.g:12646:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
             }
@@ -41827,16 +42435,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1"
-    // InternalSignalDSL.g:12497:1: rule__XSwitchExpression__Group_2_0_0_0__1 : rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 ;
+    // InternalSignalDSL.g:12655:1: rule__XSwitchExpression__Group_2_0_0_0__1 : rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12501:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
-            // InternalSignalDSL.g:12502:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
+            // InternalSignalDSL.g:12659:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
+            // InternalSignalDSL.g:12660:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
             {
-            pushFollow(FOLLOW_24);
+            pushFollow(FOLLOW_22);
             rule__XSwitchExpression__Group_2_0_0_0__1__Impl();
 
             state._fsp--;
@@ -41865,23 +42473,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1__Impl"
-    // InternalSignalDSL.g:12509:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) ;
+    // InternalSignalDSL.g:12667:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12513:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
-            // InternalSignalDSL.g:12514:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalSignalDSL.g:12671:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
+            // InternalSignalDSL.g:12672:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
             {
-            // InternalSignalDSL.g:12514:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
-            // InternalSignalDSL.g:12515:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalSignalDSL.g:12672:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalSignalDSL.g:12673:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); 
             }
-            // InternalSignalDSL.g:12516:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
-            // InternalSignalDSL.g:12516:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
+            // InternalSignalDSL.g:12674:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalSignalDSL.g:12674:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1();
@@ -41916,14 +42524,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2"
-    // InternalSignalDSL.g:12524:1: rule__XSwitchExpression__Group_2_0_0_0__2 : rule__XSwitchExpression__Group_2_0_0_0__2__Impl ;
+    // InternalSignalDSL.g:12682:1: rule__XSwitchExpression__Group_2_0_0_0__2 : rule__XSwitchExpression__Group_2_0_0_0__2__Impl ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12528:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
-            // InternalSignalDSL.g:12529:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
+            // InternalSignalDSL.g:12686:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
+            // InternalSignalDSL.g:12687:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0_0__2__Impl();
@@ -41949,17 +42557,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2__Impl"
-    // InternalSignalDSL.g:12535:1: rule__XSwitchExpression__Group_2_0_0_0__2__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:12693:1: rule__XSwitchExpression__Group_2_0_0_0__2__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12539:1: ( ( ':' ) )
-            // InternalSignalDSL.g:12540:1: ( ':' )
+            // InternalSignalDSL.g:12697:1: ( ( ':' ) )
+            // InternalSignalDSL.g:12698:1: ( ':' )
             {
-            // InternalSignalDSL.g:12540:1: ( ':' )
-            // InternalSignalDSL.g:12541:2: ':'
+            // InternalSignalDSL.g:12698:1: ( ':' )
+            // InternalSignalDSL.g:12699:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
@@ -41990,16 +42598,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__0"
-    // InternalSignalDSL.g:12551:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
+    // InternalSignalDSL.g:12709:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
     public final void rule__XSwitchExpression__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12555:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
-            // InternalSignalDSL.g:12556:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
+            // InternalSignalDSL.g:12713:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
+            // InternalSignalDSL.g:12714:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
             {
-            pushFollow(FOLLOW_87);
+            pushFollow(FOLLOW_86);
             rule__XSwitchExpression__Group_2_1__0__Impl();
 
             state._fsp--;
@@ -42028,27 +42636,27 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__0__Impl"
-    // InternalSignalDSL.g:12563:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) ;
+    // InternalSignalDSL.g:12721:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) ;
     public final void rule__XSwitchExpression__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12567:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
-            // InternalSignalDSL.g:12568:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalSignalDSL.g:12725:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
+            // InternalSignalDSL.g:12726:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
             {
-            // InternalSignalDSL.g:12568:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
-            // InternalSignalDSL.g:12569:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            // InternalSignalDSL.g:12726:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalSignalDSL.g:12727:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); 
             }
-            // InternalSignalDSL.g:12570:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
-            int alt102=2;
-            alt102 = dfa102.predict(input);
-            switch (alt102) {
+            // InternalSignalDSL.g:12728:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            int alt105=2;
+            alt105 = dfa105.predict(input);
+            switch (alt105) {
                 case 1 :
-                    // InternalSignalDSL.g:12570:3: rule__XSwitchExpression__Group_2_1_0__0
+                    // InternalSignalDSL.g:12728:3: rule__XSwitchExpression__Group_2_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_1_0__0();
@@ -42086,14 +42694,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__1"
-    // InternalSignalDSL.g:12578:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl ;
+    // InternalSignalDSL.g:12736:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl ;
     public final void rule__XSwitchExpression__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12582:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
-            // InternalSignalDSL.g:12583:2: rule__XSwitchExpression__Group_2_1__1__Impl
+            // InternalSignalDSL.g:12740:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
+            // InternalSignalDSL.g:12741:2: rule__XSwitchExpression__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1__1__Impl();
@@ -42119,23 +42727,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__1__Impl"
-    // InternalSignalDSL.g:12589:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
+    // InternalSignalDSL.g:12747:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
     public final void rule__XSwitchExpression__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12593:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
-            // InternalSignalDSL.g:12594:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalSignalDSL.g:12751:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
+            // InternalSignalDSL.g:12752:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
             {
-            // InternalSignalDSL.g:12594:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
-            // InternalSignalDSL.g:12595:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalSignalDSL.g:12752:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalSignalDSL.g:12753:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); 
             }
-            // InternalSignalDSL.g:12596:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
-            // InternalSignalDSL.g:12596:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
+            // InternalSignalDSL.g:12754:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalSignalDSL.g:12754:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__SwitchAssignment_2_1_1();
@@ -42170,14 +42778,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0"
-    // InternalSignalDSL.g:12605:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
+    // InternalSignalDSL.g:12763:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
     public final void rule__XSwitchExpression__Group_2_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12609:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
-            // InternalSignalDSL.g:12610:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
+            // InternalSignalDSL.g:12767:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
+            // InternalSignalDSL.g:12768:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0__0__Impl();
@@ -42203,23 +42811,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0__Impl"
-    // InternalSignalDSL.g:12616:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
+    // InternalSignalDSL.g:12774:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12620:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
-            // InternalSignalDSL.g:12621:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalSignalDSL.g:12778:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
+            // InternalSignalDSL.g:12779:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
             {
-            // InternalSignalDSL.g:12621:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
-            // InternalSignalDSL.g:12622:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalSignalDSL.g:12779:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalSignalDSL.g:12780:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); 
             }
-            // InternalSignalDSL.g:12623:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
-            // InternalSignalDSL.g:12623:3: rule__XSwitchExpression__Group_2_1_0_0__0
+            // InternalSignalDSL.g:12781:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalSignalDSL.g:12781:3: rule__XSwitchExpression__Group_2_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0_0__0();
@@ -42254,16 +42862,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0"
-    // InternalSignalDSL.g:12632:1: rule__XSwitchExpression__Group_2_1_0_0__0 : rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 ;
+    // InternalSignalDSL.g:12790:1: rule__XSwitchExpression__Group_2_1_0_0__0 : rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12636:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
-            // InternalSignalDSL.g:12637:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
+            // InternalSignalDSL.g:12794:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
+            // InternalSignalDSL.g:12795:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
             {
-            pushFollow(FOLLOW_24);
+            pushFollow(FOLLOW_22);
             rule__XSwitchExpression__Group_2_1_0_0__0__Impl();
 
             state._fsp--;
@@ -42292,23 +42900,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0__Impl"
-    // InternalSignalDSL.g:12644:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) ;
+    // InternalSignalDSL.g:12802:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12648:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
-            // InternalSignalDSL.g:12649:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalSignalDSL.g:12806:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
+            // InternalSignalDSL.g:12807:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
             {
-            // InternalSignalDSL.g:12649:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
-            // InternalSignalDSL.g:12650:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalSignalDSL.g:12807:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalSignalDSL.g:12808:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); 
             }
-            // InternalSignalDSL.g:12651:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
-            // InternalSignalDSL.g:12651:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
+            // InternalSignalDSL.g:12809:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalSignalDSL.g:12809:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0();
@@ -42343,14 +42951,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1"
-    // InternalSignalDSL.g:12659:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl ;
+    // InternalSignalDSL.g:12817:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12663:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
-            // InternalSignalDSL.g:12664:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
+            // InternalSignalDSL.g:12821:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
+            // InternalSignalDSL.g:12822:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0_0__1__Impl();
@@ -42376,17 +42984,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1__Impl"
-    // InternalSignalDSL.g:12670:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:12828:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12674:1: ( ( ':' ) )
-            // InternalSignalDSL.g:12675:1: ( ':' )
+            // InternalSignalDSL.g:12832:1: ( ( ':' ) )
+            // InternalSignalDSL.g:12833:1: ( ':' )
             {
-            // InternalSignalDSL.g:12675:1: ( ':' )
-            // InternalSignalDSL.g:12676:2: ':'
+            // InternalSignalDSL.g:12833:1: ( ':' )
+            // InternalSignalDSL.g:12834:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
@@ -42417,16 +43025,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__0"
-    // InternalSignalDSL.g:12686:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
+    // InternalSignalDSL.g:12844:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
     public final void rule__XSwitchExpression__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12690:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
-            // InternalSignalDSL.g:12691:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
+            // InternalSignalDSL.g:12848:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
+            // InternalSignalDSL.g:12849:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
             {
-            pushFollow(FOLLOW_24);
+            pushFollow(FOLLOW_22);
             rule__XSwitchExpression__Group_5__0__Impl();
 
             state._fsp--;
@@ -42455,22 +43063,22 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__0__Impl"
-    // InternalSignalDSL.g:12698:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
+    // InternalSignalDSL.g:12856:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
     public final void rule__XSwitchExpression__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12702:1: ( ( 'default' ) )
-            // InternalSignalDSL.g:12703:1: ( 'default' )
+            // InternalSignalDSL.g:12860:1: ( ( 'default' ) )
+            // InternalSignalDSL.g:12861:1: ( 'default' )
             {
-            // InternalSignalDSL.g:12703:1: ( 'default' )
-            // InternalSignalDSL.g:12704:2: 'default'
+            // InternalSignalDSL.g:12861:1: ( 'default' )
+            // InternalSignalDSL.g:12862:2: 'default'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
             }
-            match(input,89,FOLLOW_2); if (state.failed) return ;
+            match(input,91,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
             }
@@ -42496,16 +43104,16 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__1"
-    // InternalSignalDSL.g:12713:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
+    // InternalSignalDSL.g:12871:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
     public final void rule__XSwitchExpression__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12717:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
-            // InternalSignalDSL.g:12718:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
+            // InternalSignalDSL.g:12875:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
+            // InternalSignalDSL.g:12876:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XSwitchExpression__Group_5__1__Impl();
 
             state._fsp--;
@@ -42534,17 +43142,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__1__Impl"
-    // InternalSignalDSL.g:12725:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:12883:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12729:1: ( ( ':' ) )
-            // InternalSignalDSL.g:12730:1: ( ':' )
+            // InternalSignalDSL.g:12887:1: ( ( ':' ) )
+            // InternalSignalDSL.g:12888:1: ( ':' )
             {
-            // InternalSignalDSL.g:12730:1: ( ':' )
-            // InternalSignalDSL.g:12731:2: ':'
+            // InternalSignalDSL.g:12888:1: ( ':' )
+            // InternalSignalDSL.g:12889:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
@@ -42575,14 +43183,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__2"
-    // InternalSignalDSL.g:12740:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
+    // InternalSignalDSL.g:12898:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
     public final void rule__XSwitchExpression__Group_5__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12744:1: ( rule__XSwitchExpression__Group_5__2__Impl )
-            // InternalSignalDSL.g:12745:2: rule__XSwitchExpression__Group_5__2__Impl
+            // InternalSignalDSL.g:12902:1: ( rule__XSwitchExpression__Group_5__2__Impl )
+            // InternalSignalDSL.g:12903:2: rule__XSwitchExpression__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_5__2__Impl();
@@ -42608,23 +43216,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__2__Impl"
-    // InternalSignalDSL.g:12751:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
+    // InternalSignalDSL.g:12909:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
     public final void rule__XSwitchExpression__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12755:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
-            // InternalSignalDSL.g:12756:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalSignalDSL.g:12913:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
+            // InternalSignalDSL.g:12914:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
             {
-            // InternalSignalDSL.g:12756:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
-            // InternalSignalDSL.g:12757:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalSignalDSL.g:12914:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalSignalDSL.g:12915:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); 
             }
-            // InternalSignalDSL.g:12758:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
-            // InternalSignalDSL.g:12758:3: rule__XSwitchExpression__DefaultAssignment_5_2
+            // InternalSignalDSL.g:12916:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalSignalDSL.g:12916:3: rule__XSwitchExpression__DefaultAssignment_5_2
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DefaultAssignment_5_2();
@@ -42659,16 +43267,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__0"
-    // InternalSignalDSL.g:12767:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
+    // InternalSignalDSL.g:12925:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
     public final void rule__XCasePart__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12771:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
-            // InternalSignalDSL.g:12772:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
+            // InternalSignalDSL.g:12929:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
+            // InternalSignalDSL.g:12930:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__XCasePart__Group__0__Impl();
 
             state._fsp--;
@@ -42697,23 +43305,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__0__Impl"
-    // InternalSignalDSL.g:12779:1: rule__XCasePart__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:12937:1: rule__XCasePart__Group__0__Impl : ( () ) ;
     public final void rule__XCasePart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12783:1: ( ( () ) )
-            // InternalSignalDSL.g:12784:1: ( () )
+            // InternalSignalDSL.g:12941:1: ( ( () ) )
+            // InternalSignalDSL.g:12942:1: ( () )
             {
-            // InternalSignalDSL.g:12784:1: ( () )
-            // InternalSignalDSL.g:12785:2: ()
+            // InternalSignalDSL.g:12942:1: ( () )
+            // InternalSignalDSL.g:12943:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); 
             }
-            // InternalSignalDSL.g:12786:2: ()
-            // InternalSignalDSL.g:12786:3: 
+            // InternalSignalDSL.g:12944:2: ()
+            // InternalSignalDSL.g:12944:3: 
             {
             }
 
@@ -42738,16 +43346,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__1"
-    // InternalSignalDSL.g:12794:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
+    // InternalSignalDSL.g:12952:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
     public final void rule__XCasePart__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12798:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
-            // InternalSignalDSL.g:12799:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
+            // InternalSignalDSL.g:12956:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
+            // InternalSignalDSL.g:12957:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__XCasePart__Group__1__Impl();
 
             state._fsp--;
@@ -42776,31 +43384,31 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__1__Impl"
-    // InternalSignalDSL.g:12806:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
+    // InternalSignalDSL.g:12964:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
     public final void rule__XCasePart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12810:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
-            // InternalSignalDSL.g:12811:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalSignalDSL.g:12968:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
+            // InternalSignalDSL.g:12969:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
             {
-            // InternalSignalDSL.g:12811:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
-            // InternalSignalDSL.g:12812:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            // InternalSignalDSL.g:12969:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalSignalDSL.g:12970:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); 
             }
-            // InternalSignalDSL.g:12813:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
-            int alt103=2;
-            int LA103_0 = input.LA(1);
+            // InternalSignalDSL.g:12971:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            int alt106=2;
+            int LA106_0 = input.LA(1);
 
-            if ( (LA103_0==RULE_ID||LA103_0==31||LA103_0==78) ) {
-                alt103=1;
+            if ( (LA106_0==RULE_ID||LA106_0==32||LA106_0==80) ) {
+                alt106=1;
             }
-            switch (alt103) {
+            switch (alt106) {
                 case 1 :
-                    // InternalSignalDSL.g:12813:3: rule__XCasePart__TypeGuardAssignment_1
+                    // InternalSignalDSL.g:12971:3: rule__XCasePart__TypeGuardAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__TypeGuardAssignment_1();
@@ -42838,16 +43446,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__2"
-    // InternalSignalDSL.g:12821:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
+    // InternalSignalDSL.g:12979:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
     public final void rule__XCasePart__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12825:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
-            // InternalSignalDSL.g:12826:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
+            // InternalSignalDSL.g:12983:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
+            // InternalSignalDSL.g:12984:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
             {
-            pushFollow(FOLLOW_90);
+            pushFollow(FOLLOW_89);
             rule__XCasePart__Group__2__Impl();
 
             state._fsp--;
@@ -42876,31 +43484,31 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__2__Impl"
-    // InternalSignalDSL.g:12833:1: rule__XCasePart__Group__2__Impl : ( ( rule__XCasePart__Group_2__0 )? ) ;
+    // InternalSignalDSL.g:12991:1: rule__XCasePart__Group__2__Impl : ( ( rule__XCasePart__Group_2__0 )? ) ;
     public final void rule__XCasePart__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12837:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
-            // InternalSignalDSL.g:12838:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalSignalDSL.g:12995:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
+            // InternalSignalDSL.g:12996:1: ( ( rule__XCasePart__Group_2__0 )? )
             {
-            // InternalSignalDSL.g:12838:1: ( ( rule__XCasePart__Group_2__0 )? )
-            // InternalSignalDSL.g:12839:2: ( rule__XCasePart__Group_2__0 )?
+            // InternalSignalDSL.g:12996:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalSignalDSL.g:12997:2: ( rule__XCasePart__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getGroup_2()); 
             }
-            // InternalSignalDSL.g:12840:2: ( rule__XCasePart__Group_2__0 )?
-            int alt104=2;
-            int LA104_0 = input.LA(1);
+            // InternalSignalDSL.g:12998:2: ( rule__XCasePart__Group_2__0 )?
+            int alt107=2;
+            int LA107_0 = input.LA(1);
 
-            if ( (LA104_0==90) ) {
-                alt104=1;
+            if ( (LA107_0==92) ) {
+                alt107=1;
             }
-            switch (alt104) {
+            switch (alt107) {
                 case 1 :
-                    // InternalSignalDSL.g:12840:3: rule__XCasePart__Group_2__0
+                    // InternalSignalDSL.g:12998:3: rule__XCasePart__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__Group_2__0();
@@ -42938,14 +43546,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__3"
-    // InternalSignalDSL.g:12848:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
+    // InternalSignalDSL.g:13006:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
     public final void rule__XCasePart__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12852:1: ( rule__XCasePart__Group__3__Impl )
-            // InternalSignalDSL.g:12853:2: rule__XCasePart__Group__3__Impl
+            // InternalSignalDSL.g:13010:1: ( rule__XCasePart__Group__3__Impl )
+            // InternalSignalDSL.g:13011:2: rule__XCasePart__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group__3__Impl();
@@ -42971,23 +43579,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__3__Impl"
-    // InternalSignalDSL.g:12859:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
+    // InternalSignalDSL.g:13017:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
     public final void rule__XCasePart__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12863:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
-            // InternalSignalDSL.g:12864:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalSignalDSL.g:13021:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
+            // InternalSignalDSL.g:13022:1: ( ( rule__XCasePart__Alternatives_3 ) )
             {
-            // InternalSignalDSL.g:12864:1: ( ( rule__XCasePart__Alternatives_3 ) )
-            // InternalSignalDSL.g:12865:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalSignalDSL.g:13022:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalSignalDSL.g:13023:2: ( rule__XCasePart__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getAlternatives_3()); 
             }
-            // InternalSignalDSL.g:12866:2: ( rule__XCasePart__Alternatives_3 )
-            // InternalSignalDSL.g:12866:3: rule__XCasePart__Alternatives_3
+            // InternalSignalDSL.g:13024:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalSignalDSL.g:13024:3: rule__XCasePart__Alternatives_3
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Alternatives_3();
@@ -43022,16 +43630,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__0"
-    // InternalSignalDSL.g:12875:1: rule__XCasePart__Group_2__0 : rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 ;
+    // InternalSignalDSL.g:13033:1: rule__XCasePart__Group_2__0 : rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 ;
     public final void rule__XCasePart__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12879:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
-            // InternalSignalDSL.g:12880:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
+            // InternalSignalDSL.g:13037:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
+            // InternalSignalDSL.g:13038:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XCasePart__Group_2__0__Impl();
 
             state._fsp--;
@@ -43060,22 +43668,22 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__0__Impl"
-    // InternalSignalDSL.g:12887:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
+    // InternalSignalDSL.g:13045:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
     public final void rule__XCasePart__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12891:1: ( ( 'case' ) )
-            // InternalSignalDSL.g:12892:1: ( 'case' )
+            // InternalSignalDSL.g:13049:1: ( ( 'case' ) )
+            // InternalSignalDSL.g:13050:1: ( 'case' )
             {
-            // InternalSignalDSL.g:12892:1: ( 'case' )
-            // InternalSignalDSL.g:12893:2: 'case'
+            // InternalSignalDSL.g:13050:1: ( 'case' )
+            // InternalSignalDSL.g:13051:2: 'case'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
             }
-            match(input,90,FOLLOW_2); if (state.failed) return ;
+            match(input,92,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
             }
@@ -43101,14 +43709,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__1"
-    // InternalSignalDSL.g:12902:1: rule__XCasePart__Group_2__1 : rule__XCasePart__Group_2__1__Impl ;
+    // InternalSignalDSL.g:13060:1: rule__XCasePart__Group_2__1 : rule__XCasePart__Group_2__1__Impl ;
     public final void rule__XCasePart__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12906:1: ( rule__XCasePart__Group_2__1__Impl )
-            // InternalSignalDSL.g:12907:2: rule__XCasePart__Group_2__1__Impl
+            // InternalSignalDSL.g:13064:1: ( rule__XCasePart__Group_2__1__Impl )
+            // InternalSignalDSL.g:13065:2: rule__XCasePart__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group_2__1__Impl();
@@ -43134,23 +43742,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__1__Impl"
-    // InternalSignalDSL.g:12913:1: rule__XCasePart__Group_2__1__Impl : ( ( rule__XCasePart__CaseAssignment_2_1 ) ) ;
+    // InternalSignalDSL.g:13071:1: rule__XCasePart__Group_2__1__Impl : ( ( rule__XCasePart__CaseAssignment_2_1 ) ) ;
     public final void rule__XCasePart__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12917:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
-            // InternalSignalDSL.g:12918:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalSignalDSL.g:13075:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
+            // InternalSignalDSL.g:13076:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
             {
-            // InternalSignalDSL.g:12918:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
-            // InternalSignalDSL.g:12919:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalSignalDSL.g:13076:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalSignalDSL.g:13077:2: ( rule__XCasePart__CaseAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); 
             }
-            // InternalSignalDSL.g:12920:2: ( rule__XCasePart__CaseAssignment_2_1 )
-            // InternalSignalDSL.g:12920:3: rule__XCasePart__CaseAssignment_2_1
+            // InternalSignalDSL.g:13078:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalSignalDSL.g:13078:3: rule__XCasePart__CaseAssignment_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__CaseAssignment_2_1();
@@ -43185,16 +43793,16 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__0"
-    // InternalSignalDSL.g:12929:1: rule__XCasePart__Group_3_0__0 : rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 ;
+    // InternalSignalDSL.g:13087:1: rule__XCasePart__Group_3_0__0 : rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 ;
     public final void rule__XCasePart__Group_3_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12933:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
-            // InternalSignalDSL.g:12934:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
+            // InternalSignalDSL.g:13091:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
+            // InternalSignalDSL.g:13092:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XCasePart__Group_3_0__0__Impl();
 
             state._fsp--;
@@ -43223,17 +43831,17 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__0__Impl"
-    // InternalSignalDSL.g:12941:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:13099:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
     public final void rule__XCasePart__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12945:1: ( ( ':' ) )
-            // InternalSignalDSL.g:12946:1: ( ':' )
+            // InternalSignalDSL.g:13103:1: ( ( ':' ) )
+            // InternalSignalDSL.g:13104:1: ( ':' )
             {
-            // InternalSignalDSL.g:12946:1: ( ':' )
-            // InternalSignalDSL.g:12947:2: ':'
+            // InternalSignalDSL.g:13104:1: ( ':' )
+            // InternalSignalDSL.g:13105:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
@@ -43264,14 +43872,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__1"
-    // InternalSignalDSL.g:12956:1: rule__XCasePart__Group_3_0__1 : rule__XCasePart__Group_3_0__1__Impl ;
+    // InternalSignalDSL.g:13114:1: rule__XCasePart__Group_3_0__1 : rule__XCasePart__Group_3_0__1__Impl ;
     public final void rule__XCasePart__Group_3_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12960:1: ( rule__XCasePart__Group_3_0__1__Impl )
-            // InternalSignalDSL.g:12961:2: rule__XCasePart__Group_3_0__1__Impl
+            // InternalSignalDSL.g:13118:1: ( rule__XCasePart__Group_3_0__1__Impl )
+            // InternalSignalDSL.g:13119:2: rule__XCasePart__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group_3_0__1__Impl();
@@ -43297,23 +43905,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__1__Impl"
-    // InternalSignalDSL.g:12967:1: rule__XCasePart__Group_3_0__1__Impl : ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) ;
+    // InternalSignalDSL.g:13125:1: rule__XCasePart__Group_3_0__1__Impl : ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) ;
     public final void rule__XCasePart__Group_3_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12971:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
-            // InternalSignalDSL.g:12972:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalSignalDSL.g:13129:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
+            // InternalSignalDSL.g:13130:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
             {
-            // InternalSignalDSL.g:12972:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
-            // InternalSignalDSL.g:12973:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalSignalDSL.g:13130:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalSignalDSL.g:13131:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); 
             }
-            // InternalSignalDSL.g:12974:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
-            // InternalSignalDSL.g:12974:3: rule__XCasePart__ThenAssignment_3_0_1
+            // InternalSignalDSL.g:13132:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalSignalDSL.g:13132:3: rule__XCasePart__ThenAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__ThenAssignment_3_0_1();
@@ -43348,16 +43956,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__0"
-    // InternalSignalDSL.g:12983:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
+    // InternalSignalDSL.g:13141:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
     public final void rule__XForLoopExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12987:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
-            // InternalSignalDSL.g:12988:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
+            // InternalSignalDSL.g:13145:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
+            // InternalSignalDSL.g:13146:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XForLoopExpression__Group__0__Impl();
 
             state._fsp--;
@@ -43386,23 +43994,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__0__Impl"
-    // InternalSignalDSL.g:12995:1: rule__XForLoopExpression__Group__0__Impl : ( ( rule__XForLoopExpression__Group_0__0 ) ) ;
+    // InternalSignalDSL.g:13153:1: rule__XForLoopExpression__Group__0__Impl : ( ( rule__XForLoopExpression__Group_0__0 ) ) ;
     public final void rule__XForLoopExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:12999:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
-            // InternalSignalDSL.g:13000:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalSignalDSL.g:13157:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
+            // InternalSignalDSL.g:13158:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
             {
-            // InternalSignalDSL.g:13000:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
-            // InternalSignalDSL.g:13001:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalSignalDSL.g:13158:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalSignalDSL.g:13159:2: ( rule__XForLoopExpression__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); 
             }
-            // InternalSignalDSL.g:13002:2: ( rule__XForLoopExpression__Group_0__0 )
-            // InternalSignalDSL.g:13002:3: rule__XForLoopExpression__Group_0__0
+            // InternalSignalDSL.g:13160:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalSignalDSL.g:13160:3: rule__XForLoopExpression__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0__0();
@@ -43437,16 +44045,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__1"
-    // InternalSignalDSL.g:13010:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
+    // InternalSignalDSL.g:13168:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
     public final void rule__XForLoopExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13014:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
-            // InternalSignalDSL.g:13015:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
+            // InternalSignalDSL.g:13172:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
+            // InternalSignalDSL.g:13173:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_82);
             rule__XForLoopExpression__Group__1__Impl();
 
             state._fsp--;
@@ -43475,23 +44083,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__1__Impl"
-    // InternalSignalDSL.g:13022:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
+    // InternalSignalDSL.g:13180:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
     public final void rule__XForLoopExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13026:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
-            // InternalSignalDSL.g:13027:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalSignalDSL.g:13184:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
+            // InternalSignalDSL.g:13185:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
             {
-            // InternalSignalDSL.g:13027:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
-            // InternalSignalDSL.g:13028:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalSignalDSL.g:13185:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalSignalDSL.g:13186:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); 
             }
-            // InternalSignalDSL.g:13029:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
-            // InternalSignalDSL.g:13029:3: rule__XForLoopExpression__ForExpressionAssignment_1
+            // InternalSignalDSL.g:13187:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalSignalDSL.g:13187:3: rule__XForLoopExpression__ForExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__ForExpressionAssignment_1();
@@ -43526,16 +44134,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__2"
-    // InternalSignalDSL.g:13037:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
+    // InternalSignalDSL.g:13195:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
     public final void rule__XForLoopExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13041:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
-            // InternalSignalDSL.g:13042:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
+            // InternalSignalDSL.g:13199:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
+            // InternalSignalDSL.g:13200:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XForLoopExpression__Group__2__Impl();
 
             state._fsp--;
@@ -43564,22 +44172,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__2__Impl"
-    // InternalSignalDSL.g:13049:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:13207:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XForLoopExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13053:1: ( ( ')' ) )
-            // InternalSignalDSL.g:13054:1: ( ')' )
+            // InternalSignalDSL.g:13211:1: ( ( ')' ) )
+            // InternalSignalDSL.g:13212:1: ( ')' )
             {
-            // InternalSignalDSL.g:13054:1: ( ')' )
-            // InternalSignalDSL.g:13055:2: ')'
+            // InternalSignalDSL.g:13212:1: ( ')' )
+            // InternalSignalDSL.g:13213:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
             }
@@ -43605,14 +44213,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__3"
-    // InternalSignalDSL.g:13064:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
+    // InternalSignalDSL.g:13222:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
     public final void rule__XForLoopExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13068:1: ( rule__XForLoopExpression__Group__3__Impl )
-            // InternalSignalDSL.g:13069:2: rule__XForLoopExpression__Group__3__Impl
+            // InternalSignalDSL.g:13226:1: ( rule__XForLoopExpression__Group__3__Impl )
+            // InternalSignalDSL.g:13227:2: rule__XForLoopExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group__3__Impl();
@@ -43638,23 +44246,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__3__Impl"
-    // InternalSignalDSL.g:13075:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
+    // InternalSignalDSL.g:13233:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
     public final void rule__XForLoopExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13079:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
-            // InternalSignalDSL.g:13080:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalSignalDSL.g:13237:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
+            // InternalSignalDSL.g:13238:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
             {
-            // InternalSignalDSL.g:13080:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
-            // InternalSignalDSL.g:13081:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalSignalDSL.g:13238:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalSignalDSL.g:13239:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); 
             }
-            // InternalSignalDSL.g:13082:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
-            // InternalSignalDSL.g:13082:3: rule__XForLoopExpression__EachExpressionAssignment_3
+            // InternalSignalDSL.g:13240:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalSignalDSL.g:13240:3: rule__XForLoopExpression__EachExpressionAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__EachExpressionAssignment_3();
@@ -43689,14 +44297,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0__0"
-    // InternalSignalDSL.g:13091:1: rule__XForLoopExpression__Group_0__0 : rule__XForLoopExpression__Group_0__0__Impl ;
+    // InternalSignalDSL.g:13249:1: rule__XForLoopExpression__Group_0__0 : rule__XForLoopExpression__Group_0__0__Impl ;
     public final void rule__XForLoopExpression__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13095:1: ( rule__XForLoopExpression__Group_0__0__Impl )
-            // InternalSignalDSL.g:13096:2: rule__XForLoopExpression__Group_0__0__Impl
+            // InternalSignalDSL.g:13253:1: ( rule__XForLoopExpression__Group_0__0__Impl )
+            // InternalSignalDSL.g:13254:2: rule__XForLoopExpression__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0__0__Impl();
@@ -43722,23 +44330,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0__0__Impl"
-    // InternalSignalDSL.g:13102:1: rule__XForLoopExpression__Group_0__0__Impl : ( ( rule__XForLoopExpression__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:13260:1: rule__XForLoopExpression__Group_0__0__Impl : ( ( rule__XForLoopExpression__Group_0_0__0 ) ) ;
     public final void rule__XForLoopExpression__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13106:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:13107:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalSignalDSL.g:13264:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:13265:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:13107:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
-            // InternalSignalDSL.g:13108:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalSignalDSL.g:13265:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalSignalDSL.g:13266:2: ( rule__XForLoopExpression__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:13109:2: ( rule__XForLoopExpression__Group_0_0__0 )
-            // InternalSignalDSL.g:13109:3: rule__XForLoopExpression__Group_0_0__0
+            // InternalSignalDSL.g:13267:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalSignalDSL.g:13267:3: rule__XForLoopExpression__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0_0__0();
@@ -43773,16 +44381,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__0"
-    // InternalSignalDSL.g:13118:1: rule__XForLoopExpression__Group_0_0__0 : rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 ;
+    // InternalSignalDSL.g:13276:1: rule__XForLoopExpression__Group_0_0__0 : rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 ;
     public final void rule__XForLoopExpression__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13122:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
-            // InternalSignalDSL.g:13123:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
+            // InternalSignalDSL.g:13280:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
+            // InternalSignalDSL.g:13281:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_90);
             rule__XForLoopExpression__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -43811,23 +44419,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:13130:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:13288:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XForLoopExpression__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13134:1: ( ( () ) )
-            // InternalSignalDSL.g:13135:1: ( () )
+            // InternalSignalDSL.g:13292:1: ( ( () ) )
+            // InternalSignalDSL.g:13293:1: ( () )
             {
-            // InternalSignalDSL.g:13135:1: ( () )
-            // InternalSignalDSL.g:13136:2: ()
+            // InternalSignalDSL.g:13293:1: ( () )
+            // InternalSignalDSL.g:13294:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); 
             }
-            // InternalSignalDSL.g:13137:2: ()
-            // InternalSignalDSL.g:13137:3: 
+            // InternalSignalDSL.g:13295:2: ()
+            // InternalSignalDSL.g:13295:3: 
             {
             }
 
@@ -43852,16 +44460,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__1"
-    // InternalSignalDSL.g:13145:1: rule__XForLoopExpression__Group_0_0__1 : rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 ;
+    // InternalSignalDSL.g:13303:1: rule__XForLoopExpression__Group_0_0__1 : rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 ;
     public final void rule__XForLoopExpression__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13149:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
-            // InternalSignalDSL.g:13150:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
+            // InternalSignalDSL.g:13307:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
+            // InternalSignalDSL.g:13308:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_33);
             rule__XForLoopExpression__Group_0_0__1__Impl();
 
             state._fsp--;
@@ -43890,22 +44498,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__1__Impl"
-    // InternalSignalDSL.g:13157:1: rule__XForLoopExpression__Group_0_0__1__Impl : ( 'for' ) ;
+    // InternalSignalDSL.g:13315:1: rule__XForLoopExpression__Group_0_0__1__Impl : ( 'for' ) ;
     public final void rule__XForLoopExpression__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13161:1: ( ( 'for' ) )
-            // InternalSignalDSL.g:13162:1: ( 'for' )
+            // InternalSignalDSL.g:13319:1: ( ( 'for' ) )
+            // InternalSignalDSL.g:13320:1: ( 'for' )
             {
-            // InternalSignalDSL.g:13162:1: ( 'for' )
-            // InternalSignalDSL.g:13163:2: 'for'
+            // InternalSignalDSL.g:13320:1: ( 'for' )
+            // InternalSignalDSL.g:13321:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,93,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
             }
@@ -43931,16 +44539,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__2"
-    // InternalSignalDSL.g:13172:1: rule__XForLoopExpression__Group_0_0__2 : rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 ;
+    // InternalSignalDSL.g:13330:1: rule__XForLoopExpression__Group_0_0__2 : rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 ;
     public final void rule__XForLoopExpression__Group_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13176:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
-            // InternalSignalDSL.g:13177:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
+            // InternalSignalDSL.g:13334:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
+            // InternalSignalDSL.g:13335:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XForLoopExpression__Group_0_0__2__Impl();
 
             state._fsp--;
@@ -43969,22 +44577,22 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__2__Impl"
-    // InternalSignalDSL.g:13184:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:13342:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
     public final void rule__XForLoopExpression__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13188:1: ( ( '(' ) )
-            // InternalSignalDSL.g:13189:1: ( '(' )
+            // InternalSignalDSL.g:13346:1: ( ( '(' ) )
+            // InternalSignalDSL.g:13347:1: ( '(' )
             {
-            // InternalSignalDSL.g:13189:1: ( '(' )
-            // InternalSignalDSL.g:13190:2: '('
+            // InternalSignalDSL.g:13347:1: ( '(' )
+            // InternalSignalDSL.g:13348:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
@@ -44010,16 +44618,16 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__3"
-    // InternalSignalDSL.g:13199:1: rule__XForLoopExpression__Group_0_0__3 : rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 ;
+    // InternalSignalDSL.g:13357:1: rule__XForLoopExpression__Group_0_0__3 : rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 ;
     public final void rule__XForLoopExpression__Group_0_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13203:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
-            // InternalSignalDSL.g:13204:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
+            // InternalSignalDSL.g:13361:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
+            // InternalSignalDSL.g:13362:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
             {
-            pushFollow(FOLLOW_24);
+            pushFollow(FOLLOW_22);
             rule__XForLoopExpression__Group_0_0__3__Impl();
 
             state._fsp--;
@@ -44048,23 +44656,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__3__Impl"
-    // InternalSignalDSL.g:13211:1: rule__XForLoopExpression__Group_0_0__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) ;
+    // InternalSignalDSL.g:13369:1: rule__XForLoopExpression__Group_0_0__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) ;
     public final void rule__XForLoopExpression__Group_0_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13215:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
-            // InternalSignalDSL.g:13216:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalSignalDSL.g:13373:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
+            // InternalSignalDSL.g:13374:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
             {
-            // InternalSignalDSL.g:13216:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
-            // InternalSignalDSL.g:13217:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalSignalDSL.g:13374:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalSignalDSL.g:13375:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); 
             }
-            // InternalSignalDSL.g:13218:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
-            // InternalSignalDSL.g:13218:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
+            // InternalSignalDSL.g:13376:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalSignalDSL.g:13376:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__DeclaredParamAssignment_0_0_3();
@@ -44099,14 +44707,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__4"
-    // InternalSignalDSL.g:13226:1: rule__XForLoopExpression__Group_0_0__4 : rule__XForLoopExpression__Group_0_0__4__Impl ;
+    // InternalSignalDSL.g:13384:1: rule__XForLoopExpression__Group_0_0__4 : rule__XForLoopExpression__Group_0_0__4__Impl ;
     public final void rule__XForLoopExpression__Group_0_0__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13230:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
-            // InternalSignalDSL.g:13231:2: rule__XForLoopExpression__Group_0_0__4__Impl
+            // InternalSignalDSL.g:13388:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
+            // InternalSignalDSL.g:13389:2: rule__XForLoopExpression__Group_0_0__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0_0__4__Impl();
@@ -44132,17 +44740,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__4__Impl"
-    // InternalSignalDSL.g:13237:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
+    // InternalSignalDSL.g:13395:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
     public final void rule__XForLoopExpression__Group_0_0__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13241:1: ( ( ':' ) )
-            // InternalSignalDSL.g:13242:1: ( ':' )
+            // InternalSignalDSL.g:13399:1: ( ( ':' ) )
+            // InternalSignalDSL.g:13400:1: ( ':' )
             {
-            // InternalSignalDSL.g:13242:1: ( ':' )
-            // InternalSignalDSL.g:13243:2: ':'
+            // InternalSignalDSL.g:13400:1: ( ':' )
+            // InternalSignalDSL.g:13401:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
@@ -44173,16 +44781,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__0"
-    // InternalSignalDSL.g:13253:1: rule__XBasicForLoopExpression__Group__0 : rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 ;
+    // InternalSignalDSL.g:13411:1: rule__XBasicForLoopExpression__Group__0 : rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 ;
     public final void rule__XBasicForLoopExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13257:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
-            // InternalSignalDSL.g:13258:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
+            // InternalSignalDSL.g:13415:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
+            // InternalSignalDSL.g:13416:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
             {
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_90);
             rule__XBasicForLoopExpression__Group__0__Impl();
 
             state._fsp--;
@@ -44211,23 +44819,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__0__Impl"
-    // InternalSignalDSL.g:13265:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:13423:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
     public final void rule__XBasicForLoopExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13269:1: ( ( () ) )
-            // InternalSignalDSL.g:13270:1: ( () )
+            // InternalSignalDSL.g:13427:1: ( ( () ) )
+            // InternalSignalDSL.g:13428:1: ( () )
             {
-            // InternalSignalDSL.g:13270:1: ( () )
-            // InternalSignalDSL.g:13271:2: ()
+            // InternalSignalDSL.g:13428:1: ( () )
+            // InternalSignalDSL.g:13429:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:13272:2: ()
-            // InternalSignalDSL.g:13272:3: 
+            // InternalSignalDSL.g:13430:2: ()
+            // InternalSignalDSL.g:13430:3: 
             {
             }
 
@@ -44252,16 +44860,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__1"
-    // InternalSignalDSL.g:13280:1: rule__XBasicForLoopExpression__Group__1 : rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 ;
+    // InternalSignalDSL.g:13438:1: rule__XBasicForLoopExpression__Group__1 : rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 ;
     public final void rule__XBasicForLoopExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13284:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
-            // InternalSignalDSL.g:13285:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
+            // InternalSignalDSL.g:13442:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
+            // InternalSignalDSL.g:13443:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_33);
             rule__XBasicForLoopExpression__Group__1__Impl();
 
             state._fsp--;
@@ -44290,22 +44898,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__1__Impl"
-    // InternalSignalDSL.g:13292:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
+    // InternalSignalDSL.g:13450:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
     public final void rule__XBasicForLoopExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13296:1: ( ( 'for' ) )
-            // InternalSignalDSL.g:13297:1: ( 'for' )
+            // InternalSignalDSL.g:13454:1: ( ( 'for' ) )
+            // InternalSignalDSL.g:13455:1: ( 'for' )
             {
-            // InternalSignalDSL.g:13297:1: ( 'for' )
-            // InternalSignalDSL.g:13298:2: 'for'
+            // InternalSignalDSL.g:13455:1: ( 'for' )
+            // InternalSignalDSL.g:13456:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
             }
-            match(input,91,FOLLOW_2); if (state.failed) return ;
+            match(input,93,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
             }
@@ -44331,16 +44939,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__2"
-    // InternalSignalDSL.g:13307:1: rule__XBasicForLoopExpression__Group__2 : rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 ;
+    // InternalSignalDSL.g:13465:1: rule__XBasicForLoopExpression__Group__2 : rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 ;
     public final void rule__XBasicForLoopExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13311:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
-            // InternalSignalDSL.g:13312:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
+            // InternalSignalDSL.g:13469:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
+            // InternalSignalDSL.g:13470:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_91);
             rule__XBasicForLoopExpression__Group__2__Impl();
 
             state._fsp--;
@@ -44369,22 +44977,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__2__Impl"
-    // InternalSignalDSL.g:13319:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:13477:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XBasicForLoopExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13323:1: ( ( '(' ) )
-            // InternalSignalDSL.g:13324:1: ( '(' )
+            // InternalSignalDSL.g:13481:1: ( ( '(' ) )
+            // InternalSignalDSL.g:13482:1: ( '(' )
             {
-            // InternalSignalDSL.g:13324:1: ( '(' )
-            // InternalSignalDSL.g:13325:2: '('
+            // InternalSignalDSL.g:13482:1: ( '(' )
+            // InternalSignalDSL.g:13483:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -44410,16 +45018,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__3"
-    // InternalSignalDSL.g:13334:1: rule__XBasicForLoopExpression__Group__3 : rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 ;
+    // InternalSignalDSL.g:13492:1: rule__XBasicForLoopExpression__Group__3 : rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 ;
     public final void rule__XBasicForLoopExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13338:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
-            // InternalSignalDSL.g:13339:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
+            // InternalSignalDSL.g:13496:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
+            // InternalSignalDSL.g:13497:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
             {
-            pushFollow(FOLLOW_92);
+            pushFollow(FOLLOW_91);
             rule__XBasicForLoopExpression__Group__3__Impl();
 
             state._fsp--;
@@ -44448,31 +45056,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__3__Impl"
-    // InternalSignalDSL.g:13346:1: rule__XBasicForLoopExpression__Group__3__Impl : ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:13504:1: rule__XBasicForLoopExpression__Group__3__Impl : ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13350:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
-            // InternalSignalDSL.g:13351:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalSignalDSL.g:13508:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
+            // InternalSignalDSL.g:13509:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:13351:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
-            // InternalSignalDSL.g:13352:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            // InternalSignalDSL.g:13509:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalSignalDSL.g:13510:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:13353:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
-            int alt105=2;
-            int LA105_0 = input.LA(1);
+            // InternalSignalDSL.g:13511:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            int alt108=2;
+            int LA108_0 = input.LA(1);
 
-            if ( ((LA105_0>=RULE_ID && LA105_0<=RULE_STRING)||LA105_0==27||(LA105_0>=34 && LA105_0<=35)||LA105_0==40||(LA105_0>=44 && LA105_0<=50)||LA105_0==62||LA105_0==78||(LA105_0>=82 && LA105_0<=83)||LA105_0==86||LA105_0==88||(LA105_0>=91 && LA105_0<=99)||LA105_0==101||(LA105_0>=110 && LA105_0<=111)) ) {
-                alt105=1;
+            if ( ((LA108_0>=RULE_ID && LA108_0<=RULE_STRING)||LA108_0==28||(LA108_0>=35 && LA108_0<=36)||LA108_0==41||(LA108_0>=45 && LA108_0<=51)||LA108_0==63||LA108_0==80||(LA108_0>=84 && LA108_0<=85)||LA108_0==88||LA108_0==90||(LA108_0>=93 && LA108_0<=101)||LA108_0==103||(LA108_0>=114 && LA108_0<=115)) ) {
+                alt108=1;
             }
-            switch (alt105) {
+            switch (alt108) {
                 case 1 :
-                    // InternalSignalDSL.g:13353:3: rule__XBasicForLoopExpression__Group_3__0
+                    // InternalSignalDSL.g:13511:3: rule__XBasicForLoopExpression__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__Group_3__0();
@@ -44510,16 +45118,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__4"
-    // InternalSignalDSL.g:13361:1: rule__XBasicForLoopExpression__Group__4 : rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 ;
+    // InternalSignalDSL.g:13519:1: rule__XBasicForLoopExpression__Group__4 : rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 ;
     public final void rule__XBasicForLoopExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13365:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
-            // InternalSignalDSL.g:13366:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
+            // InternalSignalDSL.g:13523:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
+            // InternalSignalDSL.g:13524:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
             {
-            pushFollow(FOLLOW_93);
+            pushFollow(FOLLOW_92);
             rule__XBasicForLoopExpression__Group__4__Impl();
 
             state._fsp--;
@@ -44548,22 +45156,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__4__Impl"
-    // InternalSignalDSL.g:13373:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
+    // InternalSignalDSL.g:13531:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
     public final void rule__XBasicForLoopExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13377:1: ( ( ';' ) )
-            // InternalSignalDSL.g:13378:1: ( ';' )
+            // InternalSignalDSL.g:13535:1: ( ( ';' ) )
+            // InternalSignalDSL.g:13536:1: ( ';' )
             {
-            // InternalSignalDSL.g:13378:1: ( ';' )
-            // InternalSignalDSL.g:13379:2: ';'
+            // InternalSignalDSL.g:13536:1: ( ';' )
+            // InternalSignalDSL.g:13537:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,78,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
             }
@@ -44589,16 +45197,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__5"
-    // InternalSignalDSL.g:13388:1: rule__XBasicForLoopExpression__Group__5 : rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 ;
+    // InternalSignalDSL.g:13546:1: rule__XBasicForLoopExpression__Group__5 : rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 ;
     public final void rule__XBasicForLoopExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13392:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
-            // InternalSignalDSL.g:13393:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
+            // InternalSignalDSL.g:13550:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
+            // InternalSignalDSL.g:13551:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
             {
-            pushFollow(FOLLOW_93);
+            pushFollow(FOLLOW_92);
             rule__XBasicForLoopExpression__Group__5__Impl();
 
             state._fsp--;
@@ -44627,31 +45235,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__5__Impl"
-    // InternalSignalDSL.g:13400:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
+    // InternalSignalDSL.g:13558:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13404:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
-            // InternalSignalDSL.g:13405:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalSignalDSL.g:13562:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
+            // InternalSignalDSL.g:13563:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
             {
-            // InternalSignalDSL.g:13405:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
-            // InternalSignalDSL.g:13406:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            // InternalSignalDSL.g:13563:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalSignalDSL.g:13564:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); 
             }
-            // InternalSignalDSL.g:13407:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
-            int alt106=2;
-            int LA106_0 = input.LA(1);
+            // InternalSignalDSL.g:13565:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            int alt109=2;
+            int LA109_0 = input.LA(1);
 
-            if ( ((LA106_0>=RULE_ID && LA106_0<=RULE_STRING)||LA106_0==27||(LA106_0>=34 && LA106_0<=35)||LA106_0==40||(LA106_0>=45 && LA106_0<=50)||LA106_0==62||LA106_0==78||(LA106_0>=82 && LA106_0<=83)||LA106_0==86||LA106_0==88||(LA106_0>=91 && LA106_0<=99)||LA106_0==101||LA106_0==111) ) {
-                alt106=1;
+            if ( ((LA109_0>=RULE_ID && LA109_0<=RULE_STRING)||LA109_0==28||(LA109_0>=35 && LA109_0<=36)||LA109_0==41||(LA109_0>=46 && LA109_0<=51)||LA109_0==63||LA109_0==80||(LA109_0>=84 && LA109_0<=85)||LA109_0==88||LA109_0==90||(LA109_0>=93 && LA109_0<=101)||LA109_0==103||LA109_0==115) ) {
+                alt109=1;
             }
-            switch (alt106) {
+            switch (alt109) {
                 case 1 :
-                    // InternalSignalDSL.g:13407:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
+                    // InternalSignalDSL.g:13565:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__ExpressionAssignment_5();
@@ -44689,16 +45297,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__6"
-    // InternalSignalDSL.g:13415:1: rule__XBasicForLoopExpression__Group__6 : rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 ;
+    // InternalSignalDSL.g:13573:1: rule__XBasicForLoopExpression__Group__6 : rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 ;
     public final void rule__XBasicForLoopExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13419:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
-            // InternalSignalDSL.g:13420:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
+            // InternalSignalDSL.g:13577:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
+            // InternalSignalDSL.g:13578:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
             {
-            pushFollow(FOLLOW_35);
+            pushFollow(FOLLOW_34);
             rule__XBasicForLoopExpression__Group__6__Impl();
 
             state._fsp--;
@@ -44727,22 +45335,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__6__Impl"
-    // InternalSignalDSL.g:13427:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
+    // InternalSignalDSL.g:13585:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
     public final void rule__XBasicForLoopExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13431:1: ( ( ';' ) )
-            // InternalSignalDSL.g:13432:1: ( ';' )
+            // InternalSignalDSL.g:13589:1: ( ( ';' ) )
+            // InternalSignalDSL.g:13590:1: ( ';' )
             {
-            // InternalSignalDSL.g:13432:1: ( ';' )
-            // InternalSignalDSL.g:13433:2: ';'
+            // InternalSignalDSL.g:13590:1: ( ';' )
+            // InternalSignalDSL.g:13591:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,78,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
             }
@@ -44768,16 +45376,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__7"
-    // InternalSignalDSL.g:13442:1: rule__XBasicForLoopExpression__Group__7 : rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 ;
+    // InternalSignalDSL.g:13600:1: rule__XBasicForLoopExpression__Group__7 : rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 ;
     public final void rule__XBasicForLoopExpression__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13446:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
-            // InternalSignalDSL.g:13447:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
+            // InternalSignalDSL.g:13604:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
+            // InternalSignalDSL.g:13605:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
             {
-            pushFollow(FOLLOW_35);
+            pushFollow(FOLLOW_34);
             rule__XBasicForLoopExpression__Group__7__Impl();
 
             state._fsp--;
@@ -44806,31 +45414,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__7__Impl"
-    // InternalSignalDSL.g:13454:1: rule__XBasicForLoopExpression__Group__7__Impl : ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) ;
+    // InternalSignalDSL.g:13612:1: rule__XBasicForLoopExpression__Group__7__Impl : ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13458:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
-            // InternalSignalDSL.g:13459:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalSignalDSL.g:13616:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
+            // InternalSignalDSL.g:13617:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
             {
-            // InternalSignalDSL.g:13459:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
-            // InternalSignalDSL.g:13460:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            // InternalSignalDSL.g:13617:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalSignalDSL.g:13618:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); 
             }
-            // InternalSignalDSL.g:13461:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
-            int alt107=2;
-            int LA107_0 = input.LA(1);
+            // InternalSignalDSL.g:13619:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            int alt110=2;
+            int LA110_0 = input.LA(1);
 
-            if ( ((LA107_0>=RULE_ID && LA107_0<=RULE_STRING)||LA107_0==27||(LA107_0>=34 && LA107_0<=35)||LA107_0==40||(LA107_0>=45 && LA107_0<=50)||LA107_0==62||LA107_0==78||(LA107_0>=82 && LA107_0<=83)||LA107_0==86||LA107_0==88||(LA107_0>=91 && LA107_0<=99)||LA107_0==101||LA107_0==111) ) {
-                alt107=1;
+            if ( ((LA110_0>=RULE_ID && LA110_0<=RULE_STRING)||LA110_0==28||(LA110_0>=35 && LA110_0<=36)||LA110_0==41||(LA110_0>=46 && LA110_0<=51)||LA110_0==63||LA110_0==80||(LA110_0>=84 && LA110_0<=85)||LA110_0==88||LA110_0==90||(LA110_0>=93 && LA110_0<=101)||LA110_0==103||LA110_0==115) ) {
+                alt110=1;
             }
-            switch (alt107) {
+            switch (alt110) {
                 case 1 :
-                    // InternalSignalDSL.g:13461:3: rule__XBasicForLoopExpression__Group_7__0
+                    // InternalSignalDSL.g:13619:3: rule__XBasicForLoopExpression__Group_7__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__Group_7__0();
@@ -44868,16 +45476,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__8"
-    // InternalSignalDSL.g:13469:1: rule__XBasicForLoopExpression__Group__8 : rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 ;
+    // InternalSignalDSL.g:13627:1: rule__XBasicForLoopExpression__Group__8 : rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 ;
     public final void rule__XBasicForLoopExpression__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13473:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
-            // InternalSignalDSL.g:13474:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
+            // InternalSignalDSL.g:13631:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
+            // InternalSignalDSL.g:13632:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XBasicForLoopExpression__Group__8__Impl();
 
             state._fsp--;
@@ -44906,22 +45514,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__8__Impl"
-    // InternalSignalDSL.g:13481:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:13639:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
     public final void rule__XBasicForLoopExpression__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13485:1: ( ( ')' ) )
-            // InternalSignalDSL.g:13486:1: ( ')' )
+            // InternalSignalDSL.g:13643:1: ( ( ')' ) )
+            // InternalSignalDSL.g:13644:1: ( ')' )
             {
-            // InternalSignalDSL.g:13486:1: ( ')' )
-            // InternalSignalDSL.g:13487:2: ')'
+            // InternalSignalDSL.g:13644:1: ( ')' )
+            // InternalSignalDSL.g:13645:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
             }
@@ -44947,14 +45555,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__9"
-    // InternalSignalDSL.g:13496:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
+    // InternalSignalDSL.g:13654:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
     public final void rule__XBasicForLoopExpression__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13500:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
-            // InternalSignalDSL.g:13501:2: rule__XBasicForLoopExpression__Group__9__Impl
+            // InternalSignalDSL.g:13658:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
+            // InternalSignalDSL.g:13659:2: rule__XBasicForLoopExpression__Group__9__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group__9__Impl();
@@ -44980,23 +45588,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__9__Impl"
-    // InternalSignalDSL.g:13507:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
+    // InternalSignalDSL.g:13665:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
     public final void rule__XBasicForLoopExpression__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13511:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
-            // InternalSignalDSL.g:13512:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalSignalDSL.g:13669:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
+            // InternalSignalDSL.g:13670:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
             {
-            // InternalSignalDSL.g:13512:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
-            // InternalSignalDSL.g:13513:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalSignalDSL.g:13670:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalSignalDSL.g:13671:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); 
             }
-            // InternalSignalDSL.g:13514:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
-            // InternalSignalDSL.g:13514:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
+            // InternalSignalDSL.g:13672:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalSignalDSL.g:13672:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__EachExpressionAssignment_9();
@@ -45031,16 +45639,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0"
-    // InternalSignalDSL.g:13523:1: rule__XBasicForLoopExpression__Group_3__0 : rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 ;
+    // InternalSignalDSL.g:13681:1: rule__XBasicForLoopExpression__Group_3__0 : rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 ;
     public final void rule__XBasicForLoopExpression__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13527:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
-            // InternalSignalDSL.g:13528:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
+            // InternalSignalDSL.g:13685:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
+            // InternalSignalDSL.g:13686:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XBasicForLoopExpression__Group_3__0__Impl();
 
             state._fsp--;
@@ -45069,23 +45677,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0__Impl"
-    // InternalSignalDSL.g:13535:1: rule__XBasicForLoopExpression__Group_3__0__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) ;
+    // InternalSignalDSL.g:13693:1: rule__XBasicForLoopExpression__Group_3__0__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13539:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
-            // InternalSignalDSL.g:13540:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalSignalDSL.g:13697:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
+            // InternalSignalDSL.g:13698:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
             {
-            // InternalSignalDSL.g:13540:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
-            // InternalSignalDSL.g:13541:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalSignalDSL.g:13698:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalSignalDSL.g:13699:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); 
             }
-            // InternalSignalDSL.g:13542:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
-            // InternalSignalDSL.g:13542:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
+            // InternalSignalDSL.g:13700:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalSignalDSL.g:13700:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0();
@@ -45120,14 +45728,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1"
-    // InternalSignalDSL.g:13550:1: rule__XBasicForLoopExpression__Group_3__1 : rule__XBasicForLoopExpression__Group_3__1__Impl ;
+    // InternalSignalDSL.g:13708:1: rule__XBasicForLoopExpression__Group_3__1 : rule__XBasicForLoopExpression__Group_3__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13554:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
-            // InternalSignalDSL.g:13555:2: rule__XBasicForLoopExpression__Group_3__1__Impl
+            // InternalSignalDSL.g:13712:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
+            // InternalSignalDSL.g:13713:2: rule__XBasicForLoopExpression__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_3__1__Impl();
@@ -45153,37 +45761,37 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1__Impl"
-    // InternalSignalDSL.g:13561:1: rule__XBasicForLoopExpression__Group_3__1__Impl : ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) ;
+    // InternalSignalDSL.g:13719:1: rule__XBasicForLoopExpression__Group_3__1__Impl : ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) ;
     public final void rule__XBasicForLoopExpression__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13565:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
-            // InternalSignalDSL.g:13566:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalSignalDSL.g:13723:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
+            // InternalSignalDSL.g:13724:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
             {
-            // InternalSignalDSL.g:13566:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
-            // InternalSignalDSL.g:13567:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            // InternalSignalDSL.g:13724:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalSignalDSL.g:13725:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); 
             }
-            // InternalSignalDSL.g:13568:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
-            loop108:
+            // InternalSignalDSL.g:13726:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            loop111:
             do {
-                int alt108=2;
-                int LA108_0 = input.LA(1);
+                int alt111=2;
+                int LA111_0 = input.LA(1);
 
-                if ( (LA108_0==80) ) {
-                    alt108=1;
+                if ( (LA111_0==82) ) {
+                    alt111=1;
                 }
 
 
-                switch (alt108) {
+                switch (alt111) {
             	case 1 :
-            	    // InternalSignalDSL.g:13568:3: rule__XBasicForLoopExpression__Group_3_1__0
+            	    // InternalSignalDSL.g:13726:3: rule__XBasicForLoopExpression__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XBasicForLoopExpression__Group_3_1__0();
 
             	    state._fsp--;
@@ -45193,7 +45801,7 @@
             	    break;
 
             	default :
-            	    break loop108;
+            	    break loop111;
                 }
             } while (true);
 
@@ -45222,16 +45830,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0"
-    // InternalSignalDSL.g:13577:1: rule__XBasicForLoopExpression__Group_3_1__0 : rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 ;
+    // InternalSignalDSL.g:13735:1: rule__XBasicForLoopExpression__Group_3_1__0 : rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 ;
     public final void rule__XBasicForLoopExpression__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13581:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
-            // InternalSignalDSL.g:13582:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
+            // InternalSignalDSL.g:13739:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
+            // InternalSignalDSL.g:13740:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
             {
-            pushFollow(FOLLOW_94);
+            pushFollow(FOLLOW_93);
             rule__XBasicForLoopExpression__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -45260,22 +45868,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0__Impl"
-    // InternalSignalDSL.g:13589:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:13747:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XBasicForLoopExpression__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13593:1: ( ( ',' ) )
-            // InternalSignalDSL.g:13594:1: ( ',' )
+            // InternalSignalDSL.g:13751:1: ( ( ',' ) )
+            // InternalSignalDSL.g:13752:1: ( ',' )
             {
-            // InternalSignalDSL.g:13594:1: ( ',' )
-            // InternalSignalDSL.g:13595:2: ','
+            // InternalSignalDSL.g:13752:1: ( ',' )
+            // InternalSignalDSL.g:13753:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
             }
@@ -45301,14 +45909,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1"
-    // InternalSignalDSL.g:13604:1: rule__XBasicForLoopExpression__Group_3_1__1 : rule__XBasicForLoopExpression__Group_3_1__1__Impl ;
+    // InternalSignalDSL.g:13762:1: rule__XBasicForLoopExpression__Group_3_1__1 : rule__XBasicForLoopExpression__Group_3_1__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13608:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
-            // InternalSignalDSL.g:13609:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
+            // InternalSignalDSL.g:13766:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
+            // InternalSignalDSL.g:13767:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_3_1__1__Impl();
@@ -45334,23 +45942,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1__Impl"
-    // InternalSignalDSL.g:13615:1: rule__XBasicForLoopExpression__Group_3_1__1__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) ;
+    // InternalSignalDSL.g:13773:1: rule__XBasicForLoopExpression__Group_3_1__1__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13619:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
-            // InternalSignalDSL.g:13620:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:13777:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
+            // InternalSignalDSL.g:13778:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
             {
-            // InternalSignalDSL.g:13620:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
-            // InternalSignalDSL.g:13621:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalSignalDSL.g:13778:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:13779:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); 
             }
-            // InternalSignalDSL.g:13622:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
-            // InternalSignalDSL.g:13622:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
+            // InternalSignalDSL.g:13780:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalSignalDSL.g:13780:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1();
@@ -45385,16 +45993,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0"
-    // InternalSignalDSL.g:13631:1: rule__XBasicForLoopExpression__Group_7__0 : rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 ;
+    // InternalSignalDSL.g:13789:1: rule__XBasicForLoopExpression__Group_7__0 : rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 ;
     public final void rule__XBasicForLoopExpression__Group_7__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13635:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
-            // InternalSignalDSL.g:13636:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
+            // InternalSignalDSL.g:13793:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
+            // InternalSignalDSL.g:13794:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XBasicForLoopExpression__Group_7__0__Impl();
 
             state._fsp--;
@@ -45423,23 +46031,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0__Impl"
-    // InternalSignalDSL.g:13643:1: rule__XBasicForLoopExpression__Group_7__0__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) ;
+    // InternalSignalDSL.g:13801:1: rule__XBasicForLoopExpression__Group_7__0__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_7__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13647:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
-            // InternalSignalDSL.g:13648:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalSignalDSL.g:13805:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
+            // InternalSignalDSL.g:13806:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
             {
-            // InternalSignalDSL.g:13648:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
-            // InternalSignalDSL.g:13649:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalSignalDSL.g:13806:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalSignalDSL.g:13807:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); 
             }
-            // InternalSignalDSL.g:13650:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
-            // InternalSignalDSL.g:13650:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
+            // InternalSignalDSL.g:13808:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalSignalDSL.g:13808:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0();
@@ -45474,14 +46082,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1"
-    // InternalSignalDSL.g:13658:1: rule__XBasicForLoopExpression__Group_7__1 : rule__XBasicForLoopExpression__Group_7__1__Impl ;
+    // InternalSignalDSL.g:13816:1: rule__XBasicForLoopExpression__Group_7__1 : rule__XBasicForLoopExpression__Group_7__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_7__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13662:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
-            // InternalSignalDSL.g:13663:2: rule__XBasicForLoopExpression__Group_7__1__Impl
+            // InternalSignalDSL.g:13820:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
+            // InternalSignalDSL.g:13821:2: rule__XBasicForLoopExpression__Group_7__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_7__1__Impl();
@@ -45507,37 +46115,37 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1__Impl"
-    // InternalSignalDSL.g:13669:1: rule__XBasicForLoopExpression__Group_7__1__Impl : ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) ;
+    // InternalSignalDSL.g:13827:1: rule__XBasicForLoopExpression__Group_7__1__Impl : ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) ;
     public final void rule__XBasicForLoopExpression__Group_7__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13673:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
-            // InternalSignalDSL.g:13674:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalSignalDSL.g:13831:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
+            // InternalSignalDSL.g:13832:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
             {
-            // InternalSignalDSL.g:13674:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
-            // InternalSignalDSL.g:13675:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            // InternalSignalDSL.g:13832:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalSignalDSL.g:13833:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); 
             }
-            // InternalSignalDSL.g:13676:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
-            loop109:
+            // InternalSignalDSL.g:13834:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            loop112:
             do {
-                int alt109=2;
-                int LA109_0 = input.LA(1);
+                int alt112=2;
+                int LA112_0 = input.LA(1);
 
-                if ( (LA109_0==80) ) {
-                    alt109=1;
+                if ( (LA112_0==82) ) {
+                    alt112=1;
                 }
 
 
-                switch (alt109) {
+                switch (alt112) {
             	case 1 :
-            	    // InternalSignalDSL.g:13676:3: rule__XBasicForLoopExpression__Group_7_1__0
+            	    // InternalSignalDSL.g:13834:3: rule__XBasicForLoopExpression__Group_7_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XBasicForLoopExpression__Group_7_1__0();
 
             	    state._fsp--;
@@ -45547,7 +46155,7 @@
             	    break;
 
             	default :
-            	    break loop109;
+            	    break loop112;
                 }
             } while (true);
 
@@ -45576,16 +46184,16 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0"
-    // InternalSignalDSL.g:13685:1: rule__XBasicForLoopExpression__Group_7_1__0 : rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 ;
+    // InternalSignalDSL.g:13843:1: rule__XBasicForLoopExpression__Group_7_1__0 : rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 ;
     public final void rule__XBasicForLoopExpression__Group_7_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13689:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
-            // InternalSignalDSL.g:13690:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
+            // InternalSignalDSL.g:13847:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
+            // InternalSignalDSL.g:13848:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XBasicForLoopExpression__Group_7_1__0__Impl();
 
             state._fsp--;
@@ -45614,22 +46222,22 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0__Impl"
-    // InternalSignalDSL.g:13697:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:13855:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
     public final void rule__XBasicForLoopExpression__Group_7_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13701:1: ( ( ',' ) )
-            // InternalSignalDSL.g:13702:1: ( ',' )
+            // InternalSignalDSL.g:13859:1: ( ( ',' ) )
+            // InternalSignalDSL.g:13860:1: ( ',' )
             {
-            // InternalSignalDSL.g:13702:1: ( ',' )
-            // InternalSignalDSL.g:13703:2: ','
+            // InternalSignalDSL.g:13860:1: ( ',' )
+            // InternalSignalDSL.g:13861:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
             }
@@ -45655,14 +46263,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1"
-    // InternalSignalDSL.g:13712:1: rule__XBasicForLoopExpression__Group_7_1__1 : rule__XBasicForLoopExpression__Group_7_1__1__Impl ;
+    // InternalSignalDSL.g:13870:1: rule__XBasicForLoopExpression__Group_7_1__1 : rule__XBasicForLoopExpression__Group_7_1__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_7_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13716:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
-            // InternalSignalDSL.g:13717:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
+            // InternalSignalDSL.g:13874:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
+            // InternalSignalDSL.g:13875:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_7_1__1__Impl();
@@ -45688,23 +46296,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1__Impl"
-    // InternalSignalDSL.g:13723:1: rule__XBasicForLoopExpression__Group_7_1__1__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) ;
+    // InternalSignalDSL.g:13881:1: rule__XBasicForLoopExpression__Group_7_1__1__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_7_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13727:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
-            // InternalSignalDSL.g:13728:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalSignalDSL.g:13885:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
+            // InternalSignalDSL.g:13886:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
             {
-            // InternalSignalDSL.g:13728:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
-            // InternalSignalDSL.g:13729:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalSignalDSL.g:13886:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalSignalDSL.g:13887:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); 
             }
-            // InternalSignalDSL.g:13730:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
-            // InternalSignalDSL.g:13730:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
+            // InternalSignalDSL.g:13888:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalSignalDSL.g:13888:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1();
@@ -45739,16 +46347,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__0"
-    // InternalSignalDSL.g:13739:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
+    // InternalSignalDSL.g:13897:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
     public final void rule__XWhileExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13743:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
-            // InternalSignalDSL.g:13744:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
+            // InternalSignalDSL.g:13901:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
+            // InternalSignalDSL.g:13902:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
             {
-            pushFollow(FOLLOW_95);
+            pushFollow(FOLLOW_94);
             rule__XWhileExpression__Group__0__Impl();
 
             state._fsp--;
@@ -45777,23 +46385,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__0__Impl"
-    // InternalSignalDSL.g:13751:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:13909:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
     public final void rule__XWhileExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13755:1: ( ( () ) )
-            // InternalSignalDSL.g:13756:1: ( () )
+            // InternalSignalDSL.g:13913:1: ( ( () ) )
+            // InternalSignalDSL.g:13914:1: ( () )
             {
-            // InternalSignalDSL.g:13756:1: ( () )
-            // InternalSignalDSL.g:13757:2: ()
+            // InternalSignalDSL.g:13914:1: ( () )
+            // InternalSignalDSL.g:13915:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:13758:2: ()
-            // InternalSignalDSL.g:13758:3: 
+            // InternalSignalDSL.g:13916:2: ()
+            // InternalSignalDSL.g:13916:3: 
             {
             }
 
@@ -45818,16 +46426,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__1"
-    // InternalSignalDSL.g:13766:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
+    // InternalSignalDSL.g:13924:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
     public final void rule__XWhileExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13770:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
-            // InternalSignalDSL.g:13771:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
+            // InternalSignalDSL.g:13928:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
+            // InternalSignalDSL.g:13929:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_33);
             rule__XWhileExpression__Group__1__Impl();
 
             state._fsp--;
@@ -45856,22 +46464,22 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__1__Impl"
-    // InternalSignalDSL.g:13778:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
+    // InternalSignalDSL.g:13936:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
     public final void rule__XWhileExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13782:1: ( ( 'while' ) )
-            // InternalSignalDSL.g:13783:1: ( 'while' )
+            // InternalSignalDSL.g:13940:1: ( ( 'while' ) )
+            // InternalSignalDSL.g:13941:1: ( 'while' )
             {
-            // InternalSignalDSL.g:13783:1: ( 'while' )
-            // InternalSignalDSL.g:13784:2: 'while'
+            // InternalSignalDSL.g:13941:1: ( 'while' )
+            // InternalSignalDSL.g:13942:2: 'while'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,94,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
             }
@@ -45897,16 +46505,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__2"
-    // InternalSignalDSL.g:13793:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
+    // InternalSignalDSL.g:13951:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
     public final void rule__XWhileExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13797:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
-            // InternalSignalDSL.g:13798:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
+            // InternalSignalDSL.g:13955:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
+            // InternalSignalDSL.g:13956:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XWhileExpression__Group__2__Impl();
 
             state._fsp--;
@@ -45935,22 +46543,22 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__2__Impl"
-    // InternalSignalDSL.g:13805:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:13963:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XWhileExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13809:1: ( ( '(' ) )
-            // InternalSignalDSL.g:13810:1: ( '(' )
+            // InternalSignalDSL.g:13967:1: ( ( '(' ) )
+            // InternalSignalDSL.g:13968:1: ( '(' )
             {
-            // InternalSignalDSL.g:13810:1: ( '(' )
-            // InternalSignalDSL.g:13811:2: '('
+            // InternalSignalDSL.g:13968:1: ( '(' )
+            // InternalSignalDSL.g:13969:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -45976,16 +46584,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__3"
-    // InternalSignalDSL.g:13820:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
+    // InternalSignalDSL.g:13978:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
     public final void rule__XWhileExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13824:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
-            // InternalSignalDSL.g:13825:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
+            // InternalSignalDSL.g:13982:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
+            // InternalSignalDSL.g:13983:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_82);
             rule__XWhileExpression__Group__3__Impl();
 
             state._fsp--;
@@ -46014,23 +46622,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__3__Impl"
-    // InternalSignalDSL.g:13832:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
+    // InternalSignalDSL.g:13990:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
     public final void rule__XWhileExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13836:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
-            // InternalSignalDSL.g:13837:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalSignalDSL.g:13994:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
+            // InternalSignalDSL.g:13995:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
             {
-            // InternalSignalDSL.g:13837:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
-            // InternalSignalDSL.g:13838:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalSignalDSL.g:13995:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalSignalDSL.g:13996:2: ( rule__XWhileExpression__PredicateAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); 
             }
-            // InternalSignalDSL.g:13839:2: ( rule__XWhileExpression__PredicateAssignment_3 )
-            // InternalSignalDSL.g:13839:3: rule__XWhileExpression__PredicateAssignment_3
+            // InternalSignalDSL.g:13997:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalSignalDSL.g:13997:3: rule__XWhileExpression__PredicateAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__PredicateAssignment_3();
@@ -46065,16 +46673,16 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__4"
-    // InternalSignalDSL.g:13847:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
+    // InternalSignalDSL.g:14005:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
     public final void rule__XWhileExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13851:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
-            // InternalSignalDSL.g:13852:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
+            // InternalSignalDSL.g:14009:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
+            // InternalSignalDSL.g:14010:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XWhileExpression__Group__4__Impl();
 
             state._fsp--;
@@ -46103,22 +46711,22 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__4__Impl"
-    // InternalSignalDSL.g:13859:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:14017:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__XWhileExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13863:1: ( ( ')' ) )
-            // InternalSignalDSL.g:13864:1: ( ')' )
+            // InternalSignalDSL.g:14021:1: ( ( ')' ) )
+            // InternalSignalDSL.g:14022:1: ( ')' )
             {
-            // InternalSignalDSL.g:13864:1: ( ')' )
-            // InternalSignalDSL.g:13865:2: ')'
+            // InternalSignalDSL.g:14022:1: ( ')' )
+            // InternalSignalDSL.g:14023:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
             }
@@ -46144,14 +46752,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__5"
-    // InternalSignalDSL.g:13874:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
+    // InternalSignalDSL.g:14032:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
     public final void rule__XWhileExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13878:1: ( rule__XWhileExpression__Group__5__Impl )
-            // InternalSignalDSL.g:13879:2: rule__XWhileExpression__Group__5__Impl
+            // InternalSignalDSL.g:14036:1: ( rule__XWhileExpression__Group__5__Impl )
+            // InternalSignalDSL.g:14037:2: rule__XWhileExpression__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__Group__5__Impl();
@@ -46177,23 +46785,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__5__Impl"
-    // InternalSignalDSL.g:13885:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
+    // InternalSignalDSL.g:14043:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
     public final void rule__XWhileExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13889:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
-            // InternalSignalDSL.g:13890:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalSignalDSL.g:14047:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
+            // InternalSignalDSL.g:14048:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
             {
-            // InternalSignalDSL.g:13890:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
-            // InternalSignalDSL.g:13891:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalSignalDSL.g:14048:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalSignalDSL.g:14049:2: ( rule__XWhileExpression__BodyAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); 
             }
-            // InternalSignalDSL.g:13892:2: ( rule__XWhileExpression__BodyAssignment_5 )
-            // InternalSignalDSL.g:13892:3: rule__XWhileExpression__BodyAssignment_5
+            // InternalSignalDSL.g:14050:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalSignalDSL.g:14050:3: rule__XWhileExpression__BodyAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__BodyAssignment_5();
@@ -46228,16 +46836,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__0"
-    // InternalSignalDSL.g:13901:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
+    // InternalSignalDSL.g:14059:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
     public final void rule__XDoWhileExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13905:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
-            // InternalSignalDSL.g:13906:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
+            // InternalSignalDSL.g:14063:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
+            // InternalSignalDSL.g:14064:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
             {
-            pushFollow(FOLLOW_96);
+            pushFollow(FOLLOW_95);
             rule__XDoWhileExpression__Group__0__Impl();
 
             state._fsp--;
@@ -46266,23 +46874,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__0__Impl"
-    // InternalSignalDSL.g:13913:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:14071:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
     public final void rule__XDoWhileExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13917:1: ( ( () ) )
-            // InternalSignalDSL.g:13918:1: ( () )
+            // InternalSignalDSL.g:14075:1: ( ( () ) )
+            // InternalSignalDSL.g:14076:1: ( () )
             {
-            // InternalSignalDSL.g:13918:1: ( () )
-            // InternalSignalDSL.g:13919:2: ()
+            // InternalSignalDSL.g:14076:1: ( () )
+            // InternalSignalDSL.g:14077:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:13920:2: ()
-            // InternalSignalDSL.g:13920:3: 
+            // InternalSignalDSL.g:14078:2: ()
+            // InternalSignalDSL.g:14078:3: 
             {
             }
 
@@ -46307,16 +46915,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__1"
-    // InternalSignalDSL.g:13928:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
+    // InternalSignalDSL.g:14086:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
     public final void rule__XDoWhileExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13932:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
-            // InternalSignalDSL.g:13933:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
+            // InternalSignalDSL.g:14090:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
+            // InternalSignalDSL.g:14091:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XDoWhileExpression__Group__1__Impl();
 
             state._fsp--;
@@ -46345,22 +46953,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__1__Impl"
-    // InternalSignalDSL.g:13940:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
+    // InternalSignalDSL.g:14098:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
     public final void rule__XDoWhileExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13944:1: ( ( 'do' ) )
-            // InternalSignalDSL.g:13945:1: ( 'do' )
+            // InternalSignalDSL.g:14102:1: ( ( 'do' ) )
+            // InternalSignalDSL.g:14103:1: ( 'do' )
             {
-            // InternalSignalDSL.g:13945:1: ( 'do' )
-            // InternalSignalDSL.g:13946:2: 'do'
+            // InternalSignalDSL.g:14103:1: ( 'do' )
+            // InternalSignalDSL.g:14104:2: 'do'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
             }
-            match(input,93,FOLLOW_2); if (state.failed) return ;
+            match(input,95,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
             }
@@ -46386,16 +46994,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__2"
-    // InternalSignalDSL.g:13955:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
+    // InternalSignalDSL.g:14113:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
     public final void rule__XDoWhileExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13959:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
-            // InternalSignalDSL.g:13960:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
+            // InternalSignalDSL.g:14117:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
+            // InternalSignalDSL.g:14118:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
             {
-            pushFollow(FOLLOW_95);
+            pushFollow(FOLLOW_94);
             rule__XDoWhileExpression__Group__2__Impl();
 
             state._fsp--;
@@ -46424,23 +47032,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__2__Impl"
-    // InternalSignalDSL.g:13967:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
+    // InternalSignalDSL.g:14125:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
     public final void rule__XDoWhileExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13971:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
-            // InternalSignalDSL.g:13972:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalSignalDSL.g:14129:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
+            // InternalSignalDSL.g:14130:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
             {
-            // InternalSignalDSL.g:13972:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
-            // InternalSignalDSL.g:13973:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalSignalDSL.g:14130:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalSignalDSL.g:14131:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); 
             }
-            // InternalSignalDSL.g:13974:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
-            // InternalSignalDSL.g:13974:3: rule__XDoWhileExpression__BodyAssignment_2
+            // InternalSignalDSL.g:14132:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalSignalDSL.g:14132:3: rule__XDoWhileExpression__BodyAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__BodyAssignment_2();
@@ -46475,16 +47083,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__3"
-    // InternalSignalDSL.g:13982:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
+    // InternalSignalDSL.g:14140:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
     public final void rule__XDoWhileExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13986:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
-            // InternalSignalDSL.g:13987:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
+            // InternalSignalDSL.g:14144:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
+            // InternalSignalDSL.g:14145:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_33);
             rule__XDoWhileExpression__Group__3__Impl();
 
             state._fsp--;
@@ -46513,22 +47121,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__3__Impl"
-    // InternalSignalDSL.g:13994:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
+    // InternalSignalDSL.g:14152:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
     public final void rule__XDoWhileExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:13998:1: ( ( 'while' ) )
-            // InternalSignalDSL.g:13999:1: ( 'while' )
+            // InternalSignalDSL.g:14156:1: ( ( 'while' ) )
+            // InternalSignalDSL.g:14157:1: ( 'while' )
             {
-            // InternalSignalDSL.g:13999:1: ( 'while' )
-            // InternalSignalDSL.g:14000:2: 'while'
+            // InternalSignalDSL.g:14157:1: ( 'while' )
+            // InternalSignalDSL.g:14158:2: 'while'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
             }
-            match(input,92,FOLLOW_2); if (state.failed) return ;
+            match(input,94,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
             }
@@ -46554,16 +47162,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__4"
-    // InternalSignalDSL.g:14009:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
+    // InternalSignalDSL.g:14167:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
     public final void rule__XDoWhileExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14013:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
-            // InternalSignalDSL.g:14014:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
+            // InternalSignalDSL.g:14171:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
+            // InternalSignalDSL.g:14172:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XDoWhileExpression__Group__4__Impl();
 
             state._fsp--;
@@ -46592,22 +47200,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__4__Impl"
-    // InternalSignalDSL.g:14021:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:14179:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
     public final void rule__XDoWhileExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14025:1: ( ( '(' ) )
-            // InternalSignalDSL.g:14026:1: ( '(' )
+            // InternalSignalDSL.g:14183:1: ( ( '(' ) )
+            // InternalSignalDSL.g:14184:1: ( '(' )
             {
-            // InternalSignalDSL.g:14026:1: ( '(' )
-            // InternalSignalDSL.g:14027:2: '('
+            // InternalSignalDSL.g:14184:1: ( '(' )
+            // InternalSignalDSL.g:14185:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
             }
@@ -46633,16 +47241,16 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__5"
-    // InternalSignalDSL.g:14036:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
+    // InternalSignalDSL.g:14194:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
     public final void rule__XDoWhileExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14040:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
-            // InternalSignalDSL.g:14041:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
+            // InternalSignalDSL.g:14198:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
+            // InternalSignalDSL.g:14199:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_82);
             rule__XDoWhileExpression__Group__5__Impl();
 
             state._fsp--;
@@ -46671,23 +47279,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__5__Impl"
-    // InternalSignalDSL.g:14048:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
+    // InternalSignalDSL.g:14206:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
     public final void rule__XDoWhileExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14052:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
-            // InternalSignalDSL.g:14053:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalSignalDSL.g:14210:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
+            // InternalSignalDSL.g:14211:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
             {
-            // InternalSignalDSL.g:14053:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
-            // InternalSignalDSL.g:14054:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalSignalDSL.g:14211:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalSignalDSL.g:14212:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); 
             }
-            // InternalSignalDSL.g:14055:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
-            // InternalSignalDSL.g:14055:3: rule__XDoWhileExpression__PredicateAssignment_5
+            // InternalSignalDSL.g:14213:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalSignalDSL.g:14213:3: rule__XDoWhileExpression__PredicateAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__PredicateAssignment_5();
@@ -46722,14 +47330,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__6"
-    // InternalSignalDSL.g:14063:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
+    // InternalSignalDSL.g:14221:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
     public final void rule__XDoWhileExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14067:1: ( rule__XDoWhileExpression__Group__6__Impl )
-            // InternalSignalDSL.g:14068:2: rule__XDoWhileExpression__Group__6__Impl
+            // InternalSignalDSL.g:14225:1: ( rule__XDoWhileExpression__Group__6__Impl )
+            // InternalSignalDSL.g:14226:2: rule__XDoWhileExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__Group__6__Impl();
@@ -46755,22 +47363,22 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__6__Impl"
-    // InternalSignalDSL.g:14074:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:14232:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
     public final void rule__XDoWhileExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14078:1: ( ( ')' ) )
-            // InternalSignalDSL.g:14079:1: ( ')' )
+            // InternalSignalDSL.g:14236:1: ( ( ')' ) )
+            // InternalSignalDSL.g:14237:1: ( ')' )
             {
-            // InternalSignalDSL.g:14079:1: ( ')' )
-            // InternalSignalDSL.g:14080:2: ')'
+            // InternalSignalDSL.g:14237:1: ( ')' )
+            // InternalSignalDSL.g:14238:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
             }
@@ -46796,14 +47404,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__0"
-    // InternalSignalDSL.g:14090:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
+    // InternalSignalDSL.g:14248:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
     public final void rule__XBlockExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14094:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
-            // InternalSignalDSL.g:14095:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
+            // InternalSignalDSL.g:14252:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
+            // InternalSignalDSL.g:14253:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__XBlockExpression__Group__0__Impl();
@@ -46834,23 +47442,23 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__0__Impl"
-    // InternalSignalDSL.g:14102:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:14260:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
     public final void rule__XBlockExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14106:1: ( ( () ) )
-            // InternalSignalDSL.g:14107:1: ( () )
+            // InternalSignalDSL.g:14264:1: ( ( () ) )
+            // InternalSignalDSL.g:14265:1: ( () )
             {
-            // InternalSignalDSL.g:14107:1: ( () )
-            // InternalSignalDSL.g:14108:2: ()
+            // InternalSignalDSL.g:14265:1: ( () )
+            // InternalSignalDSL.g:14266:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:14109:2: ()
-            // InternalSignalDSL.g:14109:3: 
+            // InternalSignalDSL.g:14267:2: ()
+            // InternalSignalDSL.g:14267:3: 
             {
             }
 
@@ -46875,16 +47483,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__1"
-    // InternalSignalDSL.g:14117:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
+    // InternalSignalDSL.g:14275:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
     public final void rule__XBlockExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14121:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
-            // InternalSignalDSL.g:14122:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
+            // InternalSignalDSL.g:14279:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
+            // InternalSignalDSL.g:14280:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
             {
-            pushFollow(FOLLOW_97);
+            pushFollow(FOLLOW_96);
             rule__XBlockExpression__Group__1__Impl();
 
             state._fsp--;
@@ -46913,22 +47521,22 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__1__Impl"
-    // InternalSignalDSL.g:14129:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
+    // InternalSignalDSL.g:14287:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
     public final void rule__XBlockExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14133:1: ( ( '{' ) )
-            // InternalSignalDSL.g:14134:1: ( '{' )
+            // InternalSignalDSL.g:14291:1: ( ( '{' ) )
+            // InternalSignalDSL.g:14292:1: ( '{' )
             {
-            // InternalSignalDSL.g:14134:1: ( '{' )
-            // InternalSignalDSL.g:14135:2: '{'
+            // InternalSignalDSL.g:14292:1: ( '{' )
+            // InternalSignalDSL.g:14293:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
             }
-            match(input,62,FOLLOW_2); if (state.failed) return ;
+            match(input,63,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
             }
@@ -46954,16 +47562,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__2"
-    // InternalSignalDSL.g:14144:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
+    // InternalSignalDSL.g:14302:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
     public final void rule__XBlockExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14148:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
-            // InternalSignalDSL.g:14149:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
+            // InternalSignalDSL.g:14306:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
+            // InternalSignalDSL.g:14307:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
             {
-            pushFollow(FOLLOW_97);
+            pushFollow(FOLLOW_96);
             rule__XBlockExpression__Group__2__Impl();
 
             state._fsp--;
@@ -46992,37 +47600,37 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__2__Impl"
-    // InternalSignalDSL.g:14156:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
+    // InternalSignalDSL.g:14314:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
     public final void rule__XBlockExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14160:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
-            // InternalSignalDSL.g:14161:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalSignalDSL.g:14318:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
+            // InternalSignalDSL.g:14319:1: ( ( rule__XBlockExpression__Group_2__0 )* )
             {
-            // InternalSignalDSL.g:14161:1: ( ( rule__XBlockExpression__Group_2__0 )* )
-            // InternalSignalDSL.g:14162:2: ( rule__XBlockExpression__Group_2__0 )*
+            // InternalSignalDSL.g:14319:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalSignalDSL.g:14320:2: ( rule__XBlockExpression__Group_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getGroup_2()); 
             }
-            // InternalSignalDSL.g:14163:2: ( rule__XBlockExpression__Group_2__0 )*
-            loop110:
+            // InternalSignalDSL.g:14321:2: ( rule__XBlockExpression__Group_2__0 )*
+            loop113:
             do {
-                int alt110=2;
-                int LA110_0 = input.LA(1);
+                int alt113=2;
+                int LA113_0 = input.LA(1);
 
-                if ( ((LA110_0>=RULE_ID && LA110_0<=RULE_STRING)||LA110_0==27||(LA110_0>=34 && LA110_0<=35)||LA110_0==40||(LA110_0>=44 && LA110_0<=50)||LA110_0==62||LA110_0==78||(LA110_0>=82 && LA110_0<=83)||LA110_0==86||LA110_0==88||(LA110_0>=91 && LA110_0<=99)||LA110_0==101||(LA110_0>=110 && LA110_0<=111)) ) {
-                    alt110=1;
+                if ( ((LA113_0>=RULE_ID && LA113_0<=RULE_STRING)||LA113_0==28||(LA113_0>=35 && LA113_0<=36)||LA113_0==41||(LA113_0>=45 && LA113_0<=51)||LA113_0==63||LA113_0==80||(LA113_0>=84 && LA113_0<=85)||LA113_0==88||LA113_0==90||(LA113_0>=93 && LA113_0<=101)||LA113_0==103||(LA113_0>=114 && LA113_0<=115)) ) {
+                    alt113=1;
                 }
 
 
-                switch (alt110) {
+                switch (alt113) {
             	case 1 :
-            	    // InternalSignalDSL.g:14163:3: rule__XBlockExpression__Group_2__0
+            	    // InternalSignalDSL.g:14321:3: rule__XBlockExpression__Group_2__0
             	    {
-            	    pushFollow(FOLLOW_82);
+            	    pushFollow(FOLLOW_81);
             	    rule__XBlockExpression__Group_2__0();
 
             	    state._fsp--;
@@ -47032,7 +47640,7 @@
             	    break;
 
             	default :
-            	    break loop110;
+            	    break loop113;
                 }
             } while (true);
 
@@ -47061,14 +47669,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__3"
-    // InternalSignalDSL.g:14171:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
+    // InternalSignalDSL.g:14329:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
     public final void rule__XBlockExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14175:1: ( rule__XBlockExpression__Group__3__Impl )
-            // InternalSignalDSL.g:14176:2: rule__XBlockExpression__Group__3__Impl
+            // InternalSignalDSL.g:14333:1: ( rule__XBlockExpression__Group__3__Impl )
+            // InternalSignalDSL.g:14334:2: rule__XBlockExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group__3__Impl();
@@ -47094,22 +47702,22 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__3__Impl"
-    // InternalSignalDSL.g:14182:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
+    // InternalSignalDSL.g:14340:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
     public final void rule__XBlockExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14186:1: ( ( '}' ) )
-            // InternalSignalDSL.g:14187:1: ( '}' )
+            // InternalSignalDSL.g:14344:1: ( ( '}' ) )
+            // InternalSignalDSL.g:14345:1: ( '}' )
             {
-            // InternalSignalDSL.g:14187:1: ( '}' )
-            // InternalSignalDSL.g:14188:2: '}'
+            // InternalSignalDSL.g:14345:1: ( '}' )
+            // InternalSignalDSL.g:14346:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
             }
-            match(input,63,FOLLOW_2); if (state.failed) return ;
+            match(input,64,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
             }
@@ -47135,16 +47743,16 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__0"
-    // InternalSignalDSL.g:14198:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
+    // InternalSignalDSL.g:14356:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
     public final void rule__XBlockExpression__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14202:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
-            // InternalSignalDSL.g:14203:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
+            // InternalSignalDSL.g:14360:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
+            // InternalSignalDSL.g:14361:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_29);
             rule__XBlockExpression__Group_2__0__Impl();
 
             state._fsp--;
@@ -47173,23 +47781,23 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__0__Impl"
-    // InternalSignalDSL.g:14210:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
+    // InternalSignalDSL.g:14368:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
     public final void rule__XBlockExpression__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14214:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
-            // InternalSignalDSL.g:14215:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalSignalDSL.g:14372:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
+            // InternalSignalDSL.g:14373:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
             {
-            // InternalSignalDSL.g:14215:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
-            // InternalSignalDSL.g:14216:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalSignalDSL.g:14373:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalSignalDSL.g:14374:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); 
             }
-            // InternalSignalDSL.g:14217:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
-            // InternalSignalDSL.g:14217:3: rule__XBlockExpression__ExpressionsAssignment_2_0
+            // InternalSignalDSL.g:14375:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalSignalDSL.g:14375:3: rule__XBlockExpression__ExpressionsAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__ExpressionsAssignment_2_0();
@@ -47224,14 +47832,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__1"
-    // InternalSignalDSL.g:14225:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
+    // InternalSignalDSL.g:14383:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
     public final void rule__XBlockExpression__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14229:1: ( rule__XBlockExpression__Group_2__1__Impl )
-            // InternalSignalDSL.g:14230:2: rule__XBlockExpression__Group_2__1__Impl
+            // InternalSignalDSL.g:14387:1: ( rule__XBlockExpression__Group_2__1__Impl )
+            // InternalSignalDSL.g:14388:2: rule__XBlockExpression__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group_2__1__Impl();
@@ -47257,33 +47865,33 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__1__Impl"
-    // InternalSignalDSL.g:14236:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
+    // InternalSignalDSL.g:14394:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
     public final void rule__XBlockExpression__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14240:1: ( ( ( ';' )? ) )
-            // InternalSignalDSL.g:14241:1: ( ( ';' )? )
+            // InternalSignalDSL.g:14398:1: ( ( ( ';' )? ) )
+            // InternalSignalDSL.g:14399:1: ( ( ';' )? )
             {
-            // InternalSignalDSL.g:14241:1: ( ( ';' )? )
-            // InternalSignalDSL.g:14242:2: ( ';' )?
+            // InternalSignalDSL.g:14399:1: ( ( ';' )? )
+            // InternalSignalDSL.g:14400:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); 
             }
-            // InternalSignalDSL.g:14243:2: ( ';' )?
-            int alt111=2;
-            int LA111_0 = input.LA(1);
+            // InternalSignalDSL.g:14401:2: ( ';' )?
+            int alt114=2;
+            int LA114_0 = input.LA(1);
 
-            if ( (LA111_0==76) ) {
-                alt111=1;
+            if ( (LA114_0==78) ) {
+                alt114=1;
             }
-            switch (alt111) {
+            switch (alt114) {
                 case 1 :
-                    // InternalSignalDSL.g:14243:3: ';'
+                    // InternalSignalDSL.g:14401:3: ';'
                     {
-                    match(input,76,FOLLOW_2); if (state.failed) return ;
+                    match(input,78,FOLLOW_2); if (state.failed) return ;
 
                     }
                     break;
@@ -47315,16 +47923,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__0"
-    // InternalSignalDSL.g:14252:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
+    // InternalSignalDSL.g:14410:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
     public final void rule__XVariableDeclaration__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14256:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
-            // InternalSignalDSL.g:14257:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
+            // InternalSignalDSL.g:14414:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
+            // InternalSignalDSL.g:14415:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
             {
-            pushFollow(FOLLOW_98);
+            pushFollow(FOLLOW_97);
             rule__XVariableDeclaration__Group__0__Impl();
 
             state._fsp--;
@@ -47353,23 +47961,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__0__Impl"
-    // InternalSignalDSL.g:14264:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:14422:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XVariableDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14268:1: ( ( () ) )
-            // InternalSignalDSL.g:14269:1: ( () )
+            // InternalSignalDSL.g:14426:1: ( ( () ) )
+            // InternalSignalDSL.g:14427:1: ( () )
             {
-            // InternalSignalDSL.g:14269:1: ( () )
-            // InternalSignalDSL.g:14270:2: ()
+            // InternalSignalDSL.g:14427:1: ( () )
+            // InternalSignalDSL.g:14428:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); 
             }
-            // InternalSignalDSL.g:14271:2: ()
-            // InternalSignalDSL.g:14271:3: 
+            // InternalSignalDSL.g:14429:2: ()
+            // InternalSignalDSL.g:14429:3: 
             {
             }
 
@@ -47394,16 +48002,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__1"
-    // InternalSignalDSL.g:14279:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
+    // InternalSignalDSL.g:14437:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
     public final void rule__XVariableDeclaration__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14283:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
-            // InternalSignalDSL.g:14284:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
+            // InternalSignalDSL.g:14441:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
+            // InternalSignalDSL.g:14442:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XVariableDeclaration__Group__1__Impl();
 
             state._fsp--;
@@ -47432,23 +48040,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__1__Impl"
-    // InternalSignalDSL.g:14291:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
+    // InternalSignalDSL.g:14449:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
     public final void rule__XVariableDeclaration__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14295:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
-            // InternalSignalDSL.g:14296:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalSignalDSL.g:14453:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
+            // InternalSignalDSL.g:14454:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
             {
-            // InternalSignalDSL.g:14296:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
-            // InternalSignalDSL.g:14297:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalSignalDSL.g:14454:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalSignalDSL.g:14455:2: ( rule__XVariableDeclaration__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); 
             }
-            // InternalSignalDSL.g:14298:2: ( rule__XVariableDeclaration__Alternatives_1 )
-            // InternalSignalDSL.g:14298:3: rule__XVariableDeclaration__Alternatives_1
+            // InternalSignalDSL.g:14456:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalSignalDSL.g:14456:3: rule__XVariableDeclaration__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Alternatives_1();
@@ -47483,16 +48091,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__2"
-    // InternalSignalDSL.g:14306:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
+    // InternalSignalDSL.g:14464:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
     public final void rule__XVariableDeclaration__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14310:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
-            // InternalSignalDSL.g:14311:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
+            // InternalSignalDSL.g:14468:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
+            // InternalSignalDSL.g:14469:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
             {
-            pushFollow(FOLLOW_39);
+            pushFollow(FOLLOW_38);
             rule__XVariableDeclaration__Group__2__Impl();
 
             state._fsp--;
@@ -47521,23 +48129,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__2__Impl"
-    // InternalSignalDSL.g:14318:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
+    // InternalSignalDSL.g:14476:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
     public final void rule__XVariableDeclaration__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14322:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
-            // InternalSignalDSL.g:14323:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalSignalDSL.g:14480:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
+            // InternalSignalDSL.g:14481:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
             {
-            // InternalSignalDSL.g:14323:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
-            // InternalSignalDSL.g:14324:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalSignalDSL.g:14481:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalSignalDSL.g:14482:2: ( rule__XVariableDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalSignalDSL.g:14325:2: ( rule__XVariableDeclaration__Alternatives_2 )
-            // InternalSignalDSL.g:14325:3: rule__XVariableDeclaration__Alternatives_2
+            // InternalSignalDSL.g:14483:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalSignalDSL.g:14483:3: rule__XVariableDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Alternatives_2();
@@ -47572,14 +48180,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__3"
-    // InternalSignalDSL.g:14333:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
+    // InternalSignalDSL.g:14491:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
     public final void rule__XVariableDeclaration__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14337:1: ( rule__XVariableDeclaration__Group__3__Impl )
-            // InternalSignalDSL.g:14338:2: rule__XVariableDeclaration__Group__3__Impl
+            // InternalSignalDSL.g:14495:1: ( rule__XVariableDeclaration__Group__3__Impl )
+            // InternalSignalDSL.g:14496:2: rule__XVariableDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group__3__Impl();
@@ -47605,31 +48213,31 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__3__Impl"
-    // InternalSignalDSL.g:14344:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:14502:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
     public final void rule__XVariableDeclaration__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14348:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
-            // InternalSignalDSL.g:14349:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalSignalDSL.g:14506:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
+            // InternalSignalDSL.g:14507:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:14349:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
-            // InternalSignalDSL.g:14350:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            // InternalSignalDSL.g:14507:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalSignalDSL.g:14508:2: ( rule__XVariableDeclaration__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:14351:2: ( rule__XVariableDeclaration__Group_3__0 )?
-            int alt112=2;
-            int LA112_0 = input.LA(1);
+            // InternalSignalDSL.g:14509:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            int alt115=2;
+            int LA115_0 = input.LA(1);
 
-            if ( (LA112_0==13) ) {
-                alt112=1;
+            if ( (LA115_0==13) ) {
+                alt115=1;
             }
-            switch (alt112) {
+            switch (alt115) {
                 case 1 :
-                    // InternalSignalDSL.g:14351:3: rule__XVariableDeclaration__Group_3__0
+                    // InternalSignalDSL.g:14509:3: rule__XVariableDeclaration__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__Group_3__0();
@@ -47667,14 +48275,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0"
-    // InternalSignalDSL.g:14360:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
+    // InternalSignalDSL.g:14518:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
     public final void rule__XVariableDeclaration__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14364:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
-            // InternalSignalDSL.g:14365:2: rule__XVariableDeclaration__Group_2_0__0__Impl
+            // InternalSignalDSL.g:14522:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
+            // InternalSignalDSL.g:14523:2: rule__XVariableDeclaration__Group_2_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0__0__Impl();
@@ -47700,23 +48308,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0__Impl"
-    // InternalSignalDSL.g:14371:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
+    // InternalSignalDSL.g:14529:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
     public final void rule__XVariableDeclaration__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14375:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
-            // InternalSignalDSL.g:14376:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalSignalDSL.g:14533:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
+            // InternalSignalDSL.g:14534:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
             {
-            // InternalSignalDSL.g:14376:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
-            // InternalSignalDSL.g:14377:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalSignalDSL.g:14534:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalSignalDSL.g:14535:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); 
             }
-            // InternalSignalDSL.g:14378:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
-            // InternalSignalDSL.g:14378:3: rule__XVariableDeclaration__Group_2_0_0__0
+            // InternalSignalDSL.g:14536:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalSignalDSL.g:14536:3: rule__XVariableDeclaration__Group_2_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0_0__0();
@@ -47751,14 +48359,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0"
-    // InternalSignalDSL.g:14387:1: rule__XVariableDeclaration__Group_2_0_0__0 : rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 ;
+    // InternalSignalDSL.g:14545:1: rule__XVariableDeclaration__Group_2_0_0__0 : rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 ;
     public final void rule__XVariableDeclaration__Group_2_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14391:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
-            // InternalSignalDSL.g:14392:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
+            // InternalSignalDSL.g:14549:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
+            // InternalSignalDSL.g:14550:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
             {
             pushFollow(FOLLOW_6);
             rule__XVariableDeclaration__Group_2_0_0__0__Impl();
@@ -47789,23 +48397,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0__Impl"
-    // InternalSignalDSL.g:14399:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
+    // InternalSignalDSL.g:14557:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
     public final void rule__XVariableDeclaration__Group_2_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14403:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
-            // InternalSignalDSL.g:14404:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalSignalDSL.g:14561:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
+            // InternalSignalDSL.g:14562:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
             {
-            // InternalSignalDSL.g:14404:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
-            // InternalSignalDSL.g:14405:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalSignalDSL.g:14562:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalSignalDSL.g:14563:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); 
             }
-            // InternalSignalDSL.g:14406:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
-            // InternalSignalDSL.g:14406:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
+            // InternalSignalDSL.g:14564:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalSignalDSL.g:14564:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__TypeAssignment_2_0_0_0();
@@ -47840,14 +48448,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1"
-    // InternalSignalDSL.g:14414:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
+    // InternalSignalDSL.g:14572:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
     public final void rule__XVariableDeclaration__Group_2_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14418:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
-            // InternalSignalDSL.g:14419:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
+            // InternalSignalDSL.g:14576:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
+            // InternalSignalDSL.g:14577:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0_0__1__Impl();
@@ -47873,23 +48481,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1__Impl"
-    // InternalSignalDSL.g:14425:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
+    // InternalSignalDSL.g:14583:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
     public final void rule__XVariableDeclaration__Group_2_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14429:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
-            // InternalSignalDSL.g:14430:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalSignalDSL.g:14587:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
+            // InternalSignalDSL.g:14588:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
             {
-            // InternalSignalDSL.g:14430:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
-            // InternalSignalDSL.g:14431:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalSignalDSL.g:14588:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalSignalDSL.g:14589:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); 
             }
-            // InternalSignalDSL.g:14432:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
-            // InternalSignalDSL.g:14432:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
+            // InternalSignalDSL.g:14590:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalSignalDSL.g:14590:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__NameAssignment_2_0_0_1();
@@ -47924,16 +48532,16 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__0"
-    // InternalSignalDSL.g:14441:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
+    // InternalSignalDSL.g:14599:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
     public final void rule__XVariableDeclaration__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14445:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
-            // InternalSignalDSL.g:14446:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
+            // InternalSignalDSL.g:14603:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
+            // InternalSignalDSL.g:14604:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XVariableDeclaration__Group_3__0__Impl();
 
             state._fsp--;
@@ -47962,17 +48570,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__0__Impl"
-    // InternalSignalDSL.g:14453:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
+    // InternalSignalDSL.g:14611:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
     public final void rule__XVariableDeclaration__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14457:1: ( ( '=' ) )
-            // InternalSignalDSL.g:14458:1: ( '=' )
+            // InternalSignalDSL.g:14615:1: ( ( '=' ) )
+            // InternalSignalDSL.g:14616:1: ( '=' )
             {
-            // InternalSignalDSL.g:14458:1: ( '=' )
-            // InternalSignalDSL.g:14459:2: '='
+            // InternalSignalDSL.g:14616:1: ( '=' )
+            // InternalSignalDSL.g:14617:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); 
@@ -48003,14 +48611,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__1"
-    // InternalSignalDSL.g:14468:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
+    // InternalSignalDSL.g:14626:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
     public final void rule__XVariableDeclaration__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14472:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
-            // InternalSignalDSL.g:14473:2: rule__XVariableDeclaration__Group_3__1__Impl
+            // InternalSignalDSL.g:14630:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
+            // InternalSignalDSL.g:14631:2: rule__XVariableDeclaration__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_3__1__Impl();
@@ -48036,23 +48644,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__1__Impl"
-    // InternalSignalDSL.g:14479:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
+    // InternalSignalDSL.g:14637:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
     public final void rule__XVariableDeclaration__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14483:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
-            // InternalSignalDSL.g:14484:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalSignalDSL.g:14641:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
+            // InternalSignalDSL.g:14642:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
             {
-            // InternalSignalDSL.g:14484:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
-            // InternalSignalDSL.g:14485:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalSignalDSL.g:14642:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalSignalDSL.g:14643:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); 
             }
-            // InternalSignalDSL.g:14486:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
-            // InternalSignalDSL.g:14486:3: rule__XVariableDeclaration__RightAssignment_3_1
+            // InternalSignalDSL.g:14644:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalSignalDSL.g:14644:3: rule__XVariableDeclaration__RightAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__RightAssignment_3_1();
@@ -48087,16 +48695,16 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__0"
-    // InternalSignalDSL.g:14495:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
+    // InternalSignalDSL.g:14653:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
     public final void rule__JvmFormalParameter__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14499:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
-            // InternalSignalDSL.g:14500:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
+            // InternalSignalDSL.g:14657:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
+            // InternalSignalDSL.g:14658:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__JvmFormalParameter__Group__0__Impl();
 
             state._fsp--;
@@ -48125,38 +48733,38 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__0__Impl"
-    // InternalSignalDSL.g:14507:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
+    // InternalSignalDSL.g:14665:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
     public final void rule__JvmFormalParameter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14511:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
-            // InternalSignalDSL.g:14512:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalSignalDSL.g:14669:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
+            // InternalSignalDSL.g:14670:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
             {
-            // InternalSignalDSL.g:14512:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
-            // InternalSignalDSL.g:14513:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            // InternalSignalDSL.g:14670:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalSignalDSL.g:14671:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
             }
-            // InternalSignalDSL.g:14514:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
-            int alt113=2;
-            int LA113_0 = input.LA(1);
+            // InternalSignalDSL.g:14672:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            int alt116=2;
+            int LA116_0 = input.LA(1);
 
-            if ( (LA113_0==RULE_ID) ) {
-                int LA113_1 = input.LA(2);
+            if ( (LA116_0==RULE_ID) ) {
+                int LA116_1 = input.LA(2);
 
-                if ( (LA113_1==RULE_ID||LA113_1==27||LA113_1==43||LA113_1==83) ) {
-                    alt113=1;
+                if ( (LA116_1==RULE_ID||LA116_1==28||LA116_1==44||LA116_1==85) ) {
+                    alt116=1;
                 }
             }
-            else if ( (LA113_0==31||LA113_0==78) ) {
-                alt113=1;
+            else if ( (LA116_0==32||LA116_0==80) ) {
+                alt116=1;
             }
-            switch (alt113) {
+            switch (alt116) {
                 case 1 :
-                    // InternalSignalDSL.g:14514:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
+                    // InternalSignalDSL.g:14672:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmFormalParameter__ParameterTypeAssignment_0();
@@ -48194,14 +48802,14 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__1"
-    // InternalSignalDSL.g:14522:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
+    // InternalSignalDSL.g:14680:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
     public final void rule__JvmFormalParameter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14526:1: ( rule__JvmFormalParameter__Group__1__Impl )
-            // InternalSignalDSL.g:14527:2: rule__JvmFormalParameter__Group__1__Impl
+            // InternalSignalDSL.g:14684:1: ( rule__JvmFormalParameter__Group__1__Impl )
+            // InternalSignalDSL.g:14685:2: rule__JvmFormalParameter__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__Group__1__Impl();
@@ -48227,23 +48835,23 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__1__Impl"
-    // InternalSignalDSL.g:14533:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
+    // InternalSignalDSL.g:14691:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
     public final void rule__JvmFormalParameter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14537:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
-            // InternalSignalDSL.g:14538:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalSignalDSL.g:14695:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalSignalDSL.g:14696:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
             {
-            // InternalSignalDSL.g:14538:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
-            // InternalSignalDSL.g:14539:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalSignalDSL.g:14696:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalSignalDSL.g:14697:2: ( rule__JvmFormalParameter__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); 
             }
-            // InternalSignalDSL.g:14540:2: ( rule__JvmFormalParameter__NameAssignment_1 )
-            // InternalSignalDSL.g:14540:3: rule__JvmFormalParameter__NameAssignment_1
+            // InternalSignalDSL.g:14698:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalSignalDSL.g:14698:3: rule__JvmFormalParameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__NameAssignment_1();
@@ -48278,14 +48886,14 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__0"
-    // InternalSignalDSL.g:14549:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
+    // InternalSignalDSL.g:14707:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
     public final void rule__FullJvmFormalParameter__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14553:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
-            // InternalSignalDSL.g:14554:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
+            // InternalSignalDSL.g:14711:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
+            // InternalSignalDSL.g:14712:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__FullJvmFormalParameter__Group__0__Impl();
@@ -48316,23 +48924,23 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__0__Impl"
-    // InternalSignalDSL.g:14561:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
+    // InternalSignalDSL.g:14719:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
     public final void rule__FullJvmFormalParameter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14565:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
-            // InternalSignalDSL.g:14566:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalSignalDSL.g:14723:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
+            // InternalSignalDSL.g:14724:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
             {
-            // InternalSignalDSL.g:14566:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
-            // InternalSignalDSL.g:14567:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalSignalDSL.g:14724:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalSignalDSL.g:14725:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
             }
-            // InternalSignalDSL.g:14568:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
-            // InternalSignalDSL.g:14568:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
+            // InternalSignalDSL.g:14726:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalSignalDSL.g:14726:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__ParameterTypeAssignment_0();
@@ -48367,14 +48975,14 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__1"
-    // InternalSignalDSL.g:14576:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
+    // InternalSignalDSL.g:14734:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
     public final void rule__FullJvmFormalParameter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14580:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
-            // InternalSignalDSL.g:14581:2: rule__FullJvmFormalParameter__Group__1__Impl
+            // InternalSignalDSL.g:14738:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
+            // InternalSignalDSL.g:14739:2: rule__FullJvmFormalParameter__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__Group__1__Impl();
@@ -48400,23 +49008,23 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__1__Impl"
-    // InternalSignalDSL.g:14587:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
+    // InternalSignalDSL.g:14745:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
     public final void rule__FullJvmFormalParameter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14591:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
-            // InternalSignalDSL.g:14592:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalSignalDSL.g:14749:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalSignalDSL.g:14750:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
             {
-            // InternalSignalDSL.g:14592:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
-            // InternalSignalDSL.g:14593:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalSignalDSL.g:14750:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalSignalDSL.g:14751:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); 
             }
-            // InternalSignalDSL.g:14594:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
-            // InternalSignalDSL.g:14594:3: rule__FullJvmFormalParameter__NameAssignment_1
+            // InternalSignalDSL.g:14752:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalSignalDSL.g:14752:3: rule__FullJvmFormalParameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__NameAssignment_1();
@@ -48451,16 +49059,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__0"
-    // InternalSignalDSL.g:14603:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
+    // InternalSignalDSL.g:14761:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
     public final void rule__XFeatureCall__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14607:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
-            // InternalSignalDSL.g:14608:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
+            // InternalSignalDSL.g:14765:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
+            // InternalSignalDSL.g:14766:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
             {
-            pushFollow(FOLLOW_73);
+            pushFollow(FOLLOW_72);
             rule__XFeatureCall__Group__0__Impl();
 
             state._fsp--;
@@ -48489,23 +49097,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__0__Impl"
-    // InternalSignalDSL.g:14615:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:14773:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
     public final void rule__XFeatureCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14619:1: ( ( () ) )
-            // InternalSignalDSL.g:14620:1: ( () )
+            // InternalSignalDSL.g:14777:1: ( ( () ) )
+            // InternalSignalDSL.g:14778:1: ( () )
             {
-            // InternalSignalDSL.g:14620:1: ( () )
-            // InternalSignalDSL.g:14621:2: ()
+            // InternalSignalDSL.g:14778:1: ( () )
+            // InternalSignalDSL.g:14779:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); 
             }
-            // InternalSignalDSL.g:14622:2: ()
-            // InternalSignalDSL.g:14622:3: 
+            // InternalSignalDSL.g:14780:2: ()
+            // InternalSignalDSL.g:14780:3: 
             {
             }
 
@@ -48530,16 +49138,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__1"
-    // InternalSignalDSL.g:14630:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
+    // InternalSignalDSL.g:14788:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
     public final void rule__XFeatureCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14634:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
-            // InternalSignalDSL.g:14635:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
+            // InternalSignalDSL.g:14792:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
+            // InternalSignalDSL.g:14793:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
             {
-            pushFollow(FOLLOW_73);
+            pushFollow(FOLLOW_72);
             rule__XFeatureCall__Group__1__Impl();
 
             state._fsp--;
@@ -48568,31 +49176,31 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__1__Impl"
-    // InternalSignalDSL.g:14642:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
+    // InternalSignalDSL.g:14800:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
     public final void rule__XFeatureCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14646:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
-            // InternalSignalDSL.g:14647:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalSignalDSL.g:14804:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
+            // InternalSignalDSL.g:14805:1: ( ( rule__XFeatureCall__Group_1__0 )? )
             {
-            // InternalSignalDSL.g:14647:1: ( ( rule__XFeatureCall__Group_1__0 )? )
-            // InternalSignalDSL.g:14648:2: ( rule__XFeatureCall__Group_1__0 )?
+            // InternalSignalDSL.g:14805:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalSignalDSL.g:14806:2: ( rule__XFeatureCall__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:14649:2: ( rule__XFeatureCall__Group_1__0 )?
-            int alt114=2;
-            int LA114_0 = input.LA(1);
+            // InternalSignalDSL.g:14807:2: ( rule__XFeatureCall__Group_1__0 )?
+            int alt117=2;
+            int LA117_0 = input.LA(1);
 
-            if ( (LA114_0==27) ) {
-                alt114=1;
+            if ( (LA117_0==28) ) {
+                alt117=1;
             }
-            switch (alt114) {
+            switch (alt117) {
                 case 1 :
-                    // InternalSignalDSL.g:14649:3: rule__XFeatureCall__Group_1__0
+                    // InternalSignalDSL.g:14807:3: rule__XFeatureCall__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_1__0();
@@ -48630,16 +49238,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__2"
-    // InternalSignalDSL.g:14657:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
+    // InternalSignalDSL.g:14815:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
     public final void rule__XFeatureCall__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14661:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
-            // InternalSignalDSL.g:14662:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
+            // InternalSignalDSL.g:14819:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
+            // InternalSignalDSL.g:14820:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
             {
-            pushFollow(FOLLOW_74);
+            pushFollow(FOLLOW_73);
             rule__XFeatureCall__Group__2__Impl();
 
             state._fsp--;
@@ -48668,23 +49276,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__2__Impl"
-    // InternalSignalDSL.g:14669:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
+    // InternalSignalDSL.g:14827:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
     public final void rule__XFeatureCall__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14673:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
-            // InternalSignalDSL.g:14674:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalSignalDSL.g:14831:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
+            // InternalSignalDSL.g:14832:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
             {
-            // InternalSignalDSL.g:14674:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
-            // InternalSignalDSL.g:14675:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalSignalDSL.g:14832:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalSignalDSL.g:14833:2: ( rule__XFeatureCall__FeatureAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); 
             }
-            // InternalSignalDSL.g:14676:2: ( rule__XFeatureCall__FeatureAssignment_2 )
-            // InternalSignalDSL.g:14676:3: rule__XFeatureCall__FeatureAssignment_2
+            // InternalSignalDSL.g:14834:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalSignalDSL.g:14834:3: rule__XFeatureCall__FeatureAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureAssignment_2();
@@ -48719,16 +49327,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__3"
-    // InternalSignalDSL.g:14684:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
+    // InternalSignalDSL.g:14842:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
     public final void rule__XFeatureCall__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14688:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
-            // InternalSignalDSL.g:14689:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
+            // InternalSignalDSL.g:14846:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
+            // InternalSignalDSL.g:14847:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
             {
-            pushFollow(FOLLOW_74);
+            pushFollow(FOLLOW_73);
             rule__XFeatureCall__Group__3__Impl();
 
             state._fsp--;
@@ -48757,27 +49365,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__3__Impl"
-    // InternalSignalDSL.g:14696:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:14854:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
     public final void rule__XFeatureCall__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14700:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
-            // InternalSignalDSL.g:14701:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalSignalDSL.g:14858:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
+            // InternalSignalDSL.g:14859:1: ( ( rule__XFeatureCall__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:14701:1: ( ( rule__XFeatureCall__Group_3__0 )? )
-            // InternalSignalDSL.g:14702:2: ( rule__XFeatureCall__Group_3__0 )?
+            // InternalSignalDSL.g:14859:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalSignalDSL.g:14860:2: ( rule__XFeatureCall__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:14703:2: ( rule__XFeatureCall__Group_3__0 )?
-            int alt115=2;
-            alt115 = dfa115.predict(input);
-            switch (alt115) {
+            // InternalSignalDSL.g:14861:2: ( rule__XFeatureCall__Group_3__0 )?
+            int alt118=2;
+            alt118 = dfa118.predict(input);
+            switch (alt118) {
                 case 1 :
-                    // InternalSignalDSL.g:14703:3: rule__XFeatureCall__Group_3__0
+                    // InternalSignalDSL.g:14861:3: rule__XFeatureCall__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_3__0();
@@ -48815,14 +49423,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__4"
-    // InternalSignalDSL.g:14711:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
+    // InternalSignalDSL.g:14869:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
     public final void rule__XFeatureCall__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14715:1: ( rule__XFeatureCall__Group__4__Impl )
-            // InternalSignalDSL.g:14716:2: rule__XFeatureCall__Group__4__Impl
+            // InternalSignalDSL.g:14873:1: ( rule__XFeatureCall__Group__4__Impl )
+            // InternalSignalDSL.g:14874:2: rule__XFeatureCall__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group__4__Impl();
@@ -48848,27 +49456,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__4__Impl"
-    // InternalSignalDSL.g:14722:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
+    // InternalSignalDSL.g:14880:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
     public final void rule__XFeatureCall__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14726:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
-            // InternalSignalDSL.g:14727:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalSignalDSL.g:14884:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
+            // InternalSignalDSL.g:14885:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
             {
-            // InternalSignalDSL.g:14727:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
-            // InternalSignalDSL.g:14728:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            // InternalSignalDSL.g:14885:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalSignalDSL.g:14886:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); 
             }
-            // InternalSignalDSL.g:14729:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
-            int alt116=2;
-            alt116 = dfa116.predict(input);
-            switch (alt116) {
+            // InternalSignalDSL.g:14887:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            int alt119=2;
+            alt119 = dfa119.predict(input);
+            switch (alt119) {
                 case 1 :
-                    // InternalSignalDSL.g:14729:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+                    // InternalSignalDSL.g:14887:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
@@ -48906,16 +49514,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__0"
-    // InternalSignalDSL.g:14738:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
+    // InternalSignalDSL.g:14896:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
     public final void rule__XFeatureCall__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14742:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
-            // InternalSignalDSL.g:14743:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
+            // InternalSignalDSL.g:14900:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
+            // InternalSignalDSL.g:14901:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__XFeatureCall__Group_1__0__Impl();
 
             state._fsp--;
@@ -48944,22 +49552,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__0__Impl"
-    // InternalSignalDSL.g:14750:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
+    // InternalSignalDSL.g:14908:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
     public final void rule__XFeatureCall__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14754:1: ( ( '<' ) )
-            // InternalSignalDSL.g:14755:1: ( '<' )
+            // InternalSignalDSL.g:14912:1: ( ( '<' ) )
+            // InternalSignalDSL.g:14913:1: ( '<' )
             {
-            // InternalSignalDSL.g:14755:1: ( '<' )
-            // InternalSignalDSL.g:14756:2: '<'
+            // InternalSignalDSL.g:14913:1: ( '<' )
+            // InternalSignalDSL.g:14914:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); 
             }
-            match(input,27,FOLLOW_2); if (state.failed) return ;
+            match(input,28,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); 
             }
@@ -48985,16 +49593,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__1"
-    // InternalSignalDSL.g:14765:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
+    // InternalSignalDSL.g:14923:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
     public final void rule__XFeatureCall__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14769:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
-            // InternalSignalDSL.g:14770:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
+            // InternalSignalDSL.g:14927:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
+            // InternalSignalDSL.g:14928:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_75);
             rule__XFeatureCall__Group_1__1__Impl();
 
             state._fsp--;
@@ -49023,23 +49631,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__1__Impl"
-    // InternalSignalDSL.g:14777:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:14935:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
     public final void rule__XFeatureCall__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14781:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:14782:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalSignalDSL.g:14939:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:14940:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:14782:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
-            // InternalSignalDSL.g:14783:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalSignalDSL.g:14940:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalSignalDSL.g:14941:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:14784:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
-            // InternalSignalDSL.g:14784:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
+            // InternalSignalDSL.g:14942:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalSignalDSL.g:14942:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__TypeArgumentsAssignment_1_1();
@@ -49074,16 +49682,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__2"
-    // InternalSignalDSL.g:14792:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
+    // InternalSignalDSL.g:14950:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
     public final void rule__XFeatureCall__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14796:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
-            // InternalSignalDSL.g:14797:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
+            // InternalSignalDSL.g:14954:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
+            // InternalSignalDSL.g:14955:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_75);
             rule__XFeatureCall__Group_1__2__Impl();
 
             state._fsp--;
@@ -49112,37 +49720,37 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__2__Impl"
-    // InternalSignalDSL.g:14804:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
+    // InternalSignalDSL.g:14962:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
     public final void rule__XFeatureCall__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14808:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
-            // InternalSignalDSL.g:14809:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalSignalDSL.g:14966:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
+            // InternalSignalDSL.g:14967:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
             {
-            // InternalSignalDSL.g:14809:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
-            // InternalSignalDSL.g:14810:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            // InternalSignalDSL.g:14967:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalSignalDSL.g:14968:2: ( rule__XFeatureCall__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); 
             }
-            // InternalSignalDSL.g:14811:2: ( rule__XFeatureCall__Group_1_2__0 )*
-            loop117:
+            // InternalSignalDSL.g:14969:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            loop120:
             do {
-                int alt117=2;
-                int LA117_0 = input.LA(1);
+                int alt120=2;
+                int LA120_0 = input.LA(1);
 
-                if ( (LA117_0==80) ) {
-                    alt117=1;
+                if ( (LA120_0==82) ) {
+                    alt120=1;
                 }
 
 
-                switch (alt117) {
+                switch (alt120) {
             	case 1 :
-            	    // InternalSignalDSL.g:14811:3: rule__XFeatureCall__Group_1_2__0
+            	    // InternalSignalDSL.g:14969:3: rule__XFeatureCall__Group_1_2__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XFeatureCall__Group_1_2__0();
 
             	    state._fsp--;
@@ -49152,7 +49760,7 @@
             	    break;
 
             	default :
-            	    break loop117;
+            	    break loop120;
                 }
             } while (true);
 
@@ -49181,14 +49789,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__3"
-    // InternalSignalDSL.g:14819:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
+    // InternalSignalDSL.g:14977:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
     public final void rule__XFeatureCall__Group_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14823:1: ( rule__XFeatureCall__Group_1__3__Impl )
-            // InternalSignalDSL.g:14824:2: rule__XFeatureCall__Group_1__3__Impl
+            // InternalSignalDSL.g:14981:1: ( rule__XFeatureCall__Group_1__3__Impl )
+            // InternalSignalDSL.g:14982:2: rule__XFeatureCall__Group_1__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_1__3__Impl();
@@ -49214,22 +49822,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__3__Impl"
-    // InternalSignalDSL.g:14830:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:14988:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
     public final void rule__XFeatureCall__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14834:1: ( ( '>' ) )
-            // InternalSignalDSL.g:14835:1: ( '>' )
+            // InternalSignalDSL.g:14992:1: ( ( '>' ) )
+            // InternalSignalDSL.g:14993:1: ( '>' )
             {
-            // InternalSignalDSL.g:14835:1: ( '>' )
-            // InternalSignalDSL.g:14836:2: '>'
+            // InternalSignalDSL.g:14993:1: ( '>' )
+            // InternalSignalDSL.g:14994:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); 
             }
-            match(input,26,FOLLOW_2); if (state.failed) return ;
+            match(input,27,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); 
             }
@@ -49255,16 +49863,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__0"
-    // InternalSignalDSL.g:14846:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
+    // InternalSignalDSL.g:15004:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
     public final void rule__XFeatureCall__Group_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14850:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
-            // InternalSignalDSL.g:14851:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
+            // InternalSignalDSL.g:15008:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
+            // InternalSignalDSL.g:15009:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__XFeatureCall__Group_1_2__0__Impl();
 
             state._fsp--;
@@ -49293,22 +49901,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__0__Impl"
-    // InternalSignalDSL.g:14858:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:15016:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
     public final void rule__XFeatureCall__Group_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14862:1: ( ( ',' ) )
-            // InternalSignalDSL.g:14863:1: ( ',' )
+            // InternalSignalDSL.g:15020:1: ( ( ',' ) )
+            // InternalSignalDSL.g:15021:1: ( ',' )
             {
-            // InternalSignalDSL.g:14863:1: ( ',' )
-            // InternalSignalDSL.g:14864:2: ','
+            // InternalSignalDSL.g:15021:1: ( ',' )
+            // InternalSignalDSL.g:15022:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
             }
@@ -49334,14 +49942,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__1"
-    // InternalSignalDSL.g:14873:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
+    // InternalSignalDSL.g:15031:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
     public final void rule__XFeatureCall__Group_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14877:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
-            // InternalSignalDSL.g:14878:2: rule__XFeatureCall__Group_1_2__1__Impl
+            // InternalSignalDSL.g:15035:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
+            // InternalSignalDSL.g:15036:2: rule__XFeatureCall__Group_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_1_2__1__Impl();
@@ -49367,23 +49975,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__1__Impl"
-    // InternalSignalDSL.g:14884:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
+    // InternalSignalDSL.g:15042:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
     public final void rule__XFeatureCall__Group_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14888:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
-            // InternalSignalDSL.g:14889:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalSignalDSL.g:15046:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
+            // InternalSignalDSL.g:15047:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
             {
-            // InternalSignalDSL.g:14889:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
-            // InternalSignalDSL.g:14890:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalSignalDSL.g:15047:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalSignalDSL.g:15048:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); 
             }
-            // InternalSignalDSL.g:14891:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
-            // InternalSignalDSL.g:14891:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
+            // InternalSignalDSL.g:15049:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalSignalDSL.g:15049:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__TypeArgumentsAssignment_1_2_1();
@@ -49418,16 +50026,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__0"
-    // InternalSignalDSL.g:14900:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
+    // InternalSignalDSL.g:15058:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
     public final void rule__XFeatureCall__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14904:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
-            // InternalSignalDSL.g:14905:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
+            // InternalSignalDSL.g:15062:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
+            // InternalSignalDSL.g:15063:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
             {
-            pushFollow(FOLLOW_77);
+            pushFollow(FOLLOW_76);
             rule__XFeatureCall__Group_3__0__Impl();
 
             state._fsp--;
@@ -49456,23 +50064,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__0__Impl"
-    // InternalSignalDSL.g:14912:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
+    // InternalSignalDSL.g:15070:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
     public final void rule__XFeatureCall__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14916:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
-            // InternalSignalDSL.g:14917:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalSignalDSL.g:15074:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
+            // InternalSignalDSL.g:15075:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
             {
-            // InternalSignalDSL.g:14917:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
-            // InternalSignalDSL.g:14918:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalSignalDSL.g:15075:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalSignalDSL.g:15076:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); 
             }
-            // InternalSignalDSL.g:14919:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
-            // InternalSignalDSL.g:14919:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
+            // InternalSignalDSL.g:15077:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalSignalDSL.g:15077:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__ExplicitOperationCallAssignment_3_0();
@@ -49507,16 +50115,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__1"
-    // InternalSignalDSL.g:14927:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
+    // InternalSignalDSL.g:15085:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
     public final void rule__XFeatureCall__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14931:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
-            // InternalSignalDSL.g:14932:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
+            // InternalSignalDSL.g:15089:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
+            // InternalSignalDSL.g:15090:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
             {
-            pushFollow(FOLLOW_77);
+            pushFollow(FOLLOW_76);
             rule__XFeatureCall__Group_3__1__Impl();
 
             state._fsp--;
@@ -49545,31 +50153,31 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__1__Impl"
-    // InternalSignalDSL.g:14939:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
+    // InternalSignalDSL.g:15097:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
     public final void rule__XFeatureCall__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14943:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
-            // InternalSignalDSL.g:14944:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalSignalDSL.g:15101:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
+            // InternalSignalDSL.g:15102:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
             {
-            // InternalSignalDSL.g:14944:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
-            // InternalSignalDSL.g:14945:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            // InternalSignalDSL.g:15102:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalSignalDSL.g:15103:2: ( rule__XFeatureCall__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); 
             }
-            // InternalSignalDSL.g:14946:2: ( rule__XFeatureCall__Alternatives_3_1 )?
-            int alt118=2;
-            int LA118_0 = input.LA(1);
+            // InternalSignalDSL.g:15104:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            int alt121=2;
+            int LA121_0 = input.LA(1);
 
-            if ( ((LA118_0>=RULE_ID && LA118_0<=RULE_STRING)||LA118_0==27||LA118_0==31||(LA118_0>=34 && LA118_0<=35)||LA118_0==40||(LA118_0>=45 && LA118_0<=50)||LA118_0==62||LA118_0==78||(LA118_0>=82 && LA118_0<=83)||LA118_0==86||LA118_0==88||(LA118_0>=91 && LA118_0<=99)||LA118_0==101||LA118_0==109||LA118_0==111) ) {
-                alt118=1;
+            if ( ((LA121_0>=RULE_ID && LA121_0<=RULE_STRING)||LA121_0==28||LA121_0==32||(LA121_0>=35 && LA121_0<=36)||LA121_0==41||(LA121_0>=46 && LA121_0<=51)||LA121_0==63||LA121_0==80||(LA121_0>=84 && LA121_0<=85)||LA121_0==88||LA121_0==90||(LA121_0>=93 && LA121_0<=101)||LA121_0==103||LA121_0==113||LA121_0==115) ) {
+                alt121=1;
             }
-            switch (alt118) {
+            switch (alt121) {
                 case 1 :
-                    // InternalSignalDSL.g:14946:3: rule__XFeatureCall__Alternatives_3_1
+                    // InternalSignalDSL.g:15104:3: rule__XFeatureCall__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Alternatives_3_1();
@@ -49607,14 +50215,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__2"
-    // InternalSignalDSL.g:14954:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
+    // InternalSignalDSL.g:15112:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
     public final void rule__XFeatureCall__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14958:1: ( rule__XFeatureCall__Group_3__2__Impl )
-            // InternalSignalDSL.g:14959:2: rule__XFeatureCall__Group_3__2__Impl
+            // InternalSignalDSL.g:15116:1: ( rule__XFeatureCall__Group_3__2__Impl )
+            // InternalSignalDSL.g:15117:2: rule__XFeatureCall__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3__2__Impl();
@@ -49640,22 +50248,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__2__Impl"
-    // InternalSignalDSL.g:14965:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:15123:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XFeatureCall__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14969:1: ( ( ')' ) )
-            // InternalSignalDSL.g:14970:1: ( ')' )
+            // InternalSignalDSL.g:15127:1: ( ( ')' ) )
+            // InternalSignalDSL.g:15128:1: ( ')' )
             {
-            // InternalSignalDSL.g:14970:1: ( ')' )
-            // InternalSignalDSL.g:14971:2: ')'
+            // InternalSignalDSL.g:15128:1: ( ')' )
+            // InternalSignalDSL.g:15129:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
             }
@@ -49681,16 +50289,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0"
-    // InternalSignalDSL.g:14981:1: rule__XFeatureCall__Group_3_1_1__0 : rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 ;
+    // InternalSignalDSL.g:15139:1: rule__XFeatureCall__Group_3_1_1__0 : rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 ;
     public final void rule__XFeatureCall__Group_3_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14985:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
-            // InternalSignalDSL.g:14986:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
+            // InternalSignalDSL.g:15143:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
+            // InternalSignalDSL.g:15144:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XFeatureCall__Group_3_1_1__0__Impl();
 
             state._fsp--;
@@ -49719,23 +50327,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0__Impl"
-    // InternalSignalDSL.g:14993:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
+    // InternalSignalDSL.g:15151:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
     public final void rule__XFeatureCall__Group_3_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:14997:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
-            // InternalSignalDSL.g:14998:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalSignalDSL.g:15155:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
+            // InternalSignalDSL.g:15156:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
             {
-            // InternalSignalDSL.g:14998:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
-            // InternalSignalDSL.g:14999:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalSignalDSL.g:15156:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalSignalDSL.g:15157:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); 
             }
-            // InternalSignalDSL.g:15000:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
-            // InternalSignalDSL.g:15000:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
+            // InternalSignalDSL.g:15158:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalSignalDSL.g:15158:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0();
@@ -49770,14 +50378,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1"
-    // InternalSignalDSL.g:15008:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
+    // InternalSignalDSL.g:15166:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
     public final void rule__XFeatureCall__Group_3_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15012:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
-            // InternalSignalDSL.g:15013:2: rule__XFeatureCall__Group_3_1_1__1__Impl
+            // InternalSignalDSL.g:15170:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
+            // InternalSignalDSL.g:15171:2: rule__XFeatureCall__Group_3_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3_1_1__1__Impl();
@@ -49803,37 +50411,37 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1__Impl"
-    // InternalSignalDSL.g:15019:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
+    // InternalSignalDSL.g:15177:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
     public final void rule__XFeatureCall__Group_3_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15023:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
-            // InternalSignalDSL.g:15024:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalSignalDSL.g:15181:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
+            // InternalSignalDSL.g:15182:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
             {
-            // InternalSignalDSL.g:15024:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
-            // InternalSignalDSL.g:15025:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            // InternalSignalDSL.g:15182:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalSignalDSL.g:15183:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); 
             }
-            // InternalSignalDSL.g:15026:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
-            loop119:
+            // InternalSignalDSL.g:15184:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            loop122:
             do {
-                int alt119=2;
-                int LA119_0 = input.LA(1);
+                int alt122=2;
+                int LA122_0 = input.LA(1);
 
-                if ( (LA119_0==80) ) {
-                    alt119=1;
+                if ( (LA122_0==82) ) {
+                    alt122=1;
                 }
 
 
-                switch (alt119) {
+                switch (alt122) {
             	case 1 :
-            	    // InternalSignalDSL.g:15026:3: rule__XFeatureCall__Group_3_1_1_1__0
+            	    // InternalSignalDSL.g:15184:3: rule__XFeatureCall__Group_3_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XFeatureCall__Group_3_1_1_1__0();
 
             	    state._fsp--;
@@ -49843,7 +50451,7 @@
             	    break;
 
             	default :
-            	    break loop119;
+            	    break loop122;
                 }
             } while (true);
 
@@ -49872,16 +50480,16 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0"
-    // InternalSignalDSL.g:15035:1: rule__XFeatureCall__Group_3_1_1_1__0 : rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 ;
+    // InternalSignalDSL.g:15193:1: rule__XFeatureCall__Group_3_1_1_1__0 : rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 ;
     public final void rule__XFeatureCall__Group_3_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15039:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
-            // InternalSignalDSL.g:15040:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
+            // InternalSignalDSL.g:15197:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
+            // InternalSignalDSL.g:15198:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XFeatureCall__Group_3_1_1_1__0__Impl();
 
             state._fsp--;
@@ -49910,22 +50518,22 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0__Impl"
-    // InternalSignalDSL.g:15047:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:15205:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XFeatureCall__Group_3_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15051:1: ( ( ',' ) )
-            // InternalSignalDSL.g:15052:1: ( ',' )
+            // InternalSignalDSL.g:15209:1: ( ( ',' ) )
+            // InternalSignalDSL.g:15210:1: ( ',' )
             {
-            // InternalSignalDSL.g:15052:1: ( ',' )
-            // InternalSignalDSL.g:15053:2: ','
+            // InternalSignalDSL.g:15210:1: ( ',' )
+            // InternalSignalDSL.g:15211:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
             }
@@ -49951,14 +50559,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1"
-    // InternalSignalDSL.g:15062:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
+    // InternalSignalDSL.g:15220:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
     public final void rule__XFeatureCall__Group_3_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15066:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
-            // InternalSignalDSL.g:15067:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
+            // InternalSignalDSL.g:15224:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
+            // InternalSignalDSL.g:15225:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3_1_1_1__1__Impl();
@@ -49984,23 +50592,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1__Impl"
-    // InternalSignalDSL.g:15073:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
+    // InternalSignalDSL.g:15231:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
     public final void rule__XFeatureCall__Group_3_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15077:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
-            // InternalSignalDSL.g:15078:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalSignalDSL.g:15235:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
+            // InternalSignalDSL.g:15236:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
             {
-            // InternalSignalDSL.g:15078:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
-            // InternalSignalDSL.g:15079:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalSignalDSL.g:15236:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalSignalDSL.g:15237:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); 
             }
-            // InternalSignalDSL.g:15080:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
-            // InternalSignalDSL.g:15080:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
+            // InternalSignalDSL.g:15238:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalSignalDSL.g:15238:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1();
@@ -50035,16 +50643,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__0"
-    // InternalSignalDSL.g:15089:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
+    // InternalSignalDSL.g:15247:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
     public final void rule__XConstructorCall__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15093:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
-            // InternalSignalDSL.g:15094:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
+            // InternalSignalDSL.g:15251:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
+            // InternalSignalDSL.g:15252:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
             {
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_98);
             rule__XConstructorCall__Group__0__Impl();
 
             state._fsp--;
@@ -50073,23 +50681,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__0__Impl"
-    // InternalSignalDSL.g:15101:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:15259:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
     public final void rule__XConstructorCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15105:1: ( ( () ) )
-            // InternalSignalDSL.g:15106:1: ( () )
+            // InternalSignalDSL.g:15263:1: ( ( () ) )
+            // InternalSignalDSL.g:15264:1: ( () )
             {
-            // InternalSignalDSL.g:15106:1: ( () )
-            // InternalSignalDSL.g:15107:2: ()
+            // InternalSignalDSL.g:15264:1: ( () )
+            // InternalSignalDSL.g:15265:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); 
             }
-            // InternalSignalDSL.g:15108:2: ()
-            // InternalSignalDSL.g:15108:3: 
+            // InternalSignalDSL.g:15266:2: ()
+            // InternalSignalDSL.g:15266:3: 
             {
             }
 
@@ -50114,14 +50722,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__1"
-    // InternalSignalDSL.g:15116:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
+    // InternalSignalDSL.g:15274:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
     public final void rule__XConstructorCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15120:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
-            // InternalSignalDSL.g:15121:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
+            // InternalSignalDSL.g:15278:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
+            // InternalSignalDSL.g:15279:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
             {
             pushFollow(FOLLOW_6);
             rule__XConstructorCall__Group__1__Impl();
@@ -50152,22 +50760,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__1__Impl"
-    // InternalSignalDSL.g:15128:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
+    // InternalSignalDSL.g:15286:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
     public final void rule__XConstructorCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15132:1: ( ( 'new' ) )
-            // InternalSignalDSL.g:15133:1: ( 'new' )
+            // InternalSignalDSL.g:15290:1: ( ( 'new' ) )
+            // InternalSignalDSL.g:15291:1: ( 'new' )
             {
-            // InternalSignalDSL.g:15133:1: ( 'new' )
-            // InternalSignalDSL.g:15134:2: 'new'
+            // InternalSignalDSL.g:15291:1: ( 'new' )
+            // InternalSignalDSL.g:15292:2: 'new'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
             }
-            match(input,94,FOLLOW_2); if (state.failed) return ;
+            match(input,96,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
             }
@@ -50193,16 +50801,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__2"
-    // InternalSignalDSL.g:15143:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
+    // InternalSignalDSL.g:15301:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
     public final void rule__XConstructorCall__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15147:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
-            // InternalSignalDSL.g:15148:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
+            // InternalSignalDSL.g:15305:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
+            // InternalSignalDSL.g:15306:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
             {
-            pushFollow(FOLLOW_100);
+            pushFollow(FOLLOW_99);
             rule__XConstructorCall__Group__2__Impl();
 
             state._fsp--;
@@ -50231,23 +50839,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__2__Impl"
-    // InternalSignalDSL.g:15155:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
+    // InternalSignalDSL.g:15313:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
     public final void rule__XConstructorCall__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15159:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
-            // InternalSignalDSL.g:15160:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalSignalDSL.g:15317:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
+            // InternalSignalDSL.g:15318:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
             {
-            // InternalSignalDSL.g:15160:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
-            // InternalSignalDSL.g:15161:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalSignalDSL.g:15318:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalSignalDSL.g:15319:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); 
             }
-            // InternalSignalDSL.g:15162:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
-            // InternalSignalDSL.g:15162:3: rule__XConstructorCall__ConstructorAssignment_2
+            // InternalSignalDSL.g:15320:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalSignalDSL.g:15320:3: rule__XConstructorCall__ConstructorAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ConstructorAssignment_2();
@@ -50282,16 +50890,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__3"
-    // InternalSignalDSL.g:15170:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
+    // InternalSignalDSL.g:15328:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
     public final void rule__XConstructorCall__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15174:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
-            // InternalSignalDSL.g:15175:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
+            // InternalSignalDSL.g:15332:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
+            // InternalSignalDSL.g:15333:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
             {
-            pushFollow(FOLLOW_100);
+            pushFollow(FOLLOW_99);
             rule__XConstructorCall__Group__3__Impl();
 
             state._fsp--;
@@ -50320,27 +50928,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__3__Impl"
-    // InternalSignalDSL.g:15182:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
+    // InternalSignalDSL.g:15340:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
     public final void rule__XConstructorCall__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15186:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
-            // InternalSignalDSL.g:15187:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalSignalDSL.g:15344:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
+            // InternalSignalDSL.g:15345:1: ( ( rule__XConstructorCall__Group_3__0 )? )
             {
-            // InternalSignalDSL.g:15187:1: ( ( rule__XConstructorCall__Group_3__0 )? )
-            // InternalSignalDSL.g:15188:2: ( rule__XConstructorCall__Group_3__0 )?
+            // InternalSignalDSL.g:15345:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalSignalDSL.g:15346:2: ( rule__XConstructorCall__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_3()); 
             }
-            // InternalSignalDSL.g:15189:2: ( rule__XConstructorCall__Group_3__0 )?
-            int alt120=2;
-            alt120 = dfa120.predict(input);
-            switch (alt120) {
+            // InternalSignalDSL.g:15347:2: ( rule__XConstructorCall__Group_3__0 )?
+            int alt123=2;
+            alt123 = dfa123.predict(input);
+            switch (alt123) {
                 case 1 :
-                    // InternalSignalDSL.g:15189:3: rule__XConstructorCall__Group_3__0
+                    // InternalSignalDSL.g:15347:3: rule__XConstructorCall__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_3__0();
@@ -50378,16 +50986,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__4"
-    // InternalSignalDSL.g:15197:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
+    // InternalSignalDSL.g:15355:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
     public final void rule__XConstructorCall__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15201:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
-            // InternalSignalDSL.g:15202:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
+            // InternalSignalDSL.g:15359:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
+            // InternalSignalDSL.g:15360:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
             {
-            pushFollow(FOLLOW_100);
+            pushFollow(FOLLOW_99);
             rule__XConstructorCall__Group__4__Impl();
 
             state._fsp--;
@@ -50416,27 +51024,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__4__Impl"
-    // InternalSignalDSL.g:15209:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
+    // InternalSignalDSL.g:15367:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
     public final void rule__XConstructorCall__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15213:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
-            // InternalSignalDSL.g:15214:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalSignalDSL.g:15371:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
+            // InternalSignalDSL.g:15372:1: ( ( rule__XConstructorCall__Group_4__0 )? )
             {
-            // InternalSignalDSL.g:15214:1: ( ( rule__XConstructorCall__Group_4__0 )? )
-            // InternalSignalDSL.g:15215:2: ( rule__XConstructorCall__Group_4__0 )?
+            // InternalSignalDSL.g:15372:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalSignalDSL.g:15373:2: ( rule__XConstructorCall__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_4()); 
             }
-            // InternalSignalDSL.g:15216:2: ( rule__XConstructorCall__Group_4__0 )?
-            int alt121=2;
-            alt121 = dfa121.predict(input);
-            switch (alt121) {
+            // InternalSignalDSL.g:15374:2: ( rule__XConstructorCall__Group_4__0 )?
+            int alt124=2;
+            alt124 = dfa124.predict(input);
+            switch (alt124) {
                 case 1 :
-                    // InternalSignalDSL.g:15216:3: rule__XConstructorCall__Group_4__0
+                    // InternalSignalDSL.g:15374:3: rule__XConstructorCall__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_4__0();
@@ -50474,14 +51082,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__5"
-    // InternalSignalDSL.g:15224:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
+    // InternalSignalDSL.g:15382:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
     public final void rule__XConstructorCall__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15228:1: ( rule__XConstructorCall__Group__5__Impl )
-            // InternalSignalDSL.g:15229:2: rule__XConstructorCall__Group__5__Impl
+            // InternalSignalDSL.g:15386:1: ( rule__XConstructorCall__Group__5__Impl )
+            // InternalSignalDSL.g:15387:2: rule__XConstructorCall__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group__5__Impl();
@@ -50507,27 +51115,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__5__Impl"
-    // InternalSignalDSL.g:15235:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
+    // InternalSignalDSL.g:15393:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
     public final void rule__XConstructorCall__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15239:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
-            // InternalSignalDSL.g:15240:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalSignalDSL.g:15397:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
+            // InternalSignalDSL.g:15398:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
             {
-            // InternalSignalDSL.g:15240:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
-            // InternalSignalDSL.g:15241:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            // InternalSignalDSL.g:15398:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalSignalDSL.g:15399:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); 
             }
-            // InternalSignalDSL.g:15242:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
-            int alt122=2;
-            alt122 = dfa122.predict(input);
-            switch (alt122) {
+            // InternalSignalDSL.g:15400:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            int alt125=2;
+            alt125 = dfa125.predict(input);
+            switch (alt125) {
                 case 1 :
-                    // InternalSignalDSL.g:15242:3: rule__XConstructorCall__ArgumentsAssignment_5
+                    // InternalSignalDSL.g:15400:3: rule__XConstructorCall__ArgumentsAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__ArgumentsAssignment_5();
@@ -50565,16 +51173,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__0"
-    // InternalSignalDSL.g:15251:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
+    // InternalSignalDSL.g:15409:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
     public final void rule__XConstructorCall__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15255:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
-            // InternalSignalDSL.g:15256:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
+            // InternalSignalDSL.g:15413:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
+            // InternalSignalDSL.g:15414:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__XConstructorCall__Group_3__0__Impl();
 
             state._fsp--;
@@ -50603,25 +51211,25 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__0__Impl"
-    // InternalSignalDSL.g:15263:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
+    // InternalSignalDSL.g:15421:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
     public final void rule__XConstructorCall__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15267:1: ( ( ( '<' ) ) )
-            // InternalSignalDSL.g:15268:1: ( ( '<' ) )
+            // InternalSignalDSL.g:15425:1: ( ( ( '<' ) ) )
+            // InternalSignalDSL.g:15426:1: ( ( '<' ) )
             {
-            // InternalSignalDSL.g:15268:1: ( ( '<' ) )
-            // InternalSignalDSL.g:15269:2: ( '<' )
+            // InternalSignalDSL.g:15426:1: ( ( '<' ) )
+            // InternalSignalDSL.g:15427:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); 
             }
-            // InternalSignalDSL.g:15270:2: ( '<' )
-            // InternalSignalDSL.g:15270:3: '<'
+            // InternalSignalDSL.g:15428:2: ( '<' )
+            // InternalSignalDSL.g:15428:3: '<'
             {
-            match(input,27,FOLLOW_2); if (state.failed) return ;
+            match(input,28,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -50650,16 +51258,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__1"
-    // InternalSignalDSL.g:15278:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
+    // InternalSignalDSL.g:15436:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
     public final void rule__XConstructorCall__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15282:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
-            // InternalSignalDSL.g:15283:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
+            // InternalSignalDSL.g:15440:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
+            // InternalSignalDSL.g:15441:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_75);
             rule__XConstructorCall__Group_3__1__Impl();
 
             state._fsp--;
@@ -50688,23 +51296,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__1__Impl"
-    // InternalSignalDSL.g:15290:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
+    // InternalSignalDSL.g:15448:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
     public final void rule__XConstructorCall__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15294:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
-            // InternalSignalDSL.g:15295:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalSignalDSL.g:15452:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
+            // InternalSignalDSL.g:15453:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
             {
-            // InternalSignalDSL.g:15295:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
-            // InternalSignalDSL.g:15296:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalSignalDSL.g:15453:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalSignalDSL.g:15454:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); 
             }
-            // InternalSignalDSL.g:15297:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
-            // InternalSignalDSL.g:15297:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
+            // InternalSignalDSL.g:15455:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalSignalDSL.g:15455:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__TypeArgumentsAssignment_3_1();
@@ -50739,16 +51347,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__2"
-    // InternalSignalDSL.g:15305:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
+    // InternalSignalDSL.g:15463:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
     public final void rule__XConstructorCall__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15309:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
-            // InternalSignalDSL.g:15310:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
+            // InternalSignalDSL.g:15467:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
+            // InternalSignalDSL.g:15468:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_75);
             rule__XConstructorCall__Group_3__2__Impl();
 
             state._fsp--;
@@ -50777,37 +51385,37 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__2__Impl"
-    // InternalSignalDSL.g:15317:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
+    // InternalSignalDSL.g:15475:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
     public final void rule__XConstructorCall__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15321:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
-            // InternalSignalDSL.g:15322:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalSignalDSL.g:15479:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
+            // InternalSignalDSL.g:15480:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
             {
-            // InternalSignalDSL.g:15322:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
-            // InternalSignalDSL.g:15323:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            // InternalSignalDSL.g:15480:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalSignalDSL.g:15481:2: ( rule__XConstructorCall__Group_3_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); 
             }
-            // InternalSignalDSL.g:15324:2: ( rule__XConstructorCall__Group_3_2__0 )*
-            loop123:
+            // InternalSignalDSL.g:15482:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            loop126:
             do {
-                int alt123=2;
-                int LA123_0 = input.LA(1);
+                int alt126=2;
+                int LA126_0 = input.LA(1);
 
-                if ( (LA123_0==80) ) {
-                    alt123=1;
+                if ( (LA126_0==82) ) {
+                    alt126=1;
                 }
 
 
-                switch (alt123) {
+                switch (alt126) {
             	case 1 :
-            	    // InternalSignalDSL.g:15324:3: rule__XConstructorCall__Group_3_2__0
+            	    // InternalSignalDSL.g:15482:3: rule__XConstructorCall__Group_3_2__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XConstructorCall__Group_3_2__0();
 
             	    state._fsp--;
@@ -50817,7 +51425,7 @@
             	    break;
 
             	default :
-            	    break loop123;
+            	    break loop126;
                 }
             } while (true);
 
@@ -50846,14 +51454,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__3"
-    // InternalSignalDSL.g:15332:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
+    // InternalSignalDSL.g:15490:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
     public final void rule__XConstructorCall__Group_3__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15336:1: ( rule__XConstructorCall__Group_3__3__Impl )
-            // InternalSignalDSL.g:15337:2: rule__XConstructorCall__Group_3__3__Impl
+            // InternalSignalDSL.g:15494:1: ( rule__XConstructorCall__Group_3__3__Impl )
+            // InternalSignalDSL.g:15495:2: rule__XConstructorCall__Group_3__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_3__3__Impl();
@@ -50879,22 +51487,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__3__Impl"
-    // InternalSignalDSL.g:15343:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:15501:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
     public final void rule__XConstructorCall__Group_3__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15347:1: ( ( '>' ) )
-            // InternalSignalDSL.g:15348:1: ( '>' )
+            // InternalSignalDSL.g:15505:1: ( ( '>' ) )
+            // InternalSignalDSL.g:15506:1: ( '>' )
             {
-            // InternalSignalDSL.g:15348:1: ( '>' )
-            // InternalSignalDSL.g:15349:2: '>'
+            // InternalSignalDSL.g:15506:1: ( '>' )
+            // InternalSignalDSL.g:15507:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); 
             }
-            match(input,26,FOLLOW_2); if (state.failed) return ;
+            match(input,27,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); 
             }
@@ -50920,16 +51528,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__0"
-    // InternalSignalDSL.g:15359:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
+    // InternalSignalDSL.g:15517:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
     public final void rule__XConstructorCall__Group_3_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15363:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
-            // InternalSignalDSL.g:15364:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
+            // InternalSignalDSL.g:15521:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
+            // InternalSignalDSL.g:15522:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__XConstructorCall__Group_3_2__0__Impl();
 
             state._fsp--;
@@ -50958,22 +51566,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__0__Impl"
-    // InternalSignalDSL.g:15371:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:15529:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
     public final void rule__XConstructorCall__Group_3_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15375:1: ( ( ',' ) )
-            // InternalSignalDSL.g:15376:1: ( ',' )
+            // InternalSignalDSL.g:15533:1: ( ( ',' ) )
+            // InternalSignalDSL.g:15534:1: ( ',' )
             {
-            // InternalSignalDSL.g:15376:1: ( ',' )
-            // InternalSignalDSL.g:15377:2: ','
+            // InternalSignalDSL.g:15534:1: ( ',' )
+            // InternalSignalDSL.g:15535:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
             }
@@ -50999,14 +51607,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__1"
-    // InternalSignalDSL.g:15386:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
+    // InternalSignalDSL.g:15544:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
     public final void rule__XConstructorCall__Group_3_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15390:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
-            // InternalSignalDSL.g:15391:2: rule__XConstructorCall__Group_3_2__1__Impl
+            // InternalSignalDSL.g:15548:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
+            // InternalSignalDSL.g:15549:2: rule__XConstructorCall__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_3_2__1__Impl();
@@ -51032,23 +51640,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__1__Impl"
-    // InternalSignalDSL.g:15397:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
+    // InternalSignalDSL.g:15555:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
     public final void rule__XConstructorCall__Group_3_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15401:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
-            // InternalSignalDSL.g:15402:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalSignalDSL.g:15559:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
+            // InternalSignalDSL.g:15560:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
             {
-            // InternalSignalDSL.g:15402:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
-            // InternalSignalDSL.g:15403:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalSignalDSL.g:15560:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalSignalDSL.g:15561:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); 
             }
-            // InternalSignalDSL.g:15404:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
-            // InternalSignalDSL.g:15404:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
+            // InternalSignalDSL.g:15562:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalSignalDSL.g:15562:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__TypeArgumentsAssignment_3_2_1();
@@ -51083,16 +51691,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__0"
-    // InternalSignalDSL.g:15413:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
+    // InternalSignalDSL.g:15571:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
     public final void rule__XConstructorCall__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15417:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
-            // InternalSignalDSL.g:15418:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
+            // InternalSignalDSL.g:15575:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
+            // InternalSignalDSL.g:15576:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
             {
-            pushFollow(FOLLOW_77);
+            pushFollow(FOLLOW_76);
             rule__XConstructorCall__Group_4__0__Impl();
 
             state._fsp--;
@@ -51121,23 +51729,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__0__Impl"
-    // InternalSignalDSL.g:15425:1: rule__XConstructorCall__Group_4__0__Impl : ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) ;
+    // InternalSignalDSL.g:15583:1: rule__XConstructorCall__Group_4__0__Impl : ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) ;
     public final void rule__XConstructorCall__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15429:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
-            // InternalSignalDSL.g:15430:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalSignalDSL.g:15587:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
+            // InternalSignalDSL.g:15588:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
             {
-            // InternalSignalDSL.g:15430:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
-            // InternalSignalDSL.g:15431:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalSignalDSL.g:15588:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalSignalDSL.g:15589:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); 
             }
-            // InternalSignalDSL.g:15432:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
-            // InternalSignalDSL.g:15432:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
+            // InternalSignalDSL.g:15590:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalSignalDSL.g:15590:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0();
@@ -51172,16 +51780,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__1"
-    // InternalSignalDSL.g:15440:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
+    // InternalSignalDSL.g:15598:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
     public final void rule__XConstructorCall__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15444:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
-            // InternalSignalDSL.g:15445:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
+            // InternalSignalDSL.g:15602:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
+            // InternalSignalDSL.g:15603:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
             {
-            pushFollow(FOLLOW_77);
+            pushFollow(FOLLOW_76);
             rule__XConstructorCall__Group_4__1__Impl();
 
             state._fsp--;
@@ -51210,31 +51818,31 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__1__Impl"
-    // InternalSignalDSL.g:15452:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
+    // InternalSignalDSL.g:15610:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
     public final void rule__XConstructorCall__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15456:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
-            // InternalSignalDSL.g:15457:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalSignalDSL.g:15614:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
+            // InternalSignalDSL.g:15615:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
             {
-            // InternalSignalDSL.g:15457:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
-            // InternalSignalDSL.g:15458:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            // InternalSignalDSL.g:15615:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalSignalDSL.g:15616:2: ( rule__XConstructorCall__Alternatives_4_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); 
             }
-            // InternalSignalDSL.g:15459:2: ( rule__XConstructorCall__Alternatives_4_1 )?
-            int alt124=2;
-            int LA124_0 = input.LA(1);
+            // InternalSignalDSL.g:15617:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            int alt127=2;
+            int LA127_0 = input.LA(1);
 
-            if ( ((LA124_0>=RULE_ID && LA124_0<=RULE_STRING)||LA124_0==27||LA124_0==31||(LA124_0>=34 && LA124_0<=35)||LA124_0==40||(LA124_0>=45 && LA124_0<=50)||LA124_0==62||LA124_0==78||(LA124_0>=82 && LA124_0<=83)||LA124_0==86||LA124_0==88||(LA124_0>=91 && LA124_0<=99)||LA124_0==101||LA124_0==109||LA124_0==111) ) {
-                alt124=1;
+            if ( ((LA127_0>=RULE_ID && LA127_0<=RULE_STRING)||LA127_0==28||LA127_0==32||(LA127_0>=35 && LA127_0<=36)||LA127_0==41||(LA127_0>=46 && LA127_0<=51)||LA127_0==63||LA127_0==80||(LA127_0>=84 && LA127_0<=85)||LA127_0==88||LA127_0==90||(LA127_0>=93 && LA127_0<=101)||LA127_0==103||LA127_0==113||LA127_0==115) ) {
+                alt127=1;
             }
-            switch (alt124) {
+            switch (alt127) {
                 case 1 :
-                    // InternalSignalDSL.g:15459:3: rule__XConstructorCall__Alternatives_4_1
+                    // InternalSignalDSL.g:15617:3: rule__XConstructorCall__Alternatives_4_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Alternatives_4_1();
@@ -51272,14 +51880,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__2"
-    // InternalSignalDSL.g:15467:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
+    // InternalSignalDSL.g:15625:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
     public final void rule__XConstructorCall__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15471:1: ( rule__XConstructorCall__Group_4__2__Impl )
-            // InternalSignalDSL.g:15472:2: rule__XConstructorCall__Group_4__2__Impl
+            // InternalSignalDSL.g:15629:1: ( rule__XConstructorCall__Group_4__2__Impl )
+            // InternalSignalDSL.g:15630:2: rule__XConstructorCall__Group_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4__2__Impl();
@@ -51305,22 +51913,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__2__Impl"
-    // InternalSignalDSL.g:15478:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:15636:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
     public final void rule__XConstructorCall__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15482:1: ( ( ')' ) )
-            // InternalSignalDSL.g:15483:1: ( ')' )
+            // InternalSignalDSL.g:15640:1: ( ( ')' ) )
+            // InternalSignalDSL.g:15641:1: ( ')' )
             {
-            // InternalSignalDSL.g:15483:1: ( ')' )
-            // InternalSignalDSL.g:15484:2: ')'
+            // InternalSignalDSL.g:15641:1: ( ')' )
+            // InternalSignalDSL.g:15642:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
             }
@@ -51346,16 +51954,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0"
-    // InternalSignalDSL.g:15494:1: rule__XConstructorCall__Group_4_1_1__0 : rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 ;
+    // InternalSignalDSL.g:15652:1: rule__XConstructorCall__Group_4_1_1__0 : rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 ;
     public final void rule__XConstructorCall__Group_4_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15498:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
-            // InternalSignalDSL.g:15499:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
+            // InternalSignalDSL.g:15656:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
+            // InternalSignalDSL.g:15657:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XConstructorCall__Group_4_1_1__0__Impl();
 
             state._fsp--;
@@ -51384,23 +51992,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0__Impl"
-    // InternalSignalDSL.g:15506:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
+    // InternalSignalDSL.g:15664:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
     public final void rule__XConstructorCall__Group_4_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15510:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
-            // InternalSignalDSL.g:15511:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalSignalDSL.g:15668:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
+            // InternalSignalDSL.g:15669:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
             {
-            // InternalSignalDSL.g:15511:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
-            // InternalSignalDSL.g:15512:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalSignalDSL.g:15669:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalSignalDSL.g:15670:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); 
             }
-            // InternalSignalDSL.g:15513:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
-            // InternalSignalDSL.g:15513:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
+            // InternalSignalDSL.g:15671:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalSignalDSL.g:15671:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ArgumentsAssignment_4_1_1_0();
@@ -51435,14 +52043,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1"
-    // InternalSignalDSL.g:15521:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
+    // InternalSignalDSL.g:15679:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
     public final void rule__XConstructorCall__Group_4_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15525:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
-            // InternalSignalDSL.g:15526:2: rule__XConstructorCall__Group_4_1_1__1__Impl
+            // InternalSignalDSL.g:15683:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
+            // InternalSignalDSL.g:15684:2: rule__XConstructorCall__Group_4_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4_1_1__1__Impl();
@@ -51468,37 +52076,37 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1__Impl"
-    // InternalSignalDSL.g:15532:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
+    // InternalSignalDSL.g:15690:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
     public final void rule__XConstructorCall__Group_4_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15536:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
-            // InternalSignalDSL.g:15537:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalSignalDSL.g:15694:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
+            // InternalSignalDSL.g:15695:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
             {
-            // InternalSignalDSL.g:15537:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
-            // InternalSignalDSL.g:15538:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            // InternalSignalDSL.g:15695:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalSignalDSL.g:15696:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); 
             }
-            // InternalSignalDSL.g:15539:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
-            loop125:
+            // InternalSignalDSL.g:15697:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            loop128:
             do {
-                int alt125=2;
-                int LA125_0 = input.LA(1);
+                int alt128=2;
+                int LA128_0 = input.LA(1);
 
-                if ( (LA125_0==80) ) {
-                    alt125=1;
+                if ( (LA128_0==82) ) {
+                    alt128=1;
                 }
 
 
-                switch (alt125) {
+                switch (alt128) {
             	case 1 :
-            	    // InternalSignalDSL.g:15539:3: rule__XConstructorCall__Group_4_1_1_1__0
+            	    // InternalSignalDSL.g:15697:3: rule__XConstructorCall__Group_4_1_1_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XConstructorCall__Group_4_1_1_1__0();
 
             	    state._fsp--;
@@ -51508,7 +52116,7 @@
             	    break;
 
             	default :
-            	    break loop125;
+            	    break loop128;
                 }
             } while (true);
 
@@ -51537,16 +52145,16 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0"
-    // InternalSignalDSL.g:15548:1: rule__XConstructorCall__Group_4_1_1_1__0 : rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 ;
+    // InternalSignalDSL.g:15706:1: rule__XConstructorCall__Group_4_1_1_1__0 : rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 ;
     public final void rule__XConstructorCall__Group_4_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15552:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
-            // InternalSignalDSL.g:15553:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
+            // InternalSignalDSL.g:15710:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
+            // InternalSignalDSL.g:15711:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XConstructorCall__Group_4_1_1_1__0__Impl();
 
             state._fsp--;
@@ -51575,22 +52183,22 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0__Impl"
-    // InternalSignalDSL.g:15560:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:15718:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XConstructorCall__Group_4_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15564:1: ( ( ',' ) )
-            // InternalSignalDSL.g:15565:1: ( ',' )
+            // InternalSignalDSL.g:15722:1: ( ( ',' ) )
+            // InternalSignalDSL.g:15723:1: ( ',' )
             {
-            // InternalSignalDSL.g:15565:1: ( ',' )
-            // InternalSignalDSL.g:15566:2: ','
+            // InternalSignalDSL.g:15723:1: ( ',' )
+            // InternalSignalDSL.g:15724:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
             }
@@ -51616,14 +52224,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1"
-    // InternalSignalDSL.g:15575:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
+    // InternalSignalDSL.g:15733:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
     public final void rule__XConstructorCall__Group_4_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15579:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
-            // InternalSignalDSL.g:15580:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
+            // InternalSignalDSL.g:15737:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
+            // InternalSignalDSL.g:15738:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4_1_1_1__1__Impl();
@@ -51649,23 +52257,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1__Impl"
-    // InternalSignalDSL.g:15586:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
+    // InternalSignalDSL.g:15744:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
     public final void rule__XConstructorCall__Group_4_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15590:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
-            // InternalSignalDSL.g:15591:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalSignalDSL.g:15748:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
+            // InternalSignalDSL.g:15749:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
             {
-            // InternalSignalDSL.g:15591:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
-            // InternalSignalDSL.g:15592:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalSignalDSL.g:15749:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalSignalDSL.g:15750:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); 
             }
-            // InternalSignalDSL.g:15593:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
-            // InternalSignalDSL.g:15593:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
+            // InternalSignalDSL.g:15751:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalSignalDSL.g:15751:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1();
@@ -51700,16 +52308,16 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__0"
-    // InternalSignalDSL.g:15602:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
+    // InternalSignalDSL.g:15760:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
     public final void rule__XBooleanLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15606:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
-            // InternalSignalDSL.g:15607:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
+            // InternalSignalDSL.g:15764:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
+            // InternalSignalDSL.g:15765:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
             {
-            pushFollow(FOLLOW_101);
+            pushFollow(FOLLOW_100);
             rule__XBooleanLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -51738,23 +52346,23 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:15614:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:15772:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XBooleanLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15618:1: ( ( () ) )
-            // InternalSignalDSL.g:15619:1: ( () )
+            // InternalSignalDSL.g:15776:1: ( ( () ) )
+            // InternalSignalDSL.g:15777:1: ( () )
             {
-            // InternalSignalDSL.g:15619:1: ( () )
-            // InternalSignalDSL.g:15620:2: ()
+            // InternalSignalDSL.g:15777:1: ( () )
+            // InternalSignalDSL.g:15778:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:15621:2: ()
-            // InternalSignalDSL.g:15621:3: 
+            // InternalSignalDSL.g:15779:2: ()
+            // InternalSignalDSL.g:15779:3: 
             {
             }
 
@@ -51779,14 +52387,14 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__1"
-    // InternalSignalDSL.g:15629:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
+    // InternalSignalDSL.g:15787:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
     public final void rule__XBooleanLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15633:1: ( rule__XBooleanLiteral__Group__1__Impl )
-            // InternalSignalDSL.g:15634:2: rule__XBooleanLiteral__Group__1__Impl
+            // InternalSignalDSL.g:15791:1: ( rule__XBooleanLiteral__Group__1__Impl )
+            // InternalSignalDSL.g:15792:2: rule__XBooleanLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Group__1__Impl();
@@ -51812,23 +52420,23 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:15640:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
+    // InternalSignalDSL.g:15798:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
     public final void rule__XBooleanLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15644:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
-            // InternalSignalDSL.g:15645:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalSignalDSL.g:15802:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
+            // InternalSignalDSL.g:15803:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
             {
-            // InternalSignalDSL.g:15645:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
-            // InternalSignalDSL.g:15646:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalSignalDSL.g:15803:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalSignalDSL.g:15804:2: ( rule__XBooleanLiteral__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); 
             }
-            // InternalSignalDSL.g:15647:2: ( rule__XBooleanLiteral__Alternatives_1 )
-            // InternalSignalDSL.g:15647:3: rule__XBooleanLiteral__Alternatives_1
+            // InternalSignalDSL.g:15805:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalSignalDSL.g:15805:3: rule__XBooleanLiteral__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Alternatives_1();
@@ -51863,16 +52471,16 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__0"
-    // InternalSignalDSL.g:15656:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
+    // InternalSignalDSL.g:15814:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
     public final void rule__XNullLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15660:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
-            // InternalSignalDSL.g:15661:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
+            // InternalSignalDSL.g:15818:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
+            // InternalSignalDSL.g:15819:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
             {
-            pushFollow(FOLLOW_102);
+            pushFollow(FOLLOW_101);
             rule__XNullLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -51901,23 +52509,23 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:15668:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:15826:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XNullLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15672:1: ( ( () ) )
-            // InternalSignalDSL.g:15673:1: ( () )
+            // InternalSignalDSL.g:15830:1: ( ( () ) )
+            // InternalSignalDSL.g:15831:1: ( () )
             {
-            // InternalSignalDSL.g:15673:1: ( () )
-            // InternalSignalDSL.g:15674:2: ()
+            // InternalSignalDSL.g:15831:1: ( () )
+            // InternalSignalDSL.g:15832:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:15675:2: ()
-            // InternalSignalDSL.g:15675:3: 
+            // InternalSignalDSL.g:15833:2: ()
+            // InternalSignalDSL.g:15833:3: 
             {
             }
 
@@ -51942,14 +52550,14 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__1"
-    // InternalSignalDSL.g:15683:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
+    // InternalSignalDSL.g:15841:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
     public final void rule__XNullLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15687:1: ( rule__XNullLiteral__Group__1__Impl )
-            // InternalSignalDSL.g:15688:2: rule__XNullLiteral__Group__1__Impl
+            // InternalSignalDSL.g:15845:1: ( rule__XNullLiteral__Group__1__Impl )
+            // InternalSignalDSL.g:15846:2: rule__XNullLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XNullLiteral__Group__1__Impl();
@@ -51975,22 +52583,22 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:15694:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
+    // InternalSignalDSL.g:15852:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
     public final void rule__XNullLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15698:1: ( ( 'null' ) )
-            // InternalSignalDSL.g:15699:1: ( 'null' )
+            // InternalSignalDSL.g:15856:1: ( ( 'null' ) )
+            // InternalSignalDSL.g:15857:1: ( 'null' )
             {
-            // InternalSignalDSL.g:15699:1: ( 'null' )
-            // InternalSignalDSL.g:15700:2: 'null'
+            // InternalSignalDSL.g:15857:1: ( 'null' )
+            // InternalSignalDSL.g:15858:2: 'null'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
             }
-            match(input,95,FOLLOW_2); if (state.failed) return ;
+            match(input,97,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
             }
@@ -52016,16 +52624,16 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__0"
-    // InternalSignalDSL.g:15710:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
+    // InternalSignalDSL.g:15868:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
     public final void rule__XNumberLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15714:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
-            // InternalSignalDSL.g:15715:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
+            // InternalSignalDSL.g:15872:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
+            // InternalSignalDSL.g:15873:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
             {
-            pushFollow(FOLLOW_103);
+            pushFollow(FOLLOW_102);
             rule__XNumberLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -52054,23 +52662,23 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:15722:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:15880:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XNumberLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15726:1: ( ( () ) )
-            // InternalSignalDSL.g:15727:1: ( () )
+            // InternalSignalDSL.g:15884:1: ( ( () ) )
+            // InternalSignalDSL.g:15885:1: ( () )
             {
-            // InternalSignalDSL.g:15727:1: ( () )
-            // InternalSignalDSL.g:15728:2: ()
+            // InternalSignalDSL.g:15885:1: ( () )
+            // InternalSignalDSL.g:15886:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:15729:2: ()
-            // InternalSignalDSL.g:15729:3: 
+            // InternalSignalDSL.g:15887:2: ()
+            // InternalSignalDSL.g:15887:3: 
             {
             }
 
@@ -52095,14 +52703,14 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__1"
-    // InternalSignalDSL.g:15737:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
+    // InternalSignalDSL.g:15895:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
     public final void rule__XNumberLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15741:1: ( rule__XNumberLiteral__Group__1__Impl )
-            // InternalSignalDSL.g:15742:2: rule__XNumberLiteral__Group__1__Impl
+            // InternalSignalDSL.g:15899:1: ( rule__XNumberLiteral__Group__1__Impl )
+            // InternalSignalDSL.g:15900:2: rule__XNumberLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__Group__1__Impl();
@@ -52128,23 +52736,23 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:15748:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
+    // InternalSignalDSL.g:15906:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
     public final void rule__XNumberLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15752:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
-            // InternalSignalDSL.g:15753:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalSignalDSL.g:15910:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
+            // InternalSignalDSL.g:15911:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
             {
-            // InternalSignalDSL.g:15753:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
-            // InternalSignalDSL.g:15754:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalSignalDSL.g:15911:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalSignalDSL.g:15912:2: ( rule__XNumberLiteral__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); 
             }
-            // InternalSignalDSL.g:15755:2: ( rule__XNumberLiteral__ValueAssignment_1 )
-            // InternalSignalDSL.g:15755:3: rule__XNumberLiteral__ValueAssignment_1
+            // InternalSignalDSL.g:15913:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalSignalDSL.g:15913:3: rule__XNumberLiteral__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__ValueAssignment_1();
@@ -52179,16 +52787,16 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__0"
-    // InternalSignalDSL.g:15764:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
+    // InternalSignalDSL.g:15922:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
     public final void rule__XStringLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15768:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
-            // InternalSignalDSL.g:15769:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
+            // InternalSignalDSL.g:15926:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
+            // InternalSignalDSL.g:15927:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
             {
-            pushFollow(FOLLOW_13);
+            pushFollow(FOLLOW_12);
             rule__XStringLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -52217,23 +52825,23 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:15776:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:15934:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XStringLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15780:1: ( ( () ) )
-            // InternalSignalDSL.g:15781:1: ( () )
+            // InternalSignalDSL.g:15938:1: ( ( () ) )
+            // InternalSignalDSL.g:15939:1: ( () )
             {
-            // InternalSignalDSL.g:15781:1: ( () )
-            // InternalSignalDSL.g:15782:2: ()
+            // InternalSignalDSL.g:15939:1: ( () )
+            // InternalSignalDSL.g:15940:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:15783:2: ()
-            // InternalSignalDSL.g:15783:3: 
+            // InternalSignalDSL.g:15941:2: ()
+            // InternalSignalDSL.g:15941:3: 
             {
             }
 
@@ -52258,14 +52866,14 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__1"
-    // InternalSignalDSL.g:15791:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
+    // InternalSignalDSL.g:15949:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
     public final void rule__XStringLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15795:1: ( rule__XStringLiteral__Group__1__Impl )
-            // InternalSignalDSL.g:15796:2: rule__XStringLiteral__Group__1__Impl
+            // InternalSignalDSL.g:15953:1: ( rule__XStringLiteral__Group__1__Impl )
+            // InternalSignalDSL.g:15954:2: rule__XStringLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__Group__1__Impl();
@@ -52291,23 +52899,23 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:15802:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
+    // InternalSignalDSL.g:15960:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
     public final void rule__XStringLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15806:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
-            // InternalSignalDSL.g:15807:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalSignalDSL.g:15964:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
+            // InternalSignalDSL.g:15965:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
             {
-            // InternalSignalDSL.g:15807:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
-            // InternalSignalDSL.g:15808:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalSignalDSL.g:15965:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalSignalDSL.g:15966:2: ( rule__XStringLiteral__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); 
             }
-            // InternalSignalDSL.g:15809:2: ( rule__XStringLiteral__ValueAssignment_1 )
-            // InternalSignalDSL.g:15809:3: rule__XStringLiteral__ValueAssignment_1
+            // InternalSignalDSL.g:15967:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalSignalDSL.g:15967:3: rule__XStringLiteral__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__ValueAssignment_1();
@@ -52342,16 +52950,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__0"
-    // InternalSignalDSL.g:15818:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
+    // InternalSignalDSL.g:15976:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
     public final void rule__XTypeLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15822:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
-            // InternalSignalDSL.g:15823:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
+            // InternalSignalDSL.g:15980:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
+            // InternalSignalDSL.g:15981:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
             {
-            pushFollow(FOLLOW_104);
+            pushFollow(FOLLOW_103);
             rule__XTypeLiteral__Group__0__Impl();
 
             state._fsp--;
@@ -52380,23 +52988,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__0__Impl"
-    // InternalSignalDSL.g:15830:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:15988:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XTypeLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15834:1: ( ( () ) )
-            // InternalSignalDSL.g:15835:1: ( () )
+            // InternalSignalDSL.g:15992:1: ( ( () ) )
+            // InternalSignalDSL.g:15993:1: ( () )
             {
-            // InternalSignalDSL.g:15835:1: ( () )
-            // InternalSignalDSL.g:15836:2: ()
+            // InternalSignalDSL.g:15993:1: ( () )
+            // InternalSignalDSL.g:15994:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); 
             }
-            // InternalSignalDSL.g:15837:2: ()
-            // InternalSignalDSL.g:15837:3: 
+            // InternalSignalDSL.g:15995:2: ()
+            // InternalSignalDSL.g:15995:3: 
             {
             }
 
@@ -52421,16 +53029,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__1"
-    // InternalSignalDSL.g:15845:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
+    // InternalSignalDSL.g:16003:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
     public final void rule__XTypeLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15849:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
-            // InternalSignalDSL.g:15850:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
+            // InternalSignalDSL.g:16007:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
+            // InternalSignalDSL.g:16008:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_33);
             rule__XTypeLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -52459,22 +53067,22 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__1__Impl"
-    // InternalSignalDSL.g:15857:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
+    // InternalSignalDSL.g:16015:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
     public final void rule__XTypeLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15861:1: ( ( 'typeof' ) )
-            // InternalSignalDSL.g:15862:1: ( 'typeof' )
+            // InternalSignalDSL.g:16019:1: ( ( 'typeof' ) )
+            // InternalSignalDSL.g:16020:1: ( 'typeof' )
             {
-            // InternalSignalDSL.g:15862:1: ( 'typeof' )
-            // InternalSignalDSL.g:15863:2: 'typeof'
+            // InternalSignalDSL.g:16020:1: ( 'typeof' )
+            // InternalSignalDSL.g:16021:2: 'typeof'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
             }
-            match(input,96,FOLLOW_2); if (state.failed) return ;
+            match(input,98,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
             }
@@ -52500,14 +53108,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__2"
-    // InternalSignalDSL.g:15872:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
+    // InternalSignalDSL.g:16030:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
     public final void rule__XTypeLiteral__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15876:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
-            // InternalSignalDSL.g:15877:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
+            // InternalSignalDSL.g:16034:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
+            // InternalSignalDSL.g:16035:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
             {
             pushFollow(FOLLOW_6);
             rule__XTypeLiteral__Group__2__Impl();
@@ -52538,22 +53146,22 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__2__Impl"
-    // InternalSignalDSL.g:15884:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:16042:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
     public final void rule__XTypeLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15888:1: ( ( '(' ) )
-            // InternalSignalDSL.g:15889:1: ( '(' )
+            // InternalSignalDSL.g:16046:1: ( ( '(' ) )
+            // InternalSignalDSL.g:16047:1: ( '(' )
             {
-            // InternalSignalDSL.g:15889:1: ( '(' )
-            // InternalSignalDSL.g:15890:2: '('
+            // InternalSignalDSL.g:16047:1: ( '(' )
+            // InternalSignalDSL.g:16048:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
             }
@@ -52579,16 +53187,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__3"
-    // InternalSignalDSL.g:15899:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
+    // InternalSignalDSL.g:16057:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
     public final void rule__XTypeLiteral__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15903:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
-            // InternalSignalDSL.g:15904:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
+            // InternalSignalDSL.g:16061:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
+            // InternalSignalDSL.g:16062:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
             {
-            pushFollow(FOLLOW_105);
+            pushFollow(FOLLOW_104);
             rule__XTypeLiteral__Group__3__Impl();
 
             state._fsp--;
@@ -52617,23 +53225,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__3__Impl"
-    // InternalSignalDSL.g:15911:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
+    // InternalSignalDSL.g:16069:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
     public final void rule__XTypeLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15915:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
-            // InternalSignalDSL.g:15916:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalSignalDSL.g:16073:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
+            // InternalSignalDSL.g:16074:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
             {
-            // InternalSignalDSL.g:15916:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
-            // InternalSignalDSL.g:15917:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalSignalDSL.g:16074:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalSignalDSL.g:16075:2: ( rule__XTypeLiteral__TypeAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); 
             }
-            // InternalSignalDSL.g:15918:2: ( rule__XTypeLiteral__TypeAssignment_3 )
-            // InternalSignalDSL.g:15918:3: rule__XTypeLiteral__TypeAssignment_3
+            // InternalSignalDSL.g:16076:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalSignalDSL.g:16076:3: rule__XTypeLiteral__TypeAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__TypeAssignment_3();
@@ -52668,16 +53276,16 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__4"
-    // InternalSignalDSL.g:15926:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
+    // InternalSignalDSL.g:16084:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
     public final void rule__XTypeLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15930:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
-            // InternalSignalDSL.g:15931:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
+            // InternalSignalDSL.g:16088:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
+            // InternalSignalDSL.g:16089:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
             {
-            pushFollow(FOLLOW_105);
+            pushFollow(FOLLOW_104);
             rule__XTypeLiteral__Group__4__Impl();
 
             state._fsp--;
@@ -52706,37 +53314,37 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__4__Impl"
-    // InternalSignalDSL.g:15938:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
+    // InternalSignalDSL.g:16096:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
     public final void rule__XTypeLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15942:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
-            // InternalSignalDSL.g:15943:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalSignalDSL.g:16100:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
+            // InternalSignalDSL.g:16101:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
             {
-            // InternalSignalDSL.g:15943:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
-            // InternalSignalDSL.g:15944:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            // InternalSignalDSL.g:16101:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalSignalDSL.g:16102:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); 
             }
-            // InternalSignalDSL.g:15945:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
-            loop126:
+            // InternalSignalDSL.g:16103:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            loop129:
             do {
-                int alt126=2;
-                int LA126_0 = input.LA(1);
+                int alt129=2;
+                int LA129_0 = input.LA(1);
 
-                if ( (LA126_0==83) ) {
-                    alt126=1;
+                if ( (LA129_0==85) ) {
+                    alt129=1;
                 }
 
 
-                switch (alt126) {
+                switch (alt129) {
             	case 1 :
-            	    // InternalSignalDSL.g:15945:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
+            	    // InternalSignalDSL.g:16103:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
             	    {
-            	    pushFollow(FOLLOW_106);
+            	    pushFollow(FOLLOW_105);
             	    rule__XTypeLiteral__ArrayDimensionsAssignment_4();
 
             	    state._fsp--;
@@ -52746,7 +53354,7 @@
             	    break;
 
             	default :
-            	    break loop126;
+            	    break loop129;
                 }
             } while (true);
 
@@ -52775,14 +53383,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__5"
-    // InternalSignalDSL.g:15953:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
+    // InternalSignalDSL.g:16111:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
     public final void rule__XTypeLiteral__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15957:1: ( rule__XTypeLiteral__Group__5__Impl )
-            // InternalSignalDSL.g:15958:2: rule__XTypeLiteral__Group__5__Impl
+            // InternalSignalDSL.g:16115:1: ( rule__XTypeLiteral__Group__5__Impl )
+            // InternalSignalDSL.g:16116:2: rule__XTypeLiteral__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__Group__5__Impl();
@@ -52808,22 +53416,22 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__5__Impl"
-    // InternalSignalDSL.g:15964:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:16122:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
     public final void rule__XTypeLiteral__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15968:1: ( ( ')' ) )
-            // InternalSignalDSL.g:15969:1: ( ')' )
+            // InternalSignalDSL.g:16126:1: ( ( ')' ) )
+            // InternalSignalDSL.g:16127:1: ( ')' )
             {
-            // InternalSignalDSL.g:15969:1: ( ')' )
-            // InternalSignalDSL.g:15970:2: ')'
+            // InternalSignalDSL.g:16127:1: ( ')' )
+            // InternalSignalDSL.g:16128:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
             }
@@ -52849,16 +53457,16 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__0"
-    // InternalSignalDSL.g:15980:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
+    // InternalSignalDSL.g:16138:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
     public final void rule__XThrowExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15984:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
-            // InternalSignalDSL.g:15985:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
+            // InternalSignalDSL.g:16142:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
+            // InternalSignalDSL.g:16143:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
             {
-            pushFollow(FOLLOW_107);
+            pushFollow(FOLLOW_106);
             rule__XThrowExpression__Group__0__Impl();
 
             state._fsp--;
@@ -52887,23 +53495,23 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__0__Impl"
-    // InternalSignalDSL.g:15992:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:16150:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
     public final void rule__XThrowExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:15996:1: ( ( () ) )
-            // InternalSignalDSL.g:15997:1: ( () )
+            // InternalSignalDSL.g:16154:1: ( ( () ) )
+            // InternalSignalDSL.g:16155:1: ( () )
             {
-            // InternalSignalDSL.g:15997:1: ( () )
-            // InternalSignalDSL.g:15998:2: ()
+            // InternalSignalDSL.g:16155:1: ( () )
+            // InternalSignalDSL.g:16156:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:15999:2: ()
-            // InternalSignalDSL.g:15999:3: 
+            // InternalSignalDSL.g:16157:2: ()
+            // InternalSignalDSL.g:16157:3: 
             {
             }
 
@@ -52928,16 +53536,16 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__1"
-    // InternalSignalDSL.g:16007:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
+    // InternalSignalDSL.g:16165:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
     public final void rule__XThrowExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16011:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
-            // InternalSignalDSL.g:16012:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
+            // InternalSignalDSL.g:16169:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
+            // InternalSignalDSL.g:16170:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XThrowExpression__Group__1__Impl();
 
             state._fsp--;
@@ -52966,22 +53574,22 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__1__Impl"
-    // InternalSignalDSL.g:16019:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
+    // InternalSignalDSL.g:16177:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
     public final void rule__XThrowExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16023:1: ( ( 'throw' ) )
-            // InternalSignalDSL.g:16024:1: ( 'throw' )
+            // InternalSignalDSL.g:16181:1: ( ( 'throw' ) )
+            // InternalSignalDSL.g:16182:1: ( 'throw' )
             {
-            // InternalSignalDSL.g:16024:1: ( 'throw' )
-            // InternalSignalDSL.g:16025:2: 'throw'
+            // InternalSignalDSL.g:16182:1: ( 'throw' )
+            // InternalSignalDSL.g:16183:2: 'throw'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
             }
-            match(input,97,FOLLOW_2); if (state.failed) return ;
+            match(input,99,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
             }
@@ -53007,14 +53615,14 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__2"
-    // InternalSignalDSL.g:16034:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
+    // InternalSignalDSL.g:16192:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
     public final void rule__XThrowExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16038:1: ( rule__XThrowExpression__Group__2__Impl )
-            // InternalSignalDSL.g:16039:2: rule__XThrowExpression__Group__2__Impl
+            // InternalSignalDSL.g:16196:1: ( rule__XThrowExpression__Group__2__Impl )
+            // InternalSignalDSL.g:16197:2: rule__XThrowExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__Group__2__Impl();
@@ -53040,23 +53648,23 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__2__Impl"
-    // InternalSignalDSL.g:16045:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
+    // InternalSignalDSL.g:16203:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
     public final void rule__XThrowExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16049:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
-            // InternalSignalDSL.g:16050:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalSignalDSL.g:16207:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
+            // InternalSignalDSL.g:16208:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
             {
-            // InternalSignalDSL.g:16050:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
-            // InternalSignalDSL.g:16051:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalSignalDSL.g:16208:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalSignalDSL.g:16209:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalSignalDSL.g:16052:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
-            // InternalSignalDSL.g:16052:3: rule__XThrowExpression__ExpressionAssignment_2
+            // InternalSignalDSL.g:16210:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalSignalDSL.g:16210:3: rule__XThrowExpression__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__ExpressionAssignment_2();
@@ -53091,16 +53699,16 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__0"
-    // InternalSignalDSL.g:16061:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
+    // InternalSignalDSL.g:16219:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
     public final void rule__XReturnExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16065:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
-            // InternalSignalDSL.g:16066:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
+            // InternalSignalDSL.g:16223:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
+            // InternalSignalDSL.g:16224:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
             {
-            pushFollow(FOLLOW_108);
+            pushFollow(FOLLOW_107);
             rule__XReturnExpression__Group__0__Impl();
 
             state._fsp--;
@@ -53129,23 +53737,23 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__0__Impl"
-    // InternalSignalDSL.g:16073:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:16231:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
     public final void rule__XReturnExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16077:1: ( ( () ) )
-            // InternalSignalDSL.g:16078:1: ( () )
+            // InternalSignalDSL.g:16235:1: ( ( () ) )
+            // InternalSignalDSL.g:16236:1: ( () )
             {
-            // InternalSignalDSL.g:16078:1: ( () )
-            // InternalSignalDSL.g:16079:2: ()
+            // InternalSignalDSL.g:16236:1: ( () )
+            // InternalSignalDSL.g:16237:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:16080:2: ()
-            // InternalSignalDSL.g:16080:3: 
+            // InternalSignalDSL.g:16238:2: ()
+            // InternalSignalDSL.g:16238:3: 
             {
             }
 
@@ -53170,16 +53778,16 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__1"
-    // InternalSignalDSL.g:16088:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
+    // InternalSignalDSL.g:16246:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
     public final void rule__XReturnExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16092:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
-            // InternalSignalDSL.g:16093:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
+            // InternalSignalDSL.g:16250:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
+            // InternalSignalDSL.g:16251:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XReturnExpression__Group__1__Impl();
 
             state._fsp--;
@@ -53208,22 +53816,22 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__1__Impl"
-    // InternalSignalDSL.g:16100:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
+    // InternalSignalDSL.g:16258:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
     public final void rule__XReturnExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16104:1: ( ( 'return' ) )
-            // InternalSignalDSL.g:16105:1: ( 'return' )
+            // InternalSignalDSL.g:16262:1: ( ( 'return' ) )
+            // InternalSignalDSL.g:16263:1: ( 'return' )
             {
-            // InternalSignalDSL.g:16105:1: ( 'return' )
-            // InternalSignalDSL.g:16106:2: 'return'
+            // InternalSignalDSL.g:16263:1: ( 'return' )
+            // InternalSignalDSL.g:16264:2: 'return'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
             }
-            match(input,98,FOLLOW_2); if (state.failed) return ;
+            match(input,100,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
             }
@@ -53249,14 +53857,14 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__2"
-    // InternalSignalDSL.g:16115:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
+    // InternalSignalDSL.g:16273:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
     public final void rule__XReturnExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16119:1: ( rule__XReturnExpression__Group__2__Impl )
-            // InternalSignalDSL.g:16120:2: rule__XReturnExpression__Group__2__Impl
+            // InternalSignalDSL.g:16277:1: ( rule__XReturnExpression__Group__2__Impl )
+            // InternalSignalDSL.g:16278:2: rule__XReturnExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XReturnExpression__Group__2__Impl();
@@ -53282,27 +53890,27 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__2__Impl"
-    // InternalSignalDSL.g:16126:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
+    // InternalSignalDSL.g:16284:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
     public final void rule__XReturnExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16130:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
-            // InternalSignalDSL.g:16131:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalSignalDSL.g:16288:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
+            // InternalSignalDSL.g:16289:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
             {
-            // InternalSignalDSL.g:16131:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
-            // InternalSignalDSL.g:16132:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            // InternalSignalDSL.g:16289:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalSignalDSL.g:16290:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalSignalDSL.g:16133:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
-            int alt127=2;
-            alt127 = dfa127.predict(input);
-            switch (alt127) {
+            // InternalSignalDSL.g:16291:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            int alt130=2;
+            alt130 = dfa130.predict(input);
+            switch (alt130) {
                 case 1 :
-                    // InternalSignalDSL.g:16133:3: rule__XReturnExpression__ExpressionAssignment_2
+                    // InternalSignalDSL.g:16291:3: rule__XReturnExpression__ExpressionAssignment_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XReturnExpression__ExpressionAssignment_2();
@@ -53340,16 +53948,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0"
-    // InternalSignalDSL.g:16142:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
+    // InternalSignalDSL.g:16300:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
     public final void rule__XTryCatchFinallyExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16146:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
-            // InternalSignalDSL.g:16147:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
+            // InternalSignalDSL.g:16304:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
+            // InternalSignalDSL.g:16305:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
             {
-            pushFollow(FOLLOW_109);
+            pushFollow(FOLLOW_108);
             rule__XTryCatchFinallyExpression__Group__0__Impl();
 
             state._fsp--;
@@ -53378,23 +53986,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0__Impl"
-    // InternalSignalDSL.g:16154:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:16312:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
     public final void rule__XTryCatchFinallyExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16158:1: ( ( () ) )
-            // InternalSignalDSL.g:16159:1: ( () )
+            // InternalSignalDSL.g:16316:1: ( ( () ) )
+            // InternalSignalDSL.g:16317:1: ( () )
             {
-            // InternalSignalDSL.g:16159:1: ( () )
-            // InternalSignalDSL.g:16160:2: ()
+            // InternalSignalDSL.g:16317:1: ( () )
+            // InternalSignalDSL.g:16318:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); 
             }
-            // InternalSignalDSL.g:16161:2: ()
-            // InternalSignalDSL.g:16161:3: 
+            // InternalSignalDSL.g:16319:2: ()
+            // InternalSignalDSL.g:16319:3: 
             {
             }
 
@@ -53419,16 +54027,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1"
-    // InternalSignalDSL.g:16169:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
+    // InternalSignalDSL.g:16327:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
     public final void rule__XTryCatchFinallyExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16173:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
-            // InternalSignalDSL.g:16174:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
+            // InternalSignalDSL.g:16331:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
+            // InternalSignalDSL.g:16332:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XTryCatchFinallyExpression__Group__1__Impl();
 
             state._fsp--;
@@ -53457,22 +54065,22 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1__Impl"
-    // InternalSignalDSL.g:16181:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
+    // InternalSignalDSL.g:16339:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
     public final void rule__XTryCatchFinallyExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16185:1: ( ( 'try' ) )
-            // InternalSignalDSL.g:16186:1: ( 'try' )
+            // InternalSignalDSL.g:16343:1: ( ( 'try' ) )
+            // InternalSignalDSL.g:16344:1: ( 'try' )
             {
-            // InternalSignalDSL.g:16186:1: ( 'try' )
-            // InternalSignalDSL.g:16187:2: 'try'
+            // InternalSignalDSL.g:16344:1: ( 'try' )
+            // InternalSignalDSL.g:16345:2: 'try'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
             }
-            match(input,99,FOLLOW_2); if (state.failed) return ;
+            match(input,101,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
             }
@@ -53498,16 +54106,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2"
-    // InternalSignalDSL.g:16196:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
+    // InternalSignalDSL.g:16354:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
     public final void rule__XTryCatchFinallyExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16200:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
-            // InternalSignalDSL.g:16201:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
+            // InternalSignalDSL.g:16358:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
+            // InternalSignalDSL.g:16359:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
             {
-            pushFollow(FOLLOW_110);
+            pushFollow(FOLLOW_109);
             rule__XTryCatchFinallyExpression__Group__2__Impl();
 
             state._fsp--;
@@ -53536,23 +54144,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2__Impl"
-    // InternalSignalDSL.g:16208:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
+    // InternalSignalDSL.g:16366:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16212:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
-            // InternalSignalDSL.g:16213:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalSignalDSL.g:16370:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
+            // InternalSignalDSL.g:16371:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
             {
-            // InternalSignalDSL.g:16213:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
-            // InternalSignalDSL.g:16214:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalSignalDSL.g:16371:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalSignalDSL.g:16372:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalSignalDSL.g:16215:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
-            // InternalSignalDSL.g:16215:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
+            // InternalSignalDSL.g:16373:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalSignalDSL.g:16373:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__ExpressionAssignment_2();
@@ -53587,14 +54195,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3"
-    // InternalSignalDSL.g:16223:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
+    // InternalSignalDSL.g:16381:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16227:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
-            // InternalSignalDSL.g:16228:2: rule__XTryCatchFinallyExpression__Group__3__Impl
+            // InternalSignalDSL.g:16385:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
+            // InternalSignalDSL.g:16386:2: rule__XTryCatchFinallyExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group__3__Impl();
@@ -53620,23 +54228,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3__Impl"
-    // InternalSignalDSL.g:16234:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
+    // InternalSignalDSL.g:16392:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16238:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
-            // InternalSignalDSL.g:16239:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalSignalDSL.g:16396:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
+            // InternalSignalDSL.g:16397:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
             {
-            // InternalSignalDSL.g:16239:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
-            // InternalSignalDSL.g:16240:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalSignalDSL.g:16397:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalSignalDSL.g:16398:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); 
             }
-            // InternalSignalDSL.g:16241:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
-            // InternalSignalDSL.g:16241:3: rule__XTryCatchFinallyExpression__Alternatives_3
+            // InternalSignalDSL.g:16399:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalSignalDSL.g:16399:3: rule__XTryCatchFinallyExpression__Alternatives_3
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Alternatives_3();
@@ -53671,16 +54279,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0"
-    // InternalSignalDSL.g:16250:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
+    // InternalSignalDSL.g:16408:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16254:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
-            // InternalSignalDSL.g:16255:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
+            // InternalSignalDSL.g:16412:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
+            // InternalSignalDSL.g:16413:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
             {
-            pushFollow(FOLLOW_111);
+            pushFollow(FOLLOW_110);
             rule__XTryCatchFinallyExpression__Group_3_0__0__Impl();
 
             state._fsp--;
@@ -53709,28 +54317,28 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0__Impl"
-    // InternalSignalDSL.g:16262:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
+    // InternalSignalDSL.g:16420:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16266:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
-            // InternalSignalDSL.g:16267:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalSignalDSL.g:16424:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
+            // InternalSignalDSL.g:16425:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
             {
-            // InternalSignalDSL.g:16267:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
-            // InternalSignalDSL.g:16268:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalSignalDSL.g:16425:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalSignalDSL.g:16426:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
             {
-            // InternalSignalDSL.g:16268:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
-            // InternalSignalDSL.g:16269:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalSignalDSL.g:16426:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
+            // InternalSignalDSL.g:16427:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
             }
-            // InternalSignalDSL.g:16270:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
-            // InternalSignalDSL.g:16270:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            // InternalSignalDSL.g:16428:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalSignalDSL.g:16428:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
             {
-            pushFollow(FOLLOW_112);
+            pushFollow(FOLLOW_111);
             rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
 
             state._fsp--;
@@ -53744,34 +54352,34 @@
 
             }
 
-            // InternalSignalDSL.g:16273:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
-            // InternalSignalDSL.g:16274:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            // InternalSignalDSL.g:16431:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalSignalDSL.g:16432:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
             }
-            // InternalSignalDSL.g:16275:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
-            loop128:
+            // InternalSignalDSL.g:16433:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            loop131:
             do {
-                int alt128=2;
-                int LA128_0 = input.LA(1);
+                int alt131=2;
+                int LA131_0 = input.LA(1);
 
-                if ( (LA128_0==102) ) {
-                    int LA128_2 = input.LA(2);
+                if ( (LA131_0==104) ) {
+                    int LA131_2 = input.LA(2);
 
-                    if ( (synpred180_InternalSignalDSL()) ) {
-                        alt128=1;
+                    if ( (synpred184_InternalSignalDSL()) ) {
+                        alt131=1;
                     }
 
 
                 }
 
 
-                switch (alt128) {
+                switch (alt131) {
             	case 1 :
-            	    // InternalSignalDSL.g:16275:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            	    // InternalSignalDSL.g:16433:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
             	    {
-            	    pushFollow(FOLLOW_112);
+            	    pushFollow(FOLLOW_111);
             	    rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
 
             	    state._fsp--;
@@ -53781,7 +54389,7 @@
             	    break;
 
             	default :
-            	    break loop128;
+            	    break loop131;
                 }
             } while (true);
 
@@ -53813,14 +54421,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1"
-    // InternalSignalDSL.g:16284:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
+    // InternalSignalDSL.g:16442:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16288:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
-            // InternalSignalDSL.g:16289:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
+            // InternalSignalDSL.g:16446:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
+            // InternalSignalDSL.g:16447:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_0__1__Impl();
@@ -53846,35 +54454,35 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1__Impl"
-    // InternalSignalDSL.g:16295:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
+    // InternalSignalDSL.g:16453:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16299:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
-            // InternalSignalDSL.g:16300:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalSignalDSL.g:16457:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
+            // InternalSignalDSL.g:16458:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
             {
-            // InternalSignalDSL.g:16300:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
-            // InternalSignalDSL.g:16301:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            // InternalSignalDSL.g:16458:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalSignalDSL.g:16459:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); 
             }
-            // InternalSignalDSL.g:16302:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
-            int alt129=2;
-            int LA129_0 = input.LA(1);
+            // InternalSignalDSL.g:16460:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            int alt132=2;
+            int LA132_0 = input.LA(1);
 
-            if ( (LA129_0==100) ) {
-                int LA129_1 = input.LA(2);
+            if ( (LA132_0==102) ) {
+                int LA132_1 = input.LA(2);
 
-                if ( (synpred181_InternalSignalDSL()) ) {
-                    alt129=1;
+                if ( (synpred185_InternalSignalDSL()) ) {
+                    alt132=1;
                 }
             }
-            switch (alt129) {
+            switch (alt132) {
                 case 1 :
-                    // InternalSignalDSL.g:16302:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+                    // InternalSignalDSL.g:16460:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_0_1__0();
@@ -53912,16 +54520,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0"
-    // InternalSignalDSL.g:16311:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0 : rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 ;
+    // InternalSignalDSL.g:16469:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0 : rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16315:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
-            // InternalSignalDSL.g:16316:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
+            // InternalSignalDSL.g:16473:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
+            // InternalSignalDSL.g:16474:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl();
 
             state._fsp--;
@@ -53950,25 +54558,25 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl"
-    // InternalSignalDSL.g:16323:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
+    // InternalSignalDSL.g:16481:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16327:1: ( ( ( 'finally' ) ) )
-            // InternalSignalDSL.g:16328:1: ( ( 'finally' ) )
+            // InternalSignalDSL.g:16485:1: ( ( ( 'finally' ) ) )
+            // InternalSignalDSL.g:16486:1: ( ( 'finally' ) )
             {
-            // InternalSignalDSL.g:16328:1: ( ( 'finally' ) )
-            // InternalSignalDSL.g:16329:2: ( 'finally' )
+            // InternalSignalDSL.g:16486:1: ( ( 'finally' ) )
+            // InternalSignalDSL.g:16487:2: ( 'finally' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); 
             }
-            // InternalSignalDSL.g:16330:2: ( 'finally' )
-            // InternalSignalDSL.g:16330:3: 'finally'
+            // InternalSignalDSL.g:16488:2: ( 'finally' )
+            // InternalSignalDSL.g:16488:3: 'finally'
             {
-            match(input,100,FOLLOW_2); if (state.failed) return ;
+            match(input,102,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -53997,14 +54605,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1"
-    // InternalSignalDSL.g:16338:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
+    // InternalSignalDSL.g:16496:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16342:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
-            // InternalSignalDSL.g:16343:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
+            // InternalSignalDSL.g:16500:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
+            // InternalSignalDSL.g:16501:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl();
@@ -54030,23 +54638,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl"
-    // InternalSignalDSL.g:16349:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
+    // InternalSignalDSL.g:16507:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16353:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
-            // InternalSignalDSL.g:16354:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalSignalDSL.g:16511:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
+            // InternalSignalDSL.g:16512:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
             {
-            // InternalSignalDSL.g:16354:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
-            // InternalSignalDSL.g:16355:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalSignalDSL.g:16512:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalSignalDSL.g:16513:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); 
             }
-            // InternalSignalDSL.g:16356:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
-            // InternalSignalDSL.g:16356:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
+            // InternalSignalDSL.g:16514:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalSignalDSL.g:16514:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1();
@@ -54081,16 +54689,16 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0"
-    // InternalSignalDSL.g:16365:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
+    // InternalSignalDSL.g:16523:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16369:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
-            // InternalSignalDSL.g:16370:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
+            // InternalSignalDSL.g:16527:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
+            // InternalSignalDSL.g:16528:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XTryCatchFinallyExpression__Group_3_1__0__Impl();
 
             state._fsp--;
@@ -54119,22 +54727,22 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0__Impl"
-    // InternalSignalDSL.g:16377:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
+    // InternalSignalDSL.g:16535:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16381:1: ( ( 'finally' ) )
-            // InternalSignalDSL.g:16382:1: ( 'finally' )
+            // InternalSignalDSL.g:16539:1: ( ( 'finally' ) )
+            // InternalSignalDSL.g:16540:1: ( 'finally' )
             {
-            // InternalSignalDSL.g:16382:1: ( 'finally' )
-            // InternalSignalDSL.g:16383:2: 'finally'
+            // InternalSignalDSL.g:16540:1: ( 'finally' )
+            // InternalSignalDSL.g:16541:2: 'finally'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
             }
-            match(input,100,FOLLOW_2); if (state.failed) return ;
+            match(input,102,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
             }
@@ -54160,14 +54768,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1"
-    // InternalSignalDSL.g:16392:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
+    // InternalSignalDSL.g:16550:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16396:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
-            // InternalSignalDSL.g:16397:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
+            // InternalSignalDSL.g:16554:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
+            // InternalSignalDSL.g:16555:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_1__1__Impl();
@@ -54193,23 +54801,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1__Impl"
-    // InternalSignalDSL.g:16403:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
+    // InternalSignalDSL.g:16561:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16407:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
-            // InternalSignalDSL.g:16408:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:16565:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
+            // InternalSignalDSL.g:16566:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
             {
-            // InternalSignalDSL.g:16408:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
-            // InternalSignalDSL.g:16409:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalSignalDSL.g:16566:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalSignalDSL.g:16567:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); 
             }
-            // InternalSignalDSL.g:16410:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
-            // InternalSignalDSL.g:16410:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
+            // InternalSignalDSL.g:16568:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalSignalDSL.g:16568:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1();
@@ -54244,16 +54852,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__0"
-    // InternalSignalDSL.g:16419:1: rule__XSynchronizedExpression__Group__0 : rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 ;
+    // InternalSignalDSL.g:16577:1: rule__XSynchronizedExpression__Group__0 : rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 ;
     public final void rule__XSynchronizedExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16423:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
-            // InternalSignalDSL.g:16424:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
+            // InternalSignalDSL.g:16581:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
+            // InternalSignalDSL.g:16582:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XSynchronizedExpression__Group__0__Impl();
 
             state._fsp--;
@@ -54282,23 +54890,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__0__Impl"
-    // InternalSignalDSL.g:16431:1: rule__XSynchronizedExpression__Group__0__Impl : ( ( rule__XSynchronizedExpression__Group_0__0 ) ) ;
+    // InternalSignalDSL.g:16589:1: rule__XSynchronizedExpression__Group__0__Impl : ( ( rule__XSynchronizedExpression__Group_0__0 ) ) ;
     public final void rule__XSynchronizedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16435:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
-            // InternalSignalDSL.g:16436:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalSignalDSL.g:16593:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
+            // InternalSignalDSL.g:16594:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
             {
-            // InternalSignalDSL.g:16436:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
-            // InternalSignalDSL.g:16437:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalSignalDSL.g:16594:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalSignalDSL.g:16595:2: ( rule__XSynchronizedExpression__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); 
             }
-            // InternalSignalDSL.g:16438:2: ( rule__XSynchronizedExpression__Group_0__0 )
-            // InternalSignalDSL.g:16438:3: rule__XSynchronizedExpression__Group_0__0
+            // InternalSignalDSL.g:16596:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalSignalDSL.g:16596:3: rule__XSynchronizedExpression__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0__0();
@@ -54333,16 +54941,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__1"
-    // InternalSignalDSL.g:16446:1: rule__XSynchronizedExpression__Group__1 : rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 ;
+    // InternalSignalDSL.g:16604:1: rule__XSynchronizedExpression__Group__1 : rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 ;
     public final void rule__XSynchronizedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16450:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
-            // InternalSignalDSL.g:16451:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
+            // InternalSignalDSL.g:16608:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
+            // InternalSignalDSL.g:16609:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_82);
             rule__XSynchronizedExpression__Group__1__Impl();
 
             state._fsp--;
@@ -54371,23 +54979,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__1__Impl"
-    // InternalSignalDSL.g:16458:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
+    // InternalSignalDSL.g:16616:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
     public final void rule__XSynchronizedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16462:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
-            // InternalSignalDSL.g:16463:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalSignalDSL.g:16620:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
+            // InternalSignalDSL.g:16621:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
             {
-            // InternalSignalDSL.g:16463:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
-            // InternalSignalDSL.g:16464:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalSignalDSL.g:16621:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalSignalDSL.g:16622:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); 
             }
-            // InternalSignalDSL.g:16465:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
-            // InternalSignalDSL.g:16465:3: rule__XSynchronizedExpression__ParamAssignment_1
+            // InternalSignalDSL.g:16623:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalSignalDSL.g:16623:3: rule__XSynchronizedExpression__ParamAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__ParamAssignment_1();
@@ -54422,16 +55030,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__2"
-    // InternalSignalDSL.g:16473:1: rule__XSynchronizedExpression__Group__2 : rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 ;
+    // InternalSignalDSL.g:16631:1: rule__XSynchronizedExpression__Group__2 : rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 ;
     public final void rule__XSynchronizedExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16477:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
-            // InternalSignalDSL.g:16478:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
+            // InternalSignalDSL.g:16635:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
+            // InternalSignalDSL.g:16636:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XSynchronizedExpression__Group__2__Impl();
 
             state._fsp--;
@@ -54460,22 +55068,22 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__2__Impl"
-    // InternalSignalDSL.g:16485:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:16643:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XSynchronizedExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16489:1: ( ( ')' ) )
-            // InternalSignalDSL.g:16490:1: ( ')' )
+            // InternalSignalDSL.g:16647:1: ( ( ')' ) )
+            // InternalSignalDSL.g:16648:1: ( ')' )
             {
-            // InternalSignalDSL.g:16490:1: ( ')' )
-            // InternalSignalDSL.g:16491:2: ')'
+            // InternalSignalDSL.g:16648:1: ( ')' )
+            // InternalSignalDSL.g:16649:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
             }
@@ -54501,14 +55109,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__3"
-    // InternalSignalDSL.g:16500:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
+    // InternalSignalDSL.g:16658:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
     public final void rule__XSynchronizedExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16504:1: ( rule__XSynchronizedExpression__Group__3__Impl )
-            // InternalSignalDSL.g:16505:2: rule__XSynchronizedExpression__Group__3__Impl
+            // InternalSignalDSL.g:16662:1: ( rule__XSynchronizedExpression__Group__3__Impl )
+            // InternalSignalDSL.g:16663:2: rule__XSynchronizedExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group__3__Impl();
@@ -54534,23 +55142,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__3__Impl"
-    // InternalSignalDSL.g:16511:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
+    // InternalSignalDSL.g:16669:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
     public final void rule__XSynchronizedExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16515:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
-            // InternalSignalDSL.g:16516:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalSignalDSL.g:16673:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
+            // InternalSignalDSL.g:16674:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
             {
-            // InternalSignalDSL.g:16516:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
-            // InternalSignalDSL.g:16517:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalSignalDSL.g:16674:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalSignalDSL.g:16675:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); 
             }
-            // InternalSignalDSL.g:16518:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
-            // InternalSignalDSL.g:16518:3: rule__XSynchronizedExpression__ExpressionAssignment_3
+            // InternalSignalDSL.g:16676:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalSignalDSL.g:16676:3: rule__XSynchronizedExpression__ExpressionAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__ExpressionAssignment_3();
@@ -54585,14 +55193,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0__0"
-    // InternalSignalDSL.g:16527:1: rule__XSynchronizedExpression__Group_0__0 : rule__XSynchronizedExpression__Group_0__0__Impl ;
+    // InternalSignalDSL.g:16685:1: rule__XSynchronizedExpression__Group_0__0 : rule__XSynchronizedExpression__Group_0__0__Impl ;
     public final void rule__XSynchronizedExpression__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16531:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
-            // InternalSignalDSL.g:16532:2: rule__XSynchronizedExpression__Group_0__0__Impl
+            // InternalSignalDSL.g:16689:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
+            // InternalSignalDSL.g:16690:2: rule__XSynchronizedExpression__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0__0__Impl();
@@ -54618,23 +55226,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0__0__Impl"
-    // InternalSignalDSL.g:16538:1: rule__XSynchronizedExpression__Group_0__0__Impl : ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) ;
+    // InternalSignalDSL.g:16696:1: rule__XSynchronizedExpression__Group_0__0__Impl : ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) ;
     public final void rule__XSynchronizedExpression__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16542:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
-            // InternalSignalDSL.g:16543:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalSignalDSL.g:16700:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
+            // InternalSignalDSL.g:16701:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
             {
-            // InternalSignalDSL.g:16543:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
-            // InternalSignalDSL.g:16544:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalSignalDSL.g:16701:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalSignalDSL.g:16702:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); 
             }
-            // InternalSignalDSL.g:16545:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
-            // InternalSignalDSL.g:16545:3: rule__XSynchronizedExpression__Group_0_0__0
+            // InternalSignalDSL.g:16703:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalSignalDSL.g:16703:3: rule__XSynchronizedExpression__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0_0__0();
@@ -54669,16 +55277,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0"
-    // InternalSignalDSL.g:16554:1: rule__XSynchronizedExpression__Group_0_0__0 : rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 ;
+    // InternalSignalDSL.g:16712:1: rule__XSynchronizedExpression__Group_0_0__0 : rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 ;
     public final void rule__XSynchronizedExpression__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16558:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
-            // InternalSignalDSL.g:16559:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
+            // InternalSignalDSL.g:16716:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
+            // InternalSignalDSL.g:16717:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
             {
-            pushFollow(FOLLOW_113);
+            pushFollow(FOLLOW_112);
             rule__XSynchronizedExpression__Group_0_0__0__Impl();
 
             state._fsp--;
@@ -54707,23 +55315,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0__Impl"
-    // InternalSignalDSL.g:16566:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:16724:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16570:1: ( ( () ) )
-            // InternalSignalDSL.g:16571:1: ( () )
+            // InternalSignalDSL.g:16728:1: ( ( () ) )
+            // InternalSignalDSL.g:16729:1: ( () )
             {
-            // InternalSignalDSL.g:16571:1: ( () )
-            // InternalSignalDSL.g:16572:2: ()
+            // InternalSignalDSL.g:16729:1: ( () )
+            // InternalSignalDSL.g:16730:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); 
             }
-            // InternalSignalDSL.g:16573:2: ()
-            // InternalSignalDSL.g:16573:3: 
+            // InternalSignalDSL.g:16731:2: ()
+            // InternalSignalDSL.g:16731:3: 
             {
             }
 
@@ -54748,16 +55356,16 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1"
-    // InternalSignalDSL.g:16581:1: rule__XSynchronizedExpression__Group_0_0__1 : rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 ;
+    // InternalSignalDSL.g:16739:1: rule__XSynchronizedExpression__Group_0_0__1 : rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 ;
     public final void rule__XSynchronizedExpression__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16585:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
-            // InternalSignalDSL.g:16586:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
+            // InternalSignalDSL.g:16743:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
+            // InternalSignalDSL.g:16744:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_33);
             rule__XSynchronizedExpression__Group_0_0__1__Impl();
 
             state._fsp--;
@@ -54786,22 +55394,22 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1__Impl"
-    // InternalSignalDSL.g:16593:1: rule__XSynchronizedExpression__Group_0_0__1__Impl : ( 'synchronized' ) ;
+    // InternalSignalDSL.g:16751:1: rule__XSynchronizedExpression__Group_0_0__1__Impl : ( 'synchronized' ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16597:1: ( ( 'synchronized' ) )
-            // InternalSignalDSL.g:16598:1: ( 'synchronized' )
+            // InternalSignalDSL.g:16755:1: ( ( 'synchronized' ) )
+            // InternalSignalDSL.g:16756:1: ( 'synchronized' )
             {
-            // InternalSignalDSL.g:16598:1: ( 'synchronized' )
-            // InternalSignalDSL.g:16599:2: 'synchronized'
+            // InternalSignalDSL.g:16756:1: ( 'synchronized' )
+            // InternalSignalDSL.g:16757:2: 'synchronized'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
             }
-            match(input,101,FOLLOW_2); if (state.failed) return ;
+            match(input,103,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
             }
@@ -54827,14 +55435,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2"
-    // InternalSignalDSL.g:16608:1: rule__XSynchronizedExpression__Group_0_0__2 : rule__XSynchronizedExpression__Group_0_0__2__Impl ;
+    // InternalSignalDSL.g:16766:1: rule__XSynchronizedExpression__Group_0_0__2 : rule__XSynchronizedExpression__Group_0_0__2__Impl ;
     public final void rule__XSynchronizedExpression__Group_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16612:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
-            // InternalSignalDSL.g:16613:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
+            // InternalSignalDSL.g:16770:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
+            // InternalSignalDSL.g:16771:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0_0__2__Impl();
@@ -54860,22 +55468,22 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2__Impl"
-    // InternalSignalDSL.g:16619:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:16777:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16623:1: ( ( '(' ) )
-            // InternalSignalDSL.g:16624:1: ( '(' )
+            // InternalSignalDSL.g:16781:1: ( ( '(' ) )
+            // InternalSignalDSL.g:16782:1: ( '(' )
             {
-            // InternalSignalDSL.g:16624:1: ( '(' )
-            // InternalSignalDSL.g:16625:2: '('
+            // InternalSignalDSL.g:16782:1: ( '(' )
+            // InternalSignalDSL.g:16783:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
             }
@@ -54901,16 +55509,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__0"
-    // InternalSignalDSL.g:16635:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
+    // InternalSignalDSL.g:16793:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
     public final void rule__XCatchClause__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16639:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
-            // InternalSignalDSL.g:16640:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
+            // InternalSignalDSL.g:16797:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
+            // InternalSignalDSL.g:16798:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_33);
             rule__XCatchClause__Group__0__Impl();
 
             state._fsp--;
@@ -54939,25 +55547,25 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__0__Impl"
-    // InternalSignalDSL.g:16647:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
+    // InternalSignalDSL.g:16805:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
     public final void rule__XCatchClause__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16651:1: ( ( ( 'catch' ) ) )
-            // InternalSignalDSL.g:16652:1: ( ( 'catch' ) )
+            // InternalSignalDSL.g:16809:1: ( ( ( 'catch' ) ) )
+            // InternalSignalDSL.g:16810:1: ( ( 'catch' ) )
             {
-            // InternalSignalDSL.g:16652:1: ( ( 'catch' ) )
-            // InternalSignalDSL.g:16653:2: ( 'catch' )
+            // InternalSignalDSL.g:16810:1: ( ( 'catch' ) )
+            // InternalSignalDSL.g:16811:2: ( 'catch' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); 
             }
-            // InternalSignalDSL.g:16654:2: ( 'catch' )
-            // InternalSignalDSL.g:16654:3: 'catch'
+            // InternalSignalDSL.g:16812:2: ( 'catch' )
+            // InternalSignalDSL.g:16812:3: 'catch'
             {
-            match(input,102,FOLLOW_2); if (state.failed) return ;
+            match(input,104,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -54986,16 +55594,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__1"
-    // InternalSignalDSL.g:16662:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
+    // InternalSignalDSL.g:16820:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
     public final void rule__XCatchClause__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16666:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
-            // InternalSignalDSL.g:16667:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
+            // InternalSignalDSL.g:16824:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
+            // InternalSignalDSL.g:16825:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XCatchClause__Group__1__Impl();
 
             state._fsp--;
@@ -55024,22 +55632,22 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__1__Impl"
-    // InternalSignalDSL.g:16674:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:16832:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
     public final void rule__XCatchClause__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16678:1: ( ( '(' ) )
-            // InternalSignalDSL.g:16679:1: ( '(' )
+            // InternalSignalDSL.g:16836:1: ( ( '(' ) )
+            // InternalSignalDSL.g:16837:1: ( '(' )
             {
-            // InternalSignalDSL.g:16679:1: ( '(' )
-            // InternalSignalDSL.g:16680:2: '('
+            // InternalSignalDSL.g:16837:1: ( '(' )
+            // InternalSignalDSL.g:16838:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
             }
@@ -55065,16 +55673,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__2"
-    // InternalSignalDSL.g:16689:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
+    // InternalSignalDSL.g:16847:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
     public final void rule__XCatchClause__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16693:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
-            // InternalSignalDSL.g:16694:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
+            // InternalSignalDSL.g:16851:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
+            // InternalSignalDSL.g:16852:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
             {
-            pushFollow(FOLLOW_83);
+            pushFollow(FOLLOW_82);
             rule__XCatchClause__Group__2__Impl();
 
             state._fsp--;
@@ -55103,23 +55711,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__2__Impl"
-    // InternalSignalDSL.g:16701:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
+    // InternalSignalDSL.g:16859:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
     public final void rule__XCatchClause__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16705:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
-            // InternalSignalDSL.g:16706:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalSignalDSL.g:16863:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
+            // InternalSignalDSL.g:16864:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
             {
-            // InternalSignalDSL.g:16706:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
-            // InternalSignalDSL.g:16707:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalSignalDSL.g:16864:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalSignalDSL.g:16865:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); 
             }
-            // InternalSignalDSL.g:16708:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
-            // InternalSignalDSL.g:16708:3: rule__XCatchClause__DeclaredParamAssignment_2
+            // InternalSignalDSL.g:16866:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalSignalDSL.g:16866:3: rule__XCatchClause__DeclaredParamAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__DeclaredParamAssignment_2();
@@ -55154,16 +55762,16 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__3"
-    // InternalSignalDSL.g:16716:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
+    // InternalSignalDSL.g:16874:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
     public final void rule__XCatchClause__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16720:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
-            // InternalSignalDSL.g:16721:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
+            // InternalSignalDSL.g:16878:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
+            // InternalSignalDSL.g:16879:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_37);
             rule__XCatchClause__Group__3__Impl();
 
             state._fsp--;
@@ -55192,22 +55800,22 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__3__Impl"
-    // InternalSignalDSL.g:16728:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:16886:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
     public final void rule__XCatchClause__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16732:1: ( ( ')' ) )
-            // InternalSignalDSL.g:16733:1: ( ')' )
+            // InternalSignalDSL.g:16890:1: ( ( ')' ) )
+            // InternalSignalDSL.g:16891:1: ( ')' )
             {
-            // InternalSignalDSL.g:16733:1: ( ')' )
-            // InternalSignalDSL.g:16734:2: ')'
+            // InternalSignalDSL.g:16891:1: ( ')' )
+            // InternalSignalDSL.g:16892:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
             }
@@ -55233,14 +55841,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__4"
-    // InternalSignalDSL.g:16743:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
+    // InternalSignalDSL.g:16901:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
     public final void rule__XCatchClause__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16747:1: ( rule__XCatchClause__Group__4__Impl )
-            // InternalSignalDSL.g:16748:2: rule__XCatchClause__Group__4__Impl
+            // InternalSignalDSL.g:16905:1: ( rule__XCatchClause__Group__4__Impl )
+            // InternalSignalDSL.g:16906:2: rule__XCatchClause__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__Group__4__Impl();
@@ -55266,23 +55874,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__4__Impl"
-    // InternalSignalDSL.g:16754:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
+    // InternalSignalDSL.g:16912:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
     public final void rule__XCatchClause__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16758:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
-            // InternalSignalDSL.g:16759:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalSignalDSL.g:16916:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
+            // InternalSignalDSL.g:16917:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
             {
-            // InternalSignalDSL.g:16759:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
-            // InternalSignalDSL.g:16760:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalSignalDSL.g:16917:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalSignalDSL.g:16918:2: ( rule__XCatchClause__ExpressionAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); 
             }
-            // InternalSignalDSL.g:16761:2: ( rule__XCatchClause__ExpressionAssignment_4 )
-            // InternalSignalDSL.g:16761:3: rule__XCatchClause__ExpressionAssignment_4
+            // InternalSignalDSL.g:16919:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalSignalDSL.g:16919:3: rule__XCatchClause__ExpressionAssignment_4
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__ExpressionAssignment_4();
@@ -55317,16 +55925,16 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalSignalDSL.g:16770:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    // InternalSignalDSL.g:16928:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
     public final void rule__QualifiedName__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16774:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalSignalDSL.g:16775:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalSignalDSL.g:16932:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalSignalDSL.g:16933:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
             {
-            pushFollow(FOLLOW_114);
+            pushFollow(FOLLOW_113);
             rule__QualifiedName__Group__0__Impl();
 
             state._fsp--;
@@ -55355,17 +55963,17 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalSignalDSL.g:16782:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
+    // InternalSignalDSL.g:16940:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16786:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:16787:1: ( ruleValidID )
+            // InternalSignalDSL.g:16944:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:16945:1: ( ruleValidID )
             {
-            // InternalSignalDSL.g:16787:1: ( ruleValidID )
-            // InternalSignalDSL.g:16788:2: ruleValidID
+            // InternalSignalDSL.g:16945:1: ( ruleValidID )
+            // InternalSignalDSL.g:16946:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
@@ -55400,14 +56008,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalSignalDSL.g:16797:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    // InternalSignalDSL.g:16955:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
     public final void rule__QualifiedName__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16801:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalSignalDSL.g:16802:2: rule__QualifiedName__Group__1__Impl
+            // InternalSignalDSL.g:16959:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalSignalDSL.g:16960:2: rule__QualifiedName__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__1__Impl();
@@ -55433,35 +56041,35 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalSignalDSL.g:16808:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    // InternalSignalDSL.g:16966:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
     public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16812:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalSignalDSL.g:16813:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalSignalDSL.g:16970:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalSignalDSL.g:16971:1: ( ( rule__QualifiedName__Group_1__0 )* )
             {
-            // InternalSignalDSL.g:16813:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalSignalDSL.g:16814:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalSignalDSL.g:16971:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalSignalDSL.g:16972:2: ( rule__QualifiedName__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:16815:2: ( rule__QualifiedName__Group_1__0 )*
-            loop130:
+            // InternalSignalDSL.g:16973:2: ( rule__QualifiedName__Group_1__0 )*
+            loop133:
             do {
-                int alt130=2;
-                int LA130_0 = input.LA(1);
+                int alt133=2;
+                int LA133_0 = input.LA(1);
 
-                if ( (LA130_0==43) ) {
-                    int LA130_2 = input.LA(2);
+                if ( (LA133_0==44) ) {
+                    int LA133_2 = input.LA(2);
 
-                    if ( (LA130_2==RULE_ID) ) {
-                        int LA130_3 = input.LA(3);
+                    if ( (LA133_2==RULE_ID) ) {
+                        int LA133_3 = input.LA(3);
 
-                        if ( (synpred182_InternalSignalDSL()) ) {
-                            alt130=1;
+                        if ( (synpred186_InternalSignalDSL()) ) {
+                            alt133=1;
                         }
 
 
@@ -55471,11 +56079,11 @@
                 }
 
 
-                switch (alt130) {
+                switch (alt133) {
             	case 1 :
-            	    // InternalSignalDSL.g:16815:3: rule__QualifiedName__Group_1__0
+            	    // InternalSignalDSL.g:16973:3: rule__QualifiedName__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_115);
+            	    pushFollow(FOLLOW_114);
             	    rule__QualifiedName__Group_1__0();
 
             	    state._fsp--;
@@ -55485,7 +56093,7 @@
             	    break;
 
             	default :
-            	    break loop130;
+            	    break loop133;
                 }
             } while (true);
 
@@ -55514,14 +56122,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalSignalDSL.g:16824:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalSignalDSL.g:16982:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
     public final void rule__QualifiedName__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16828:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalSignalDSL.g:16829:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalSignalDSL.g:16986:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalSignalDSL.g:16987:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
             pushFollow(FOLLOW_6);
             rule__QualifiedName__Group_1__0__Impl();
@@ -55552,25 +56160,25 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalSignalDSL.g:16836:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
+    // InternalSignalDSL.g:16994:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16840:1: ( ( ( '.' ) ) )
-            // InternalSignalDSL.g:16841:1: ( ( '.' ) )
+            // InternalSignalDSL.g:16998:1: ( ( ( '.' ) ) )
+            // InternalSignalDSL.g:16999:1: ( ( '.' ) )
             {
-            // InternalSignalDSL.g:16841:1: ( ( '.' ) )
-            // InternalSignalDSL.g:16842:2: ( '.' )
+            // InternalSignalDSL.g:16999:1: ( ( '.' ) )
+            // InternalSignalDSL.g:17000:2: ( '.' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
             }
-            // InternalSignalDSL.g:16843:2: ( '.' )
-            // InternalSignalDSL.g:16843:3: '.'
+            // InternalSignalDSL.g:17001:2: ( '.' )
+            // InternalSignalDSL.g:17001:3: '.'
             {
-            match(input,43,FOLLOW_2); if (state.failed) return ;
+            match(input,44,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -55599,14 +56207,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalSignalDSL.g:16851:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalSignalDSL.g:17009:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
     public final void rule__QualifiedName__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16855:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalSignalDSL.g:16856:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalSignalDSL.g:17013:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalSignalDSL.g:17014:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -55632,17 +56240,17 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalSignalDSL.g:16862:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
+    // InternalSignalDSL.g:17020:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16866:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:16867:1: ( ruleValidID )
+            // InternalSignalDSL.g:17024:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:17025:1: ( ruleValidID )
             {
-            // InternalSignalDSL.g:16867:1: ( ruleValidID )
-            // InternalSignalDSL.g:16868:2: ruleValidID
+            // InternalSignalDSL.g:17025:1: ( ruleValidID )
+            // InternalSignalDSL.g:17026:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
@@ -55677,16 +56285,16 @@
 
 
     // $ANTLR start "rule__Number__Group_1__0"
-    // InternalSignalDSL.g:16878:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
+    // InternalSignalDSL.g:17036:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
     public final void rule__Number__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16882:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
-            // InternalSignalDSL.g:16883:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
+            // InternalSignalDSL.g:17040:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
+            // InternalSignalDSL.g:17041:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
             {
-            pushFollow(FOLLOW_114);
+            pushFollow(FOLLOW_113);
             rule__Number__Group_1__0__Impl();
 
             state._fsp--;
@@ -55715,23 +56323,23 @@
 
 
     // $ANTLR start "rule__Number__Group_1__0__Impl"
-    // InternalSignalDSL.g:16890:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
+    // InternalSignalDSL.g:17048:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
     public final void rule__Number__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16894:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
-            // InternalSignalDSL.g:16895:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalSignalDSL.g:17052:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
+            // InternalSignalDSL.g:17053:1: ( ( rule__Number__Alternatives_1_0 ) )
             {
-            // InternalSignalDSL.g:16895:1: ( ( rule__Number__Alternatives_1_0 ) )
-            // InternalSignalDSL.g:16896:2: ( rule__Number__Alternatives_1_0 )
+            // InternalSignalDSL.g:17053:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalSignalDSL.g:17054:2: ( rule__Number__Alternatives_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives_1_0()); 
             }
-            // InternalSignalDSL.g:16897:2: ( rule__Number__Alternatives_1_0 )
-            // InternalSignalDSL.g:16897:3: rule__Number__Alternatives_1_0
+            // InternalSignalDSL.g:17055:2: ( rule__Number__Alternatives_1_0 )
+            // InternalSignalDSL.g:17055:3: rule__Number__Alternatives_1_0
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives_1_0();
@@ -55766,14 +56374,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1__1"
-    // InternalSignalDSL.g:16905:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
+    // InternalSignalDSL.g:17063:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
     public final void rule__Number__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16909:1: ( rule__Number__Group_1__1__Impl )
-            // InternalSignalDSL.g:16910:2: rule__Number__Group_1__1__Impl
+            // InternalSignalDSL.g:17067:1: ( rule__Number__Group_1__1__Impl )
+            // InternalSignalDSL.g:17068:2: rule__Number__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Number__Group_1__1__Impl();
@@ -55799,35 +56407,35 @@
 
 
     // $ANTLR start "rule__Number__Group_1__1__Impl"
-    // InternalSignalDSL.g:16916:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
+    // InternalSignalDSL.g:17074:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
     public final void rule__Number__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16920:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
-            // InternalSignalDSL.g:16921:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalSignalDSL.g:17078:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
+            // InternalSignalDSL.g:17079:1: ( ( rule__Number__Group_1_1__0 )? )
             {
-            // InternalSignalDSL.g:16921:1: ( ( rule__Number__Group_1_1__0 )? )
-            // InternalSignalDSL.g:16922:2: ( rule__Number__Group_1_1__0 )?
+            // InternalSignalDSL.g:17079:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalSignalDSL.g:17080:2: ( rule__Number__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getGroup_1_1()); 
             }
-            // InternalSignalDSL.g:16923:2: ( rule__Number__Group_1_1__0 )?
-            int alt131=2;
-            int LA131_0 = input.LA(1);
+            // InternalSignalDSL.g:17081:2: ( rule__Number__Group_1_1__0 )?
+            int alt134=2;
+            int LA134_0 = input.LA(1);
 
-            if ( (LA131_0==43) ) {
-                int LA131_1 = input.LA(2);
+            if ( (LA134_0==44) ) {
+                int LA134_1 = input.LA(2);
 
-                if ( ((LA131_1>=RULE_INT && LA131_1<=RULE_DECIMAL)) ) {
-                    alt131=1;
+                if ( ((LA134_1>=RULE_INT && LA134_1<=RULE_DECIMAL)) ) {
+                    alt134=1;
                 }
             }
-            switch (alt131) {
+            switch (alt134) {
                 case 1 :
-                    // InternalSignalDSL.g:16923:3: rule__Number__Group_1_1__0
+                    // InternalSignalDSL.g:17081:3: rule__Number__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Number__Group_1_1__0();
@@ -55865,16 +56473,16 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__0"
-    // InternalSignalDSL.g:16932:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
+    // InternalSignalDSL.g:17090:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
     public final void rule__Number__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16936:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
-            // InternalSignalDSL.g:16937:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
+            // InternalSignalDSL.g:17094:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
+            // InternalSignalDSL.g:17095:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
             {
-            pushFollow(FOLLOW_116);
+            pushFollow(FOLLOW_115);
             rule__Number__Group_1_1__0__Impl();
 
             state._fsp--;
@@ -55903,22 +56511,22 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__0__Impl"
-    // InternalSignalDSL.g:16944:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
+    // InternalSignalDSL.g:17102:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
     public final void rule__Number__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16948:1: ( ( '.' ) )
-            // InternalSignalDSL.g:16949:1: ( '.' )
+            // InternalSignalDSL.g:17106:1: ( ( '.' ) )
+            // InternalSignalDSL.g:17107:1: ( '.' )
             {
-            // InternalSignalDSL.g:16949:1: ( '.' )
-            // InternalSignalDSL.g:16950:2: '.'
+            // InternalSignalDSL.g:17107:1: ( '.' )
+            // InternalSignalDSL.g:17108:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
             }
-            match(input,43,FOLLOW_2); if (state.failed) return ;
+            match(input,44,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
             }
@@ -55944,14 +56552,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__1"
-    // InternalSignalDSL.g:16959:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
+    // InternalSignalDSL.g:17117:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
     public final void rule__Number__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16963:1: ( rule__Number__Group_1_1__1__Impl )
-            // InternalSignalDSL.g:16964:2: rule__Number__Group_1_1__1__Impl
+            // InternalSignalDSL.g:17121:1: ( rule__Number__Group_1_1__1__Impl )
+            // InternalSignalDSL.g:17122:2: rule__Number__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Number__Group_1_1__1__Impl();
@@ -55977,23 +56585,23 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__1__Impl"
-    // InternalSignalDSL.g:16970:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
+    // InternalSignalDSL.g:17128:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
     public final void rule__Number__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16974:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
-            // InternalSignalDSL.g:16975:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalSignalDSL.g:17132:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
+            // InternalSignalDSL.g:17133:1: ( ( rule__Number__Alternatives_1_1_1 ) )
             {
-            // InternalSignalDSL.g:16975:1: ( ( rule__Number__Alternatives_1_1_1 ) )
-            // InternalSignalDSL.g:16976:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalSignalDSL.g:17133:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalSignalDSL.g:17134:2: ( rule__Number__Alternatives_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); 
             }
-            // InternalSignalDSL.g:16977:2: ( rule__Number__Alternatives_1_1_1 )
-            // InternalSignalDSL.g:16977:3: rule__Number__Alternatives_1_1_1
+            // InternalSignalDSL.g:17135:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalSignalDSL.g:17135:3: rule__Number__Alternatives_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives_1_1_1();
@@ -56028,16 +56636,16 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__0"
-    // InternalSignalDSL.g:16986:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
+    // InternalSignalDSL.g:17144:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
     public final void rule__JvmTypeReference__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:16990:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
-            // InternalSignalDSL.g:16991:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
+            // InternalSignalDSL.g:17148:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
+            // InternalSignalDSL.g:17149:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
             {
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_41);
             rule__JvmTypeReference__Group_0__0__Impl();
 
             state._fsp--;
@@ -56066,17 +56674,17 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__0__Impl"
-    // InternalSignalDSL.g:16998:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
+    // InternalSignalDSL.g:17156:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
     public final void rule__JvmTypeReference__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17002:1: ( ( ruleJvmParameterizedTypeReference ) )
-            // InternalSignalDSL.g:17003:1: ( ruleJvmParameterizedTypeReference )
+            // InternalSignalDSL.g:17160:1: ( ( ruleJvmParameterizedTypeReference ) )
+            // InternalSignalDSL.g:17161:1: ( ruleJvmParameterizedTypeReference )
             {
-            // InternalSignalDSL.g:17003:1: ( ruleJvmParameterizedTypeReference )
-            // InternalSignalDSL.g:17004:2: ruleJvmParameterizedTypeReference
+            // InternalSignalDSL.g:17161:1: ( ruleJvmParameterizedTypeReference )
+            // InternalSignalDSL.g:17162:2: ruleJvmParameterizedTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
@@ -56111,14 +56719,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__1"
-    // InternalSignalDSL.g:17013:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
+    // InternalSignalDSL.g:17171:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
     public final void rule__JvmTypeReference__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17017:1: ( rule__JvmTypeReference__Group_0__1__Impl )
-            // InternalSignalDSL.g:17018:2: rule__JvmTypeReference__Group_0__1__Impl
+            // InternalSignalDSL.g:17175:1: ( rule__JvmTypeReference__Group_0__1__Impl )
+            // InternalSignalDSL.g:17176:2: rule__JvmTypeReference__Group_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0__1__Impl();
@@ -56144,35 +56752,35 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__1__Impl"
-    // InternalSignalDSL.g:17024:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
+    // InternalSignalDSL.g:17182:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
     public final void rule__JvmTypeReference__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17028:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
-            // InternalSignalDSL.g:17029:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalSignalDSL.g:17186:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
+            // InternalSignalDSL.g:17187:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
             {
-            // InternalSignalDSL.g:17029:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
-            // InternalSignalDSL.g:17030:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            // InternalSignalDSL.g:17187:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalSignalDSL.g:17188:2: ( rule__JvmTypeReference__Group_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); 
             }
-            // InternalSignalDSL.g:17031:2: ( rule__JvmTypeReference__Group_0_1__0 )*
-            loop132:
+            // InternalSignalDSL.g:17189:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            loop135:
             do {
-                int alt132=2;
-                int LA132_0 = input.LA(1);
+                int alt135=2;
+                int LA135_0 = input.LA(1);
 
-                if ( (LA132_0==83) ) {
-                    int LA132_2 = input.LA(2);
+                if ( (LA135_0==85) ) {
+                    int LA135_2 = input.LA(2);
 
-                    if ( (LA132_2==81) ) {
-                        int LA132_3 = input.LA(3);
+                    if ( (LA135_2==83) ) {
+                        int LA135_3 = input.LA(3);
 
-                        if ( (synpred184_InternalSignalDSL()) ) {
-                            alt132=1;
+                        if ( (synpred188_InternalSignalDSL()) ) {
+                            alt135=1;
                         }
 
 
@@ -56182,11 +56790,11 @@
                 }
 
 
-                switch (alt132) {
+                switch (alt135) {
             	case 1 :
-            	    // InternalSignalDSL.g:17031:3: rule__JvmTypeReference__Group_0_1__0
+            	    // InternalSignalDSL.g:17189:3: rule__JvmTypeReference__Group_0_1__0
             	    {
-            	    pushFollow(FOLLOW_106);
+            	    pushFollow(FOLLOW_105);
             	    rule__JvmTypeReference__Group_0_1__0();
 
             	    state._fsp--;
@@ -56196,7 +56804,7 @@
             	    break;
 
             	default :
-            	    break loop132;
+            	    break loop135;
                 }
             } while (true);
 
@@ -56225,14 +56833,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1__0"
-    // InternalSignalDSL.g:17040:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
+    // InternalSignalDSL.g:17198:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
     public final void rule__JvmTypeReference__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17044:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
-            // InternalSignalDSL.g:17045:2: rule__JvmTypeReference__Group_0_1__0__Impl
+            // InternalSignalDSL.g:17202:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
+            // InternalSignalDSL.g:17203:2: rule__JvmTypeReference__Group_0_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1__0__Impl();
@@ -56258,23 +56866,23 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1__0__Impl"
-    // InternalSignalDSL.g:17051:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
+    // InternalSignalDSL.g:17209:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
     public final void rule__JvmTypeReference__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17055:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
-            // InternalSignalDSL.g:17056:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalSignalDSL.g:17213:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
+            // InternalSignalDSL.g:17214:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
             {
-            // InternalSignalDSL.g:17056:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
-            // InternalSignalDSL.g:17057:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalSignalDSL.g:17214:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalSignalDSL.g:17215:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); 
             }
-            // InternalSignalDSL.g:17058:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
-            // InternalSignalDSL.g:17058:3: rule__JvmTypeReference__Group_0_1_0__0
+            // InternalSignalDSL.g:17216:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalSignalDSL.g:17216:3: rule__JvmTypeReference__Group_0_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1_0__0();
@@ -56309,16 +56917,16 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0"
-    // InternalSignalDSL.g:17067:1: rule__JvmTypeReference__Group_0_1_0__0 : rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 ;
+    // InternalSignalDSL.g:17225:1: rule__JvmTypeReference__Group_0_1_0__0 : rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 ;
     public final void rule__JvmTypeReference__Group_0_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17071:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
-            // InternalSignalDSL.g:17072:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
+            // InternalSignalDSL.g:17229:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
+            // InternalSignalDSL.g:17230:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
             {
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_41);
             rule__JvmTypeReference__Group_0_1_0__0__Impl();
 
             state._fsp--;
@@ -56347,23 +56955,23 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0__Impl"
-    // InternalSignalDSL.g:17079:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:17237:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
     public final void rule__JvmTypeReference__Group_0_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17083:1: ( ( () ) )
-            // InternalSignalDSL.g:17084:1: ( () )
+            // InternalSignalDSL.g:17241:1: ( ( () ) )
+            // InternalSignalDSL.g:17242:1: ( () )
             {
-            // InternalSignalDSL.g:17084:1: ( () )
-            // InternalSignalDSL.g:17085:2: ()
+            // InternalSignalDSL.g:17242:1: ( () )
+            // InternalSignalDSL.g:17243:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); 
             }
-            // InternalSignalDSL.g:17086:2: ()
-            // InternalSignalDSL.g:17086:3: 
+            // InternalSignalDSL.g:17244:2: ()
+            // InternalSignalDSL.g:17244:3: 
             {
             }
 
@@ -56388,14 +56996,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1"
-    // InternalSignalDSL.g:17094:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
+    // InternalSignalDSL.g:17252:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
     public final void rule__JvmTypeReference__Group_0_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17098:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
-            // InternalSignalDSL.g:17099:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
+            // InternalSignalDSL.g:17256:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
+            // InternalSignalDSL.g:17257:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1_0__1__Impl();
@@ -56421,17 +57029,17 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1__Impl"
-    // InternalSignalDSL.g:17105:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
+    // InternalSignalDSL.g:17263:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
     public final void rule__JvmTypeReference__Group_0_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17109:1: ( ( ruleArrayBrackets ) )
-            // InternalSignalDSL.g:17110:1: ( ruleArrayBrackets )
+            // InternalSignalDSL.g:17267:1: ( ( ruleArrayBrackets ) )
+            // InternalSignalDSL.g:17268:1: ( ruleArrayBrackets )
             {
-            // InternalSignalDSL.g:17110:1: ( ruleArrayBrackets )
-            // InternalSignalDSL.g:17111:2: ruleArrayBrackets
+            // InternalSignalDSL.g:17268:1: ( ruleArrayBrackets )
+            // InternalSignalDSL.g:17269:2: ruleArrayBrackets
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
@@ -56466,16 +57074,16 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__0"
-    // InternalSignalDSL.g:17121:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
+    // InternalSignalDSL.g:17279:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
     public final void rule__ArrayBrackets__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17125:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
-            // InternalSignalDSL.g:17126:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
+            // InternalSignalDSL.g:17283:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
+            // InternalSignalDSL.g:17284:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
             {
-            pushFollow(FOLLOW_80);
+            pushFollow(FOLLOW_79);
             rule__ArrayBrackets__Group__0__Impl();
 
             state._fsp--;
@@ -56504,22 +57112,22 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__0__Impl"
-    // InternalSignalDSL.g:17133:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
+    // InternalSignalDSL.g:17291:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
     public final void rule__ArrayBrackets__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17137:1: ( ( '[' ) )
-            // InternalSignalDSL.g:17138:1: ( '[' )
+            // InternalSignalDSL.g:17295:1: ( ( '[' ) )
+            // InternalSignalDSL.g:17296:1: ( '[' )
             {
-            // InternalSignalDSL.g:17138:1: ( '[' )
-            // InternalSignalDSL.g:17139:2: '['
+            // InternalSignalDSL.g:17296:1: ( '[' )
+            // InternalSignalDSL.g:17297:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
             }
-            match(input,83,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
             }
@@ -56545,14 +57153,14 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__1"
-    // InternalSignalDSL.g:17148:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
+    // InternalSignalDSL.g:17306:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
     public final void rule__ArrayBrackets__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17152:1: ( rule__ArrayBrackets__Group__1__Impl )
-            // InternalSignalDSL.g:17153:2: rule__ArrayBrackets__Group__1__Impl
+            // InternalSignalDSL.g:17310:1: ( rule__ArrayBrackets__Group__1__Impl )
+            // InternalSignalDSL.g:17311:2: rule__ArrayBrackets__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayBrackets__Group__1__Impl();
@@ -56578,22 +57186,22 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__1__Impl"
-    // InternalSignalDSL.g:17159:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
+    // InternalSignalDSL.g:17317:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
     public final void rule__ArrayBrackets__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17163:1: ( ( ']' ) )
-            // InternalSignalDSL.g:17164:1: ( ']' )
+            // InternalSignalDSL.g:17321:1: ( ( ']' ) )
+            // InternalSignalDSL.g:17322:1: ( ']' )
             {
-            // InternalSignalDSL.g:17164:1: ( ']' )
-            // InternalSignalDSL.g:17165:2: ']'
+            // InternalSignalDSL.g:17322:1: ( ']' )
+            // InternalSignalDSL.g:17323:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,83,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
             }
@@ -56619,16 +57227,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__0"
-    // InternalSignalDSL.g:17175:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
+    // InternalSignalDSL.g:17333:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
     public final void rule__XFunctionTypeRef__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17179:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
-            // InternalSignalDSL.g:17180:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
+            // InternalSignalDSL.g:17337:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
+            // InternalSignalDSL.g:17338:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XFunctionTypeRef__Group__0__Impl();
 
             state._fsp--;
@@ -56657,31 +57265,31 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__0__Impl"
-    // InternalSignalDSL.g:17187:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
+    // InternalSignalDSL.g:17345:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
     public final void rule__XFunctionTypeRef__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17191:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
-            // InternalSignalDSL.g:17192:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalSignalDSL.g:17349:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
+            // InternalSignalDSL.g:17350:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
             {
-            // InternalSignalDSL.g:17192:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
-            // InternalSignalDSL.g:17193:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            // InternalSignalDSL.g:17350:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalSignalDSL.g:17351:2: ( rule__XFunctionTypeRef__Group_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); 
             }
-            // InternalSignalDSL.g:17194:2: ( rule__XFunctionTypeRef__Group_0__0 )?
-            int alt133=2;
-            int LA133_0 = input.LA(1);
+            // InternalSignalDSL.g:17352:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            int alt136=2;
+            int LA136_0 = input.LA(1);
 
-            if ( (LA133_0==78) ) {
-                alt133=1;
+            if ( (LA136_0==80) ) {
+                alt136=1;
             }
-            switch (alt133) {
+            switch (alt136) {
                 case 1 :
-                    // InternalSignalDSL.g:17194:3: rule__XFunctionTypeRef__Group_0__0
+                    // InternalSignalDSL.g:17352:3: rule__XFunctionTypeRef__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFunctionTypeRef__Group_0__0();
@@ -56719,16 +57327,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__1"
-    // InternalSignalDSL.g:17202:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
+    // InternalSignalDSL.g:17360:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
     public final void rule__XFunctionTypeRef__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17206:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
-            // InternalSignalDSL.g:17207:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
+            // InternalSignalDSL.g:17364:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
+            // InternalSignalDSL.g:17365:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XFunctionTypeRef__Group__1__Impl();
 
             state._fsp--;
@@ -56757,22 +57365,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__1__Impl"
-    // InternalSignalDSL.g:17214:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
+    // InternalSignalDSL.g:17372:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
     public final void rule__XFunctionTypeRef__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17218:1: ( ( '=>' ) )
-            // InternalSignalDSL.g:17219:1: ( '=>' )
+            // InternalSignalDSL.g:17376:1: ( ( '=>' ) )
+            // InternalSignalDSL.g:17377:1: ( '=>' )
             {
-            // InternalSignalDSL.g:17219:1: ( '=>' )
-            // InternalSignalDSL.g:17220:2: '=>'
+            // InternalSignalDSL.g:17377:1: ( '=>' )
+            // InternalSignalDSL.g:17378:2: '=>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); 
             }
-            match(input,31,FOLLOW_2); if (state.failed) return ;
+            match(input,32,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); 
             }
@@ -56798,14 +57406,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__2"
-    // InternalSignalDSL.g:17229:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
+    // InternalSignalDSL.g:17387:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
     public final void rule__XFunctionTypeRef__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17233:1: ( rule__XFunctionTypeRef__Group__2__Impl )
-            // InternalSignalDSL.g:17234:2: rule__XFunctionTypeRef__Group__2__Impl
+            // InternalSignalDSL.g:17391:1: ( rule__XFunctionTypeRef__Group__2__Impl )
+            // InternalSignalDSL.g:17392:2: rule__XFunctionTypeRef__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group__2__Impl();
@@ -56831,23 +57439,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__2__Impl"
-    // InternalSignalDSL.g:17240:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
+    // InternalSignalDSL.g:17398:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
     public final void rule__XFunctionTypeRef__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17244:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
-            // InternalSignalDSL.g:17245:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalSignalDSL.g:17402:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
+            // InternalSignalDSL.g:17403:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
             {
-            // InternalSignalDSL.g:17245:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
-            // InternalSignalDSL.g:17246:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalSignalDSL.g:17403:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalSignalDSL.g:17404:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); 
             }
-            // InternalSignalDSL.g:17247:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
-            // InternalSignalDSL.g:17247:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
+            // InternalSignalDSL.g:17405:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalSignalDSL.g:17405:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ReturnTypeAssignment_2();
@@ -56882,16 +57490,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__0"
-    // InternalSignalDSL.g:17256:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
+    // InternalSignalDSL.g:17414:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
     public final void rule__XFunctionTypeRef__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17260:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
-            // InternalSignalDSL.g:17261:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
+            // InternalSignalDSL.g:17418:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
+            // InternalSignalDSL.g:17419:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
             {
-            pushFollow(FOLLOW_117);
+            pushFollow(FOLLOW_116);
             rule__XFunctionTypeRef__Group_0__0__Impl();
 
             state._fsp--;
@@ -56920,22 +57528,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__0__Impl"
-    // InternalSignalDSL.g:17268:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
+    // InternalSignalDSL.g:17426:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
     public final void rule__XFunctionTypeRef__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17272:1: ( ( '(' ) )
-            // InternalSignalDSL.g:17273:1: ( '(' )
+            // InternalSignalDSL.g:17430:1: ( ( '(' ) )
+            // InternalSignalDSL.g:17431:1: ( '(' )
             {
-            // InternalSignalDSL.g:17273:1: ( '(' )
-            // InternalSignalDSL.g:17274:2: '('
+            // InternalSignalDSL.g:17431:1: ( '(' )
+            // InternalSignalDSL.g:17432:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
             }
@@ -56961,16 +57569,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__1"
-    // InternalSignalDSL.g:17283:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
+    // InternalSignalDSL.g:17441:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
     public final void rule__XFunctionTypeRef__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17287:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
-            // InternalSignalDSL.g:17288:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
+            // InternalSignalDSL.g:17445:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
+            // InternalSignalDSL.g:17446:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
             {
-            pushFollow(FOLLOW_117);
+            pushFollow(FOLLOW_116);
             rule__XFunctionTypeRef__Group_0__1__Impl();
 
             state._fsp--;
@@ -56999,31 +57607,31 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__1__Impl"
-    // InternalSignalDSL.g:17295:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
+    // InternalSignalDSL.g:17453:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
     public final void rule__XFunctionTypeRef__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17299:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
-            // InternalSignalDSL.g:17300:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalSignalDSL.g:17457:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
+            // InternalSignalDSL.g:17458:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
             {
-            // InternalSignalDSL.g:17300:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
-            // InternalSignalDSL.g:17301:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            // InternalSignalDSL.g:17458:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalSignalDSL.g:17459:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); 
             }
-            // InternalSignalDSL.g:17302:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
-            int alt134=2;
-            int LA134_0 = input.LA(1);
+            // InternalSignalDSL.g:17460:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            int alt137=2;
+            int LA137_0 = input.LA(1);
 
-            if ( (LA134_0==RULE_ID||LA134_0==31||LA134_0==78) ) {
-                alt134=1;
+            if ( (LA137_0==RULE_ID||LA137_0==32||LA137_0==80) ) {
+                alt137=1;
             }
-            switch (alt134) {
+            switch (alt137) {
                 case 1 :
-                    // InternalSignalDSL.g:17302:3: rule__XFunctionTypeRef__Group_0_1__0
+                    // InternalSignalDSL.g:17460:3: rule__XFunctionTypeRef__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFunctionTypeRef__Group_0_1__0();
@@ -57061,14 +57669,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__2"
-    // InternalSignalDSL.g:17310:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
+    // InternalSignalDSL.g:17468:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
     public final void rule__XFunctionTypeRef__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17314:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
-            // InternalSignalDSL.g:17315:2: rule__XFunctionTypeRef__Group_0__2__Impl
+            // InternalSignalDSL.g:17472:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
+            // InternalSignalDSL.g:17473:2: rule__XFunctionTypeRef__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0__2__Impl();
@@ -57094,22 +57702,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__2__Impl"
-    // InternalSignalDSL.g:17321:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
+    // InternalSignalDSL.g:17479:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
     public final void rule__XFunctionTypeRef__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17325:1: ( ( ')' ) )
-            // InternalSignalDSL.g:17326:1: ( ')' )
+            // InternalSignalDSL.g:17483:1: ( ( ')' ) )
+            // InternalSignalDSL.g:17484:1: ( ')' )
             {
-            // InternalSignalDSL.g:17326:1: ( ')' )
-            // InternalSignalDSL.g:17327:2: ')'
+            // InternalSignalDSL.g:17484:1: ( ')' )
+            // InternalSignalDSL.g:17485:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
             }
@@ -57135,16 +57743,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0"
-    // InternalSignalDSL.g:17337:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
+    // InternalSignalDSL.g:17495:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
     public final void rule__XFunctionTypeRef__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17341:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
-            // InternalSignalDSL.g:17342:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
+            // InternalSignalDSL.g:17499:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
+            // InternalSignalDSL.g:17500:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_35);
             rule__XFunctionTypeRef__Group_0_1__0__Impl();
 
             state._fsp--;
@@ -57173,23 +57781,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0__Impl"
-    // InternalSignalDSL.g:17349:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
+    // InternalSignalDSL.g:17507:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
     public final void rule__XFunctionTypeRef__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17353:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
-            // InternalSignalDSL.g:17354:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalSignalDSL.g:17511:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
+            // InternalSignalDSL.g:17512:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
             {
-            // InternalSignalDSL.g:17354:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
-            // InternalSignalDSL.g:17355:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalSignalDSL.g:17512:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalSignalDSL.g:17513:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); 
             }
-            // InternalSignalDSL.g:17356:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
-            // InternalSignalDSL.g:17356:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
+            // InternalSignalDSL.g:17514:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalSignalDSL.g:17514:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0();
@@ -57224,14 +57832,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1"
-    // InternalSignalDSL.g:17364:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
+    // InternalSignalDSL.g:17522:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
     public final void rule__XFunctionTypeRef__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17368:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
-            // InternalSignalDSL.g:17369:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
+            // InternalSignalDSL.g:17526:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
+            // InternalSignalDSL.g:17527:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0_1__1__Impl();
@@ -57257,37 +57865,37 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1__Impl"
-    // InternalSignalDSL.g:17375:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
+    // InternalSignalDSL.g:17533:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
     public final void rule__XFunctionTypeRef__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17379:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
-            // InternalSignalDSL.g:17380:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalSignalDSL.g:17537:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
+            // InternalSignalDSL.g:17538:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
             {
-            // InternalSignalDSL.g:17380:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
-            // InternalSignalDSL.g:17381:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            // InternalSignalDSL.g:17538:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalSignalDSL.g:17539:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); 
             }
-            // InternalSignalDSL.g:17382:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
-            loop135:
+            // InternalSignalDSL.g:17540:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            loop138:
             do {
-                int alt135=2;
-                int LA135_0 = input.LA(1);
+                int alt138=2;
+                int LA138_0 = input.LA(1);
 
-                if ( (LA135_0==80) ) {
-                    alt135=1;
+                if ( (LA138_0==82) ) {
+                    alt138=1;
                 }
 
 
-                switch (alt135) {
+                switch (alt138) {
             	case 1 :
-            	    // InternalSignalDSL.g:17382:3: rule__XFunctionTypeRef__Group_0_1_1__0
+            	    // InternalSignalDSL.g:17540:3: rule__XFunctionTypeRef__Group_0_1_1__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__XFunctionTypeRef__Group_0_1_1__0();
 
             	    state._fsp--;
@@ -57297,7 +57905,7 @@
             	    break;
 
             	default :
-            	    break loop135;
+            	    break loop138;
                 }
             } while (true);
 
@@ -57326,16 +57934,16 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0"
-    // InternalSignalDSL.g:17391:1: rule__XFunctionTypeRef__Group_0_1_1__0 : rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 ;
+    // InternalSignalDSL.g:17549:1: rule__XFunctionTypeRef__Group_0_1_1__0 : rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17395:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
-            // InternalSignalDSL.g:17396:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
+            // InternalSignalDSL.g:17553:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
+            // InternalSignalDSL.g:17554:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__XFunctionTypeRef__Group_0_1_1__0__Impl();
 
             state._fsp--;
@@ -57364,22 +57972,22 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0__Impl"
-    // InternalSignalDSL.g:17403:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:17561:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17407:1: ( ( ',' ) )
-            // InternalSignalDSL.g:17408:1: ( ',' )
+            // InternalSignalDSL.g:17565:1: ( ( ',' ) )
+            // InternalSignalDSL.g:17566:1: ( ',' )
             {
-            // InternalSignalDSL.g:17408:1: ( ',' )
-            // InternalSignalDSL.g:17409:2: ','
+            // InternalSignalDSL.g:17566:1: ( ',' )
+            // InternalSignalDSL.g:17567:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
             }
@@ -57405,14 +58013,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1"
-    // InternalSignalDSL.g:17418:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
+    // InternalSignalDSL.g:17576:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17422:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
-            // InternalSignalDSL.g:17423:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
+            // InternalSignalDSL.g:17580:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
+            // InternalSignalDSL.g:17581:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0_1_1__1__Impl();
@@ -57438,23 +58046,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1__Impl"
-    // InternalSignalDSL.g:17429:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
+    // InternalSignalDSL.g:17587:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17433:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
-            // InternalSignalDSL.g:17434:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalSignalDSL.g:17591:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
+            // InternalSignalDSL.g:17592:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
             {
-            // InternalSignalDSL.g:17434:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
-            // InternalSignalDSL.g:17435:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalSignalDSL.g:17592:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalSignalDSL.g:17593:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); 
             }
-            // InternalSignalDSL.g:17436:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
-            // InternalSignalDSL.g:17436:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
+            // InternalSignalDSL.g:17594:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalSignalDSL.g:17594:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1();
@@ -57489,16 +58097,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0"
-    // InternalSignalDSL.g:17445:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
+    // InternalSignalDSL.g:17603:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
     public final void rule__JvmParameterizedTypeReference__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17449:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
-            // InternalSignalDSL.g:17450:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
+            // InternalSignalDSL.g:17607:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
+            // InternalSignalDSL.g:17608:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
             {
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_44);
             rule__JvmParameterizedTypeReference__Group__0__Impl();
 
             state._fsp--;
@@ -57527,23 +58135,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0__Impl"
-    // InternalSignalDSL.g:17457:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
+    // InternalSignalDSL.g:17615:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17461:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
-            // InternalSignalDSL.g:17462:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalSignalDSL.g:17619:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
+            // InternalSignalDSL.g:17620:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
             {
-            // InternalSignalDSL.g:17462:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
-            // InternalSignalDSL.g:17463:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalSignalDSL.g:17620:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalSignalDSL.g:17621:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); 
             }
-            // InternalSignalDSL.g:17464:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
-            // InternalSignalDSL.g:17464:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
+            // InternalSignalDSL.g:17622:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalSignalDSL.g:17622:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__TypeAssignment_0();
@@ -57578,14 +58186,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1"
-    // InternalSignalDSL.g:17472:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
+    // InternalSignalDSL.g:17630:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17476:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
-            // InternalSignalDSL.g:17477:2: rule__JvmParameterizedTypeReference__Group__1__Impl
+            // InternalSignalDSL.g:17634:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
+            // InternalSignalDSL.g:17635:2: rule__JvmParameterizedTypeReference__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group__1__Impl();
@@ -57611,27 +58219,27 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1__Impl"
-    // InternalSignalDSL.g:17483:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
+    // InternalSignalDSL.g:17641:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
     public final void rule__JvmParameterizedTypeReference__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17487:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
-            // InternalSignalDSL.g:17488:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalSignalDSL.g:17645:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
+            // InternalSignalDSL.g:17646:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
             {
-            // InternalSignalDSL.g:17488:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
-            // InternalSignalDSL.g:17489:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            // InternalSignalDSL.g:17646:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalSignalDSL.g:17647:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); 
             }
-            // InternalSignalDSL.g:17490:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
-            int alt136=2;
-            alt136 = dfa136.predict(input);
-            switch (alt136) {
+            // InternalSignalDSL.g:17648:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            int alt139=2;
+            alt139 = dfa139.predict(input);
+            switch (alt139) {
                 case 1 :
-                    // InternalSignalDSL.g:17490:3: rule__JvmParameterizedTypeReference__Group_1__0
+                    // InternalSignalDSL.g:17648:3: rule__JvmParameterizedTypeReference__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmParameterizedTypeReference__Group_1__0();
@@ -57669,16 +58277,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0"
-    // InternalSignalDSL.g:17499:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
+    // InternalSignalDSL.g:17657:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17503:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
-            // InternalSignalDSL.g:17504:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
+            // InternalSignalDSL.g:17661:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
+            // InternalSignalDSL.g:17662:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__JvmParameterizedTypeReference__Group_1__0__Impl();
 
             state._fsp--;
@@ -57707,25 +58315,25 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0__Impl"
-    // InternalSignalDSL.g:17511:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
+    // InternalSignalDSL.g:17669:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17515:1: ( ( ( '<' ) ) )
-            // InternalSignalDSL.g:17516:1: ( ( '<' ) )
+            // InternalSignalDSL.g:17673:1: ( ( ( '<' ) ) )
+            // InternalSignalDSL.g:17674:1: ( ( '<' ) )
             {
-            // InternalSignalDSL.g:17516:1: ( ( '<' ) )
-            // InternalSignalDSL.g:17517:2: ( '<' )
+            // InternalSignalDSL.g:17674:1: ( ( '<' ) )
+            // InternalSignalDSL.g:17675:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); 
             }
-            // InternalSignalDSL.g:17518:2: ( '<' )
-            // InternalSignalDSL.g:17518:3: '<'
+            // InternalSignalDSL.g:17676:2: ( '<' )
+            // InternalSignalDSL.g:17676:3: '<'
             {
-            match(input,27,FOLLOW_2); if (state.failed) return ;
+            match(input,28,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -57754,16 +58362,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1"
-    // InternalSignalDSL.g:17526:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
+    // InternalSignalDSL.g:17684:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17530:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
-            // InternalSignalDSL.g:17531:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
+            // InternalSignalDSL.g:17688:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
+            // InternalSignalDSL.g:17689:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_75);
             rule__JvmParameterizedTypeReference__Group_1__1__Impl();
 
             state._fsp--;
@@ -57792,23 +58400,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1__Impl"
-    // InternalSignalDSL.g:17538:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
+    // InternalSignalDSL.g:17696:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17542:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
-            // InternalSignalDSL.g:17543:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalSignalDSL.g:17700:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
+            // InternalSignalDSL.g:17701:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
             {
-            // InternalSignalDSL.g:17543:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
-            // InternalSignalDSL.g:17544:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalSignalDSL.g:17701:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalSignalDSL.g:17702:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); 
             }
-            // InternalSignalDSL.g:17545:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
-            // InternalSignalDSL.g:17545:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
+            // InternalSignalDSL.g:17703:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalSignalDSL.g:17703:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1();
@@ -57843,16 +58451,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2"
-    // InternalSignalDSL.g:17553:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
+    // InternalSignalDSL.g:17711:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17557:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
-            // InternalSignalDSL.g:17558:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
+            // InternalSignalDSL.g:17715:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
+            // InternalSignalDSL.g:17716:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_75);
             rule__JvmParameterizedTypeReference__Group_1__2__Impl();
 
             state._fsp--;
@@ -57881,37 +58489,37 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2__Impl"
-    // InternalSignalDSL.g:17565:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
+    // InternalSignalDSL.g:17723:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17569:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
-            // InternalSignalDSL.g:17570:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalSignalDSL.g:17727:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
+            // InternalSignalDSL.g:17728:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
             {
-            // InternalSignalDSL.g:17570:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
-            // InternalSignalDSL.g:17571:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            // InternalSignalDSL.g:17728:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalSignalDSL.g:17729:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); 
             }
-            // InternalSignalDSL.g:17572:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
-            loop137:
+            // InternalSignalDSL.g:17730:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            loop140:
             do {
-                int alt137=2;
-                int LA137_0 = input.LA(1);
+                int alt140=2;
+                int LA140_0 = input.LA(1);
 
-                if ( (LA137_0==80) ) {
-                    alt137=1;
+                if ( (LA140_0==82) ) {
+                    alt140=1;
                 }
 
 
-                switch (alt137) {
+                switch (alt140) {
             	case 1 :
-            	    // InternalSignalDSL.g:17572:3: rule__JvmParameterizedTypeReference__Group_1_2__0
+            	    // InternalSignalDSL.g:17730:3: rule__JvmParameterizedTypeReference__Group_1_2__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__JvmParameterizedTypeReference__Group_1_2__0();
 
             	    state._fsp--;
@@ -57921,7 +58529,7 @@
             	    break;
 
             	default :
-            	    break loop137;
+            	    break loop140;
                 }
             } while (true);
 
@@ -57950,16 +58558,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3"
-    // InternalSignalDSL.g:17580:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 ;
+    // InternalSignalDSL.g:17738:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17584:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
-            // InternalSignalDSL.g:17585:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
+            // InternalSignalDSL.g:17742:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
+            // InternalSignalDSL.g:17743:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
             {
-            pushFollow(FOLLOW_114);
+            pushFollow(FOLLOW_113);
             rule__JvmParameterizedTypeReference__Group_1__3__Impl();
 
             state._fsp--;
@@ -57988,22 +58596,22 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3__Impl"
-    // InternalSignalDSL.g:17592:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:17750:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17596:1: ( ( '>' ) )
-            // InternalSignalDSL.g:17597:1: ( '>' )
+            // InternalSignalDSL.g:17754:1: ( ( '>' ) )
+            // InternalSignalDSL.g:17755:1: ( '>' )
             {
-            // InternalSignalDSL.g:17597:1: ( '>' )
-            // InternalSignalDSL.g:17598:2: '>'
+            // InternalSignalDSL.g:17755:1: ( '>' )
+            // InternalSignalDSL.g:17756:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); 
             }
-            match(input,26,FOLLOW_2); if (state.failed) return ;
+            match(input,27,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); 
             }
@@ -58029,14 +58637,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4"
-    // InternalSignalDSL.g:17607:1: rule__JvmParameterizedTypeReference__Group_1__4 : rule__JvmParameterizedTypeReference__Group_1__4__Impl ;
+    // InternalSignalDSL.g:17765:1: rule__JvmParameterizedTypeReference__Group_1__4 : rule__JvmParameterizedTypeReference__Group_1__4__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17611:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
-            // InternalSignalDSL.g:17612:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
+            // InternalSignalDSL.g:17769:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
+            // InternalSignalDSL.g:17770:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1__4__Impl();
@@ -58062,35 +58670,35 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4__Impl"
-    // InternalSignalDSL.g:17618:1: rule__JvmParameterizedTypeReference__Group_1__4__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) ;
+    // InternalSignalDSL.g:17776:1: rule__JvmParameterizedTypeReference__Group_1__4__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17622:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
-            // InternalSignalDSL.g:17623:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalSignalDSL.g:17780:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
+            // InternalSignalDSL.g:17781:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
             {
-            // InternalSignalDSL.g:17623:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
-            // InternalSignalDSL.g:17624:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            // InternalSignalDSL.g:17781:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalSignalDSL.g:17782:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); 
             }
-            // InternalSignalDSL.g:17625:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
-            loop138:
+            // InternalSignalDSL.g:17783:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            loop141:
             do {
-                int alt138=2;
-                int LA138_0 = input.LA(1);
+                int alt141=2;
+                int LA141_0 = input.LA(1);
 
-                if ( (LA138_0==43) ) {
-                    int LA138_2 = input.LA(2);
+                if ( (LA141_0==44) ) {
+                    int LA141_2 = input.LA(2);
 
-                    if ( (LA138_2==RULE_ID) ) {
-                        int LA138_3 = input.LA(3);
+                    if ( (LA141_2==RULE_ID) ) {
+                        int LA141_3 = input.LA(3);
 
-                        if ( (synpred190_InternalSignalDSL()) ) {
-                            alt138=1;
+                        if ( (synpred194_InternalSignalDSL()) ) {
+                            alt141=1;
                         }
 
 
@@ -58100,11 +58708,11 @@
                 }
 
 
-                switch (alt138) {
+                switch (alt141) {
             	case 1 :
-            	    // InternalSignalDSL.g:17625:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+            	    // InternalSignalDSL.g:17783:3: rule__JvmParameterizedTypeReference__Group_1_4__0
             	    {
-            	    pushFollow(FOLLOW_115);
+            	    pushFollow(FOLLOW_114);
             	    rule__JvmParameterizedTypeReference__Group_1_4__0();
 
             	    state._fsp--;
@@ -58114,7 +58722,7 @@
             	    break;
 
             	default :
-            	    break loop138;
+            	    break loop141;
                 }
             } while (true);
 
@@ -58143,16 +58751,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0"
-    // InternalSignalDSL.g:17634:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
+    // InternalSignalDSL.g:17792:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17638:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
-            // InternalSignalDSL.g:17639:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
+            // InternalSignalDSL.g:17796:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
+            // InternalSignalDSL.g:17797:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__JvmParameterizedTypeReference__Group_1_2__0__Impl();
 
             state._fsp--;
@@ -58181,22 +58789,22 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0__Impl"
-    // InternalSignalDSL.g:17646:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:17804:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17650:1: ( ( ',' ) )
-            // InternalSignalDSL.g:17651:1: ( ',' )
+            // InternalSignalDSL.g:17808:1: ( ( ',' ) )
+            // InternalSignalDSL.g:17809:1: ( ',' )
             {
-            // InternalSignalDSL.g:17651:1: ( ',' )
-            // InternalSignalDSL.g:17652:2: ','
+            // InternalSignalDSL.g:17809:1: ( ',' )
+            // InternalSignalDSL.g:17810:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
             }
@@ -58222,14 +58830,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1"
-    // InternalSignalDSL.g:17661:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
+    // InternalSignalDSL.g:17819:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17665:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
-            // InternalSignalDSL.g:17666:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
+            // InternalSignalDSL.g:17823:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
+            // InternalSignalDSL.g:17824:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_2__1__Impl();
@@ -58255,23 +58863,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1__Impl"
-    // InternalSignalDSL.g:17672:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
+    // InternalSignalDSL.g:17830:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17676:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
-            // InternalSignalDSL.g:17677:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalSignalDSL.g:17834:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
+            // InternalSignalDSL.g:17835:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
             {
-            // InternalSignalDSL.g:17677:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
-            // InternalSignalDSL.g:17678:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalSignalDSL.g:17835:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalSignalDSL.g:17836:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); 
             }
-            // InternalSignalDSL.g:17679:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
-            // InternalSignalDSL.g:17679:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
+            // InternalSignalDSL.g:17837:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalSignalDSL.g:17837:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1();
@@ -58306,14 +58914,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0"
-    // InternalSignalDSL.g:17688:1: rule__JvmParameterizedTypeReference__Group_1_4__0 : rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 ;
+    // InternalSignalDSL.g:17846:1: rule__JvmParameterizedTypeReference__Group_1_4__0 : rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17692:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
-            // InternalSignalDSL.g:17693:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
+            // InternalSignalDSL.g:17850:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
+            // InternalSignalDSL.g:17851:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
             {
             pushFollow(FOLLOW_6);
             rule__JvmParameterizedTypeReference__Group_1_4__0__Impl();
@@ -58344,23 +58952,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0__Impl"
-    // InternalSignalDSL.g:17700:1: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) ;
+    // InternalSignalDSL.g:17858:1: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17704:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
-            // InternalSignalDSL.g:17705:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalSignalDSL.g:17862:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
+            // InternalSignalDSL.g:17863:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
             {
-            // InternalSignalDSL.g:17705:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
-            // InternalSignalDSL.g:17706:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalSignalDSL.g:17863:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalSignalDSL.g:17864:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); 
             }
-            // InternalSignalDSL.g:17707:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
-            // InternalSignalDSL.g:17707:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
+            // InternalSignalDSL.g:17865:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalSignalDSL.g:17865:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0__0();
@@ -58395,16 +59003,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1"
-    // InternalSignalDSL.g:17715:1: rule__JvmParameterizedTypeReference__Group_1_4__1 : rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 ;
+    // InternalSignalDSL.g:17873:1: rule__JvmParameterizedTypeReference__Group_1_4__1 : rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17719:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
-            // InternalSignalDSL.g:17720:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
+            // InternalSignalDSL.g:17877:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
+            // InternalSignalDSL.g:17878:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
             {
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_44);
             rule__JvmParameterizedTypeReference__Group_1_4__1__Impl();
 
             state._fsp--;
@@ -58433,23 +59041,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1__Impl"
-    // InternalSignalDSL.g:17727:1: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) ;
+    // InternalSignalDSL.g:17885:1: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17731:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
-            // InternalSignalDSL.g:17732:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalSignalDSL.g:17889:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
+            // InternalSignalDSL.g:17890:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
             {
-            // InternalSignalDSL.g:17732:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
-            // InternalSignalDSL.g:17733:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalSignalDSL.g:17890:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalSignalDSL.g:17891:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); 
             }
-            // InternalSignalDSL.g:17734:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
-            // InternalSignalDSL.g:17734:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
+            // InternalSignalDSL.g:17892:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalSignalDSL.g:17892:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1();
@@ -58484,14 +59092,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2"
-    // InternalSignalDSL.g:17742:1: rule__JvmParameterizedTypeReference__Group_1_4__2 : rule__JvmParameterizedTypeReference__Group_1_4__2__Impl ;
+    // InternalSignalDSL.g:17900:1: rule__JvmParameterizedTypeReference__Group_1_4__2 : rule__JvmParameterizedTypeReference__Group_1_4__2__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17746:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
-            // InternalSignalDSL.g:17747:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
+            // InternalSignalDSL.g:17904:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
+            // InternalSignalDSL.g:17905:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4__2__Impl();
@@ -58517,27 +59125,27 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2__Impl"
-    // InternalSignalDSL.g:17753:1: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) ;
+    // InternalSignalDSL.g:17911:1: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17757:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
-            // InternalSignalDSL.g:17758:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalSignalDSL.g:17915:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
+            // InternalSignalDSL.g:17916:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
             {
-            // InternalSignalDSL.g:17758:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
-            // InternalSignalDSL.g:17759:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            // InternalSignalDSL.g:17916:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalSignalDSL.g:17917:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); 
             }
-            // InternalSignalDSL.g:17760:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
-            int alt139=2;
-            alt139 = dfa139.predict(input);
-            switch (alt139) {
+            // InternalSignalDSL.g:17918:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            int alt142=2;
+            alt142 = dfa142.predict(input);
+            switch (alt142) {
                 case 1 :
-                    // InternalSignalDSL.g:17760:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+                    // InternalSignalDSL.g:17918:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmParameterizedTypeReference__Group_1_4_2__0();
@@ -58575,14 +59183,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0"
-    // InternalSignalDSL.g:17769:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl ;
+    // InternalSignalDSL.g:17927:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17773:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
-            // InternalSignalDSL.g:17774:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
+            // InternalSignalDSL.g:17931:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
+            // InternalSignalDSL.g:17932:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl();
@@ -58608,23 +59216,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl"
-    // InternalSignalDSL.g:17780:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) ;
+    // InternalSignalDSL.g:17938:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17784:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
-            // InternalSignalDSL.g:17785:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalSignalDSL.g:17942:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
+            // InternalSignalDSL.g:17943:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
             {
-            // InternalSignalDSL.g:17785:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
-            // InternalSignalDSL.g:17786:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalSignalDSL.g:17943:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalSignalDSL.g:17944:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); 
             }
-            // InternalSignalDSL.g:17787:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
-            // InternalSignalDSL.g:17787:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
+            // InternalSignalDSL.g:17945:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalSignalDSL.g:17945:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__0();
@@ -58659,16 +59267,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0"
-    // InternalSignalDSL.g:17796:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 ;
+    // InternalSignalDSL.g:17954:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17800:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
-            // InternalSignalDSL.g:17801:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
+            // InternalSignalDSL.g:17958:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
+            // InternalSignalDSL.g:17959:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
             {
-            pushFollow(FOLLOW_114);
+            pushFollow(FOLLOW_113);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl();
 
             state._fsp--;
@@ -58697,23 +59305,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl"
-    // InternalSignalDSL.g:17808:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:17966:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl : ( () ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17812:1: ( ( () ) )
-            // InternalSignalDSL.g:17813:1: ( () )
+            // InternalSignalDSL.g:17970:1: ( ( () ) )
+            // InternalSignalDSL.g:17971:1: ( () )
             {
-            // InternalSignalDSL.g:17813:1: ( () )
-            // InternalSignalDSL.g:17814:2: ()
+            // InternalSignalDSL.g:17971:1: ( () )
+            // InternalSignalDSL.g:17972:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); 
             }
-            // InternalSignalDSL.g:17815:2: ()
-            // InternalSignalDSL.g:17815:3: 
+            // InternalSignalDSL.g:17973:2: ()
+            // InternalSignalDSL.g:17973:3: 
             {
             }
 
@@ -58738,14 +59346,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1"
-    // InternalSignalDSL.g:17823:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl ;
+    // InternalSignalDSL.g:17981:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17827:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
-            // InternalSignalDSL.g:17828:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
+            // InternalSignalDSL.g:17985:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
+            // InternalSignalDSL.g:17986:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl();
@@ -58771,22 +59379,22 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl"
-    // InternalSignalDSL.g:17834:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl : ( '.' ) ;
+    // InternalSignalDSL.g:17992:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl : ( '.' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17838:1: ( ( '.' ) )
-            // InternalSignalDSL.g:17839:1: ( '.' )
+            // InternalSignalDSL.g:17996:1: ( ( '.' ) )
+            // InternalSignalDSL.g:17997:1: ( '.' )
             {
-            // InternalSignalDSL.g:17839:1: ( '.' )
-            // InternalSignalDSL.g:17840:2: '.'
+            // InternalSignalDSL.g:17997:1: ( '.' )
+            // InternalSignalDSL.g:17998:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); 
             }
-            match(input,43,FOLLOW_2); if (state.failed) return ;
+            match(input,44,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); 
             }
@@ -58812,16 +59420,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0"
-    // InternalSignalDSL.g:17850:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 ;
+    // InternalSignalDSL.g:18008:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17854:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
-            // InternalSignalDSL.g:17855:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
+            // InternalSignalDSL.g:18012:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
+            // InternalSignalDSL.g:18013:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl();
 
             state._fsp--;
@@ -58850,25 +59458,25 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl"
-    // InternalSignalDSL.g:17862:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl : ( ( '<' ) ) ;
+    // InternalSignalDSL.g:18020:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl : ( ( '<' ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17866:1: ( ( ( '<' ) ) )
-            // InternalSignalDSL.g:17867:1: ( ( '<' ) )
+            // InternalSignalDSL.g:18024:1: ( ( ( '<' ) ) )
+            // InternalSignalDSL.g:18025:1: ( ( '<' ) )
             {
-            // InternalSignalDSL.g:17867:1: ( ( '<' ) )
-            // InternalSignalDSL.g:17868:2: ( '<' )
+            // InternalSignalDSL.g:18025:1: ( ( '<' ) )
+            // InternalSignalDSL.g:18026:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); 
             }
-            // InternalSignalDSL.g:17869:2: ( '<' )
-            // InternalSignalDSL.g:17869:3: '<'
+            // InternalSignalDSL.g:18027:2: ( '<' )
+            // InternalSignalDSL.g:18027:3: '<'
             {
-            match(input,27,FOLLOW_2); if (state.failed) return ;
+            match(input,28,FOLLOW_2); if (state.failed) return ;
 
             }
 
@@ -58897,16 +59505,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1"
-    // InternalSignalDSL.g:17877:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 ;
+    // InternalSignalDSL.g:18035:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17881:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
-            // InternalSignalDSL.g:17882:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
+            // InternalSignalDSL.g:18039:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
+            // InternalSignalDSL.g:18040:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_75);
             rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl();
 
             state._fsp--;
@@ -58935,23 +59543,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl"
-    // InternalSignalDSL.g:17889:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) ;
+    // InternalSignalDSL.g:18047:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17893:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
-            // InternalSignalDSL.g:17894:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalSignalDSL.g:18051:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
+            // InternalSignalDSL.g:18052:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
             {
-            // InternalSignalDSL.g:17894:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
-            // InternalSignalDSL.g:17895:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalSignalDSL.g:18052:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalSignalDSL.g:18053:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); 
             }
-            // InternalSignalDSL.g:17896:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
-            // InternalSignalDSL.g:17896:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
+            // InternalSignalDSL.g:18054:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalSignalDSL.g:18054:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1();
@@ -58986,16 +59594,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2"
-    // InternalSignalDSL.g:17904:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2 : rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 ;
+    // InternalSignalDSL.g:18062:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2 : rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17908:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
-            // InternalSignalDSL.g:17909:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
+            // InternalSignalDSL.g:18066:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
+            // InternalSignalDSL.g:18067:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
             {
-            pushFollow(FOLLOW_76);
+            pushFollow(FOLLOW_75);
             rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl();
 
             state._fsp--;
@@ -59024,37 +59632,37 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl"
-    // InternalSignalDSL.g:17916:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) ;
+    // InternalSignalDSL.g:18074:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17920:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
-            // InternalSignalDSL.g:17921:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalSignalDSL.g:18078:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
+            // InternalSignalDSL.g:18079:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
             {
-            // InternalSignalDSL.g:17921:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
-            // InternalSignalDSL.g:17922:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            // InternalSignalDSL.g:18079:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalSignalDSL.g:18080:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); 
             }
-            // InternalSignalDSL.g:17923:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
-            loop140:
+            // InternalSignalDSL.g:18081:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            loop143:
             do {
-                int alt140=2;
-                int LA140_0 = input.LA(1);
+                int alt143=2;
+                int LA143_0 = input.LA(1);
 
-                if ( (LA140_0==80) ) {
-                    alt140=1;
+                if ( (LA143_0==82) ) {
+                    alt143=1;
                 }
 
 
-                switch (alt140) {
+                switch (alt143) {
             	case 1 :
-            	    // InternalSignalDSL.g:17923:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
+            	    // InternalSignalDSL.g:18081:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
             	    {
-            	    pushFollow(FOLLOW_37);
+            	    pushFollow(FOLLOW_36);
             	    rule__JvmParameterizedTypeReference__Group_1_4_2_2__0();
 
             	    state._fsp--;
@@ -59064,7 +59672,7 @@
             	    break;
 
             	default :
-            	    break loop140;
+            	    break loop143;
                 }
             } while (true);
 
@@ -59093,14 +59701,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3"
-    // InternalSignalDSL.g:17931:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3 : rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl ;
+    // InternalSignalDSL.g:18089:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3 : rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17935:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
-            // InternalSignalDSL.g:17936:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
+            // InternalSignalDSL.g:18093:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
+            // InternalSignalDSL.g:18094:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl();
@@ -59126,22 +59734,22 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl"
-    // InternalSignalDSL.g:17942:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl : ( '>' ) ;
+    // InternalSignalDSL.g:18100:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl : ( '>' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17946:1: ( ( '>' ) )
-            // InternalSignalDSL.g:17947:1: ( '>' )
+            // InternalSignalDSL.g:18104:1: ( ( '>' ) )
+            // InternalSignalDSL.g:18105:1: ( '>' )
             {
-            // InternalSignalDSL.g:17947:1: ( '>' )
-            // InternalSignalDSL.g:17948:2: '>'
+            // InternalSignalDSL.g:18105:1: ( '>' )
+            // InternalSignalDSL.g:18106:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); 
             }
-            match(input,26,FOLLOW_2); if (state.failed) return ;
+            match(input,27,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); 
             }
@@ -59167,16 +59775,16 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0"
-    // InternalSignalDSL.g:17958:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 ;
+    // InternalSignalDSL.g:18116:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17962:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
-            // InternalSignalDSL.g:17963:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
+            // InternalSignalDSL.g:18120:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
+            // InternalSignalDSL.g:18121:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl();
 
             state._fsp--;
@@ -59205,22 +59813,22 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl"
-    // InternalSignalDSL.g:17970:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl : ( ',' ) ;
+    // InternalSignalDSL.g:18128:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl : ( ',' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17974:1: ( ( ',' ) )
-            // InternalSignalDSL.g:17975:1: ( ',' )
+            // InternalSignalDSL.g:18132:1: ( ( ',' ) )
+            // InternalSignalDSL.g:18133:1: ( ',' )
             {
-            // InternalSignalDSL.g:17975:1: ( ',' )
-            // InternalSignalDSL.g:17976:2: ','
+            // InternalSignalDSL.g:18133:1: ( ',' )
+            // InternalSignalDSL.g:18134:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
             }
@@ -59246,14 +59854,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1"
-    // InternalSignalDSL.g:17985:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl ;
+    // InternalSignalDSL.g:18143:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:17989:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
-            // InternalSignalDSL.g:17990:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
+            // InternalSignalDSL.g:18147:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
+            // InternalSignalDSL.g:18148:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl();
@@ -59279,23 +59887,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl"
-    // InternalSignalDSL.g:17996:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) ;
+    // InternalSignalDSL.g:18154:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18000:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
-            // InternalSignalDSL.g:18001:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalSignalDSL.g:18158:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
+            // InternalSignalDSL.g:18159:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
             {
-            // InternalSignalDSL.g:18001:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
-            // InternalSignalDSL.g:18002:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalSignalDSL.g:18159:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalSignalDSL.g:18160:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); 
             }
-            // InternalSignalDSL.g:18003:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
-            // InternalSignalDSL.g:18003:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
+            // InternalSignalDSL.g:18161:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalSignalDSL.g:18161:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1();
@@ -59330,16 +59938,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__0"
-    // InternalSignalDSL.g:18012:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
+    // InternalSignalDSL.g:18170:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
     public final void rule__JvmWildcardTypeReference__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18016:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
-            // InternalSignalDSL.g:18017:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
+            // InternalSignalDSL.g:18174:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
+            // InternalSignalDSL.g:18175:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
             {
-            pushFollow(FOLLOW_75);
+            pushFollow(FOLLOW_74);
             rule__JvmWildcardTypeReference__Group__0__Impl();
 
             state._fsp--;
@@ -59368,23 +59976,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__0__Impl"
-    // InternalSignalDSL.g:18024:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
+    // InternalSignalDSL.g:18182:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
     public final void rule__JvmWildcardTypeReference__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18028:1: ( ( () ) )
-            // InternalSignalDSL.g:18029:1: ( () )
+            // InternalSignalDSL.g:18186:1: ( ( () ) )
+            // InternalSignalDSL.g:18187:1: ( () )
             {
-            // InternalSignalDSL.g:18029:1: ( () )
-            // InternalSignalDSL.g:18030:2: ()
+            // InternalSignalDSL.g:18187:1: ( () )
+            // InternalSignalDSL.g:18188:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); 
             }
-            // InternalSignalDSL.g:18031:2: ()
-            // InternalSignalDSL.g:18031:3: 
+            // InternalSignalDSL.g:18189:2: ()
+            // InternalSignalDSL.g:18189:3: 
             {
             }
 
@@ -59409,16 +60017,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__1"
-    // InternalSignalDSL.g:18039:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
+    // InternalSignalDSL.g:18197:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
     public final void rule__JvmWildcardTypeReference__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18043:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
-            // InternalSignalDSL.g:18044:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
+            // InternalSignalDSL.g:18201:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
+            // InternalSignalDSL.g:18202:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
             {
-            pushFollow(FOLLOW_118);
+            pushFollow(FOLLOW_117);
             rule__JvmWildcardTypeReference__Group__1__Impl();
 
             state._fsp--;
@@ -59447,22 +60055,22 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__1__Impl"
-    // InternalSignalDSL.g:18051:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
+    // InternalSignalDSL.g:18209:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
     public final void rule__JvmWildcardTypeReference__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18055:1: ( ( '?' ) )
-            // InternalSignalDSL.g:18056:1: ( '?' )
+            // InternalSignalDSL.g:18213:1: ( ( '?' ) )
+            // InternalSignalDSL.g:18214:1: ( '?' )
             {
-            // InternalSignalDSL.g:18056:1: ( '?' )
-            // InternalSignalDSL.g:18057:2: '?'
+            // InternalSignalDSL.g:18214:1: ( '?' )
+            // InternalSignalDSL.g:18215:2: '?'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
             }
-            match(input,103,FOLLOW_2); if (state.failed) return ;
+            match(input,105,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
             }
@@ -59488,14 +60096,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__2"
-    // InternalSignalDSL.g:18066:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
+    // InternalSignalDSL.g:18224:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
     public final void rule__JvmWildcardTypeReference__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18070:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
-            // InternalSignalDSL.g:18071:2: rule__JvmWildcardTypeReference__Group__2__Impl
+            // InternalSignalDSL.g:18228:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
+            // InternalSignalDSL.g:18229:2: rule__JvmWildcardTypeReference__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group__2__Impl();
@@ -59521,31 +60129,31 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__2__Impl"
-    // InternalSignalDSL.g:18077:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
+    // InternalSignalDSL.g:18235:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
     public final void rule__JvmWildcardTypeReference__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18081:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
-            // InternalSignalDSL.g:18082:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalSignalDSL.g:18239:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
+            // InternalSignalDSL.g:18240:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
             {
-            // InternalSignalDSL.g:18082:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
-            // InternalSignalDSL.g:18083:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            // InternalSignalDSL.g:18240:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalSignalDSL.g:18241:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); 
             }
-            // InternalSignalDSL.g:18084:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
-            int alt141=2;
-            int LA141_0 = input.LA(1);
+            // InternalSignalDSL.g:18242:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            int alt144=2;
+            int LA144_0 = input.LA(1);
 
-            if ( (LA141_0==45||LA141_0==49) ) {
-                alt141=1;
+            if ( (LA144_0==46||LA144_0==50) ) {
+                alt144=1;
             }
-            switch (alt141) {
+            switch (alt144) {
                 case 1 :
-                    // InternalSignalDSL.g:18084:3: rule__JvmWildcardTypeReference__Alternatives_2
+                    // InternalSignalDSL.g:18242:3: rule__JvmWildcardTypeReference__Alternatives_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Alternatives_2();
@@ -59583,16 +60191,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0"
-    // InternalSignalDSL.g:18093:1: rule__JvmWildcardTypeReference__Group_2_0__0 : rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 ;
+    // InternalSignalDSL.g:18251:1: rule__JvmWildcardTypeReference__Group_2_0__0 : rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18097:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
-            // InternalSignalDSL.g:18098:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
+            // InternalSignalDSL.g:18255:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
+            // InternalSignalDSL.g:18256:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
             {
-            pushFollow(FOLLOW_119);
+            pushFollow(FOLLOW_118);
             rule__JvmWildcardTypeReference__Group_2_0__0__Impl();
 
             state._fsp--;
@@ -59621,23 +60229,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0__Impl"
-    // InternalSignalDSL.g:18105:1: rule__JvmWildcardTypeReference__Group_2_0__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) ;
+    // InternalSignalDSL.g:18263:1: rule__JvmWildcardTypeReference__Group_2_0__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18109:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
-            // InternalSignalDSL.g:18110:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalSignalDSL.g:18267:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
+            // InternalSignalDSL.g:18268:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
             {
-            // InternalSignalDSL.g:18110:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
-            // InternalSignalDSL.g:18111:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalSignalDSL.g:18268:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalSignalDSL.g:18269:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); 
             }
-            // InternalSignalDSL.g:18112:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
-            // InternalSignalDSL.g:18112:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
+            // InternalSignalDSL.g:18270:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalSignalDSL.g:18270:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0();
@@ -59672,14 +60280,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1"
-    // InternalSignalDSL.g:18120:1: rule__JvmWildcardTypeReference__Group_2_0__1 : rule__JvmWildcardTypeReference__Group_2_0__1__Impl ;
+    // InternalSignalDSL.g:18278:1: rule__JvmWildcardTypeReference__Group_2_0__1 : rule__JvmWildcardTypeReference__Group_2_0__1__Impl ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18124:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
-            // InternalSignalDSL.g:18125:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
+            // InternalSignalDSL.g:18282:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
+            // InternalSignalDSL.g:18283:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group_2_0__1__Impl();
@@ -59705,37 +60313,37 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1__Impl"
-    // InternalSignalDSL.g:18131:1: rule__JvmWildcardTypeReference__Group_2_0__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) ;
+    // InternalSignalDSL.g:18289:1: rule__JvmWildcardTypeReference__Group_2_0__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18135:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
-            // InternalSignalDSL.g:18136:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalSignalDSL.g:18293:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
+            // InternalSignalDSL.g:18294:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
             {
-            // InternalSignalDSL.g:18136:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
-            // InternalSignalDSL.g:18137:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            // InternalSignalDSL.g:18294:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalSignalDSL.g:18295:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); 
             }
-            // InternalSignalDSL.g:18138:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
-            loop142:
+            // InternalSignalDSL.g:18296:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            loop145:
             do {
-                int alt142=2;
-                int LA142_0 = input.LA(1);
+                int alt145=2;
+                int LA145_0 = input.LA(1);
 
-                if ( (LA142_0==104) ) {
-                    alt142=1;
+                if ( (LA145_0==106) ) {
+                    alt145=1;
                 }
 
 
-                switch (alt142) {
+                switch (alt145) {
             	case 1 :
-            	    // InternalSignalDSL.g:18138:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
+            	    // InternalSignalDSL.g:18296:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
             	    {
-            	    pushFollow(FOLLOW_120);
+            	    pushFollow(FOLLOW_119);
             	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1();
 
             	    state._fsp--;
@@ -59745,7 +60353,7 @@
             	    break;
 
             	default :
-            	    break loop142;
+            	    break loop145;
                 }
             } while (true);
 
@@ -59774,16 +60382,16 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0"
-    // InternalSignalDSL.g:18147:1: rule__JvmWildcardTypeReference__Group_2_1__0 : rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 ;
+    // InternalSignalDSL.g:18305:1: rule__JvmWildcardTypeReference__Group_2_1__0 : rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18151:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
-            // InternalSignalDSL.g:18152:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
+            // InternalSignalDSL.g:18309:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
+            // InternalSignalDSL.g:18310:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
             {
-            pushFollow(FOLLOW_119);
+            pushFollow(FOLLOW_118);
             rule__JvmWildcardTypeReference__Group_2_1__0__Impl();
 
             state._fsp--;
@@ -59812,23 +60420,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0__Impl"
-    // InternalSignalDSL.g:18159:1: rule__JvmWildcardTypeReference__Group_2_1__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) ;
+    // InternalSignalDSL.g:18317:1: rule__JvmWildcardTypeReference__Group_2_1__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18163:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
-            // InternalSignalDSL.g:18164:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalSignalDSL.g:18321:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
+            // InternalSignalDSL.g:18322:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
             {
-            // InternalSignalDSL.g:18164:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
-            // InternalSignalDSL.g:18165:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalSignalDSL.g:18322:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalSignalDSL.g:18323:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); 
             }
-            // InternalSignalDSL.g:18166:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
-            // InternalSignalDSL.g:18166:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
+            // InternalSignalDSL.g:18324:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalSignalDSL.g:18324:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0();
@@ -59863,14 +60471,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1"
-    // InternalSignalDSL.g:18174:1: rule__JvmWildcardTypeReference__Group_2_1__1 : rule__JvmWildcardTypeReference__Group_2_1__1__Impl ;
+    // InternalSignalDSL.g:18332:1: rule__JvmWildcardTypeReference__Group_2_1__1 : rule__JvmWildcardTypeReference__Group_2_1__1__Impl ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18178:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
-            // InternalSignalDSL.g:18179:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
+            // InternalSignalDSL.g:18336:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
+            // InternalSignalDSL.g:18337:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group_2_1__1__Impl();
@@ -59896,37 +60504,37 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1__Impl"
-    // InternalSignalDSL.g:18185:1: rule__JvmWildcardTypeReference__Group_2_1__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) ;
+    // InternalSignalDSL.g:18343:1: rule__JvmWildcardTypeReference__Group_2_1__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18189:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
-            // InternalSignalDSL.g:18190:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalSignalDSL.g:18347:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
+            // InternalSignalDSL.g:18348:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
             {
-            // InternalSignalDSL.g:18190:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
-            // InternalSignalDSL.g:18191:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            // InternalSignalDSL.g:18348:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalSignalDSL.g:18349:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); 
             }
-            // InternalSignalDSL.g:18192:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
-            loop143:
+            // InternalSignalDSL.g:18350:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            loop146:
             do {
-                int alt143=2;
-                int LA143_0 = input.LA(1);
+                int alt146=2;
+                int LA146_0 = input.LA(1);
 
-                if ( (LA143_0==104) ) {
-                    alt143=1;
+                if ( (LA146_0==106) ) {
+                    alt146=1;
                 }
 
 
-                switch (alt143) {
+                switch (alt146) {
             	case 1 :
-            	    // InternalSignalDSL.g:18192:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
+            	    // InternalSignalDSL.g:18350:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
             	    {
-            	    pushFollow(FOLLOW_120);
+            	    pushFollow(FOLLOW_119);
             	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1();
 
             	    state._fsp--;
@@ -59936,7 +60544,7 @@
             	    break;
 
             	default :
-            	    break loop143;
+            	    break loop146;
                 }
             } while (true);
 
@@ -59965,16 +60573,16 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__0"
-    // InternalSignalDSL.g:18201:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
+    // InternalSignalDSL.g:18359:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
     public final void rule__JvmUpperBound__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18205:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
-            // InternalSignalDSL.g:18206:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
+            // InternalSignalDSL.g:18363:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
+            // InternalSignalDSL.g:18364:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__JvmUpperBound__Group__0__Impl();
 
             state._fsp--;
@@ -60003,22 +60611,22 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__0__Impl"
-    // InternalSignalDSL.g:18213:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
+    // InternalSignalDSL.g:18371:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
     public final void rule__JvmUpperBound__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18217:1: ( ( 'extends' ) )
-            // InternalSignalDSL.g:18218:1: ( 'extends' )
+            // InternalSignalDSL.g:18375:1: ( ( 'extends' ) )
+            // InternalSignalDSL.g:18376:1: ( 'extends' )
             {
-            // InternalSignalDSL.g:18218:1: ( 'extends' )
-            // InternalSignalDSL.g:18219:2: 'extends'
+            // InternalSignalDSL.g:18376:1: ( 'extends' )
+            // InternalSignalDSL.g:18377:2: 'extends'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); 
             }
-            match(input,45,FOLLOW_2); if (state.failed) return ;
+            match(input,46,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); 
             }
@@ -60044,14 +60652,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__1"
-    // InternalSignalDSL.g:18228:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
+    // InternalSignalDSL.g:18386:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
     public final void rule__JvmUpperBound__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18232:1: ( rule__JvmUpperBound__Group__1__Impl )
-            // InternalSignalDSL.g:18233:2: rule__JvmUpperBound__Group__1__Impl
+            // InternalSignalDSL.g:18390:1: ( rule__JvmUpperBound__Group__1__Impl )
+            // InternalSignalDSL.g:18391:2: rule__JvmUpperBound__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__Group__1__Impl();
@@ -60077,23 +60685,23 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__1__Impl"
-    // InternalSignalDSL.g:18239:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
+    // InternalSignalDSL.g:18397:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmUpperBound__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18243:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
-            // InternalSignalDSL.g:18244:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:18401:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
+            // InternalSignalDSL.g:18402:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
             {
-            // InternalSignalDSL.g:18244:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
-            // InternalSignalDSL.g:18245:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:18402:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:18403:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalSignalDSL.g:18246:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
-            // InternalSignalDSL.g:18246:3: rule__JvmUpperBound__TypeReferenceAssignment_1
+            // InternalSignalDSL.g:18404:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:18404:3: rule__JvmUpperBound__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__TypeReferenceAssignment_1();
@@ -60128,16 +60736,16 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__0"
-    // InternalSignalDSL.g:18255:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
+    // InternalSignalDSL.g:18413:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
     public final void rule__JvmUpperBoundAnded__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18259:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
-            // InternalSignalDSL.g:18260:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
+            // InternalSignalDSL.g:18417:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
+            // InternalSignalDSL.g:18418:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__JvmUpperBoundAnded__Group__0__Impl();
 
             state._fsp--;
@@ -60166,22 +60774,22 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__0__Impl"
-    // InternalSignalDSL.g:18267:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
+    // InternalSignalDSL.g:18425:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
     public final void rule__JvmUpperBoundAnded__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18271:1: ( ( '&' ) )
-            // InternalSignalDSL.g:18272:1: ( '&' )
+            // InternalSignalDSL.g:18429:1: ( ( '&' ) )
+            // InternalSignalDSL.g:18430:1: ( '&' )
             {
-            // InternalSignalDSL.g:18272:1: ( '&' )
-            // InternalSignalDSL.g:18273:2: '&'
+            // InternalSignalDSL.g:18430:1: ( '&' )
+            // InternalSignalDSL.g:18431:2: '&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
             }
-            match(input,104,FOLLOW_2); if (state.failed) return ;
+            match(input,106,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
             }
@@ -60207,14 +60815,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__1"
-    // InternalSignalDSL.g:18282:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
+    // InternalSignalDSL.g:18440:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
     public final void rule__JvmUpperBoundAnded__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18286:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
-            // InternalSignalDSL.g:18287:2: rule__JvmUpperBoundAnded__Group__1__Impl
+            // InternalSignalDSL.g:18444:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
+            // InternalSignalDSL.g:18445:2: rule__JvmUpperBoundAnded__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__Group__1__Impl();
@@ -60240,23 +60848,23 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__1__Impl"
-    // InternalSignalDSL.g:18293:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    // InternalSignalDSL.g:18451:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmUpperBoundAnded__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18297:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
-            // InternalSignalDSL.g:18298:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:18455:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalSignalDSL.g:18456:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
             {
-            // InternalSignalDSL.g:18298:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
-            // InternalSignalDSL.g:18299:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:18456:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:18457:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalSignalDSL.g:18300:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
-            // InternalSignalDSL.g:18300:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
+            // InternalSignalDSL.g:18458:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:18458:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__TypeReferenceAssignment_1();
@@ -60291,16 +60899,16 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__0"
-    // InternalSignalDSL.g:18309:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
+    // InternalSignalDSL.g:18467:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
     public final void rule__JvmLowerBound__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18313:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
-            // InternalSignalDSL.g:18314:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
+            // InternalSignalDSL.g:18471:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
+            // InternalSignalDSL.g:18472:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__JvmLowerBound__Group__0__Impl();
 
             state._fsp--;
@@ -60329,22 +60937,22 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__0__Impl"
-    // InternalSignalDSL.g:18321:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
+    // InternalSignalDSL.g:18479:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
     public final void rule__JvmLowerBound__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18325:1: ( ( 'super' ) )
-            // InternalSignalDSL.g:18326:1: ( 'super' )
+            // InternalSignalDSL.g:18483:1: ( ( 'super' ) )
+            // InternalSignalDSL.g:18484:1: ( 'super' )
             {
-            // InternalSignalDSL.g:18326:1: ( 'super' )
-            // InternalSignalDSL.g:18327:2: 'super'
+            // InternalSignalDSL.g:18484:1: ( 'super' )
+            // InternalSignalDSL.g:18485:2: 'super'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); 
             }
-            match(input,49,FOLLOW_2); if (state.failed) return ;
+            match(input,50,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); 
             }
@@ -60370,14 +60978,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__1"
-    // InternalSignalDSL.g:18336:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
+    // InternalSignalDSL.g:18494:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
     public final void rule__JvmLowerBound__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18340:1: ( rule__JvmLowerBound__Group__1__Impl )
-            // InternalSignalDSL.g:18341:2: rule__JvmLowerBound__Group__1__Impl
+            // InternalSignalDSL.g:18498:1: ( rule__JvmLowerBound__Group__1__Impl )
+            // InternalSignalDSL.g:18499:2: rule__JvmLowerBound__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__Group__1__Impl();
@@ -60403,23 +61011,23 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__1__Impl"
-    // InternalSignalDSL.g:18347:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
+    // InternalSignalDSL.g:18505:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmLowerBound__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18351:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
-            // InternalSignalDSL.g:18352:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:18509:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
+            // InternalSignalDSL.g:18510:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
             {
-            // InternalSignalDSL.g:18352:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
-            // InternalSignalDSL.g:18353:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:18510:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:18511:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalSignalDSL.g:18354:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
-            // InternalSignalDSL.g:18354:3: rule__JvmLowerBound__TypeReferenceAssignment_1
+            // InternalSignalDSL.g:18512:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:18512:3: rule__JvmLowerBound__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__TypeReferenceAssignment_1();
@@ -60454,16 +61062,16 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__0"
-    // InternalSignalDSL.g:18363:1: rule__JvmLowerBoundAnded__Group__0 : rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 ;
+    // InternalSignalDSL.g:18521:1: rule__JvmLowerBoundAnded__Group__0 : rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 ;
     public final void rule__JvmLowerBoundAnded__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18367:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
-            // InternalSignalDSL.g:18368:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
+            // InternalSignalDSL.g:18525:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
+            // InternalSignalDSL.g:18526:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
             {
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_54);
             rule__JvmLowerBoundAnded__Group__0__Impl();
 
             state._fsp--;
@@ -60492,22 +61100,22 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__0__Impl"
-    // InternalSignalDSL.g:18375:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
+    // InternalSignalDSL.g:18533:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
     public final void rule__JvmLowerBoundAnded__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18379:1: ( ( '&' ) )
-            // InternalSignalDSL.g:18380:1: ( '&' )
+            // InternalSignalDSL.g:18537:1: ( ( '&' ) )
+            // InternalSignalDSL.g:18538:1: ( '&' )
             {
-            // InternalSignalDSL.g:18380:1: ( '&' )
-            // InternalSignalDSL.g:18381:2: '&'
+            // InternalSignalDSL.g:18538:1: ( '&' )
+            // InternalSignalDSL.g:18539:2: '&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
             }
-            match(input,104,FOLLOW_2); if (state.failed) return ;
+            match(input,106,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
             }
@@ -60533,14 +61141,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__1"
-    // InternalSignalDSL.g:18390:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
+    // InternalSignalDSL.g:18548:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
     public final void rule__JvmLowerBoundAnded__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18394:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
-            // InternalSignalDSL.g:18395:2: rule__JvmLowerBoundAnded__Group__1__Impl
+            // InternalSignalDSL.g:18552:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
+            // InternalSignalDSL.g:18553:2: rule__JvmLowerBoundAnded__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__Group__1__Impl();
@@ -60566,23 +61174,23 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__1__Impl"
-    // InternalSignalDSL.g:18401:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    // InternalSignalDSL.g:18559:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmLowerBoundAnded__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18405:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
-            // InternalSignalDSL.g:18406:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:18563:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalSignalDSL.g:18564:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
             {
-            // InternalSignalDSL.g:18406:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
-            // InternalSignalDSL.g:18407:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:18564:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalSignalDSL.g:18565:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalSignalDSL.g:18408:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
-            // InternalSignalDSL.g:18408:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
+            // InternalSignalDSL.g:18566:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalSignalDSL.g:18566:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__TypeReferenceAssignment_1();
@@ -60617,16 +61225,16 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0"
-    // InternalSignalDSL.g:18417:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
+    // InternalSignalDSL.g:18575:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
     public final void rule__QualifiedNameWithWildcard__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18421:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
-            // InternalSignalDSL.g:18422:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
+            // InternalSignalDSL.g:18579:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
+            // InternalSignalDSL.g:18580:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
             {
-            pushFollow(FOLLOW_114);
+            pushFollow(FOLLOW_113);
             rule__QualifiedNameWithWildcard__Group__0__Impl();
 
             state._fsp--;
@@ -60655,17 +61263,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0__Impl"
-    // InternalSignalDSL.g:18429:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
+    // InternalSignalDSL.g:18587:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
     public final void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18433:1: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:18434:1: ( ruleQualifiedName )
+            // InternalSignalDSL.g:18591:1: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:18592:1: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:18434:1: ( ruleQualifiedName )
-            // InternalSignalDSL.g:18435:2: ruleQualifiedName
+            // InternalSignalDSL.g:18592:1: ( ruleQualifiedName )
+            // InternalSignalDSL.g:18593:2: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
@@ -60700,16 +61308,16 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1"
-    // InternalSignalDSL.g:18444:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
+    // InternalSignalDSL.g:18602:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
     public final void rule__QualifiedNameWithWildcard__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18448:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
-            // InternalSignalDSL.g:18449:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
+            // InternalSignalDSL.g:18606:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
+            // InternalSignalDSL.g:18607:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
             {
-            pushFollow(FOLLOW_121);
+            pushFollow(FOLLOW_120);
             rule__QualifiedNameWithWildcard__Group__1__Impl();
 
             state._fsp--;
@@ -60738,22 +61346,22 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1__Impl"
-    // InternalSignalDSL.g:18456:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
+    // InternalSignalDSL.g:18614:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
     public final void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18460:1: ( ( '.' ) )
-            // InternalSignalDSL.g:18461:1: ( '.' )
+            // InternalSignalDSL.g:18618:1: ( ( '.' ) )
+            // InternalSignalDSL.g:18619:1: ( '.' )
             {
-            // InternalSignalDSL.g:18461:1: ( '.' )
-            // InternalSignalDSL.g:18462:2: '.'
+            // InternalSignalDSL.g:18619:1: ( '.' )
+            // InternalSignalDSL.g:18620:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
             }
-            match(input,43,FOLLOW_2); if (state.failed) return ;
+            match(input,44,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
             }
@@ -60779,14 +61387,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2"
-    // InternalSignalDSL.g:18471:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
+    // InternalSignalDSL.g:18629:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
     public final void rule__QualifiedNameWithWildcard__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18475:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
-            // InternalSignalDSL.g:18476:2: rule__QualifiedNameWithWildcard__Group__2__Impl
+            // InternalSignalDSL.g:18633:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
+            // InternalSignalDSL.g:18634:2: rule__QualifiedNameWithWildcard__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameWithWildcard__Group__2__Impl();
@@ -60812,22 +61420,22 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2__Impl"
-    // InternalSignalDSL.g:18482:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
+    // InternalSignalDSL.g:18640:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
     public final void rule__QualifiedNameWithWildcard__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18486:1: ( ( '*' ) )
-            // InternalSignalDSL.g:18487:1: ( '*' )
+            // InternalSignalDSL.g:18644:1: ( ( '*' ) )
+            // InternalSignalDSL.g:18645:1: ( '*' )
             {
-            // InternalSignalDSL.g:18487:1: ( '*' )
-            // InternalSignalDSL.g:18488:2: '*'
+            // InternalSignalDSL.g:18645:1: ( '*' )
+            // InternalSignalDSL.g:18646:2: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
             }
-            match(input,36,FOLLOW_2); if (state.failed) return ;
+            match(input,37,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
             }
@@ -60853,16 +61461,16 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0"
-    // InternalSignalDSL.g:18498:1: rule__QualifiedNameInStaticImport__Group__0 : rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 ;
+    // InternalSignalDSL.g:18656:1: rule__QualifiedNameInStaticImport__Group__0 : rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 ;
     public final void rule__QualifiedNameInStaticImport__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18502:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
-            // InternalSignalDSL.g:18503:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
+            // InternalSignalDSL.g:18660:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
+            // InternalSignalDSL.g:18661:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
             {
-            pushFollow(FOLLOW_114);
+            pushFollow(FOLLOW_113);
             rule__QualifiedNameInStaticImport__Group__0__Impl();
 
             state._fsp--;
@@ -60891,17 +61499,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0__Impl"
-    // InternalSignalDSL.g:18510:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
+    // InternalSignalDSL.g:18668:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedNameInStaticImport__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18514:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:18515:1: ( ruleValidID )
+            // InternalSignalDSL.g:18672:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:18673:1: ( ruleValidID )
             {
-            // InternalSignalDSL.g:18515:1: ( ruleValidID )
-            // InternalSignalDSL.g:18516:2: ruleValidID
+            // InternalSignalDSL.g:18673:1: ( ruleValidID )
+            // InternalSignalDSL.g:18674:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
@@ -60936,14 +61544,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1"
-    // InternalSignalDSL.g:18525:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
+    // InternalSignalDSL.g:18683:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
     public final void rule__QualifiedNameInStaticImport__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18529:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
-            // InternalSignalDSL.g:18530:2: rule__QualifiedNameInStaticImport__Group__1__Impl
+            // InternalSignalDSL.g:18687:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
+            // InternalSignalDSL.g:18688:2: rule__QualifiedNameInStaticImport__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameInStaticImport__Group__1__Impl();
@@ -60969,22 +61577,22 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1__Impl"
-    // InternalSignalDSL.g:18536:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
+    // InternalSignalDSL.g:18694:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
     public final void rule__QualifiedNameInStaticImport__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18540:1: ( ( '.' ) )
-            // InternalSignalDSL.g:18541:1: ( '.' )
+            // InternalSignalDSL.g:18698:1: ( ( '.' ) )
+            // InternalSignalDSL.g:18699:1: ( '.' )
             {
-            // InternalSignalDSL.g:18541:1: ( '.' )
-            // InternalSignalDSL.g:18542:2: '.'
+            // InternalSignalDSL.g:18699:1: ( '.' )
+            // InternalSignalDSL.g:18700:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
             }
-            match(input,43,FOLLOW_2); if (state.failed) return ;
+            match(input,44,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
             }
@@ -61010,17 +61618,17 @@
 
 
     // $ANTLR start "rule__SignalModel__ImportSectionAssignment_0"
-    // InternalSignalDSL.g:18552:1: rule__SignalModel__ImportSectionAssignment_0 : ( ruleXImportSection ) ;
+    // InternalSignalDSL.g:18710:1: rule__SignalModel__ImportSectionAssignment_0 : ( ruleXImportSection ) ;
     public final void rule__SignalModel__ImportSectionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18556:1: ( ( ruleXImportSection ) )
-            // InternalSignalDSL.g:18557:2: ( ruleXImportSection )
+            // InternalSignalDSL.g:18714:1: ( ( ruleXImportSection ) )
+            // InternalSignalDSL.g:18715:2: ( ruleXImportSection )
             {
-            // InternalSignalDSL.g:18557:2: ( ruleXImportSection )
-            // InternalSignalDSL.g:18558:3: ruleXImportSection
+            // InternalSignalDSL.g:18715:2: ( ruleXImportSection )
+            // InternalSignalDSL.g:18716:3: ruleXImportSection
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalModelAccess().getImportSectionXImportSectionParserRuleCall_0_0()); 
@@ -61055,17 +61663,17 @@
 
 
     // $ANTLR start "rule__SignalModel__PackagesAssignment_1"
-    // InternalSignalDSL.g:18567:1: rule__SignalModel__PackagesAssignment_1 : ( ruleSignalPackage ) ;
+    // InternalSignalDSL.g:18725:1: rule__SignalModel__PackagesAssignment_1 : ( ruleSignalPackage ) ;
     public final void rule__SignalModel__PackagesAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18571:1: ( ( ruleSignalPackage ) )
-            // InternalSignalDSL.g:18572:2: ( ruleSignalPackage )
+            // InternalSignalDSL.g:18729:1: ( ( ruleSignalPackage ) )
+            // InternalSignalDSL.g:18730:2: ( ruleSignalPackage )
             {
-            // InternalSignalDSL.g:18572:2: ( ruleSignalPackage )
-            // InternalSignalDSL.g:18573:3: ruleSignalPackage
+            // InternalSignalDSL.g:18730:2: ( ruleSignalPackage )
+            // InternalSignalDSL.g:18731:3: ruleSignalPackage
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalModelAccess().getPackagesSignalPackageParserRuleCall_1_0()); 
@@ -61100,17 +61708,17 @@
 
 
     // $ANTLR start "rule__SignalPackage__NameAssignment_2"
-    // InternalSignalDSL.g:18582:1: rule__SignalPackage__NameAssignment_2 : ( ruleQualifiedName ) ;
+    // InternalSignalDSL.g:18740:1: rule__SignalPackage__NameAssignment_2 : ( ruleQualifiedName ) ;
     public final void rule__SignalPackage__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18586:1: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:18587:2: ( ruleQualifiedName )
+            // InternalSignalDSL.g:18744:1: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:18745:2: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:18587:2: ( ruleQualifiedName )
-            // InternalSignalDSL.g:18588:3: ruleQualifiedName
+            // InternalSignalDSL.g:18745:2: ( ruleQualifiedName )
+            // InternalSignalDSL.g:18746:3: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
@@ -61145,17 +61753,17 @@
 
 
     // $ANTLR start "rule__SignalPackage__SignalsAssignment_3_1"
-    // InternalSignalDSL.g:18597:1: rule__SignalPackage__SignalsAssignment_3_1 : ( ruleSignalDefinition ) ;
+    // InternalSignalDSL.g:18755:1: rule__SignalPackage__SignalsAssignment_3_1 : ( ruleSignalDefinition ) ;
     public final void rule__SignalPackage__SignalsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18601:1: ( ( ruleSignalDefinition ) )
-            // InternalSignalDSL.g:18602:2: ( ruleSignalDefinition )
+            // InternalSignalDSL.g:18759:1: ( ( ruleSignalDefinition ) )
+            // InternalSignalDSL.g:18760:2: ( ruleSignalDefinition )
             {
-            // InternalSignalDSL.g:18602:2: ( ruleSignalDefinition )
-            // InternalSignalDSL.g:18603:3: ruleSignalDefinition
+            // InternalSignalDSL.g:18760:2: ( ruleSignalDefinition )
+            // InternalSignalDSL.g:18761:3: ruleSignalDefinition
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalPackageAccess().getSignalsSignalDefinitionParserRuleCall_3_1_0()); 
@@ -61190,17 +61798,17 @@
 
 
     // $ANTLR start "rule__SignalWatcher__NameAssignment_2"
-    // InternalSignalDSL.g:18612:1: rule__SignalWatcher__NameAssignment_2 : ( ruleTRANSLATABLEID ) ;
+    // InternalSignalDSL.g:18770:1: rule__SignalWatcher__NameAssignment_2 : ( ruleTRANSLATABLEID ) ;
     public final void rule__SignalWatcher__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18616:1: ( ( ruleTRANSLATABLEID ) )
-            // InternalSignalDSL.g:18617:2: ( ruleTRANSLATABLEID )
+            // InternalSignalDSL.g:18774:1: ( ( ruleTRANSLATABLEID ) )
+            // InternalSignalDSL.g:18775:2: ( ruleTRANSLATABLEID )
             {
-            // InternalSignalDSL.g:18617:2: ( ruleTRANSLATABLEID )
-            // InternalSignalDSL.g:18618:3: ruleTRANSLATABLEID
+            // InternalSignalDSL.g:18775:2: ( ruleTRANSLATABLEID )
+            // InternalSignalDSL.g:18776:3: ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalWatcherAccess().getNameTRANSLATABLEIDParserRuleCall_2_0()); 
@@ -61234,29 +61842,37 @@
     // $ANTLR end "rule__SignalWatcher__NameAssignment_2"
 
 
-    // $ANTLR start "rule__SignalWatcher__DefinitionAssignment_3"
-    // InternalSignalDSL.g:18627:1: rule__SignalWatcher__DefinitionAssignment_3 : ( ruleWatcherDefinition ) ;
-    public final void rule__SignalWatcher__DefinitionAssignment_3() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__HasFileMaskAssignment_3_0"
+    // InternalSignalDSL.g:18785:1: rule__SignalWatcher__HasFileMaskAssignment_3_0 : ( ( 'filemask' ) ) ;
+    public final void rule__SignalWatcher__HasFileMaskAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18631:1: ( ( ruleWatcherDefinition ) )
-            // InternalSignalDSL.g:18632:2: ( ruleWatcherDefinition )
+            // InternalSignalDSL.g:18789:1: ( ( ( 'filemask' ) ) )
+            // InternalSignalDSL.g:18790:2: ( ( 'filemask' ) )
             {
-            // InternalSignalDSL.g:18632:2: ( ruleWatcherDefinition )
-            // InternalSignalDSL.g:18633:3: ruleWatcherDefinition
+            // InternalSignalDSL.g:18790:2: ( ( 'filemask' ) )
+            // InternalSignalDSL.g:18791:3: ( 'filemask' )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalWatcherAccess().getDefinitionWatcherDefinitionParserRuleCall_3_0()); 
+               before(grammarAccess.getSignalWatcherAccess().getHasFileMaskFilemaskKeyword_3_0_0()); 
             }
-            pushFollow(FOLLOW_2);
-            ruleWatcherDefinition();
-
-            state._fsp--;
-            if (state.failed) return ;
+            // InternalSignalDSL.g:18792:3: ( 'filemask' )
+            // InternalSignalDSL.g:18793:4: 'filemask'
+            {
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalWatcherAccess().getDefinitionWatcherDefinitionParserRuleCall_3_0()); 
+               before(grammarAccess.getSignalWatcherAccess().getHasFileMaskFilemaskKeyword_3_0_0()); 
+            }
+            match(input,107,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalWatcherAccess().getHasFileMaskFilemaskKeyword_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalWatcherAccess().getHasFileMaskFilemaskKeyword_3_0_0()); 
             }
 
             }
@@ -61276,28 +61892,28 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalWatcher__DefinitionAssignment_3"
+    // $ANTLR end "rule__SignalWatcher__HasFileMaskAssignment_3_0"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__FilemaskAssignment_2"
-    // InternalSignalDSL.g:18642:1: rule__WatcherWithFileMask__FilemaskAssignment_2 : ( RULE_STRING ) ;
-    public final void rule__WatcherWithFileMask__FilemaskAssignment_2() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__IdentifierAssignment_4"
+    // InternalSignalDSL.g:18804:1: rule__SignalWatcher__IdentifierAssignment_4 : ( RULE_STRING ) ;
+    public final void rule__SignalWatcher__IdentifierAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18646:1: ( ( RULE_STRING ) )
-            // InternalSignalDSL.g:18647:2: ( RULE_STRING )
+            // InternalSignalDSL.g:18808:1: ( ( RULE_STRING ) )
+            // InternalSignalDSL.g:18809:2: ( RULE_STRING )
             {
-            // InternalSignalDSL.g:18647:2: ( RULE_STRING )
-            // InternalSignalDSL.g:18648:3: RULE_STRING
+            // InternalSignalDSL.g:18809:2: ( RULE_STRING )
+            // InternalSignalDSL.g:18810:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskSTRINGTerminalRuleCall_2_0()); 
+               before(grammarAccess.getSignalWatcherAccess().getIdentifierSTRINGTerminalRuleCall_4_0()); 
             }
             match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskSTRINGTerminalRuleCall_2_0()); 
+               after(grammarAccess.getSignalWatcherAccess().getIdentifierSTRINGTerminalRuleCall_4_0()); 
             }
 
             }
@@ -61317,24 +61933,24 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__FilemaskAssignment_2"
+    // $ANTLR end "rule__SignalWatcher__IdentifierAssignment_4"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__ExecutiontypeAssignment_3"
-    // InternalSignalDSL.g:18657:1: rule__WatcherWithFileMask__ExecutiontypeAssignment_3 : ( ruleSignalExecutionTypeEnum ) ;
-    public final void rule__WatcherWithFileMask__ExecutiontypeAssignment_3() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__ExecutiontypeAssignment_5"
+    // InternalSignalDSL.g:18819:1: rule__SignalWatcher__ExecutiontypeAssignment_5 : ( ruleSignalExecutionTypeEnum ) ;
+    public final void rule__SignalWatcher__ExecutiontypeAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18661:1: ( ( ruleSignalExecutionTypeEnum ) )
-            // InternalSignalDSL.g:18662:2: ( ruleSignalExecutionTypeEnum )
+            // InternalSignalDSL.g:18823:1: ( ( ruleSignalExecutionTypeEnum ) )
+            // InternalSignalDSL.g:18824:2: ( ruleSignalExecutionTypeEnum )
             {
-            // InternalSignalDSL.g:18662:2: ( ruleSignalExecutionTypeEnum )
-            // InternalSignalDSL.g:18663:3: ruleSignalExecutionTypeEnum
+            // InternalSignalDSL.g:18824:2: ( ruleSignalExecutionTypeEnum )
+            // InternalSignalDSL.g:18825:3: ruleSignalExecutionTypeEnum
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0()); 
+               before(grammarAccess.getSignalWatcherAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_5_0()); 
             }
             pushFollow(FOLLOW_2);
             ruleSignalExecutionTypeEnum();
@@ -61342,7 +61958,7 @@
             state._fsp--;
             if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0()); 
+               after(grammarAccess.getSignalWatcherAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_5_0()); 
             }
 
             }
@@ -61362,40 +61978,40 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__ExecutiontypeAssignment_3"
+    // $ANTLR end "rule__SignalWatcher__ExecutiontypeAssignment_5"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__InterchangegroupAssignment_5"
-    // InternalSignalDSL.g:18672:1: rule__WatcherWithFileMask__InterchangegroupAssignment_5 : ( ( RULE_ID ) ) ;
-    public final void rule__WatcherWithFileMask__InterchangegroupAssignment_5() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__InterchangegroupAssignment_7"
+    // InternalSignalDSL.g:18834:1: rule__SignalWatcher__InterchangegroupAssignment_7 : ( ( RULE_ID ) ) ;
+    public final void rule__SignalWatcher__InterchangegroupAssignment_7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18676:1: ( ( ( RULE_ID ) ) )
-            // InternalSignalDSL.g:18677:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:18838:1: ( ( ( RULE_ID ) ) )
+            // InternalSignalDSL.g:18839:2: ( ( RULE_ID ) )
             {
-            // InternalSignalDSL.g:18677:2: ( ( RULE_ID ) )
-            // InternalSignalDSL.g:18678:3: ( RULE_ID )
+            // InternalSignalDSL.g:18839:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:18840:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupDataInterchangeGroupCrossReference_5_0()); 
+               before(grammarAccess.getSignalWatcherAccess().getInterchangegroupDataInterchangeGroupCrossReference_7_0()); 
             }
-            // InternalSignalDSL.g:18679:3: ( RULE_ID )
-            // InternalSignalDSL.g:18680:4: RULE_ID
+            // InternalSignalDSL.g:18841:3: ( RULE_ID )
+            // InternalSignalDSL.g:18842:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1()); 
+               before(grammarAccess.getSignalWatcherAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_7_0_1()); 
             }
             match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1()); 
+               after(grammarAccess.getSignalWatcherAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_7_0_1()); 
             }
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupDataInterchangeGroupCrossReference_5_0()); 
+               after(grammarAccess.getSignalWatcherAccess().getInterchangegroupDataInterchangeGroupCrossReference_7_0()); 
             }
 
             }
@@ -61415,171 +62031,40 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileMask__InterchangegroupAssignment_5"
+    // $ANTLR end "rule__SignalWatcher__InterchangegroupAssignment_7"
 
 
-    // $ANTLR start "rule__WatcherWithFileMask__InterchangeAssignment_7"
-    // InternalSignalDSL.g:18691:1: rule__WatcherWithFileMask__InterchangeAssignment_7 : ( ruleSignalDatainterchange ) ;
-    public final void rule__WatcherWithFileMask__InterchangeAssignment_7() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__DefaultInterchangeAssignment_9_1"
+    // InternalSignalDSL.g:18853:1: rule__SignalWatcher__DefaultInterchangeAssignment_9_1 : ( ( RULE_ID ) ) ;
+    public final void rule__SignalWatcher__DefaultInterchangeAssignment_9_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18695:1: ( ( ruleSignalDatainterchange ) )
-            // InternalSignalDSL.g:18696:2: ( ruleSignalDatainterchange )
+            // InternalSignalDSL.g:18857:1: ( ( ( RULE_ID ) ) )
+            // InternalSignalDSL.g:18858:2: ( ( RULE_ID ) )
             {
-            // InternalSignalDSL.g:18696:2: ( ruleSignalDatainterchange )
-            // InternalSignalDSL.g:18697:3: ruleSignalDatainterchange
+            // InternalSignalDSL.g:18858:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:18859:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileMaskAccess().getInterchangeSignalDatainterchangeParserRuleCall_7_0()); 
+               before(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeDataInterchangeCrossReference_9_1_0()); 
             }
-            pushFollow(FOLLOW_2);
-            ruleSignalDatainterchange();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileMaskAccess().getInterchangeSignalDatainterchangeParserRuleCall_7_0()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileMask__InterchangeAssignment_7"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__FilenameAssignment_2"
-    // InternalSignalDSL.g:18706:1: rule__WatcherWithFileName__FilenameAssignment_2 : ( RULE_STRING ) ;
-    public final void rule__WatcherWithFileName__FilenameAssignment_2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:18710:1: ( ( RULE_STRING ) )
-            // InternalSignalDSL.g:18711:2: ( RULE_STRING )
-            {
-            // InternalSignalDSL.g:18711:2: ( RULE_STRING )
-            // InternalSignalDSL.g:18712:3: RULE_STRING
+            // InternalSignalDSL.g:18860:3: ( RULE_ID )
+            // InternalSignalDSL.g:18861:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getFilenameSTRINGTerminalRuleCall_2_0()); 
-            }
-            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getFilenameSTRINGTerminalRuleCall_2_0()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__FilenameAssignment_2"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__ExecutiontypeAssignment_3"
-    // InternalSignalDSL.g:18721:1: rule__WatcherWithFileName__ExecutiontypeAssignment_3 : ( ruleSignalExecutionTypeEnum ) ;
-    public final void rule__WatcherWithFileName__ExecutiontypeAssignment_3() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:18725:1: ( ( ruleSignalExecutionTypeEnum ) )
-            // InternalSignalDSL.g:18726:2: ( ruleSignalExecutionTypeEnum )
-            {
-            // InternalSignalDSL.g:18726:2: ( ruleSignalExecutionTypeEnum )
-            // InternalSignalDSL.g:18727:3: ruleSignalExecutionTypeEnum
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0()); 
-            }
-            pushFollow(FOLLOW_2);
-            ruleSignalExecutionTypeEnum();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__WatcherWithFileName__ExecutiontypeAssignment_3"
-
-
-    // $ANTLR start "rule__WatcherWithFileName__InterchangegroupAssignment_5"
-    // InternalSignalDSL.g:18736:1: rule__WatcherWithFileName__InterchangegroupAssignment_5 : ( ( RULE_ID ) ) ;
-    public final void rule__WatcherWithFileName__InterchangegroupAssignment_5() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalSignalDSL.g:18740:1: ( ( ( RULE_ID ) ) )
-            // InternalSignalDSL.g:18741:2: ( ( RULE_ID ) )
-            {
-            // InternalSignalDSL.g:18741:2: ( ( RULE_ID ) )
-            // InternalSignalDSL.g:18742:3: ( RULE_ID )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupDataInterchangeGroupCrossReference_5_0()); 
-            }
-            // InternalSignalDSL.g:18743:3: ( RULE_ID )
-            // InternalSignalDSL.g:18744:4: RULE_ID
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1()); 
+               before(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeDataInterchangeIDTerminalRuleCall_9_1_0_1()); 
             }
             match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1()); 
+               after(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeDataInterchangeIDTerminalRuleCall_9_1_0_1()); 
             }
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupDataInterchangeGroupCrossReference_5_0()); 
+               after(grammarAccess.getSignalWatcherAccess().getDefaultInterchangeDataInterchangeCrossReference_9_1_0()); 
             }
 
             }
@@ -61599,32 +62084,32 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileName__InterchangegroupAssignment_5"
+    // $ANTLR end "rule__SignalWatcher__DefaultInterchangeAssignment_9_1"
 
 
-    // $ANTLR start "rule__WatcherWithFileName__InterchangesAssignment_7"
-    // InternalSignalDSL.g:18755:1: rule__WatcherWithFileName__InterchangesAssignment_7 : ( ruleSignalDatainterchange ) ;
-    public final void rule__WatcherWithFileName__InterchangesAssignment_7() throws RecognitionException {
+    // $ANTLR start "rule__SignalWatcher__TasksAssignment_10"
+    // InternalSignalDSL.g:18872:1: rule__SignalWatcher__TasksAssignment_10 : ( ruleSignalTask ) ;
+    public final void rule__SignalWatcher__TasksAssignment_10() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18759:1: ( ( ruleSignalDatainterchange ) )
-            // InternalSignalDSL.g:18760:2: ( ruleSignalDatainterchange )
+            // InternalSignalDSL.g:18876:1: ( ( ruleSignalTask ) )
+            // InternalSignalDSL.g:18877:2: ( ruleSignalTask )
             {
-            // InternalSignalDSL.g:18760:2: ( ruleSignalDatainterchange )
-            // InternalSignalDSL.g:18761:3: ruleSignalDatainterchange
+            // InternalSignalDSL.g:18877:2: ( ruleSignalTask )
+            // InternalSignalDSL.g:18878:3: ruleSignalTask
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getWatcherWithFileNameAccess().getInterchangesSignalDatainterchangeParserRuleCall_7_0()); 
+               before(grammarAccess.getSignalWatcherAccess().getTasksSignalTaskParserRuleCall_10_0()); 
             }
             pushFollow(FOLLOW_2);
-            ruleSignalDatainterchange();
+            ruleSignalTask();
 
             state._fsp--;
             if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getWatcherWithFileNameAccess().getInterchangesSignalDatainterchangeParserRuleCall_7_0()); 
+               after(grammarAccess.getSignalWatcherAccess().getTasksSignalTaskParserRuleCall_10_0()); 
             }
 
             }
@@ -61644,21 +62129,21 @@
         }
         return ;
     }
-    // $ANTLR end "rule__WatcherWithFileName__InterchangesAssignment_7"
+    // $ANTLR end "rule__SignalWatcher__TasksAssignment_10"
 
 
     // $ANTLR start "rule__SignalScheduler__NameAssignment_2"
-    // InternalSignalDSL.g:18770:1: rule__SignalScheduler__NameAssignment_2 : ( ruleTRANSLATABLEID ) ;
+    // InternalSignalDSL.g:18887:1: rule__SignalScheduler__NameAssignment_2 : ( ruleTRANSLATABLEID ) ;
     public final void rule__SignalScheduler__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18774:1: ( ( ruleTRANSLATABLEID ) )
-            // InternalSignalDSL.g:18775:2: ( ruleTRANSLATABLEID )
+            // InternalSignalDSL.g:18891:1: ( ( ruleTRANSLATABLEID ) )
+            // InternalSignalDSL.g:18892:2: ( ruleTRANSLATABLEID )
             {
-            // InternalSignalDSL.g:18775:2: ( ruleTRANSLATABLEID )
-            // InternalSignalDSL.g:18776:3: ruleTRANSLATABLEID
+            // InternalSignalDSL.g:18892:2: ( ruleTRANSLATABLEID )
+            // InternalSignalDSL.g:18893:3: ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getNameTRANSLATABLEIDParserRuleCall_2_0()); 
@@ -61693,17 +62178,17 @@
 
 
     // $ANTLR start "rule__SignalScheduler__SchedulertypeAssignment_3"
-    // InternalSignalDSL.g:18785:1: rule__SignalScheduler__SchedulertypeAssignment_3 : ( ruleSchedulerType ) ;
+    // InternalSignalDSL.g:18902:1: rule__SignalScheduler__SchedulertypeAssignment_3 : ( ruleSchedulerType ) ;
     public final void rule__SignalScheduler__SchedulertypeAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18789:1: ( ( ruleSchedulerType ) )
-            // InternalSignalDSL.g:18790:2: ( ruleSchedulerType )
+            // InternalSignalDSL.g:18906:1: ( ( ruleSchedulerType ) )
+            // InternalSignalDSL.g:18907:2: ( ruleSchedulerType )
             {
-            // InternalSignalDSL.g:18790:2: ( ruleSchedulerType )
-            // InternalSignalDSL.g:18791:3: ruleSchedulerType
+            // InternalSignalDSL.g:18907:2: ( ruleSchedulerType )
+            // InternalSignalDSL.g:18908:3: ruleSchedulerType
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getSchedulertypeSchedulerTypeParserRuleCall_3_0()); 
@@ -61738,17 +62223,17 @@
 
 
     // $ANTLR start "rule__SignalScheduler__ExecutiontypeAssignment_4"
-    // InternalSignalDSL.g:18800:1: rule__SignalScheduler__ExecutiontypeAssignment_4 : ( ruleSignalExecutionTypeEnum ) ;
+    // InternalSignalDSL.g:18917:1: rule__SignalScheduler__ExecutiontypeAssignment_4 : ( ruleSignalExecutionTypeEnum ) ;
     public final void rule__SignalScheduler__ExecutiontypeAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18804:1: ( ( ruleSignalExecutionTypeEnum ) )
-            // InternalSignalDSL.g:18805:2: ( ruleSignalExecutionTypeEnum )
+            // InternalSignalDSL.g:18921:1: ( ( ruleSignalExecutionTypeEnum ) )
+            // InternalSignalDSL.g:18922:2: ( ruleSignalExecutionTypeEnum )
             {
-            // InternalSignalDSL.g:18805:2: ( ruleSignalExecutionTypeEnum )
-            // InternalSignalDSL.g:18806:3: ruleSignalExecutionTypeEnum
+            // InternalSignalDSL.g:18922:2: ( ruleSignalExecutionTypeEnum )
+            // InternalSignalDSL.g:18923:3: ruleSignalExecutionTypeEnum
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_4_0()); 
@@ -61783,23 +62268,23 @@
 
 
     // $ANTLR start "rule__SignalScheduler__InterchangegroupAssignment_6"
-    // InternalSignalDSL.g:18815:1: rule__SignalScheduler__InterchangegroupAssignment_6 : ( ( RULE_ID ) ) ;
+    // InternalSignalDSL.g:18932:1: rule__SignalScheduler__InterchangegroupAssignment_6 : ( ( RULE_ID ) ) ;
     public final void rule__SignalScheduler__InterchangegroupAssignment_6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18819:1: ( ( ( RULE_ID ) ) )
-            // InternalSignalDSL.g:18820:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:18936:1: ( ( ( RULE_ID ) ) )
+            // InternalSignalDSL.g:18937:2: ( ( RULE_ID ) )
             {
-            // InternalSignalDSL.g:18820:2: ( ( RULE_ID ) )
-            // InternalSignalDSL.g:18821:3: ( RULE_ID )
+            // InternalSignalDSL.g:18937:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:18938:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getInterchangegroupDataInterchangeGroupCrossReference_6_0()); 
             }
-            // InternalSignalDSL.g:18822:3: ( RULE_ID )
-            // InternalSignalDSL.g:18823:4: RULE_ID
+            // InternalSignalDSL.g:18939:3: ( RULE_ID )
+            // InternalSignalDSL.g:18940:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalSchedulerAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_6_0_1()); 
@@ -61835,29 +62320,29 @@
     // $ANTLR end "rule__SignalScheduler__InterchangegroupAssignment_6"
 
 
-    // $ANTLR start "rule__SignalScheduler__InterchangesAssignment_8"
-    // InternalSignalDSL.g:18834:1: rule__SignalScheduler__InterchangesAssignment_8 : ( ruleSignalDatainterchange ) ;
-    public final void rule__SignalScheduler__InterchangesAssignment_8() throws RecognitionException {
+    // $ANTLR start "rule__SignalScheduler__TasksAssignment_8"
+    // InternalSignalDSL.g:18951:1: rule__SignalScheduler__TasksAssignment_8 : ( ruleSignalTask ) ;
+    public final void rule__SignalScheduler__TasksAssignment_8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18838:1: ( ( ruleSignalDatainterchange ) )
-            // InternalSignalDSL.g:18839:2: ( ruleSignalDatainterchange )
+            // InternalSignalDSL.g:18955:1: ( ( ruleSignalTask ) )
+            // InternalSignalDSL.g:18956:2: ( ruleSignalTask )
             {
-            // InternalSignalDSL.g:18839:2: ( ruleSignalDatainterchange )
-            // InternalSignalDSL.g:18840:3: ruleSignalDatainterchange
+            // InternalSignalDSL.g:18956:2: ( ruleSignalTask )
+            // InternalSignalDSL.g:18957:3: ruleSignalTask
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalSchedulerAccess().getInterchangesSignalDatainterchangeParserRuleCall_8_0()); 
+               before(grammarAccess.getSignalSchedulerAccess().getTasksSignalTaskParserRuleCall_8_0()); 
             }
             pushFollow(FOLLOW_2);
-            ruleSignalDatainterchange();
+            ruleSignalTask();
 
             state._fsp--;
             if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalSchedulerAccess().getInterchangesSignalDatainterchangeParserRuleCall_8_0()); 
+               after(grammarAccess.getSignalSchedulerAccess().getTasksSignalTaskParserRuleCall_8_0()); 
             }
 
             }
@@ -61877,21 +62362,21 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalScheduler__InterchangesAssignment_8"
+    // $ANTLR end "rule__SignalScheduler__TasksAssignment_8"
 
 
     // $ANTLR start "rule__CronScheduler__ExpressionAssignment_1"
-    // InternalSignalDSL.g:18849:1: rule__CronScheduler__ExpressionAssignment_1 : ( RULE_STRING ) ;
+    // InternalSignalDSL.g:18966:1: rule__CronScheduler__ExpressionAssignment_1 : ( RULE_STRING ) ;
     public final void rule__CronScheduler__ExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18853:1: ( ( RULE_STRING ) )
-            // InternalSignalDSL.g:18854:2: ( RULE_STRING )
+            // InternalSignalDSL.g:18970:1: ( ( RULE_STRING ) )
+            // InternalSignalDSL.g:18971:2: ( RULE_STRING )
             {
-            // InternalSignalDSL.g:18854:2: ( RULE_STRING )
-            // InternalSignalDSL.g:18855:3: RULE_STRING
+            // InternalSignalDSL.g:18971:2: ( RULE_STRING )
+            // InternalSignalDSL.g:18972:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCronSchedulerAccess().getExpressionSTRINGTerminalRuleCall_1_0()); 
@@ -61922,17 +62407,17 @@
 
 
     // $ANTLR start "rule__HourlyScheduler__MinuteAssignment_1"
-    // InternalSignalDSL.g:18864:1: rule__HourlyScheduler__MinuteAssignment_1 : ( RULE_INT ) ;
+    // InternalSignalDSL.g:18981:1: rule__HourlyScheduler__MinuteAssignment_1 : ( RULE_INT ) ;
     public final void rule__HourlyScheduler__MinuteAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18868:1: ( ( RULE_INT ) )
-            // InternalSignalDSL.g:18869:2: ( RULE_INT )
+            // InternalSignalDSL.g:18985:1: ( ( RULE_INT ) )
+            // InternalSignalDSL.g:18986:2: ( RULE_INT )
             {
-            // InternalSignalDSL.g:18869:2: ( RULE_INT )
-            // InternalSignalDSL.g:18870:3: RULE_INT
+            // InternalSignalDSL.g:18986:2: ( RULE_INT )
+            // InternalSignalDSL.g:18987:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHourlySchedulerAccess().getMinuteINTTerminalRuleCall_1_0()); 
@@ -61963,17 +62448,17 @@
 
 
     // $ANTLR start "rule__DailyScheduler__HourAssignment_1"
-    // InternalSignalDSL.g:18879:1: rule__DailyScheduler__HourAssignment_1 : ( RULE_INT ) ;
+    // InternalSignalDSL.g:18996:1: rule__DailyScheduler__HourAssignment_1 : ( RULE_INT ) ;
     public final void rule__DailyScheduler__HourAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18883:1: ( ( RULE_INT ) )
-            // InternalSignalDSL.g:18884:2: ( RULE_INT )
+            // InternalSignalDSL.g:19000:1: ( ( RULE_INT ) )
+            // InternalSignalDSL.g:19001:2: ( RULE_INT )
             {
-            // InternalSignalDSL.g:18884:2: ( RULE_INT )
-            // InternalSignalDSL.g:18885:3: RULE_INT
+            // InternalSignalDSL.g:19001:2: ( RULE_INT )
+            // InternalSignalDSL.g:19002:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDailySchedulerAccess().getHourINTTerminalRuleCall_1_0()); 
@@ -62004,17 +62489,17 @@
 
 
     // $ANTLR start "rule__DailyScheduler__MinuteAssignment_3"
-    // InternalSignalDSL.g:18894:1: rule__DailyScheduler__MinuteAssignment_3 : ( RULE_INT ) ;
+    // InternalSignalDSL.g:19011:1: rule__DailyScheduler__MinuteAssignment_3 : ( RULE_INT ) ;
     public final void rule__DailyScheduler__MinuteAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18898:1: ( ( RULE_INT ) )
-            // InternalSignalDSL.g:18899:2: ( RULE_INT )
+            // InternalSignalDSL.g:19015:1: ( ( RULE_INT ) )
+            // InternalSignalDSL.g:19016:2: ( RULE_INT )
             {
-            // InternalSignalDSL.g:18899:2: ( RULE_INT )
-            // InternalSignalDSL.g:18900:3: RULE_INT
+            // InternalSignalDSL.g:19016:2: ( RULE_INT )
+            // InternalSignalDSL.g:19017:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDailySchedulerAccess().getMinuteINTTerminalRuleCall_3_0()); 
@@ -62045,17 +62530,17 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__DayofweekAssignment_1"
-    // InternalSignalDSL.g:18909:1: rule__WeeklyScheduler__DayofweekAssignment_1 : ( ruleDayOfWeekEnum ) ;
+    // InternalSignalDSL.g:19026:1: rule__WeeklyScheduler__DayofweekAssignment_1 : ( ruleDayOfWeekEnum ) ;
     public final void rule__WeeklyScheduler__DayofweekAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18913:1: ( ( ruleDayOfWeekEnum ) )
-            // InternalSignalDSL.g:18914:2: ( ruleDayOfWeekEnum )
+            // InternalSignalDSL.g:19030:1: ( ( ruleDayOfWeekEnum ) )
+            // InternalSignalDSL.g:19031:2: ( ruleDayOfWeekEnum )
             {
-            // InternalSignalDSL.g:18914:2: ( ruleDayOfWeekEnum )
-            // InternalSignalDSL.g:18915:3: ruleDayOfWeekEnum
+            // InternalSignalDSL.g:19031:2: ( ruleDayOfWeekEnum )
+            // InternalSignalDSL.g:19032:3: ruleDayOfWeekEnum
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWeeklySchedulerAccess().getDayofweekDayOfWeekEnumEnumRuleCall_1_0()); 
@@ -62090,17 +62575,17 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__HourAssignment_3"
-    // InternalSignalDSL.g:18924:1: rule__WeeklyScheduler__HourAssignment_3 : ( RULE_INT ) ;
+    // InternalSignalDSL.g:19041:1: rule__WeeklyScheduler__HourAssignment_3 : ( RULE_INT ) ;
     public final void rule__WeeklyScheduler__HourAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18928:1: ( ( RULE_INT ) )
-            // InternalSignalDSL.g:18929:2: ( RULE_INT )
+            // InternalSignalDSL.g:19045:1: ( ( RULE_INT ) )
+            // InternalSignalDSL.g:19046:2: ( RULE_INT )
             {
-            // InternalSignalDSL.g:18929:2: ( RULE_INT )
-            // InternalSignalDSL.g:18930:3: RULE_INT
+            // InternalSignalDSL.g:19046:2: ( RULE_INT )
+            // InternalSignalDSL.g:19047:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWeeklySchedulerAccess().getHourINTTerminalRuleCall_3_0()); 
@@ -62131,17 +62616,17 @@
 
 
     // $ANTLR start "rule__WeeklyScheduler__MinuteAssignment_5"
-    // InternalSignalDSL.g:18939:1: rule__WeeklyScheduler__MinuteAssignment_5 : ( RULE_INT ) ;
+    // InternalSignalDSL.g:19056:1: rule__WeeklyScheduler__MinuteAssignment_5 : ( RULE_INT ) ;
     public final void rule__WeeklyScheduler__MinuteAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18943:1: ( ( RULE_INT ) )
-            // InternalSignalDSL.g:18944:2: ( RULE_INT )
+            // InternalSignalDSL.g:19060:1: ( ( RULE_INT ) )
+            // InternalSignalDSL.g:19061:2: ( RULE_INT )
             {
-            // InternalSignalDSL.g:18944:2: ( RULE_INT )
-            // InternalSignalDSL.g:18945:3: RULE_INT
+            // InternalSignalDSL.g:19061:2: ( RULE_INT )
+            // InternalSignalDSL.g:19062:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWeeklySchedulerAccess().getMinuteINTTerminalRuleCall_5_0()); 
@@ -62172,17 +62657,17 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__DayofmonthAssignment_1"
-    // InternalSignalDSL.g:18954:1: rule__MonthlyScheduler__DayofmonthAssignment_1 : ( RULE_INT ) ;
+    // InternalSignalDSL.g:19071:1: rule__MonthlyScheduler__DayofmonthAssignment_1 : ( RULE_INT ) ;
     public final void rule__MonthlyScheduler__DayofmonthAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18958:1: ( ( RULE_INT ) )
-            // InternalSignalDSL.g:18959:2: ( RULE_INT )
+            // InternalSignalDSL.g:19075:1: ( ( RULE_INT ) )
+            // InternalSignalDSL.g:19076:2: ( RULE_INT )
             {
-            // InternalSignalDSL.g:18959:2: ( RULE_INT )
-            // InternalSignalDSL.g:18960:3: RULE_INT
+            // InternalSignalDSL.g:19076:2: ( RULE_INT )
+            // InternalSignalDSL.g:19077:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMonthlySchedulerAccess().getDayofmonthINTTerminalRuleCall_1_0()); 
@@ -62213,17 +62698,17 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__HourAssignment_3"
-    // InternalSignalDSL.g:18969:1: rule__MonthlyScheduler__HourAssignment_3 : ( RULE_INT ) ;
+    // InternalSignalDSL.g:19086:1: rule__MonthlyScheduler__HourAssignment_3 : ( RULE_INT ) ;
     public final void rule__MonthlyScheduler__HourAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18973:1: ( ( RULE_INT ) )
-            // InternalSignalDSL.g:18974:2: ( RULE_INT )
+            // InternalSignalDSL.g:19090:1: ( ( RULE_INT ) )
+            // InternalSignalDSL.g:19091:2: ( RULE_INT )
             {
-            // InternalSignalDSL.g:18974:2: ( RULE_INT )
-            // InternalSignalDSL.g:18975:3: RULE_INT
+            // InternalSignalDSL.g:19091:2: ( RULE_INT )
+            // InternalSignalDSL.g:19092:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMonthlySchedulerAccess().getHourINTTerminalRuleCall_3_0()); 
@@ -62254,17 +62739,17 @@
 
 
     // $ANTLR start "rule__MonthlyScheduler__MinuteAssignment_5"
-    // InternalSignalDSL.g:18984:1: rule__MonthlyScheduler__MinuteAssignment_5 : ( RULE_INT ) ;
+    // InternalSignalDSL.g:19101:1: rule__MonthlyScheduler__MinuteAssignment_5 : ( RULE_INT ) ;
     public final void rule__MonthlyScheduler__MinuteAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:18988:1: ( ( RULE_INT ) )
-            // InternalSignalDSL.g:18989:2: ( RULE_INT )
+            // InternalSignalDSL.g:19105:1: ( ( RULE_INT ) )
+            // InternalSignalDSL.g:19106:2: ( RULE_INT )
             {
-            // InternalSignalDSL.g:18989:2: ( RULE_INT )
-            // InternalSignalDSL.g:18990:3: RULE_INT
+            // InternalSignalDSL.g:19106:2: ( RULE_INT )
+            // InternalSignalDSL.g:19107:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMonthlySchedulerAccess().getMinuteINTTerminalRuleCall_5_0()); 
@@ -62294,29 +62779,29 @@
     // $ANTLR end "rule__MonthlyScheduler__MinuteAssignment_5"
 
 
-    // $ANTLR start "rule__SignalDatainterchange__DataActionAssignment_0"
-    // InternalSignalDSL.g:18999:1: rule__SignalDatainterchange__DataActionAssignment_0 : ( ruleSignalActionEnum ) ;
-    public final void rule__SignalDatainterchange__DataActionAssignment_0() throws RecognitionException {
+    // $ANTLR start "rule__SignalDatainterchange__ActionTypeAssignment_0"
+    // InternalSignalDSL.g:19116:1: rule__SignalDatainterchange__ActionTypeAssignment_0 : ( ruleSignalActionTypeEnum ) ;
+    public final void rule__SignalDatainterchange__ActionTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19003:1: ( ( ruleSignalActionEnum ) )
-            // InternalSignalDSL.g:19004:2: ( ruleSignalActionEnum )
+            // InternalSignalDSL.g:19120:1: ( ( ruleSignalActionTypeEnum ) )
+            // InternalSignalDSL.g:19121:2: ( ruleSignalActionTypeEnum )
             {
-            // InternalSignalDSL.g:19004:2: ( ruleSignalActionEnum )
-            // InternalSignalDSL.g:19005:3: ruleSignalActionEnum
+            // InternalSignalDSL.g:19121:2: ( ruleSignalActionTypeEnum )
+            // InternalSignalDSL.g:19122:3: ruleSignalActionTypeEnum
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0()); 
+               before(grammarAccess.getSignalDatainterchangeAccess().getActionTypeSignalActionTypeEnumEnumRuleCall_0_0()); 
             }
             pushFollow(FOLLOW_2);
-            ruleSignalActionEnum();
+            ruleSignalActionTypeEnum();
 
             state._fsp--;
             if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0()); 
+               after(grammarAccess.getSignalDatainterchangeAccess().getActionTypeSignalActionTypeEnumEnumRuleCall_0_0()); 
             }
 
             }
@@ -62336,27 +62821,27 @@
         }
         return ;
     }
-    // $ANTLR end "rule__SignalDatainterchange__DataActionAssignment_0"
+    // $ANTLR end "rule__SignalDatainterchange__ActionTypeAssignment_0"
 
 
     // $ANTLR start "rule__SignalDatainterchange__DataRefAssignment_1"
-    // InternalSignalDSL.g:19014:1: rule__SignalDatainterchange__DataRefAssignment_1 : ( ( RULE_ID ) ) ;
+    // InternalSignalDSL.g:19131:1: rule__SignalDatainterchange__DataRefAssignment_1 : ( ( RULE_ID ) ) ;
     public final void rule__SignalDatainterchange__DataRefAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19018:1: ( ( ( RULE_ID ) ) )
-            // InternalSignalDSL.g:19019:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:19135:1: ( ( ( RULE_ID ) ) )
+            // InternalSignalDSL.g:19136:2: ( ( RULE_ID ) )
             {
-            // InternalSignalDSL.g:19019:2: ( ( RULE_ID ) )
-            // InternalSignalDSL.g:19020:3: ( RULE_ID )
+            // InternalSignalDSL.g:19136:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:19137:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_1_0()); 
             }
-            // InternalSignalDSL.g:19021:3: ( RULE_ID )
-            // InternalSignalDSL.g:19022:4: RULE_ID
+            // InternalSignalDSL.g:19138:3: ( RULE_ID )
+            // InternalSignalDSL.g:19139:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeIDTerminalRuleCall_1_0_1()); 
@@ -62393,28 +62878,28 @@
 
 
     // $ANTLR start "rule__SignalDatainterchange__BaseinterchangeAssignment_2"
-    // InternalSignalDSL.g:19033:1: rule__SignalDatainterchange__BaseinterchangeAssignment_2 : ( ( 'applyon' ) ) ;
+    // InternalSignalDSL.g:19150:1: rule__SignalDatainterchange__BaseinterchangeAssignment_2 : ( ( 'applyon' ) ) ;
     public final void rule__SignalDatainterchange__BaseinterchangeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19037:1: ( ( ( 'applyon' ) ) )
-            // InternalSignalDSL.g:19038:2: ( ( 'applyon' ) )
+            // InternalSignalDSL.g:19154:1: ( ( ( 'applyon' ) ) )
+            // InternalSignalDSL.g:19155:2: ( ( 'applyon' ) )
             {
-            // InternalSignalDSL.g:19038:2: ( ( 'applyon' ) )
-            // InternalSignalDSL.g:19039:3: ( 'applyon' )
+            // InternalSignalDSL.g:19155:2: ( ( 'applyon' ) )
+            // InternalSignalDSL.g:19156:3: ( 'applyon' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalDatainterchangeAccess().getBaseinterchangeApplyonKeyword_2_0()); 
             }
-            // InternalSignalDSL.g:19040:3: ( 'applyon' )
-            // InternalSignalDSL.g:19041:4: 'applyon'
+            // InternalSignalDSL.g:19157:3: ( 'applyon' )
+            // InternalSignalDSL.g:19158:4: 'applyon'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSignalDatainterchangeAccess().getBaseinterchangeApplyonKeyword_2_0()); 
             }
-            match(input,105,FOLLOW_2); if (state.failed) return ;
+            match(input,67,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSignalDatainterchangeAccess().getBaseinterchangeApplyonKeyword_2_0()); 
             }
@@ -62445,29 +62930,453 @@
     // $ANTLR end "rule__SignalDatainterchange__BaseinterchangeAssignment_2"
 
 
+    // $ANTLR start "rule__SignalFunction__GroupAssignment_1"
+    // InternalSignalDSL.g:19169:1: rule__SignalFunction__GroupAssignment_1 : ( ( RULE_ID ) ) ;
+    public final void rule__SignalFunction__GroupAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:19173:1: ( ( ( RULE_ID ) ) )
+            // InternalSignalDSL.g:19174:2: ( ( RULE_ID ) )
+            {
+            // InternalSignalDSL.g:19174:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:19175:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getGroupFunctionLibraryActionGroupCrossReference_1_0()); 
+            }
+            // InternalSignalDSL.g:19176:3: ( RULE_ID )
+            // InternalSignalDSL.g:19177:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getGroupFunctionLibraryActionGroupIDTerminalRuleCall_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getGroupFunctionLibraryActionGroupIDTerminalRuleCall_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getGroupFunctionLibraryActionGroupCrossReference_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__GroupAssignment_1"
+
+
+    // $ANTLR start "rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1"
+    // InternalSignalDSL.g:19188:1: rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1 : ( ( RULE_ID ) ) ;
+    public final void rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:19192:1: ( ( ( RULE_ID ) ) )
+            // InternalSignalDSL.g:19193:2: ( ( RULE_ID ) )
+            {
+            // InternalSignalDSL.g:19193:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:19194:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_0_1_0()); 
+            }
+            // InternalSignalDSL.g:19195:3: ( RULE_ID )
+            // InternalSignalDSL.g:19196:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_0_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_0_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__DoExecuteFunctionAssignment_2_0_1"
+
+
+    // $ANTLR start "rule__SignalFunction__OnImportFileAssignment_2_1_0"
+    // InternalSignalDSL.g:19207:1: rule__SignalFunction__OnImportFileAssignment_2_1_0 : ( ( 'executeOnImportFile' ) ) ;
+    public final void rule__SignalFunction__OnImportFileAssignment_2_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:19211:1: ( ( ( 'executeOnImportFile' ) ) )
+            // InternalSignalDSL.g:19212:2: ( ( 'executeOnImportFile' ) )
+            {
+            // InternalSignalDSL.g:19212:2: ( ( 'executeOnImportFile' ) )
+            // InternalSignalDSL.g:19213:3: ( 'executeOnImportFile' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getOnImportFileExecuteOnImportFileKeyword_2_1_0_0()); 
+            }
+            // InternalSignalDSL.g:19214:3: ( 'executeOnImportFile' )
+            // InternalSignalDSL.g:19215:4: 'executeOnImportFile'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getOnImportFileExecuteOnImportFileKeyword_2_1_0_0()); 
+            }
+            match(input,108,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getOnImportFileExecuteOnImportFileKeyword_2_1_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getOnImportFileExecuteOnImportFileKeyword_2_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__OnImportFileAssignment_2_1_0"
+
+
+    // $ANTLR start "rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1"
+    // InternalSignalDSL.g:19226:1: rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1 : ( ( RULE_ID ) ) ;
+    public final void rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:19230:1: ( ( ( RULE_ID ) ) )
+            // InternalSignalDSL.g:19231:2: ( ( RULE_ID ) )
+            {
+            // InternalSignalDSL.g:19231:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:19232:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_1_1_0()); 
+            }
+            // InternalSignalDSL.g:19233:3: ( RULE_ID )
+            // InternalSignalDSL.g:19234:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_1_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_1_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__DoExecuteFunctionAssignment_2_1_1"
+
+
+    // $ANTLR start "rule__SignalFunction__SupportInterchangeAssignment_2_1_3"
+    // InternalSignalDSL.g:19245:1: rule__SignalFunction__SupportInterchangeAssignment_2_1_3 : ( ( RULE_ID ) ) ;
+    public final void rule__SignalFunction__SupportInterchangeAssignment_2_1_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:19249:1: ( ( ( RULE_ID ) ) )
+            // InternalSignalDSL.g:19250:2: ( ( RULE_ID ) )
+            {
+            // InternalSignalDSL.g:19250:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:19251:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeCrossReference_2_1_3_0()); 
+            }
+            // InternalSignalDSL.g:19252:3: ( RULE_ID )
+            // InternalSignalDSL.g:19253:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeIDTerminalRuleCall_2_1_3_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeIDTerminalRuleCall_2_1_3_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeCrossReference_2_1_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__SupportInterchangeAssignment_2_1_3"
+
+
+    // $ANTLR start "rule__SignalFunction__OnExportFileAssignment_2_2_0"
+    // InternalSignalDSL.g:19264:1: rule__SignalFunction__OnExportFileAssignment_2_2_0 : ( ( 'executeOnExportFile' ) ) ;
+    public final void rule__SignalFunction__OnExportFileAssignment_2_2_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:19268:1: ( ( ( 'executeOnExportFile' ) ) )
+            // InternalSignalDSL.g:19269:2: ( ( 'executeOnExportFile' ) )
+            {
+            // InternalSignalDSL.g:19269:2: ( ( 'executeOnExportFile' ) )
+            // InternalSignalDSL.g:19270:3: ( 'executeOnExportFile' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getOnExportFileExecuteOnExportFileKeyword_2_2_0_0()); 
+            }
+            // InternalSignalDSL.g:19271:3: ( 'executeOnExportFile' )
+            // InternalSignalDSL.g:19272:4: 'executeOnExportFile'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getOnExportFileExecuteOnExportFileKeyword_2_2_0_0()); 
+            }
+            match(input,109,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getOnExportFileExecuteOnExportFileKeyword_2_2_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getOnExportFileExecuteOnExportFileKeyword_2_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__OnExportFileAssignment_2_2_0"
+
+
+    // $ANTLR start "rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1"
+    // InternalSignalDSL.g:19283:1: rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1 : ( ( RULE_ID ) ) ;
+    public final void rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:19287:1: ( ( ( RULE_ID ) ) )
+            // InternalSignalDSL.g:19288:2: ( ( RULE_ID ) )
+            {
+            // InternalSignalDSL.g:19288:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:19289:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_2_1_0()); 
+            }
+            // InternalSignalDSL.g:19290:3: ( RULE_ID )
+            // InternalSignalDSL.g:19291:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_2_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_2_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__DoExecuteFunctionAssignment_2_2_1"
+
+
+    // $ANTLR start "rule__SignalFunction__SupportInterchangeAssignment_2_2_3"
+    // InternalSignalDSL.g:19302:1: rule__SignalFunction__SupportInterchangeAssignment_2_2_3 : ( ( RULE_ID ) ) ;
+    public final void rule__SignalFunction__SupportInterchangeAssignment_2_2_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalSignalDSL.g:19306:1: ( ( ( RULE_ID ) ) )
+            // InternalSignalDSL.g:19307:2: ( ( RULE_ID ) )
+            {
+            // InternalSignalDSL.g:19307:2: ( ( RULE_ID ) )
+            // InternalSignalDSL.g:19308:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeCrossReference_2_2_3_0()); 
+            }
+            // InternalSignalDSL.g:19309:3: ( RULE_ID )
+            // InternalSignalDSL.g:19310:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeIDTerminalRuleCall_2_2_3_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeIDTerminalRuleCall_2_2_3_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeCrossReference_2_2_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignalFunction__SupportInterchangeAssignment_2_2_3"
+
+
     // $ANTLR start "rule__XImportDeclaration__StaticAssignment_2_0_0"
-    // InternalSignalDSL.g:19052:1: rule__XImportDeclaration__StaticAssignment_2_0_0 : ( ( 'static' ) ) ;
+    // InternalSignalDSL.g:19321:1: rule__XImportDeclaration__StaticAssignment_2_0_0 : ( ( 'static' ) ) ;
     public final void rule__XImportDeclaration__StaticAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19056:1: ( ( ( 'static' ) ) )
-            // InternalSignalDSL.g:19057:2: ( ( 'static' ) )
+            // InternalSignalDSL.g:19325:1: ( ( ( 'static' ) ) )
+            // InternalSignalDSL.g:19326:2: ( ( 'static' ) )
             {
-            // InternalSignalDSL.g:19057:2: ( ( 'static' ) )
-            // InternalSignalDSL.g:19058:3: ( 'static' )
+            // InternalSignalDSL.g:19326:2: ( ( 'static' ) )
+            // InternalSignalDSL.g:19327:3: ( 'static' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
             }
-            // InternalSignalDSL.g:19059:3: ( 'static' )
-            // InternalSignalDSL.g:19060:4: 'static'
+            // InternalSignalDSL.g:19328:3: ( 'static' )
+            // InternalSignalDSL.g:19329:4: 'static'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
             }
-            match(input,46,FOLLOW_2); if (state.failed) return ;
+            match(input,47,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
             }
@@ -62499,28 +63408,28 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ExtensionAssignment_2_0_1"
-    // InternalSignalDSL.g:19071:1: rule__XImportDeclaration__ExtensionAssignment_2_0_1 : ( ( 'extension' ) ) ;
+    // InternalSignalDSL.g:19340:1: rule__XImportDeclaration__ExtensionAssignment_2_0_1 : ( ( 'extension' ) ) ;
     public final void rule__XImportDeclaration__ExtensionAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19075:1: ( ( ( 'extension' ) ) )
-            // InternalSignalDSL.g:19076:2: ( ( 'extension' ) )
+            // InternalSignalDSL.g:19344:1: ( ( ( 'extension' ) ) )
+            // InternalSignalDSL.g:19345:2: ( ( 'extension' ) )
             {
-            // InternalSignalDSL.g:19076:2: ( ( 'extension' ) )
-            // InternalSignalDSL.g:19077:3: ( 'extension' )
+            // InternalSignalDSL.g:19345:2: ( ( 'extension' ) )
+            // InternalSignalDSL.g:19346:3: ( 'extension' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
             }
-            // InternalSignalDSL.g:19078:3: ( 'extension' )
-            // InternalSignalDSL.g:19079:4: 'extension'
+            // InternalSignalDSL.g:19347:3: ( 'extension' )
+            // InternalSignalDSL.g:19348:4: 'extension'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
             }
-            match(input,48,FOLLOW_2); if (state.failed) return ;
+            match(input,49,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
             }
@@ -62552,23 +63461,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_0_2"
-    // InternalSignalDSL.g:19090:1: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
+    // InternalSignalDSL.g:19359:1: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
     public final void rule__XImportDeclaration__ImportedTypeAssignment_2_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19094:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
-            // InternalSignalDSL.g:19095:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalSignalDSL.g:19363:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
+            // InternalSignalDSL.g:19364:2: ( ( ruleQualifiedNameInStaticImport ) )
             {
-            // InternalSignalDSL.g:19095:2: ( ( ruleQualifiedNameInStaticImport ) )
-            // InternalSignalDSL.g:19096:3: ( ruleQualifiedNameInStaticImport )
+            // InternalSignalDSL.g:19364:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalSignalDSL.g:19365:3: ( ruleQualifiedNameInStaticImport )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0()); 
             }
-            // InternalSignalDSL.g:19097:3: ( ruleQualifiedNameInStaticImport )
-            // InternalSignalDSL.g:19098:4: ruleQualifiedNameInStaticImport
+            // InternalSignalDSL.g:19366:3: ( ruleQualifiedNameInStaticImport )
+            // InternalSignalDSL.g:19367:4: ruleQualifiedNameInStaticImport
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_2_0_2_0_1()); 
@@ -62609,28 +63518,28 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__WildcardAssignment_2_0_3_0"
-    // InternalSignalDSL.g:19109:1: rule__XImportDeclaration__WildcardAssignment_2_0_3_0 : ( ( '*' ) ) ;
+    // InternalSignalDSL.g:19378:1: rule__XImportDeclaration__WildcardAssignment_2_0_3_0 : ( ( '*' ) ) ;
     public final void rule__XImportDeclaration__WildcardAssignment_2_0_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19113:1: ( ( ( '*' ) ) )
-            // InternalSignalDSL.g:19114:2: ( ( '*' ) )
+            // InternalSignalDSL.g:19382:1: ( ( ( '*' ) ) )
+            // InternalSignalDSL.g:19383:2: ( ( '*' ) )
             {
-            // InternalSignalDSL.g:19114:2: ( ( '*' ) )
-            // InternalSignalDSL.g:19115:3: ( '*' )
+            // InternalSignalDSL.g:19383:2: ( ( '*' ) )
+            // InternalSignalDSL.g:19384:3: ( '*' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
             }
-            // InternalSignalDSL.g:19116:3: ( '*' )
-            // InternalSignalDSL.g:19117:4: '*'
+            // InternalSignalDSL.g:19385:3: ( '*' )
+            // InternalSignalDSL.g:19386:4: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
             }
-            match(input,36,FOLLOW_2); if (state.failed) return ;
+            match(input,37,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
             }
@@ -62662,17 +63571,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__MemberNameAssignment_2_0_3_1"
-    // InternalSignalDSL.g:19128:1: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 : ( ruleValidID ) ;
+    // InternalSignalDSL.g:19397:1: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 : ( ruleValidID ) ;
     public final void rule__XImportDeclaration__MemberNameAssignment_2_0_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19132:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:19133:2: ( ruleValidID )
+            // InternalSignalDSL.g:19401:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:19402:2: ( ruleValidID )
             {
-            // InternalSignalDSL.g:19133:2: ( ruleValidID )
-            // InternalSignalDSL.g:19134:3: ruleValidID
+            // InternalSignalDSL.g:19402:2: ( ruleValidID )
+            // InternalSignalDSL.g:19403:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0()); 
@@ -62707,23 +63616,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_1"
-    // InternalSignalDSL.g:19143:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalSignalDSL.g:19412:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XImportDeclaration__ImportedTypeAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19147:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalSignalDSL.g:19148:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:19416:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalSignalDSL.g:19417:2: ( ( ruleQualifiedName ) )
             {
-            // InternalSignalDSL.g:19148:2: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:19149:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:19417:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:19418:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0()); 
             }
-            // InternalSignalDSL.g:19150:3: ( ruleQualifiedName )
-            // InternalSignalDSL.g:19151:4: ruleQualifiedName
+            // InternalSignalDSL.g:19419:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:19420:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_2_1_0_1()); 
@@ -62764,17 +63673,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedNamespaceAssignment_2_2"
-    // InternalSignalDSL.g:19162:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
+    // InternalSignalDSL.g:19431:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
     public final void rule__XImportDeclaration__ImportedNamespaceAssignment_2_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19166:1: ( ( ruleQualifiedNameWithWildcard ) )
-            // InternalSignalDSL.g:19167:2: ( ruleQualifiedNameWithWildcard )
+            // InternalSignalDSL.g:19435:1: ( ( ruleQualifiedNameWithWildcard ) )
+            // InternalSignalDSL.g:19436:2: ( ruleQualifiedNameWithWildcard )
             {
-            // InternalSignalDSL.g:19167:2: ( ruleQualifiedNameWithWildcard )
-            // InternalSignalDSL.g:19168:3: ruleQualifiedNameWithWildcard
+            // InternalSignalDSL.g:19436:2: ( ruleQualifiedNameWithWildcard )
+            // InternalSignalDSL.g:19437:3: ruleQualifiedNameWithWildcard
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0()); 
@@ -62809,28 +63718,28 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__FqnImportAssignment_2_3_0"
-    // InternalSignalDSL.g:19177:1: rule__XImportDeclaration__FqnImportAssignment_2_3_0 : ( ( 'ns' ) ) ;
+    // InternalSignalDSL.g:19446:1: rule__XImportDeclaration__FqnImportAssignment_2_3_0 : ( ( 'ns' ) ) ;
     public final void rule__XImportDeclaration__FqnImportAssignment_2_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19181:1: ( ( ( 'ns' ) ) )
-            // InternalSignalDSL.g:19182:2: ( ( 'ns' ) )
+            // InternalSignalDSL.g:19450:1: ( ( ( 'ns' ) ) )
+            // InternalSignalDSL.g:19451:2: ( ( 'ns' ) )
             {
-            // InternalSignalDSL.g:19182:2: ( ( 'ns' ) )
-            // InternalSignalDSL.g:19183:3: ( 'ns' )
+            // InternalSignalDSL.g:19451:2: ( ( 'ns' ) )
+            // InternalSignalDSL.g:19452:3: ( 'ns' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
-            // InternalSignalDSL.g:19184:3: ( 'ns' )
-            // InternalSignalDSL.g:19185:4: 'ns'
+            // InternalSignalDSL.g:19453:3: ( 'ns' )
+            // InternalSignalDSL.g:19454:4: 'ns'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
-            match(input,106,FOLLOW_2); if (state.failed) return ;
+            match(input,110,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
@@ -62862,17 +63771,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1"
-    // InternalSignalDSL.g:19196:1: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 : ( ruleQualifiedName ) ;
+    // InternalSignalDSL.g:19465:1: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 : ( ruleQualifiedName ) ;
     public final void rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19200:1: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:19201:2: ( ruleQualifiedName )
+            // InternalSignalDSL.g:19469:1: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:19470:2: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:19201:2: ( ruleQualifiedName )
-            // InternalSignalDSL.g:19202:3: ruleQualifiedName
+            // InternalSignalDSL.g:19470:2: ( ruleQualifiedName )
+            // InternalSignalDSL.g:19471:3: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0()); 
@@ -62907,23 +63816,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__AnnotationTypeAssignment_2"
-    // InternalSignalDSL.g:19211:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalSignalDSL.g:19480:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XAnnotation__AnnotationTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19215:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalSignalDSL.g:19216:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:19484:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalSignalDSL.g:19485:2: ( ( ruleQualifiedName ) )
             {
-            // InternalSignalDSL.g:19216:2: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:19217:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:19485:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:19486:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); 
             }
-            // InternalSignalDSL.g:19218:3: ( ruleQualifiedName )
-            // InternalSignalDSL.g:19219:4: ruleQualifiedName
+            // InternalSignalDSL.g:19487:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:19488:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeQualifiedNameParserRuleCall_2_0_1()); 
@@ -62964,17 +63873,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0"
-    // InternalSignalDSL.g:19230:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 : ( ruleXAnnotationElementValuePair ) ;
+    // InternalSignalDSL.g:19499:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 : ( ruleXAnnotationElementValuePair ) ;
     public final void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19234:1: ( ( ruleXAnnotationElementValuePair ) )
-            // InternalSignalDSL.g:19235:2: ( ruleXAnnotationElementValuePair )
+            // InternalSignalDSL.g:19503:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalSignalDSL.g:19504:2: ( ruleXAnnotationElementValuePair )
             {
-            // InternalSignalDSL.g:19235:2: ( ruleXAnnotationElementValuePair )
-            // InternalSignalDSL.g:19236:3: ruleXAnnotationElementValuePair
+            // InternalSignalDSL.g:19504:2: ( ruleXAnnotationElementValuePair )
+            // InternalSignalDSL.g:19505:3: ruleXAnnotationElementValuePair
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); 
@@ -63009,17 +63918,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1"
-    // InternalSignalDSL.g:19245:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 : ( ruleXAnnotationElementValuePair ) ;
+    // InternalSignalDSL.g:19514:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 : ( ruleXAnnotationElementValuePair ) ;
     public final void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19249:1: ( ( ruleXAnnotationElementValuePair ) )
-            // InternalSignalDSL.g:19250:2: ( ruleXAnnotationElementValuePair )
+            // InternalSignalDSL.g:19518:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalSignalDSL.g:19519:2: ( ruleXAnnotationElementValuePair )
             {
-            // InternalSignalDSL.g:19250:2: ( ruleXAnnotationElementValuePair )
-            // InternalSignalDSL.g:19251:3: ruleXAnnotationElementValuePair
+            // InternalSignalDSL.g:19519:2: ( ruleXAnnotationElementValuePair )
+            // InternalSignalDSL.g:19520:3: ruleXAnnotationElementValuePair
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); 
@@ -63054,17 +63963,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ValueAssignment_3_1_1"
-    // InternalSignalDSL.g:19260:1: rule__XAnnotation__ValueAssignment_3_1_1 : ( ruleXAnnotationElementValueOrCommaList ) ;
+    // InternalSignalDSL.g:19529:1: rule__XAnnotation__ValueAssignment_3_1_1 : ( ruleXAnnotationElementValueOrCommaList ) ;
     public final void rule__XAnnotation__ValueAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19264:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
-            // InternalSignalDSL.g:19265:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalSignalDSL.g:19533:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
+            // InternalSignalDSL.g:19534:2: ( ruleXAnnotationElementValueOrCommaList )
             {
-            // InternalSignalDSL.g:19265:2: ( ruleXAnnotationElementValueOrCommaList )
-            // InternalSignalDSL.g:19266:3: ruleXAnnotationElementValueOrCommaList
+            // InternalSignalDSL.g:19534:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalSignalDSL.g:19535:3: ruleXAnnotationElementValueOrCommaList
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); 
@@ -63099,23 +64008,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__ElementAssignment_0_0_0"
-    // InternalSignalDSL.g:19275:1: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 : ( ( ruleValidID ) ) ;
+    // InternalSignalDSL.g:19544:1: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 : ( ( ruleValidID ) ) ;
     public final void rule__XAnnotationElementValuePair__ElementAssignment_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19279:1: ( ( ( ruleValidID ) ) )
-            // InternalSignalDSL.g:19280:2: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:19548:1: ( ( ( ruleValidID ) ) )
+            // InternalSignalDSL.g:19549:2: ( ( ruleValidID ) )
             {
-            // InternalSignalDSL.g:19280:2: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:19281:3: ( ruleValidID )
+            // InternalSignalDSL.g:19549:2: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:19550:3: ( ruleValidID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); 
             }
-            // InternalSignalDSL.g:19282:3: ( ruleValidID )
-            // InternalSignalDSL.g:19283:4: ruleValidID
+            // InternalSignalDSL.g:19551:3: ( ruleValidID )
+            // InternalSignalDSL.g:19552:4: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationValidIDParserRuleCall_0_0_0_0_1()); 
@@ -63156,17 +64065,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__ValueAssignment_1"
-    // InternalSignalDSL.g:19294:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
+    // InternalSignalDSL.g:19563:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
     public final void rule__XAnnotationElementValuePair__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19298:1: ( ( ruleXAnnotationElementValue ) )
-            // InternalSignalDSL.g:19299:2: ( ruleXAnnotationElementValue )
+            // InternalSignalDSL.g:19567:1: ( ( ruleXAnnotationElementValue ) )
+            // InternalSignalDSL.g:19568:2: ( ruleXAnnotationElementValue )
             {
-            // InternalSignalDSL.g:19299:2: ( ruleXAnnotationElementValue )
-            // InternalSignalDSL.g:19300:3: ruleXAnnotationElementValue
+            // InternalSignalDSL.g:19568:2: ( ruleXAnnotationElementValue )
+            // InternalSignalDSL.g:19569:3: ruleXAnnotationElementValue
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); 
@@ -63201,17 +64110,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0"
-    // InternalSignalDSL.g:19309:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:19578:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19313:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:19314:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:19582:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:19583:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:19314:2: ( ruleXAnnotationOrExpression )
-            // InternalSignalDSL.g:19315:3: ruleXAnnotationOrExpression
+            // InternalSignalDSL.g:19583:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:19584:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
@@ -63246,17 +64155,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1"
-    // InternalSignalDSL.g:19324:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:19593:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19328:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:19329:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:19597:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:19598:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:19329:2: ( ruleXAnnotationOrExpression )
-            // InternalSignalDSL.g:19330:3: ruleXAnnotationOrExpression
+            // InternalSignalDSL.g:19598:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:19599:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
@@ -63291,17 +64200,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1"
-    // InternalSignalDSL.g:19339:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:19608:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19343:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:19344:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:19612:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:19613:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:19344:2: ( ruleXAnnotationOrExpression )
-            // InternalSignalDSL.g:19345:3: ruleXAnnotationOrExpression
+            // InternalSignalDSL.g:19613:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:19614:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); 
@@ -63336,17 +64245,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_0"
-    // InternalSignalDSL.g:19354:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:19623:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValue__ElementsAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19358:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:19359:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:19627:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:19628:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:19359:2: ( ruleXAnnotationOrExpression )
-            // InternalSignalDSL.g:19360:3: ruleXAnnotationOrExpression
+            // InternalSignalDSL.g:19628:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:19629:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
@@ -63381,17 +64290,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1"
-    // InternalSignalDSL.g:19369:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:19638:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19373:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:19374:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:19642:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:19643:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:19374:2: ( ruleXAnnotationOrExpression )
-            // InternalSignalDSL.g:19375:3: ruleXAnnotationOrExpression
+            // InternalSignalDSL.g:19643:2: ( ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:19644:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
@@ -63426,23 +64335,23 @@
 
 
     // $ANTLR start "rule__XAssignment__FeatureAssignment_0_1"
-    // InternalSignalDSL.g:19384:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
+    // InternalSignalDSL.g:19653:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
     public final void rule__XAssignment__FeatureAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19388:1: ( ( ( ruleFeatureCallID ) ) )
-            // InternalSignalDSL.g:19389:2: ( ( ruleFeatureCallID ) )
+            // InternalSignalDSL.g:19657:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalSignalDSL.g:19658:2: ( ( ruleFeatureCallID ) )
             {
-            // InternalSignalDSL.g:19389:2: ( ( ruleFeatureCallID ) )
-            // InternalSignalDSL.g:19390:3: ( ruleFeatureCallID )
+            // InternalSignalDSL.g:19658:2: ( ( ruleFeatureCallID ) )
+            // InternalSignalDSL.g:19659:3: ( ruleFeatureCallID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
             }
-            // InternalSignalDSL.g:19391:3: ( ruleFeatureCallID )
-            // InternalSignalDSL.g:19392:4: ruleFeatureCallID
+            // InternalSignalDSL.g:19660:3: ( ruleFeatureCallID )
+            // InternalSignalDSL.g:19661:4: ruleFeatureCallID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); 
@@ -63483,17 +64392,17 @@
 
 
     // $ANTLR start "rule__XAssignment__ValueAssignment_0_3"
-    // InternalSignalDSL.g:19403:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
+    // InternalSignalDSL.g:19672:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
     public final void rule__XAssignment__ValueAssignment_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19407:1: ( ( ruleXAssignment ) )
-            // InternalSignalDSL.g:19408:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:19676:1: ( ( ruleXAssignment ) )
+            // InternalSignalDSL.g:19677:2: ( ruleXAssignment )
             {
-            // InternalSignalDSL.g:19408:2: ( ruleXAssignment )
-            // InternalSignalDSL.g:19409:3: ruleXAssignment
+            // InternalSignalDSL.g:19677:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:19678:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
@@ -63528,23 +64437,23 @@
 
 
     // $ANTLR start "rule__XAssignment__FeatureAssignment_1_1_0_0_1"
-    // InternalSignalDSL.g:19418:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
+    // InternalSignalDSL.g:19687:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
     public final void rule__XAssignment__FeatureAssignment_1_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19422:1: ( ( ( ruleOpMultiAssign ) ) )
-            // InternalSignalDSL.g:19423:2: ( ( ruleOpMultiAssign ) )
+            // InternalSignalDSL.g:19691:1: ( ( ( ruleOpMultiAssign ) ) )
+            // InternalSignalDSL.g:19692:2: ( ( ruleOpMultiAssign ) )
             {
-            // InternalSignalDSL.g:19423:2: ( ( ruleOpMultiAssign ) )
-            // InternalSignalDSL.g:19424:3: ( ruleOpMultiAssign )
+            // InternalSignalDSL.g:19692:2: ( ( ruleOpMultiAssign ) )
+            // InternalSignalDSL.g:19693:3: ( ruleOpMultiAssign )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:19425:3: ( ruleOpMultiAssign )
-            // InternalSignalDSL.g:19426:4: ruleOpMultiAssign
+            // InternalSignalDSL.g:19694:3: ( ruleOpMultiAssign )
+            // InternalSignalDSL.g:19695:4: ruleOpMultiAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); 
@@ -63585,17 +64494,17 @@
 
 
     // $ANTLR start "rule__XAssignment__RightOperandAssignment_1_1_1"
-    // InternalSignalDSL.g:19437:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
+    // InternalSignalDSL.g:19706:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
     public final void rule__XAssignment__RightOperandAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19441:1: ( ( ruleXAssignment ) )
-            // InternalSignalDSL.g:19442:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:19710:1: ( ( ruleXAssignment ) )
+            // InternalSignalDSL.g:19711:2: ( ruleXAssignment )
             {
-            // InternalSignalDSL.g:19442:2: ( ruleXAssignment )
-            // InternalSignalDSL.g:19443:3: ruleXAssignment
+            // InternalSignalDSL.g:19711:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:19712:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
@@ -63630,23 +64539,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__FeatureAssignment_1_0_0_1"
-    // InternalSignalDSL.g:19452:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
+    // InternalSignalDSL.g:19721:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
     public final void rule__XOrExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19456:1: ( ( ( ruleOpOr ) ) )
-            // InternalSignalDSL.g:19457:2: ( ( ruleOpOr ) )
+            // InternalSignalDSL.g:19725:1: ( ( ( ruleOpOr ) ) )
+            // InternalSignalDSL.g:19726:2: ( ( ruleOpOr ) )
             {
-            // InternalSignalDSL.g:19457:2: ( ( ruleOpOr ) )
-            // InternalSignalDSL.g:19458:3: ( ruleOpOr )
+            // InternalSignalDSL.g:19726:2: ( ( ruleOpOr ) )
+            // InternalSignalDSL.g:19727:3: ( ruleOpOr )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:19459:3: ( ruleOpOr )
-            // InternalSignalDSL.g:19460:4: ruleOpOr
+            // InternalSignalDSL.g:19728:3: ( ruleOpOr )
+            // InternalSignalDSL.g:19729:4: ruleOpOr
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); 
@@ -63687,17 +64596,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__RightOperandAssignment_1_1"
-    // InternalSignalDSL.g:19471:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
+    // InternalSignalDSL.g:19740:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19475:1: ( ( ruleXAndExpression ) )
-            // InternalSignalDSL.g:19476:2: ( ruleXAndExpression )
+            // InternalSignalDSL.g:19744:1: ( ( ruleXAndExpression ) )
+            // InternalSignalDSL.g:19745:2: ( ruleXAndExpression )
             {
-            // InternalSignalDSL.g:19476:2: ( ruleXAndExpression )
-            // InternalSignalDSL.g:19477:3: ruleXAndExpression
+            // InternalSignalDSL.g:19745:2: ( ruleXAndExpression )
+            // InternalSignalDSL.g:19746:3: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
@@ -63732,23 +64641,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__FeatureAssignment_1_0_0_1"
-    // InternalSignalDSL.g:19486:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
+    // InternalSignalDSL.g:19755:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
     public final void rule__XAndExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19490:1: ( ( ( ruleOpAnd ) ) )
-            // InternalSignalDSL.g:19491:2: ( ( ruleOpAnd ) )
+            // InternalSignalDSL.g:19759:1: ( ( ( ruleOpAnd ) ) )
+            // InternalSignalDSL.g:19760:2: ( ( ruleOpAnd ) )
             {
-            // InternalSignalDSL.g:19491:2: ( ( ruleOpAnd ) )
-            // InternalSignalDSL.g:19492:3: ( ruleOpAnd )
+            // InternalSignalDSL.g:19760:2: ( ( ruleOpAnd ) )
+            // InternalSignalDSL.g:19761:3: ( ruleOpAnd )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:19493:3: ( ruleOpAnd )
-            // InternalSignalDSL.g:19494:4: ruleOpAnd
+            // InternalSignalDSL.g:19762:3: ( ruleOpAnd )
+            // InternalSignalDSL.g:19763:4: ruleOpAnd
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); 
@@ -63789,17 +64698,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__RightOperandAssignment_1_1"
-    // InternalSignalDSL.g:19505:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
+    // InternalSignalDSL.g:19774:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19509:1: ( ( ruleXEqualityExpression ) )
-            // InternalSignalDSL.g:19510:2: ( ruleXEqualityExpression )
+            // InternalSignalDSL.g:19778:1: ( ( ruleXEqualityExpression ) )
+            // InternalSignalDSL.g:19779:2: ( ruleXEqualityExpression )
             {
-            // InternalSignalDSL.g:19510:2: ( ruleXEqualityExpression )
-            // InternalSignalDSL.g:19511:3: ruleXEqualityExpression
+            // InternalSignalDSL.g:19779:2: ( ruleXEqualityExpression )
+            // InternalSignalDSL.g:19780:3: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
@@ -63834,23 +64743,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__FeatureAssignment_1_0_0_1"
-    // InternalSignalDSL.g:19520:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
+    // InternalSignalDSL.g:19789:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
     public final void rule__XEqualityExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19524:1: ( ( ( ruleOpEquality ) ) )
-            // InternalSignalDSL.g:19525:2: ( ( ruleOpEquality ) )
+            // InternalSignalDSL.g:19793:1: ( ( ( ruleOpEquality ) ) )
+            // InternalSignalDSL.g:19794:2: ( ( ruleOpEquality ) )
             {
-            // InternalSignalDSL.g:19525:2: ( ( ruleOpEquality ) )
-            // InternalSignalDSL.g:19526:3: ( ruleOpEquality )
+            // InternalSignalDSL.g:19794:2: ( ( ruleOpEquality ) )
+            // InternalSignalDSL.g:19795:3: ( ruleOpEquality )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:19527:3: ( ruleOpEquality )
-            // InternalSignalDSL.g:19528:4: ruleOpEquality
+            // InternalSignalDSL.g:19796:3: ( ruleOpEquality )
+            // InternalSignalDSL.g:19797:4: ruleOpEquality
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); 
@@ -63891,17 +64800,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__RightOperandAssignment_1_1"
-    // InternalSignalDSL.g:19539:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
+    // InternalSignalDSL.g:19808:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19543:1: ( ( ruleXRelationalExpression ) )
-            // InternalSignalDSL.g:19544:2: ( ruleXRelationalExpression )
+            // InternalSignalDSL.g:19812:1: ( ( ruleXRelationalExpression ) )
+            // InternalSignalDSL.g:19813:2: ( ruleXRelationalExpression )
             {
-            // InternalSignalDSL.g:19544:2: ( ruleXRelationalExpression )
-            // InternalSignalDSL.g:19545:3: ruleXRelationalExpression
+            // InternalSignalDSL.g:19813:2: ( ruleXRelationalExpression )
+            // InternalSignalDSL.g:19814:3: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
@@ -63936,17 +64845,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__TypeAssignment_1_0_1"
-    // InternalSignalDSL.g:19554:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:19823:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XRelationalExpression__TypeAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19558:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:19559:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19827:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:19828:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:19559:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:19560:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:19828:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:19829:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
@@ -63981,23 +64890,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1"
-    // InternalSignalDSL.g:19569:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
+    // InternalSignalDSL.g:19838:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
     public final void rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19573:1: ( ( ( ruleOpCompare ) ) )
-            // InternalSignalDSL.g:19574:2: ( ( ruleOpCompare ) )
+            // InternalSignalDSL.g:19842:1: ( ( ( ruleOpCompare ) ) )
+            // InternalSignalDSL.g:19843:2: ( ( ruleOpCompare ) )
             {
-            // InternalSignalDSL.g:19574:2: ( ( ruleOpCompare ) )
-            // InternalSignalDSL.g:19575:3: ( ruleOpCompare )
+            // InternalSignalDSL.g:19843:2: ( ( ruleOpCompare ) )
+            // InternalSignalDSL.g:19844:3: ( ruleOpCompare )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:19576:3: ( ruleOpCompare )
-            // InternalSignalDSL.g:19577:4: ruleOpCompare
+            // InternalSignalDSL.g:19845:3: ( ruleOpCompare )
+            // InternalSignalDSL.g:19846:4: ruleOpCompare
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); 
@@ -64038,17 +64947,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__RightOperandAssignment_1_1_1"
-    // InternalSignalDSL.g:19588:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
+    // InternalSignalDSL.g:19857:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
     public final void rule__XRelationalExpression__RightOperandAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19592:1: ( ( ruleXOtherOperatorExpression ) )
-            // InternalSignalDSL.g:19593:2: ( ruleXOtherOperatorExpression )
+            // InternalSignalDSL.g:19861:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalSignalDSL.g:19862:2: ( ruleXOtherOperatorExpression )
             {
-            // InternalSignalDSL.g:19593:2: ( ruleXOtherOperatorExpression )
-            // InternalSignalDSL.g:19594:3: ruleXOtherOperatorExpression
+            // InternalSignalDSL.g:19862:2: ( ruleXOtherOperatorExpression )
+            // InternalSignalDSL.g:19863:3: ruleXOtherOperatorExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
@@ -64083,23 +64992,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1"
-    // InternalSignalDSL.g:19603:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
+    // InternalSignalDSL.g:19872:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
     public final void rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19607:1: ( ( ( ruleOpOther ) ) )
-            // InternalSignalDSL.g:19608:2: ( ( ruleOpOther ) )
+            // InternalSignalDSL.g:19876:1: ( ( ( ruleOpOther ) ) )
+            // InternalSignalDSL.g:19877:2: ( ( ruleOpOther ) )
             {
-            // InternalSignalDSL.g:19608:2: ( ( ruleOpOther ) )
-            // InternalSignalDSL.g:19609:3: ( ruleOpOther )
+            // InternalSignalDSL.g:19877:2: ( ( ruleOpOther ) )
+            // InternalSignalDSL.g:19878:3: ( ruleOpOther )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:19610:3: ( ruleOpOther )
-            // InternalSignalDSL.g:19611:4: ruleOpOther
+            // InternalSignalDSL.g:19879:3: ( ruleOpOther )
+            // InternalSignalDSL.g:19880:4: ruleOpOther
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); 
@@ -64140,17 +65049,17 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__RightOperandAssignment_1_1"
-    // InternalSignalDSL.g:19622:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
+    // InternalSignalDSL.g:19891:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
     public final void rule__XOtherOperatorExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19626:1: ( ( ruleXAdditiveExpression ) )
-            // InternalSignalDSL.g:19627:2: ( ruleXAdditiveExpression )
+            // InternalSignalDSL.g:19895:1: ( ( ruleXAdditiveExpression ) )
+            // InternalSignalDSL.g:19896:2: ( ruleXAdditiveExpression )
             {
-            // InternalSignalDSL.g:19627:2: ( ruleXAdditiveExpression )
-            // InternalSignalDSL.g:19628:3: ruleXAdditiveExpression
+            // InternalSignalDSL.g:19896:2: ( ruleXAdditiveExpression )
+            // InternalSignalDSL.g:19897:3: ruleXAdditiveExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
@@ -64185,23 +65094,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1"
-    // InternalSignalDSL.g:19637:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
+    // InternalSignalDSL.g:19906:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
     public final void rule__XAdditiveExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19641:1: ( ( ( ruleOpAdd ) ) )
-            // InternalSignalDSL.g:19642:2: ( ( ruleOpAdd ) )
+            // InternalSignalDSL.g:19910:1: ( ( ( ruleOpAdd ) ) )
+            // InternalSignalDSL.g:19911:2: ( ( ruleOpAdd ) )
             {
-            // InternalSignalDSL.g:19642:2: ( ( ruleOpAdd ) )
-            // InternalSignalDSL.g:19643:3: ( ruleOpAdd )
+            // InternalSignalDSL.g:19911:2: ( ( ruleOpAdd ) )
+            // InternalSignalDSL.g:19912:3: ( ruleOpAdd )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:19644:3: ( ruleOpAdd )
-            // InternalSignalDSL.g:19645:4: ruleOpAdd
+            // InternalSignalDSL.g:19913:3: ( ruleOpAdd )
+            // InternalSignalDSL.g:19914:4: ruleOpAdd
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); 
@@ -64242,17 +65151,17 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__RightOperandAssignment_1_1"
-    // InternalSignalDSL.g:19656:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
+    // InternalSignalDSL.g:19925:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
     public final void rule__XAdditiveExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19660:1: ( ( ruleXMultiplicativeExpression ) )
-            // InternalSignalDSL.g:19661:2: ( ruleXMultiplicativeExpression )
+            // InternalSignalDSL.g:19929:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalSignalDSL.g:19930:2: ( ruleXMultiplicativeExpression )
             {
-            // InternalSignalDSL.g:19661:2: ( ruleXMultiplicativeExpression )
-            // InternalSignalDSL.g:19662:3: ruleXMultiplicativeExpression
+            // InternalSignalDSL.g:19930:2: ( ruleXMultiplicativeExpression )
+            // InternalSignalDSL.g:19931:3: ruleXMultiplicativeExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
@@ -64287,23 +65196,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1"
-    // InternalSignalDSL.g:19671:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
+    // InternalSignalDSL.g:19940:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
     public final void rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19675:1: ( ( ( ruleOpMulti ) ) )
-            // InternalSignalDSL.g:19676:2: ( ( ruleOpMulti ) )
+            // InternalSignalDSL.g:19944:1: ( ( ( ruleOpMulti ) ) )
+            // InternalSignalDSL.g:19945:2: ( ( ruleOpMulti ) )
             {
-            // InternalSignalDSL.g:19676:2: ( ( ruleOpMulti ) )
-            // InternalSignalDSL.g:19677:3: ( ruleOpMulti )
+            // InternalSignalDSL.g:19945:2: ( ( ruleOpMulti ) )
+            // InternalSignalDSL.g:19946:3: ( ruleOpMulti )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalSignalDSL.g:19678:3: ( ruleOpMulti )
-            // InternalSignalDSL.g:19679:4: ruleOpMulti
+            // InternalSignalDSL.g:19947:3: ( ruleOpMulti )
+            // InternalSignalDSL.g:19948:4: ruleOpMulti
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); 
@@ -64344,17 +65253,17 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__RightOperandAssignment_1_1"
-    // InternalSignalDSL.g:19690:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
+    // InternalSignalDSL.g:19959:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
     public final void rule__XMultiplicativeExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19694:1: ( ( ruleXUnaryOperation ) )
-            // InternalSignalDSL.g:19695:2: ( ruleXUnaryOperation )
+            // InternalSignalDSL.g:19963:1: ( ( ruleXUnaryOperation ) )
+            // InternalSignalDSL.g:19964:2: ( ruleXUnaryOperation )
             {
-            // InternalSignalDSL.g:19695:2: ( ruleXUnaryOperation )
-            // InternalSignalDSL.g:19696:3: ruleXUnaryOperation
+            // InternalSignalDSL.g:19964:2: ( ruleXUnaryOperation )
+            // InternalSignalDSL.g:19965:3: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
@@ -64389,23 +65298,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__FeatureAssignment_0_1"
-    // InternalSignalDSL.g:19705:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
+    // InternalSignalDSL.g:19974:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
     public final void rule__XUnaryOperation__FeatureAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19709:1: ( ( ( ruleOpUnary ) ) )
-            // InternalSignalDSL.g:19710:2: ( ( ruleOpUnary ) )
+            // InternalSignalDSL.g:19978:1: ( ( ( ruleOpUnary ) ) )
+            // InternalSignalDSL.g:19979:2: ( ( ruleOpUnary ) )
             {
-            // InternalSignalDSL.g:19710:2: ( ( ruleOpUnary ) )
-            // InternalSignalDSL.g:19711:3: ( ruleOpUnary )
+            // InternalSignalDSL.g:19979:2: ( ( ruleOpUnary ) )
+            // InternalSignalDSL.g:19980:3: ( ruleOpUnary )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
             }
-            // InternalSignalDSL.g:19712:3: ( ruleOpUnary )
-            // InternalSignalDSL.g:19713:4: ruleOpUnary
+            // InternalSignalDSL.g:19981:3: ( ruleOpUnary )
+            // InternalSignalDSL.g:19982:4: ruleOpUnary
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); 
@@ -64446,17 +65355,17 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__OperandAssignment_0_2"
-    // InternalSignalDSL.g:19724:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
+    // InternalSignalDSL.g:19993:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
     public final void rule__XUnaryOperation__OperandAssignment_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19728:1: ( ( ruleXUnaryOperation ) )
-            // InternalSignalDSL.g:19729:2: ( ruleXUnaryOperation )
+            // InternalSignalDSL.g:19997:1: ( ( ruleXUnaryOperation ) )
+            // InternalSignalDSL.g:19998:2: ( ruleXUnaryOperation )
             {
-            // InternalSignalDSL.g:19729:2: ( ruleXUnaryOperation )
-            // InternalSignalDSL.g:19730:3: ruleXUnaryOperation
+            // InternalSignalDSL.g:19998:2: ( ruleXUnaryOperation )
+            // InternalSignalDSL.g:19999:3: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
@@ -64491,17 +65400,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__TypeAssignment_1_1"
-    // InternalSignalDSL.g:19739:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:20008:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XCastedExpression__TypeAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19743:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:19744:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20012:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:20013:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:19744:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:19745:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:20013:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20014:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
@@ -64536,23 +65445,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__FeatureAssignment_1_0_1"
-    // InternalSignalDSL.g:19754:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
+    // InternalSignalDSL.g:20023:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
     public final void rule__XPostfixOperation__FeatureAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19758:1: ( ( ( ruleOpPostfix ) ) )
-            // InternalSignalDSL.g:19759:2: ( ( ruleOpPostfix ) )
+            // InternalSignalDSL.g:20027:1: ( ( ( ruleOpPostfix ) ) )
+            // InternalSignalDSL.g:20028:2: ( ( ruleOpPostfix ) )
             {
-            // InternalSignalDSL.g:19759:2: ( ( ruleOpPostfix ) )
-            // InternalSignalDSL.g:19760:3: ( ruleOpPostfix )
+            // InternalSignalDSL.g:20028:2: ( ( ruleOpPostfix ) )
+            // InternalSignalDSL.g:20029:3: ( ruleOpPostfix )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
             }
-            // InternalSignalDSL.g:19761:3: ( ruleOpPostfix )
-            // InternalSignalDSL.g:19762:4: ruleOpPostfix
+            // InternalSignalDSL.g:20030:3: ( ruleOpPostfix )
+            // InternalSignalDSL.g:20031:4: ruleOpPostfix
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); 
@@ -64593,28 +65502,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1"
-    // InternalSignalDSL.g:19773:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
+    // InternalSignalDSL.g:20042:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19777:1: ( ( ( '::' ) ) )
-            // InternalSignalDSL.g:19778:2: ( ( '::' ) )
+            // InternalSignalDSL.g:20046:1: ( ( ( '::' ) ) )
+            // InternalSignalDSL.g:20047:2: ( ( '::' ) )
             {
-            // InternalSignalDSL.g:19778:2: ( ( '::' ) )
-            // InternalSignalDSL.g:19779:3: ( '::' )
+            // InternalSignalDSL.g:20047:2: ( ( '::' ) )
+            // InternalSignalDSL.g:20048:3: ( '::' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
-            // InternalSignalDSL.g:19780:3: ( '::' )
-            // InternalSignalDSL.g:19781:4: '::'
+            // InternalSignalDSL.g:20049:3: ( '::' )
+            // InternalSignalDSL.g:20050:4: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
-            match(input,107,FOLLOW_2); if (state.failed) return ;
+            match(input,111,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
@@ -64646,23 +65555,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2"
-    // InternalSignalDSL.g:19792:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
+    // InternalSignalDSL.g:20061:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
     public final void rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19796:1: ( ( ( ruleFeatureCallID ) ) )
-            // InternalSignalDSL.g:19797:2: ( ( ruleFeatureCallID ) )
+            // InternalSignalDSL.g:20065:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalSignalDSL.g:20066:2: ( ( ruleFeatureCallID ) )
             {
-            // InternalSignalDSL.g:19797:2: ( ( ruleFeatureCallID ) )
-            // InternalSignalDSL.g:19798:3: ( ruleFeatureCallID )
+            // InternalSignalDSL.g:20066:2: ( ( ruleFeatureCallID ) )
+            // InternalSignalDSL.g:20067:3: ( ruleFeatureCallID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
             }
-            // InternalSignalDSL.g:19799:3: ( ruleFeatureCallID )
-            // InternalSignalDSL.g:19800:4: ruleFeatureCallID
+            // InternalSignalDSL.g:20068:3: ( ruleFeatureCallID )
+            // InternalSignalDSL.g:20069:4: ruleFeatureCallID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); 
@@ -64703,17 +65612,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ValueAssignment_1_0_1"
-    // InternalSignalDSL.g:19811:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
+    // InternalSignalDSL.g:20080:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
     public final void rule__XMemberFeatureCall__ValueAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19815:1: ( ( ruleXAssignment ) )
-            // InternalSignalDSL.g:19816:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:20084:1: ( ( ruleXAssignment ) )
+            // InternalSignalDSL.g:20085:2: ( ruleXAssignment )
             {
-            // InternalSignalDSL.g:19816:2: ( ruleXAssignment )
-            // InternalSignalDSL.g:19817:3: ruleXAssignment
+            // InternalSignalDSL.g:20085:2: ( ruleXAssignment )
+            // InternalSignalDSL.g:20086:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
@@ -64748,28 +65657,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1"
-    // InternalSignalDSL.g:19826:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
+    // InternalSignalDSL.g:20095:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
     public final void rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19830:1: ( ( ( '?.' ) ) )
-            // InternalSignalDSL.g:19831:2: ( ( '?.' ) )
+            // InternalSignalDSL.g:20099:1: ( ( ( '?.' ) ) )
+            // InternalSignalDSL.g:20100:2: ( ( '?.' ) )
             {
-            // InternalSignalDSL.g:19831:2: ( ( '?.' ) )
-            // InternalSignalDSL.g:19832:3: ( '?.' )
+            // InternalSignalDSL.g:20100:2: ( ( '?.' ) )
+            // InternalSignalDSL.g:20101:3: ( '?.' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
-            // InternalSignalDSL.g:19833:3: ( '?.' )
-            // InternalSignalDSL.g:19834:4: '?.'
+            // InternalSignalDSL.g:20102:3: ( '?.' )
+            // InternalSignalDSL.g:20103:4: '?.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
-            match(input,108,FOLLOW_2); if (state.failed) return ;
+            match(input,112,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
@@ -64801,28 +65710,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2"
-    // InternalSignalDSL.g:19845:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
+    // InternalSignalDSL.g:20114:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19849:1: ( ( ( '::' ) ) )
-            // InternalSignalDSL.g:19850:2: ( ( '::' ) )
+            // InternalSignalDSL.g:20118:1: ( ( ( '::' ) ) )
+            // InternalSignalDSL.g:20119:2: ( ( '::' ) )
             {
-            // InternalSignalDSL.g:19850:2: ( ( '::' ) )
-            // InternalSignalDSL.g:19851:3: ( '::' )
+            // InternalSignalDSL.g:20119:2: ( ( '::' ) )
+            // InternalSignalDSL.g:20120:3: ( '::' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
-            // InternalSignalDSL.g:19852:3: ( '::' )
-            // InternalSignalDSL.g:19853:4: '::'
+            // InternalSignalDSL.g:20121:3: ( '::' )
+            // InternalSignalDSL.g:20122:4: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
-            match(input,107,FOLLOW_2); if (state.failed) return ;
+            match(input,111,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
@@ -64854,17 +65763,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1"
-    // InternalSignalDSL.g:19864:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:20133:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19868:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:19869:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:20137:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:20138:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:19869:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:19870:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:20138:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:20139:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
@@ -64899,17 +65808,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1"
-    // InternalSignalDSL.g:19879:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:20148:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19883:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:19884:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:20152:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:20153:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:19884:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:19885:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:20153:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:20154:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
@@ -64944,23 +65853,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_1_2"
-    // InternalSignalDSL.g:19894:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
+    // InternalSignalDSL.g:20163:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
     public final void rule__XMemberFeatureCall__FeatureAssignment_1_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19898:1: ( ( ( ruleIdOrSuper ) ) )
-            // InternalSignalDSL.g:19899:2: ( ( ruleIdOrSuper ) )
+            // InternalSignalDSL.g:20167:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalSignalDSL.g:20168:2: ( ( ruleIdOrSuper ) )
             {
-            // InternalSignalDSL.g:19899:2: ( ( ruleIdOrSuper ) )
-            // InternalSignalDSL.g:19900:3: ( ruleIdOrSuper )
+            // InternalSignalDSL.g:20168:2: ( ( ruleIdOrSuper ) )
+            // InternalSignalDSL.g:20169:3: ( ruleIdOrSuper )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
             }
-            // InternalSignalDSL.g:19901:3: ( ruleIdOrSuper )
-            // InternalSignalDSL.g:19902:4: ruleIdOrSuper
+            // InternalSignalDSL.g:20170:3: ( ruleIdOrSuper )
+            // InternalSignalDSL.g:20171:4: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); 
@@ -65001,28 +65910,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0"
-    // InternalSignalDSL.g:19913:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
+    // InternalSignalDSL.g:20182:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19917:1: ( ( ( '(' ) ) )
-            // InternalSignalDSL.g:19918:2: ( ( '(' ) )
+            // InternalSignalDSL.g:20186:1: ( ( ( '(' ) ) )
+            // InternalSignalDSL.g:20187:2: ( ( '(' ) )
             {
-            // InternalSignalDSL.g:19918:2: ( ( '(' ) )
-            // InternalSignalDSL.g:19919:3: ( '(' )
+            // InternalSignalDSL.g:20187:2: ( ( '(' ) )
+            // InternalSignalDSL.g:20188:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
-            // InternalSignalDSL.g:19920:3: ( '(' )
-            // InternalSignalDSL.g:19921:4: '('
+            // InternalSignalDSL.g:20189:3: ( '(' )
+            // InternalSignalDSL.g:20190:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
@@ -65054,17 +65963,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0"
-    // InternalSignalDSL.g:19932:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
+    // InternalSignalDSL.g:20201:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19936:1: ( ( ruleXShortClosure ) )
-            // InternalSignalDSL.g:19937:2: ( ruleXShortClosure )
+            // InternalSignalDSL.g:20205:1: ( ( ruleXShortClosure ) )
+            // InternalSignalDSL.g:20206:2: ( ruleXShortClosure )
             {
-            // InternalSignalDSL.g:19937:2: ( ruleXShortClosure )
-            // InternalSignalDSL.g:19938:3: ruleXShortClosure
+            // InternalSignalDSL.g:20206:2: ( ruleXShortClosure )
+            // InternalSignalDSL.g:20207:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
@@ -65099,17 +66008,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0"
-    // InternalSignalDSL.g:19947:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20216:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19951:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19952:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20220:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20221:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19952:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19953:3: ruleXExpression
+            // InternalSignalDSL.g:20221:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20222:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
@@ -65144,17 +66053,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1"
-    // InternalSignalDSL.g:19962:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20231:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19966:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19967:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20235:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20236:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19967:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19968:3: ruleXExpression
+            // InternalSignalDSL.g:20236:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20237:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
@@ -65189,17 +66098,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4"
-    // InternalSignalDSL.g:19977:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
+    // InternalSignalDSL.g:20246:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19981:1: ( ( ruleXClosure ) )
-            // InternalSignalDSL.g:19982:2: ( ruleXClosure )
+            // InternalSignalDSL.g:20250:1: ( ( ruleXClosure ) )
+            // InternalSignalDSL.g:20251:2: ( ruleXClosure )
             {
-            // InternalSignalDSL.g:19982:2: ( ruleXClosure )
-            // InternalSignalDSL.g:19983:3: ruleXClosure
+            // InternalSignalDSL.g:20251:2: ( ruleXClosure )
+            // InternalSignalDSL.g:20252:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
@@ -65234,17 +66143,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_0"
-    // InternalSignalDSL.g:19992:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20261:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
     public final void rule__XSetLiteral__ElementsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:19996:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:19997:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20265:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20266:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:19997:2: ( ruleXExpression )
-            // InternalSignalDSL.g:19998:3: ruleXExpression
+            // InternalSignalDSL.g:20266:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20267:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
@@ -65279,17 +66188,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_1_1"
-    // InternalSignalDSL.g:20007:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20276:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XSetLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20011:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20012:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20280:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20281:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20012:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20013:3: ruleXExpression
+            // InternalSignalDSL.g:20281:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20282:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
@@ -65324,17 +66233,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_0"
-    // InternalSignalDSL.g:20022:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20291:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
     public final void rule__XListLiteral__ElementsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20026:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20027:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20295:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20296:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20027:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20028:3: ruleXExpression
+            // InternalSignalDSL.g:20296:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20297:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
@@ -65369,17 +66278,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_1_1"
-    // InternalSignalDSL.g:20037:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20306:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XListLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20041:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20042:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20310:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20311:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20042:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20043:3: ruleXExpression
+            // InternalSignalDSL.g:20311:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20312:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
@@ -65414,17 +66323,17 @@
 
 
     // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0"
-    // InternalSignalDSL.g:20052:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:20321:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
     public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20056:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:20057:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20325:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:20326:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:20057:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:20058:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:20326:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20327:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
@@ -65459,17 +66368,17 @@
 
 
     // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1"
-    // InternalSignalDSL.g:20067:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:20336:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
     public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20071:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:20072:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20340:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:20341:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:20072:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:20073:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:20341:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20342:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
@@ -65504,28 +66413,28 @@
 
 
     // $ANTLR start "rule__XClosure__ExplicitSyntaxAssignment_1_0_1"
-    // InternalSignalDSL.g:20082:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
+    // InternalSignalDSL.g:20351:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
     public final void rule__XClosure__ExplicitSyntaxAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20086:1: ( ( ( '|' ) ) )
-            // InternalSignalDSL.g:20087:2: ( ( '|' ) )
+            // InternalSignalDSL.g:20355:1: ( ( ( '|' ) ) )
+            // InternalSignalDSL.g:20356:2: ( ( '|' ) )
             {
-            // InternalSignalDSL.g:20087:2: ( ( '|' ) )
-            // InternalSignalDSL.g:20088:3: ( '|' )
+            // InternalSignalDSL.g:20356:2: ( ( '|' ) )
+            // InternalSignalDSL.g:20357:3: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
-            // InternalSignalDSL.g:20089:3: ( '|' )
-            // InternalSignalDSL.g:20090:4: '|'
+            // InternalSignalDSL.g:20358:3: ( '|' )
+            // InternalSignalDSL.g:20359:4: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
-            match(input,109,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
@@ -65557,17 +66466,17 @@
 
 
     // $ANTLR start "rule__XClosure__ExpressionAssignment_2"
-    // InternalSignalDSL.g:20101:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
+    // InternalSignalDSL.g:20370:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
     public final void rule__XClosure__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20105:1: ( ( ruleXExpressionInClosure ) )
-            // InternalSignalDSL.g:20106:2: ( ruleXExpressionInClosure )
+            // InternalSignalDSL.g:20374:1: ( ( ruleXExpressionInClosure ) )
+            // InternalSignalDSL.g:20375:2: ( ruleXExpressionInClosure )
             {
-            // InternalSignalDSL.g:20106:2: ( ruleXExpressionInClosure )
-            // InternalSignalDSL.g:20107:3: ruleXExpressionInClosure
+            // InternalSignalDSL.g:20375:2: ( ruleXExpressionInClosure )
+            // InternalSignalDSL.g:20376:3: ruleXExpressionInClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
@@ -65602,17 +66511,17 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__ExpressionsAssignment_1_0"
-    // InternalSignalDSL.g:20116:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalSignalDSL.g:20385:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XExpressionInClosure__ExpressionsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20120:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalSignalDSL.g:20121:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:20389:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalSignalDSL.g:20390:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalSignalDSL.g:20121:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalSignalDSL.g:20122:3: ruleXExpressionOrVarDeclaration
+            // InternalSignalDSL.g:20390:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:20391:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
@@ -65647,17 +66556,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0"
-    // InternalSignalDSL.g:20131:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:20400:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
     public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20135:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:20136:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20404:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:20405:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:20136:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:20137:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:20405:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20406:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
@@ -65692,17 +66601,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1"
-    // InternalSignalDSL.g:20146:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:20415:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
     public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20150:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:20151:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20419:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:20420:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:20151:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:20152:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:20420:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20421:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
@@ -65737,28 +66646,28 @@
 
 
     // $ANTLR start "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2"
-    // InternalSignalDSL.g:20161:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
+    // InternalSignalDSL.g:20430:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
     public final void rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20165:1: ( ( ( '|' ) ) )
-            // InternalSignalDSL.g:20166:2: ( ( '|' ) )
+            // InternalSignalDSL.g:20434:1: ( ( ( '|' ) ) )
+            // InternalSignalDSL.g:20435:2: ( ( '|' ) )
             {
-            // InternalSignalDSL.g:20166:2: ( ( '|' ) )
-            // InternalSignalDSL.g:20167:3: ( '|' )
+            // InternalSignalDSL.g:20435:2: ( ( '|' ) )
+            // InternalSignalDSL.g:20436:3: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
-            // InternalSignalDSL.g:20168:3: ( '|' )
-            // InternalSignalDSL.g:20169:4: '|'
+            // InternalSignalDSL.g:20437:3: ( '|' )
+            // InternalSignalDSL.g:20438:4: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
-            match(input,109,FOLLOW_2); if (state.failed) return ;
+            match(input,113,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
@@ -65790,17 +66699,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__ExpressionAssignment_1"
-    // InternalSignalDSL.g:20180:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20449:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XShortClosure__ExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20184:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20185:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20453:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20454:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20185:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20186:3: ruleXExpression
+            // InternalSignalDSL.g:20454:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20455:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
@@ -65835,17 +66744,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__IfAssignment_3"
-    // InternalSignalDSL.g:20195:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20464:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__IfAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20199:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20200:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20468:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20469:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20200:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20201:3: ruleXExpression
+            // InternalSignalDSL.g:20469:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20470:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
@@ -65880,17 +66789,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__ThenAssignment_5"
-    // InternalSignalDSL.g:20210:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20479:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__ThenAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20214:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20215:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20483:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20484:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20215:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20216:3: ruleXExpression
+            // InternalSignalDSL.g:20484:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20485:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
@@ -65925,17 +66834,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__ElseAssignment_6_1"
-    // InternalSignalDSL.g:20225:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20494:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__ElseAssignment_6_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20229:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20230:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20498:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20499:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20230:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20231:3: ruleXExpression
+            // InternalSignalDSL.g:20499:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20500:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
@@ -65970,17 +66879,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1"
-    // InternalSignalDSL.g:20240:1: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:20509:1: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 : ( ruleJvmFormalParameter ) ;
     public final void rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20244:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:20245:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20513:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:20514:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:20245:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:20246:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:20514:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20515:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
@@ -66015,17 +66924,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_0_1"
-    // InternalSignalDSL.g:20255:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20524:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__SwitchAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20259:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20260:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20528:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20529:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20260:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20261:3: ruleXExpression
+            // InternalSignalDSL.g:20529:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20530:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
@@ -66060,17 +66969,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0"
-    // InternalSignalDSL.g:20270:1: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:20539:1: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 : ( ruleJvmFormalParameter ) ;
     public final void rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20274:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:20275:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20543:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:20544:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:20275:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:20276:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:20544:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20545:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
@@ -66105,17 +67014,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_1_1"
-    // InternalSignalDSL.g:20285:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20554:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__SwitchAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20289:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20290:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20558:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20559:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20290:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20291:3: ruleXExpression
+            // InternalSignalDSL.g:20559:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20560:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
@@ -66150,17 +67059,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__CasesAssignment_4"
-    // InternalSignalDSL.g:20300:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
+    // InternalSignalDSL.g:20569:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
     public final void rule__XSwitchExpression__CasesAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20304:1: ( ( ruleXCasePart ) )
-            // InternalSignalDSL.g:20305:2: ( ruleXCasePart )
+            // InternalSignalDSL.g:20573:1: ( ( ruleXCasePart ) )
+            // InternalSignalDSL.g:20574:2: ( ruleXCasePart )
             {
-            // InternalSignalDSL.g:20305:2: ( ruleXCasePart )
-            // InternalSignalDSL.g:20306:3: ruleXCasePart
+            // InternalSignalDSL.g:20574:2: ( ruleXCasePart )
+            // InternalSignalDSL.g:20575:3: ruleXCasePart
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
@@ -66195,17 +67104,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DefaultAssignment_5_2"
-    // InternalSignalDSL.g:20315:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20584:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__DefaultAssignment_5_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20319:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20320:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20588:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20589:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20320:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20321:3: ruleXExpression
+            // InternalSignalDSL.g:20589:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20590:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
@@ -66240,17 +67149,17 @@
 
 
     // $ANTLR start "rule__XCasePart__TypeGuardAssignment_1"
-    // InternalSignalDSL.g:20330:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:20599:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XCasePart__TypeGuardAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20334:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:20335:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20603:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:20604:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:20335:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:20336:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:20604:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20605:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
@@ -66285,17 +67194,17 @@
 
 
     // $ANTLR start "rule__XCasePart__CaseAssignment_2_1"
-    // InternalSignalDSL.g:20345:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20614:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
     public final void rule__XCasePart__CaseAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20349:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20350:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20618:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20619:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20350:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20351:3: ruleXExpression
+            // InternalSignalDSL.g:20619:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20620:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
@@ -66330,17 +67239,17 @@
 
 
     // $ANTLR start "rule__XCasePart__ThenAssignment_3_0_1"
-    // InternalSignalDSL.g:20360:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20629:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
     public final void rule__XCasePart__ThenAssignment_3_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20364:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20365:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20633:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20634:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20365:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20366:3: ruleXExpression
+            // InternalSignalDSL.g:20634:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20635:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
@@ -66375,28 +67284,28 @@
 
 
     // $ANTLR start "rule__XCasePart__FallThroughAssignment_3_1"
-    // InternalSignalDSL.g:20375:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
+    // InternalSignalDSL.g:20644:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
     public final void rule__XCasePart__FallThroughAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20379:1: ( ( ( ',' ) ) )
-            // InternalSignalDSL.g:20380:2: ( ( ',' ) )
+            // InternalSignalDSL.g:20648:1: ( ( ( ',' ) ) )
+            // InternalSignalDSL.g:20649:2: ( ( ',' ) )
             {
-            // InternalSignalDSL.g:20380:2: ( ( ',' ) )
-            // InternalSignalDSL.g:20381:3: ( ',' )
+            // InternalSignalDSL.g:20649:2: ( ( ',' ) )
+            // InternalSignalDSL.g:20650:3: ( ',' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
-            // InternalSignalDSL.g:20382:3: ( ',' )
-            // InternalSignalDSL.g:20383:4: ','
+            // InternalSignalDSL.g:20651:3: ( ',' )
+            // InternalSignalDSL.g:20652:4: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
@@ -66428,17 +67337,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3"
-    // InternalSignalDSL.g:20394:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
+    // InternalSignalDSL.g:20663:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
     public final void rule__XForLoopExpression__DeclaredParamAssignment_0_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20398:1: ( ( ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:20399:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20667:1: ( ( ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:20668:2: ( ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:20399:2: ( ruleJvmFormalParameter )
-            // InternalSignalDSL.g:20400:3: ruleJvmFormalParameter
+            // InternalSignalDSL.g:20668:2: ( ruleJvmFormalParameter )
+            // InternalSignalDSL.g:20669:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
@@ -66473,17 +67382,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__ForExpressionAssignment_1"
-    // InternalSignalDSL.g:20409:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20678:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XForLoopExpression__ForExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20413:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20414:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20682:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20683:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20414:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20415:3: ruleXExpression
+            // InternalSignalDSL.g:20683:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20684:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
@@ -66518,17 +67427,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__EachExpressionAssignment_3"
-    // InternalSignalDSL.g:20424:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20693:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XForLoopExpression__EachExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20428:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20429:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20697:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20698:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20429:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20430:3: ruleXExpression
+            // InternalSignalDSL.g:20698:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20699:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
@@ -66563,17 +67472,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0"
-    // InternalSignalDSL.g:20439:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalSignalDSL.g:20708:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20443:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalSignalDSL.g:20444:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:20712:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalSignalDSL.g:20713:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalSignalDSL.g:20444:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalSignalDSL.g:20445:3: ruleXExpressionOrVarDeclaration
+            // InternalSignalDSL.g:20713:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:20714:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
@@ -66608,17 +67517,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1"
-    // InternalSignalDSL.g:20454:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalSignalDSL.g:20723:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20458:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalSignalDSL.g:20459:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:20727:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalSignalDSL.g:20728:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalSignalDSL.g:20459:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalSignalDSL.g:20460:3: ruleXExpressionOrVarDeclaration
+            // InternalSignalDSL.g:20728:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:20729:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
@@ -66653,17 +67562,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__ExpressionAssignment_5"
-    // InternalSignalDSL.g:20469:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20738:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__ExpressionAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20473:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20474:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20742:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20743:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20474:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20475:3: ruleXExpression
+            // InternalSignalDSL.g:20743:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20744:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
@@ -66698,17 +67607,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0"
-    // InternalSignalDSL.g:20484:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20753:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20488:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20489:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20757:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20758:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20489:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20490:3: ruleXExpression
+            // InternalSignalDSL.g:20758:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20759:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
@@ -66743,17 +67652,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1"
-    // InternalSignalDSL.g:20499:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20768:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20503:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20504:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20772:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20773:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20504:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20505:3: ruleXExpression
+            // InternalSignalDSL.g:20773:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20774:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
@@ -66788,17 +67697,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__EachExpressionAssignment_9"
-    // InternalSignalDSL.g:20514:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20783:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__EachExpressionAssignment_9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20518:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20519:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20787:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20788:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20519:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20520:3: ruleXExpression
+            // InternalSignalDSL.g:20788:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20789:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
@@ -66833,17 +67742,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__PredicateAssignment_3"
-    // InternalSignalDSL.g:20529:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20798:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XWhileExpression__PredicateAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20533:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20534:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20802:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20803:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20534:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20535:3: ruleXExpression
+            // InternalSignalDSL.g:20803:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20804:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
@@ -66878,17 +67787,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__BodyAssignment_5"
-    // InternalSignalDSL.g:20544:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20813:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XWhileExpression__BodyAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20548:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20549:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20817:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20818:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20549:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20550:3: ruleXExpression
+            // InternalSignalDSL.g:20818:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20819:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
@@ -66923,17 +67832,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__BodyAssignment_2"
-    // InternalSignalDSL.g:20559:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20828:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XDoWhileExpression__BodyAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20563:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20564:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20832:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20833:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20564:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20565:3: ruleXExpression
+            // InternalSignalDSL.g:20833:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20834:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
@@ -66968,17 +67877,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__PredicateAssignment_5"
-    // InternalSignalDSL.g:20574:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20843:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XDoWhileExpression__PredicateAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20578:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20579:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20847:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20848:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20579:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20580:3: ruleXExpression
+            // InternalSignalDSL.g:20848:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20849:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
@@ -67013,17 +67922,17 @@
 
 
     // $ANTLR start "rule__XBlockExpression__ExpressionsAssignment_2_0"
-    // InternalSignalDSL.g:20589:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalSignalDSL.g:20858:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBlockExpression__ExpressionsAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20593:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalSignalDSL.g:20594:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:20862:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalSignalDSL.g:20863:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalSignalDSL.g:20594:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalSignalDSL.g:20595:3: ruleXExpressionOrVarDeclaration
+            // InternalSignalDSL.g:20863:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalSignalDSL.g:20864:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
@@ -67058,28 +67967,28 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__WriteableAssignment_1_0"
-    // InternalSignalDSL.g:20604:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
+    // InternalSignalDSL.g:20873:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
     public final void rule__XVariableDeclaration__WriteableAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20608:1: ( ( ( 'var' ) ) )
-            // InternalSignalDSL.g:20609:2: ( ( 'var' ) )
+            // InternalSignalDSL.g:20877:1: ( ( ( 'var' ) ) )
+            // InternalSignalDSL.g:20878:2: ( ( 'var' ) )
             {
-            // InternalSignalDSL.g:20609:2: ( ( 'var' ) )
-            // InternalSignalDSL.g:20610:3: ( 'var' )
+            // InternalSignalDSL.g:20878:2: ( ( 'var' ) )
+            // InternalSignalDSL.g:20879:3: ( 'var' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
-            // InternalSignalDSL.g:20611:3: ( 'var' )
-            // InternalSignalDSL.g:20612:4: 'var'
+            // InternalSignalDSL.g:20880:3: ( 'var' )
+            // InternalSignalDSL.g:20881:4: 'var'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
-            match(input,110,FOLLOW_2); if (state.failed) return ;
+            match(input,114,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
@@ -67111,17 +68020,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__TypeAssignment_2_0_0_0"
-    // InternalSignalDSL.g:20623:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:20892:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
     public final void rule__XVariableDeclaration__TypeAssignment_2_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20627:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:20628:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20896:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:20897:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:20628:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:20629:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:20897:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20898:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
@@ -67156,17 +68065,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_0_0_1"
-    // InternalSignalDSL.g:20638:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
+    // InternalSignalDSL.g:20907:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
     public final void rule__XVariableDeclaration__NameAssignment_2_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20642:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:20643:2: ( ruleValidID )
+            // InternalSignalDSL.g:20911:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:20912:2: ( ruleValidID )
             {
-            // InternalSignalDSL.g:20643:2: ( ruleValidID )
-            // InternalSignalDSL.g:20644:3: ruleValidID
+            // InternalSignalDSL.g:20912:2: ( ruleValidID )
+            // InternalSignalDSL.g:20913:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
@@ -67201,17 +68110,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_1"
-    // InternalSignalDSL.g:20653:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
+    // InternalSignalDSL.g:20922:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
     public final void rule__XVariableDeclaration__NameAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20657:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:20658:2: ( ruleValidID )
+            // InternalSignalDSL.g:20926:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:20927:2: ( ruleValidID )
             {
-            // InternalSignalDSL.g:20658:2: ( ruleValidID )
-            // InternalSignalDSL.g:20659:3: ruleValidID
+            // InternalSignalDSL.g:20927:2: ( ruleValidID )
+            // InternalSignalDSL.g:20928:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
@@ -67246,17 +68155,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__RightAssignment_3_1"
-    // InternalSignalDSL.g:20668:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:20937:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
     public final void rule__XVariableDeclaration__RightAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20672:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20673:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20941:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:20942:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20673:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20674:3: ruleXExpression
+            // InternalSignalDSL.g:20942:2: ( ruleXExpression )
+            // InternalSignalDSL.g:20943:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
@@ -67291,17 +68200,17 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__ParameterTypeAssignment_0"
-    // InternalSignalDSL.g:20683:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:20952:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20687:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:20688:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20956:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:20957:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:20688:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:20689:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:20957:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20958:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
@@ -67336,17 +68245,17 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__NameAssignment_1"
-    // InternalSignalDSL.g:20698:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    // InternalSignalDSL.g:20967:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
     public final void rule__JvmFormalParameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20702:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:20703:2: ( ruleValidID )
+            // InternalSignalDSL.g:20971:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:20972:2: ( ruleValidID )
             {
-            // InternalSignalDSL.g:20703:2: ( ruleValidID )
-            // InternalSignalDSL.g:20704:3: ruleValidID
+            // InternalSignalDSL.g:20972:2: ( ruleValidID )
+            // InternalSignalDSL.g:20973:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
@@ -67381,17 +68290,17 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__ParameterTypeAssignment_0"
-    // InternalSignalDSL.g:20713:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:20982:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
     public final void rule__FullJvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20717:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:20718:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20986:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:20987:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:20718:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:20719:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:20987:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:20988:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
@@ -67426,17 +68335,17 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__NameAssignment_1"
-    // InternalSignalDSL.g:20728:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    // InternalSignalDSL.g:20997:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
     public final void rule__FullJvmFormalParameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20732:1: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:20733:2: ( ruleValidID )
+            // InternalSignalDSL.g:21001:1: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:21002:2: ( ruleValidID )
             {
-            // InternalSignalDSL.g:20733:2: ( ruleValidID )
-            // InternalSignalDSL.g:20734:3: ruleValidID
+            // InternalSignalDSL.g:21002:2: ( ruleValidID )
+            // InternalSignalDSL.g:21003:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
@@ -67471,17 +68380,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_1"
-    // InternalSignalDSL.g:20743:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:21012:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XFeatureCall__TypeArgumentsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20747:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:20748:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21016:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:21017:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:20748:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:20749:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:21017:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21018:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
@@ -67516,17 +68425,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1"
-    // InternalSignalDSL.g:20758:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:21027:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XFeatureCall__TypeArgumentsAssignment_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20762:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:20763:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21031:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:21032:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:20763:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:20764:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:21032:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21033:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
@@ -67561,23 +68470,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureAssignment_2"
-    // InternalSignalDSL.g:20773:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
+    // InternalSignalDSL.g:21042:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
     public final void rule__XFeatureCall__FeatureAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20777:1: ( ( ( ruleIdOrSuper ) ) )
-            // InternalSignalDSL.g:20778:2: ( ( ruleIdOrSuper ) )
+            // InternalSignalDSL.g:21046:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalSignalDSL.g:21047:2: ( ( ruleIdOrSuper ) )
             {
-            // InternalSignalDSL.g:20778:2: ( ( ruleIdOrSuper ) )
-            // InternalSignalDSL.g:20779:3: ( ruleIdOrSuper )
+            // InternalSignalDSL.g:21047:2: ( ( ruleIdOrSuper ) )
+            // InternalSignalDSL.g:21048:3: ( ruleIdOrSuper )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
             }
-            // InternalSignalDSL.g:20780:3: ( ruleIdOrSuper )
-            // InternalSignalDSL.g:20781:4: ruleIdOrSuper
+            // InternalSignalDSL.g:21049:3: ( ruleIdOrSuper )
+            // InternalSignalDSL.g:21050:4: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); 
@@ -67618,28 +68527,28 @@
 
 
     // $ANTLR start "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0"
-    // InternalSignalDSL.g:20792:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
+    // InternalSignalDSL.g:21061:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
     public final void rule__XFeatureCall__ExplicitOperationCallAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20796:1: ( ( ( '(' ) ) )
-            // InternalSignalDSL.g:20797:2: ( ( '(' ) )
+            // InternalSignalDSL.g:21065:1: ( ( ( '(' ) ) )
+            // InternalSignalDSL.g:21066:2: ( ( '(' ) )
             {
-            // InternalSignalDSL.g:20797:2: ( ( '(' ) )
-            // InternalSignalDSL.g:20798:3: ( '(' )
+            // InternalSignalDSL.g:21066:2: ( ( '(' ) )
+            // InternalSignalDSL.g:21067:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
-            // InternalSignalDSL.g:20799:3: ( '(' )
-            // InternalSignalDSL.g:20800:4: '('
+            // InternalSignalDSL.g:21068:3: ( '(' )
+            // InternalSignalDSL.g:21069:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
@@ -67671,17 +68580,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0"
-    // InternalSignalDSL.g:20811:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
+    // InternalSignalDSL.g:21080:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20815:1: ( ( ruleXShortClosure ) )
-            // InternalSignalDSL.g:20816:2: ( ruleXShortClosure )
+            // InternalSignalDSL.g:21084:1: ( ( ruleXShortClosure ) )
+            // InternalSignalDSL.g:21085:2: ( ruleXShortClosure )
             {
-            // InternalSignalDSL.g:20816:2: ( ruleXShortClosure )
-            // InternalSignalDSL.g:20817:3: ruleXShortClosure
+            // InternalSignalDSL.g:21085:2: ( ruleXShortClosure )
+            // InternalSignalDSL.g:21086:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
@@ -67716,17 +68625,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0"
-    // InternalSignalDSL.g:20826:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:21095:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20830:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20831:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21099:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:21100:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20831:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20832:3: ruleXExpression
+            // InternalSignalDSL.g:21100:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21101:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
@@ -67761,17 +68670,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1"
-    // InternalSignalDSL.g:20841:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:21110:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20845:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20846:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21114:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:21115:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20846:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20847:3: ruleXExpression
+            // InternalSignalDSL.g:21115:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21116:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
@@ -67806,17 +68715,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_4"
-    // InternalSignalDSL.g:20856:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
+    // InternalSignalDSL.g:21125:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20860:1: ( ( ruleXClosure ) )
-            // InternalSignalDSL.g:20861:2: ( ruleXClosure )
+            // InternalSignalDSL.g:21129:1: ( ( ruleXClosure ) )
+            // InternalSignalDSL.g:21130:2: ( ruleXClosure )
             {
-            // InternalSignalDSL.g:20861:2: ( ruleXClosure )
-            // InternalSignalDSL.g:20862:3: ruleXClosure
+            // InternalSignalDSL.g:21130:2: ( ruleXClosure )
+            // InternalSignalDSL.g:21131:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
@@ -67851,23 +68760,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ConstructorAssignment_2"
-    // InternalSignalDSL.g:20871:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalSignalDSL.g:21140:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XConstructorCall__ConstructorAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20875:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalSignalDSL.g:20876:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:21144:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalSignalDSL.g:21145:2: ( ( ruleQualifiedName ) )
             {
-            // InternalSignalDSL.g:20876:2: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:20877:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:21145:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:21146:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
             }
-            // InternalSignalDSL.g:20878:3: ( ruleQualifiedName )
-            // InternalSignalDSL.g:20879:4: ruleQualifiedName
+            // InternalSignalDSL.g:21147:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:21148:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); 
@@ -67908,17 +68817,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_1"
-    // InternalSignalDSL.g:20890:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:21159:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XConstructorCall__TypeArgumentsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20894:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:20895:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21163:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:21164:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:20895:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:20896:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:21164:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21165:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
@@ -67953,17 +68862,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1"
-    // InternalSignalDSL.g:20905:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:21174:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XConstructorCall__TypeArgumentsAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20909:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:20910:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21178:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:21179:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:20910:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:20911:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:21179:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21180:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
@@ -67998,28 +68907,28 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0"
-    // InternalSignalDSL.g:20920:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
+    // InternalSignalDSL.g:21189:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
     public final void rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20924:1: ( ( ( '(' ) ) )
-            // InternalSignalDSL.g:20925:2: ( ( '(' ) )
+            // InternalSignalDSL.g:21193:1: ( ( ( '(' ) ) )
+            // InternalSignalDSL.g:21194:2: ( ( '(' ) )
             {
-            // InternalSignalDSL.g:20925:2: ( ( '(' ) )
-            // InternalSignalDSL.g:20926:3: ( '(' )
+            // InternalSignalDSL.g:21194:2: ( ( '(' ) )
+            // InternalSignalDSL.g:21195:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
-            // InternalSignalDSL.g:20927:3: ( '(' )
-            // InternalSignalDSL.g:20928:4: '('
+            // InternalSignalDSL.g:21196:3: ( '(' )
+            // InternalSignalDSL.g:21197:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
@@ -68051,17 +68960,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_0"
-    // InternalSignalDSL.g:20939:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
+    // InternalSignalDSL.g:21208:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20943:1: ( ( ruleXShortClosure ) )
-            // InternalSignalDSL.g:20944:2: ( ruleXShortClosure )
+            // InternalSignalDSL.g:21212:1: ( ( ruleXShortClosure ) )
+            // InternalSignalDSL.g:21213:2: ( ruleXShortClosure )
             {
-            // InternalSignalDSL.g:20944:2: ( ruleXShortClosure )
-            // InternalSignalDSL.g:20945:3: ruleXShortClosure
+            // InternalSignalDSL.g:21213:2: ( ruleXShortClosure )
+            // InternalSignalDSL.g:21214:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
@@ -68096,17 +69005,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0"
-    // InternalSignalDSL.g:20954:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:21223:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20958:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20959:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21227:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:21228:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20959:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20960:3: ruleXExpression
+            // InternalSignalDSL.g:21228:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21229:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
@@ -68141,17 +69050,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1"
-    // InternalSignalDSL.g:20969:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:21238:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20973:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:20974:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21242:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:21243:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:20974:2: ( ruleXExpression )
-            // InternalSignalDSL.g:20975:3: ruleXExpression
+            // InternalSignalDSL.g:21243:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21244:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
@@ -68186,17 +69095,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_5"
-    // InternalSignalDSL.g:20984:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
+    // InternalSignalDSL.g:21253:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:20988:1: ( ( ruleXClosure ) )
-            // InternalSignalDSL.g:20989:2: ( ruleXClosure )
+            // InternalSignalDSL.g:21257:1: ( ( ruleXClosure ) )
+            // InternalSignalDSL.g:21258:2: ( ruleXClosure )
             {
-            // InternalSignalDSL.g:20989:2: ( ruleXClosure )
-            // InternalSignalDSL.g:20990:3: ruleXClosure
+            // InternalSignalDSL.g:21258:2: ( ruleXClosure )
+            // InternalSignalDSL.g:21259:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
@@ -68231,28 +69140,28 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__IsTrueAssignment_1_1"
-    // InternalSignalDSL.g:20999:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
+    // InternalSignalDSL.g:21268:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
     public final void rule__XBooleanLiteral__IsTrueAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21003:1: ( ( ( 'true' ) ) )
-            // InternalSignalDSL.g:21004:2: ( ( 'true' ) )
+            // InternalSignalDSL.g:21272:1: ( ( ( 'true' ) ) )
+            // InternalSignalDSL.g:21273:2: ( ( 'true' ) )
             {
-            // InternalSignalDSL.g:21004:2: ( ( 'true' ) )
-            // InternalSignalDSL.g:21005:3: ( 'true' )
+            // InternalSignalDSL.g:21273:2: ( ( 'true' ) )
+            // InternalSignalDSL.g:21274:3: ( 'true' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
-            // InternalSignalDSL.g:21006:3: ( 'true' )
-            // InternalSignalDSL.g:21007:4: 'true'
+            // InternalSignalDSL.g:21275:3: ( 'true' )
+            // InternalSignalDSL.g:21276:4: 'true'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
-            match(input,111,FOLLOW_2); if (state.failed) return ;
+            match(input,115,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
@@ -68284,17 +69193,17 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__ValueAssignment_1"
-    // InternalSignalDSL.g:21018:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
+    // InternalSignalDSL.g:21287:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
     public final void rule__XNumberLiteral__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21022:1: ( ( ruleNumber ) )
-            // InternalSignalDSL.g:21023:2: ( ruleNumber )
+            // InternalSignalDSL.g:21291:1: ( ( ruleNumber ) )
+            // InternalSignalDSL.g:21292:2: ( ruleNumber )
             {
-            // InternalSignalDSL.g:21023:2: ( ruleNumber )
-            // InternalSignalDSL.g:21024:3: ruleNumber
+            // InternalSignalDSL.g:21292:2: ( ruleNumber )
+            // InternalSignalDSL.g:21293:3: ruleNumber
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
@@ -68329,17 +69238,17 @@
 
 
     // $ANTLR start "rule__XStringLiteral__ValueAssignment_1"
-    // InternalSignalDSL.g:21033:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
+    // InternalSignalDSL.g:21302:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
     public final void rule__XStringLiteral__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21037:1: ( ( RULE_STRING ) )
-            // InternalSignalDSL.g:21038:2: ( RULE_STRING )
+            // InternalSignalDSL.g:21306:1: ( ( RULE_STRING ) )
+            // InternalSignalDSL.g:21307:2: ( RULE_STRING )
             {
-            // InternalSignalDSL.g:21038:2: ( RULE_STRING )
-            // InternalSignalDSL.g:21039:3: RULE_STRING
+            // InternalSignalDSL.g:21307:2: ( RULE_STRING )
+            // InternalSignalDSL.g:21308:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
@@ -68370,23 +69279,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__TypeAssignment_3"
-    // InternalSignalDSL.g:21048:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
+    // InternalSignalDSL.g:21317:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XTypeLiteral__TypeAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21052:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalSignalDSL.g:21053:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:21321:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalSignalDSL.g:21322:2: ( ( ruleQualifiedName ) )
             {
-            // InternalSignalDSL.g:21053:2: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:21054:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:21322:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:21323:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
             }
-            // InternalSignalDSL.g:21055:3: ( ruleQualifiedName )
-            // InternalSignalDSL.g:21056:4: ruleQualifiedName
+            // InternalSignalDSL.g:21324:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:21325:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); 
@@ -68427,17 +69336,17 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__ArrayDimensionsAssignment_4"
-    // InternalSignalDSL.g:21067:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
+    // InternalSignalDSL.g:21336:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
     public final void rule__XTypeLiteral__ArrayDimensionsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21071:1: ( ( ruleArrayBrackets ) )
-            // InternalSignalDSL.g:21072:2: ( ruleArrayBrackets )
+            // InternalSignalDSL.g:21340:1: ( ( ruleArrayBrackets ) )
+            // InternalSignalDSL.g:21341:2: ( ruleArrayBrackets )
             {
-            // InternalSignalDSL.g:21072:2: ( ruleArrayBrackets )
-            // InternalSignalDSL.g:21073:3: ruleArrayBrackets
+            // InternalSignalDSL.g:21341:2: ( ruleArrayBrackets )
+            // InternalSignalDSL.g:21342:3: ruleArrayBrackets
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
@@ -68472,17 +69381,17 @@
 
 
     // $ANTLR start "rule__XThrowExpression__ExpressionAssignment_2"
-    // InternalSignalDSL.g:21082:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:21351:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XThrowExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21086:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:21087:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21355:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:21356:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:21087:2: ( ruleXExpression )
-            // InternalSignalDSL.g:21088:3: ruleXExpression
+            // InternalSignalDSL.g:21356:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21357:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -68517,17 +69426,17 @@
 
 
     // $ANTLR start "rule__XReturnExpression__ExpressionAssignment_2"
-    // InternalSignalDSL.g:21097:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:21366:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XReturnExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21101:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:21102:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21370:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:21371:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:21102:2: ( ruleXExpression )
-            // InternalSignalDSL.g:21103:3: ruleXExpression
+            // InternalSignalDSL.g:21371:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21372:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -68562,17 +69471,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__ExpressionAssignment_2"
-    // InternalSignalDSL.g:21112:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:21381:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21116:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:21117:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21385:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:21386:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:21117:2: ( ruleXExpression )
-            // InternalSignalDSL.g:21118:3: ruleXExpression
+            // InternalSignalDSL.g:21386:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21387:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -68607,17 +69516,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0"
-    // InternalSignalDSL.g:21127:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
+    // InternalSignalDSL.g:21396:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
     public final void rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21131:1: ( ( ruleXCatchClause ) )
-            // InternalSignalDSL.g:21132:2: ( ruleXCatchClause )
+            // InternalSignalDSL.g:21400:1: ( ( ruleXCatchClause ) )
+            // InternalSignalDSL.g:21401:2: ( ruleXCatchClause )
             {
-            // InternalSignalDSL.g:21132:2: ( ruleXCatchClause )
-            // InternalSignalDSL.g:21133:3: ruleXCatchClause
+            // InternalSignalDSL.g:21401:2: ( ruleXCatchClause )
+            // InternalSignalDSL.g:21402:3: ruleXCatchClause
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
@@ -68652,17 +69561,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1"
-    // InternalSignalDSL.g:21142:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:21411:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21146:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:21147:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21415:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:21416:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:21147:2: ( ruleXExpression )
-            // InternalSignalDSL.g:21148:3: ruleXExpression
+            // InternalSignalDSL.g:21416:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21417:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
@@ -68697,17 +69606,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1"
-    // InternalSignalDSL.g:21157:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:21426:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21161:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:21162:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21430:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:21431:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:21162:2: ( ruleXExpression )
-            // InternalSignalDSL.g:21163:3: ruleXExpression
+            // InternalSignalDSL.g:21431:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21432:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
@@ -68742,17 +69651,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__ParamAssignment_1"
-    // InternalSignalDSL.g:21172:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:21441:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XSynchronizedExpression__ParamAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21176:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:21177:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21445:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:21446:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:21177:2: ( ruleXExpression )
-            // InternalSignalDSL.g:21178:3: ruleXExpression
+            // InternalSignalDSL.g:21446:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21447:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
@@ -68787,17 +69696,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__ExpressionAssignment_3"
-    // InternalSignalDSL.g:21187:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:21456:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XSynchronizedExpression__ExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21191:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:21192:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21460:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:21461:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:21192:2: ( ruleXExpression )
-            // InternalSignalDSL.g:21193:3: ruleXExpression
+            // InternalSignalDSL.g:21461:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21462:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
@@ -68832,17 +69741,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__DeclaredParamAssignment_2"
-    // InternalSignalDSL.g:21202:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
+    // InternalSignalDSL.g:21471:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
     public final void rule__XCatchClause__DeclaredParamAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21206:1: ( ( ruleFullJvmFormalParameter ) )
-            // InternalSignalDSL.g:21207:2: ( ruleFullJvmFormalParameter )
+            // InternalSignalDSL.g:21475:1: ( ( ruleFullJvmFormalParameter ) )
+            // InternalSignalDSL.g:21476:2: ( ruleFullJvmFormalParameter )
             {
-            // InternalSignalDSL.g:21207:2: ( ruleFullJvmFormalParameter )
-            // InternalSignalDSL.g:21208:3: ruleFullJvmFormalParameter
+            // InternalSignalDSL.g:21476:2: ( ruleFullJvmFormalParameter )
+            // InternalSignalDSL.g:21477:3: ruleFullJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
@@ -68877,17 +69786,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__ExpressionAssignment_4"
-    // InternalSignalDSL.g:21217:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
+    // InternalSignalDSL.g:21486:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
     public final void rule__XCatchClause__ExpressionAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21221:1: ( ( ruleXExpression ) )
-            // InternalSignalDSL.g:21222:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21490:1: ( ( ruleXExpression ) )
+            // InternalSignalDSL.g:21491:2: ( ruleXExpression )
             {
-            // InternalSignalDSL.g:21222:2: ( ruleXExpression )
-            // InternalSignalDSL.g:21223:3: ruleXExpression
+            // InternalSignalDSL.g:21491:2: ( ruleXExpression )
+            // InternalSignalDSL.g:21492:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
@@ -68922,17 +69831,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0"
-    // InternalSignalDSL.g:21232:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:21501:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21236:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:21237:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21505:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:21506:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:21237:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:21238:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:21506:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21507:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
@@ -68967,17 +69876,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1"
-    // InternalSignalDSL.g:21247:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:21516:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21251:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:21252:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21520:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:21521:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:21252:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:21253:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:21521:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21522:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
@@ -69012,17 +69921,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ReturnTypeAssignment_2"
-    // InternalSignalDSL.g:21262:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:21531:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ReturnTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21266:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:21267:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21535:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:21536:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:21267:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:21268:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:21536:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21537:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
@@ -69057,23 +69966,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_0"
-    // InternalSignalDSL.g:21277:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
+    // InternalSignalDSL.g:21546:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
     public final void rule__JvmParameterizedTypeReference__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21281:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalSignalDSL.g:21282:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:21550:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalSignalDSL.g:21551:2: ( ( ruleQualifiedName ) )
             {
-            // InternalSignalDSL.g:21282:2: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:21283:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:21551:2: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:21552:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
             }
-            // InternalSignalDSL.g:21284:3: ( ruleQualifiedName )
-            // InternalSignalDSL.g:21285:4: ruleQualifiedName
+            // InternalSignalDSL.g:21553:3: ( ruleQualifiedName )
+            // InternalSignalDSL.g:21554:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); 
@@ -69114,17 +70023,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1"
-    // InternalSignalDSL.g:21296:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:21565:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21300:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:21301:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21569:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:21570:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:21301:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:21302:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:21570:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21571:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
@@ -69159,17 +70068,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1"
-    // InternalSignalDSL.g:21311:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:21580:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21315:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:21316:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21584:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:21585:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:21316:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:21317:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:21585:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21586:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
@@ -69204,23 +70113,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1"
-    // InternalSignalDSL.g:21326:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
+    // InternalSignalDSL.g:21595:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
     public final void rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21330:1: ( ( ( ruleValidID ) ) )
-            // InternalSignalDSL.g:21331:2: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:21599:1: ( ( ( ruleValidID ) ) )
+            // InternalSignalDSL.g:21600:2: ( ( ruleValidID ) )
             {
-            // InternalSignalDSL.g:21331:2: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:21332:3: ( ruleValidID )
+            // InternalSignalDSL.g:21600:2: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:21601:3: ( ruleValidID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
             }
-            // InternalSignalDSL.g:21333:3: ( ruleValidID )
-            // InternalSignalDSL.g:21334:4: ruleValidID
+            // InternalSignalDSL.g:21602:3: ( ruleValidID )
+            // InternalSignalDSL.g:21603:4: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); 
@@ -69261,17 +70170,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1"
-    // InternalSignalDSL.g:21345:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:21614:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21349:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:21350:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21618:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:21619:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:21350:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:21351:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:21619:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21620:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
@@ -69306,17 +70215,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1"
-    // InternalSignalDSL.g:21360:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalSignalDSL.g:21629:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21364:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalSignalDSL.g:21365:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21633:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalSignalDSL.g:21634:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalSignalDSL.g:21365:2: ( ruleJvmArgumentTypeReference )
-            // InternalSignalDSL.g:21366:3: ruleJvmArgumentTypeReference
+            // InternalSignalDSL.g:21634:2: ( ruleJvmArgumentTypeReference )
+            // InternalSignalDSL.g:21635:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
@@ -69351,17 +70260,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0"
-    // InternalSignalDSL.g:21375:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
+    // InternalSignalDSL.g:21644:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21379:1: ( ( ruleJvmUpperBound ) )
-            // InternalSignalDSL.g:21380:2: ( ruleJvmUpperBound )
+            // InternalSignalDSL.g:21648:1: ( ( ruleJvmUpperBound ) )
+            // InternalSignalDSL.g:21649:2: ( ruleJvmUpperBound )
             {
-            // InternalSignalDSL.g:21380:2: ( ruleJvmUpperBound )
-            // InternalSignalDSL.g:21381:3: ruleJvmUpperBound
+            // InternalSignalDSL.g:21649:2: ( ruleJvmUpperBound )
+            // InternalSignalDSL.g:21650:3: ruleJvmUpperBound
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
@@ -69396,17 +70305,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1"
-    // InternalSignalDSL.g:21390:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
+    // InternalSignalDSL.g:21659:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21394:1: ( ( ruleJvmUpperBoundAnded ) )
-            // InternalSignalDSL.g:21395:2: ( ruleJvmUpperBoundAnded )
+            // InternalSignalDSL.g:21663:1: ( ( ruleJvmUpperBoundAnded ) )
+            // InternalSignalDSL.g:21664:2: ( ruleJvmUpperBoundAnded )
             {
-            // InternalSignalDSL.g:21395:2: ( ruleJvmUpperBoundAnded )
-            // InternalSignalDSL.g:21396:3: ruleJvmUpperBoundAnded
+            // InternalSignalDSL.g:21664:2: ( ruleJvmUpperBoundAnded )
+            // InternalSignalDSL.g:21665:3: ruleJvmUpperBoundAnded
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
@@ -69441,17 +70350,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0"
-    // InternalSignalDSL.g:21405:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
+    // InternalSignalDSL.g:21674:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21409:1: ( ( ruleJvmLowerBound ) )
-            // InternalSignalDSL.g:21410:2: ( ruleJvmLowerBound )
+            // InternalSignalDSL.g:21678:1: ( ( ruleJvmLowerBound ) )
+            // InternalSignalDSL.g:21679:2: ( ruleJvmLowerBound )
             {
-            // InternalSignalDSL.g:21410:2: ( ruleJvmLowerBound )
-            // InternalSignalDSL.g:21411:3: ruleJvmLowerBound
+            // InternalSignalDSL.g:21679:2: ( ruleJvmLowerBound )
+            // InternalSignalDSL.g:21680:3: ruleJvmLowerBound
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
@@ -69486,17 +70395,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1"
-    // InternalSignalDSL.g:21420:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
+    // InternalSignalDSL.g:21689:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21424:1: ( ( ruleJvmLowerBoundAnded ) )
-            // InternalSignalDSL.g:21425:2: ( ruleJvmLowerBoundAnded )
+            // InternalSignalDSL.g:21693:1: ( ( ruleJvmLowerBoundAnded ) )
+            // InternalSignalDSL.g:21694:2: ( ruleJvmLowerBoundAnded )
             {
-            // InternalSignalDSL.g:21425:2: ( ruleJvmLowerBoundAnded )
-            // InternalSignalDSL.g:21426:3: ruleJvmLowerBoundAnded
+            // InternalSignalDSL.g:21694:2: ( ruleJvmLowerBoundAnded )
+            // InternalSignalDSL.g:21695:3: ruleJvmLowerBoundAnded
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
@@ -69531,17 +70440,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__TypeReferenceAssignment_1"
-    // InternalSignalDSL.g:21435:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:21704:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmUpperBound__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21439:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:21440:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21708:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:21709:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:21440:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:21441:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:21709:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21710:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -69576,17 +70485,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1"
-    // InternalSignalDSL.g:21450:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:21719:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmUpperBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21454:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:21455:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21723:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:21724:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:21455:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:21456:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:21724:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21725:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -69621,17 +70530,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__TypeReferenceAssignment_1"
-    // InternalSignalDSL.g:21465:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:21734:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmLowerBound__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21469:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:21470:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21738:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:21739:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:21470:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:21471:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:21739:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21740:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -69666,17 +70575,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1"
-    // InternalSignalDSL.g:21480:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalSignalDSL.g:21749:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmLowerBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21484:1: ( ( ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:21485:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21753:1: ( ( ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:21754:2: ( ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:21485:2: ( ruleJvmTypeReference )
-            // InternalSignalDSL.g:21486:3: ruleJvmTypeReference
+            // InternalSignalDSL.g:21754:2: ( ruleJvmTypeReference )
+            // InternalSignalDSL.g:21755:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -69711,17 +70620,17 @@
 
 
     // $ANTLR start "rule__XImportSection__ImportDeclarationsAssignment"
-    // InternalSignalDSL.g:21495:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
+    // InternalSignalDSL.g:21764:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
     public final void rule__XImportSection__ImportDeclarationsAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalSignalDSL.g:21499:1: ( ( ruleXImportDeclaration ) )
-            // InternalSignalDSL.g:21500:2: ( ruleXImportDeclaration )
+            // InternalSignalDSL.g:21768:1: ( ( ruleXImportDeclaration ) )
+            // InternalSignalDSL.g:21769:2: ( ruleXImportDeclaration )
             {
-            // InternalSignalDSL.g:21500:2: ( ruleXImportDeclaration )
-            // InternalSignalDSL.g:21501:3: ruleXImportDeclaration
+            // InternalSignalDSL.g:21769:2: ( ruleXImportDeclaration )
+            // InternalSignalDSL.g:21770:3: ruleXImportDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); 
@@ -69754,19 +70663,19 @@
     }
     // $ANTLR end "rule__XImportSection__ImportDeclarationsAssignment"
 
-    // $ANTLR start synpred13_InternalSignalDSL
-    public final void synpred13_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2703:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
-        // InternalSignalDSL.g:2703:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+    // $ANTLR start synpred16_InternalSignalDSL
+    public final void synpred16_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:2726:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
+        // InternalSignalDSL.g:2726:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
         {
-        // InternalSignalDSL.g:2703:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-        // InternalSignalDSL.g:2704:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalSignalDSL.g:2726:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+        // InternalSignalDSL.g:2727:3: ( rule__XAnnotation__Group_3_1_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
         }
-        // InternalSignalDSL.g:2705:3: ( rule__XAnnotation__Group_3_1_0__0 )
-        // InternalSignalDSL.g:2705:4: rule__XAnnotation__Group_3_1_0__0
+        // InternalSignalDSL.g:2728:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalSignalDSL.g:2728:4: rule__XAnnotation__Group_3_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotation__Group_3_1_0__0();
@@ -69782,21 +70691,21 @@
 
         }
     }
-    // $ANTLR end synpred13_InternalSignalDSL
+    // $ANTLR end synpred16_InternalSignalDSL
 
-    // $ANTLR start synpred14_InternalSignalDSL
-    public final void synpred14_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2724:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
-        // InternalSignalDSL.g:2724:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+    // $ANTLR start synpred17_InternalSignalDSL
+    public final void synpred17_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:2747:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
+        // InternalSignalDSL.g:2747:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
         {
-        // InternalSignalDSL.g:2724:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-        // InternalSignalDSL.g:2725:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        // InternalSignalDSL.g:2747:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+        // InternalSignalDSL.g:2748:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
         }
-        // InternalSignalDSL.g:2726:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-        // InternalSignalDSL.g:2726:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+        // InternalSignalDSL.g:2749:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        // InternalSignalDSL.g:2749:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotationElementValueOrCommaList__Group_0__0();
@@ -69812,21 +70721,21 @@
 
         }
     }
-    // $ANTLR end synpred14_InternalSignalDSL
+    // $ANTLR end synpred17_InternalSignalDSL
 
-    // $ANTLR start synpred15_InternalSignalDSL
-    public final void synpred15_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2745:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
-        // InternalSignalDSL.g:2745:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+    // $ANTLR start synpred18_InternalSignalDSL
+    public final void synpred18_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:2768:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
+        // InternalSignalDSL.g:2768:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
         {
-        // InternalSignalDSL.g:2745:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-        // InternalSignalDSL.g:2746:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalSignalDSL.g:2768:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        // InternalSignalDSL.g:2769:3: ( rule__XAnnotationElementValue__Group_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
         }
-        // InternalSignalDSL.g:2747:3: ( rule__XAnnotationElementValue__Group_0__0 )
-        // InternalSignalDSL.g:2747:4: rule__XAnnotationElementValue__Group_0__0
+        // InternalSignalDSL.g:2770:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalSignalDSL.g:2770:4: rule__XAnnotationElementValue__Group_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotationElementValue__Group_0__0();
@@ -69842,21 +70751,21 @@
 
         }
     }
-    // $ANTLR end synpred15_InternalSignalDSL
+    // $ANTLR end synpred18_InternalSignalDSL
 
-    // $ANTLR start synpred40_InternalSignalDSL
-    public final void synpred40_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3030:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
-        // InternalSignalDSL.g:3030:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+    // $ANTLR start synpred43_InternalSignalDSL
+    public final void synpred43_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3053:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
+        // InternalSignalDSL.g:3053:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
         {
-        // InternalSignalDSL.g:3030:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
-        // InternalSignalDSL.g:3031:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalSignalDSL.g:3053:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+        // InternalSignalDSL.g:3054:3: ( rule__OpOther__Group_6_1_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
         }
-        // InternalSignalDSL.g:3032:3: ( rule__OpOther__Group_6_1_0__0 )
-        // InternalSignalDSL.g:3032:4: rule__OpOther__Group_6_1_0__0
+        // InternalSignalDSL.g:3055:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalSignalDSL.g:3055:4: rule__OpOther__Group_6_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__OpOther__Group_6_1_0__0();
@@ -69872,41 +70781,41 @@
 
         }
     }
-    // $ANTLR end synpred40_InternalSignalDSL
+    // $ANTLR end synpred43_InternalSignalDSL
 
-    // $ANTLR start synpred41_InternalSignalDSL
-    public final void synpred41_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3036:2: ( ( '<' ) )
-        // InternalSignalDSL.g:3036:2: ( '<' )
+    // $ANTLR start synpred44_InternalSignalDSL
+    public final void synpred44_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3059:2: ( ( '<' ) )
+        // InternalSignalDSL.g:3059:2: ( '<' )
         {
-        // InternalSignalDSL.g:3036:2: ( '<' )
-        // InternalSignalDSL.g:3037:3: '<'
+        // InternalSignalDSL.g:3059:2: ( '<' )
+        // InternalSignalDSL.g:3060:3: '<'
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
         }
-        match(input,27,FOLLOW_2); if (state.failed) return ;
+        match(input,28,FOLLOW_2); if (state.failed) return ;
 
         }
 
 
         }
     }
-    // $ANTLR end synpred41_InternalSignalDSL
+    // $ANTLR end synpred44_InternalSignalDSL
 
-    // $ANTLR start synpred54_InternalSignalDSL
-    public final void synpred54_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3249:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
-        // InternalSignalDSL.g:3249:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+    // $ANTLR start synpred57_InternalSignalDSL
+    public final void synpred57_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3272:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
+        // InternalSignalDSL.g:3272:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
         {
-        // InternalSignalDSL.g:3249:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
-        // InternalSignalDSL.g:3250:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalSignalDSL.g:3272:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+        // InternalSignalDSL.g:3273:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
         }
-        // InternalSignalDSL.g:3251:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
-        // InternalSignalDSL.g:3251:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+        // InternalSignalDSL.g:3274:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalSignalDSL.g:3274:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
@@ -69922,21 +70831,21 @@
 
         }
     }
-    // $ANTLR end synpred54_InternalSignalDSL
+    // $ANTLR end synpred57_InternalSignalDSL
 
-    // $ANTLR start synpred62_InternalSignalDSL
-    public final void synpred62_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3312:2: ( ( ( ruleXForLoopExpression ) ) )
-        // InternalSignalDSL.g:3312:2: ( ( ruleXForLoopExpression ) )
+    // $ANTLR start synpred65_InternalSignalDSL
+    public final void synpred65_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3335:2: ( ( ( ruleXForLoopExpression ) ) )
+        // InternalSignalDSL.g:3335:2: ( ( ruleXForLoopExpression ) )
         {
-        // InternalSignalDSL.g:3312:2: ( ( ruleXForLoopExpression ) )
-        // InternalSignalDSL.g:3313:3: ( ruleXForLoopExpression )
+        // InternalSignalDSL.g:3335:2: ( ( ruleXForLoopExpression ) )
+        // InternalSignalDSL.g:3336:3: ( ruleXForLoopExpression )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
         }
-        // InternalSignalDSL.g:3314:3: ( ruleXForLoopExpression )
-        // InternalSignalDSL.g:3314:4: ruleXForLoopExpression
+        // InternalSignalDSL.g:3337:3: ( ruleXForLoopExpression )
+        // InternalSignalDSL.g:3337:4: ruleXForLoopExpression
         {
         pushFollow(FOLLOW_2);
         ruleXForLoopExpression();
@@ -69952,15 +70861,15 @@
 
         }
     }
-    // $ANTLR end synpred62_InternalSignalDSL
+    // $ANTLR end synpred65_InternalSignalDSL
 
-    // $ANTLR start synpred63_InternalSignalDSL
-    public final void synpred63_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3318:2: ( ( ruleXBasicForLoopExpression ) )
-        // InternalSignalDSL.g:3318:2: ( ruleXBasicForLoopExpression )
+    // $ANTLR start synpred66_InternalSignalDSL
+    public final void synpred66_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3341:2: ( ( ruleXBasicForLoopExpression ) )
+        // InternalSignalDSL.g:3341:2: ( ruleXBasicForLoopExpression )
         {
-        // InternalSignalDSL.g:3318:2: ( ruleXBasicForLoopExpression )
-        // InternalSignalDSL.g:3319:3: ruleXBasicForLoopExpression
+        // InternalSignalDSL.g:3341:2: ( ruleXBasicForLoopExpression )
+        // InternalSignalDSL.g:3342:3: ruleXBasicForLoopExpression
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
@@ -69976,21 +70885,21 @@
 
         }
     }
-    // $ANTLR end synpred63_InternalSignalDSL
+    // $ANTLR end synpred66_InternalSignalDSL
 
-    // $ANTLR start synpred76_InternalSignalDSL
-    public final void synpred76_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3441:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
-        // InternalSignalDSL.g:3441:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+    // $ANTLR start synpred79_InternalSignalDSL
+    public final void synpred79_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3464:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
+        // InternalSignalDSL.g:3464:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
         {
-        // InternalSignalDSL.g:3441:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
-        // InternalSignalDSL.g:3442:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalSignalDSL.g:3464:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+        // InternalSignalDSL.g:3465:3: ( rule__XSwitchExpression__Group_2_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
         }
-        // InternalSignalDSL.g:3443:3: ( rule__XSwitchExpression__Group_2_0__0 )
-        // InternalSignalDSL.g:3443:4: rule__XSwitchExpression__Group_2_0__0
+        // InternalSignalDSL.g:3466:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalSignalDSL.g:3466:4: rule__XSwitchExpression__Group_2_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XSwitchExpression__Group_2_0__0();
@@ -70006,21 +70915,21 @@
 
         }
     }
-    // $ANTLR end synpred76_InternalSignalDSL
+    // $ANTLR end synpred79_InternalSignalDSL
 
-    // $ANTLR start synpred80_InternalSignalDSL
-    public final void synpred80_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3525:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
-        // InternalSignalDSL.g:3525:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+    // $ANTLR start synpred83_InternalSignalDSL
+    public final void synpred83_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3548:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
+        // InternalSignalDSL.g:3548:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
         {
-        // InternalSignalDSL.g:3525:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
-        // InternalSignalDSL.g:3526:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalSignalDSL.g:3548:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+        // InternalSignalDSL.g:3549:3: ( rule__XVariableDeclaration__Group_2_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
         }
-        // InternalSignalDSL.g:3527:3: ( rule__XVariableDeclaration__Group_2_0__0 )
-        // InternalSignalDSL.g:3527:4: rule__XVariableDeclaration__Group_2_0__0
+        // InternalSignalDSL.g:3550:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalSignalDSL.g:3550:4: rule__XVariableDeclaration__Group_2_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XVariableDeclaration__Group_2_0__0();
@@ -70036,21 +70945,21 @@
 
         }
     }
-    // $ANTLR end synpred80_InternalSignalDSL
+    // $ANTLR end synpred83_InternalSignalDSL
 
-    // $ANTLR start synpred81_InternalSignalDSL
-    public final void synpred81_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3546:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
-        // InternalSignalDSL.g:3546:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+    // $ANTLR start synpred84_InternalSignalDSL
+    public final void synpred84_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3569:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
+        // InternalSignalDSL.g:3569:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
         {
-        // InternalSignalDSL.g:3546:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
-        // InternalSignalDSL.g:3547:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalSignalDSL.g:3569:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+        // InternalSignalDSL.g:3570:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
         }
-        // InternalSignalDSL.g:3548:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
-        // InternalSignalDSL.g:3548:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+        // InternalSignalDSL.g:3571:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalSignalDSL.g:3571:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
@@ -70066,21 +70975,21 @@
 
         }
     }
-    // $ANTLR end synpred81_InternalSignalDSL
+    // $ANTLR end synpred84_InternalSignalDSL
 
-    // $ANTLR start synpred87_InternalSignalDSL
-    public final void synpred87_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3627:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
-        // InternalSignalDSL.g:3627:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+    // $ANTLR start synpred90_InternalSignalDSL
+    public final void synpred90_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:3650:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
+        // InternalSignalDSL.g:3650:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
         {
-        // InternalSignalDSL.g:3627:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
-        // InternalSignalDSL.g:3628:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalSignalDSL.g:3650:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+        // InternalSignalDSL.g:3651:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
         }
-        // InternalSignalDSL.g:3629:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
-        // InternalSignalDSL.g:3629:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+        // InternalSignalDSL.g:3652:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalSignalDSL.g:3652:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__ArgumentsAssignment_4_1_0();
@@ -70096,12 +71005,12 @@
 
         }
     }
-    // $ANTLR end synpred87_InternalSignalDSL
+    // $ANTLR end synpred90_InternalSignalDSL
 
-    // $ANTLR start synpred122_InternalSignalDSL
-    public final void synpred122_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:7250:3: ( rule__XAssignment__Group_1_1__0 )
-        // InternalSignalDSL.g:7250:3: rule__XAssignment__Group_1_1__0
+    // $ANTLR start synpred126_InternalSignalDSL
+    public final void synpred126_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:7408:3: ( rule__XAssignment__Group_1_1__0 )
+        // InternalSignalDSL.g:7408:3: rule__XAssignment__Group_1_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XAssignment__Group_1_1__0();
@@ -70111,75 +71020,15 @@
 
         }
     }
-    // $ANTLR end synpred122_InternalSignalDSL
-
-    // $ANTLR start synpred124_InternalSignalDSL
-    public final void synpred124_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:7601:3: ( rule__XOrExpression__Group_1__0 )
-        // InternalSignalDSL.g:7601:3: rule__XOrExpression__Group_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XOrExpression__Group_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred124_InternalSignalDSL
-
-    // $ANTLR start synpred125_InternalSignalDSL
-    public final void synpred125_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:7790:3: ( rule__XAndExpression__Group_1__0 )
-        // InternalSignalDSL.g:7790:3: rule__XAndExpression__Group_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XAndExpression__Group_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred125_InternalSignalDSL
-
-    // $ANTLR start synpred126_InternalSignalDSL
-    public final void synpred126_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:7979:3: ( rule__XEqualityExpression__Group_1__0 )
-        // InternalSignalDSL.g:7979:3: rule__XEqualityExpression__Group_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XEqualityExpression__Group_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
     // $ANTLR end synpred126_InternalSignalDSL
 
-    // $ANTLR start synpred127_InternalSignalDSL
-    public final void synpred127_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:8168:3: ( rule__XRelationalExpression__Alternatives_1 )
-        // InternalSignalDSL.g:8168:3: rule__XRelationalExpression__Alternatives_1
-        {
-        pushFollow(FOLLOW_2);
-        rule__XRelationalExpression__Alternatives_1();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred127_InternalSignalDSL
-
     // $ANTLR start synpred128_InternalSignalDSL
     public final void synpred128_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:8546:3: ( rule__XOtherOperatorExpression__Group_1__0 )
-        // InternalSignalDSL.g:8546:3: rule__XOtherOperatorExpression__Group_1__0
+        // InternalSignalDSL.g:7759:3: ( rule__XOrExpression__Group_1__0 )
+        // InternalSignalDSL.g:7759:3: rule__XOrExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XOtherOperatorExpression__Group_1__0();
+        rule__XOrExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -70190,11 +71039,11 @@
 
     // $ANTLR start synpred129_InternalSignalDSL
     public final void synpred129_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:9059:3: ( rule__XAdditiveExpression__Group_1__0 )
-        // InternalSignalDSL.g:9059:3: rule__XAdditiveExpression__Group_1__0
+        // InternalSignalDSL.g:7948:3: ( rule__XAndExpression__Group_1__0 )
+        // InternalSignalDSL.g:7948:3: rule__XAndExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XAdditiveExpression__Group_1__0();
+        rule__XAndExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -70205,11 +71054,11 @@
 
     // $ANTLR start synpred130_InternalSignalDSL
     public final void synpred130_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:9248:3: ( rule__XMultiplicativeExpression__Group_1__0 )
-        // InternalSignalDSL.g:9248:3: rule__XMultiplicativeExpression__Group_1__0
+        // InternalSignalDSL.g:8137:3: ( rule__XEqualityExpression__Group_1__0 )
+        // InternalSignalDSL.g:8137:3: rule__XEqualityExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XMultiplicativeExpression__Group_1__0();
+        rule__XEqualityExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -70220,11 +71069,11 @@
 
     // $ANTLR start synpred131_InternalSignalDSL
     public final void synpred131_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:9518:3: ( rule__XCastedExpression__Group_1__0 )
-        // InternalSignalDSL.g:9518:3: rule__XCastedExpression__Group_1__0
+        // InternalSignalDSL.g:8326:3: ( rule__XRelationalExpression__Alternatives_1 )
+        // InternalSignalDSL.g:8326:3: rule__XRelationalExpression__Alternatives_1
         {
         pushFollow(FOLLOW_2);
-        rule__XCastedExpression__Group_1__0();
+        rule__XRelationalExpression__Alternatives_1();
 
         state._fsp--;
         if (state.failed) return ;
@@ -70235,11 +71084,11 @@
 
     // $ANTLR start synpred132_InternalSignalDSL
     public final void synpred132_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:9707:3: ( rule__XPostfixOperation__Group_1__0 )
-        // InternalSignalDSL.g:9707:3: rule__XPostfixOperation__Group_1__0
+        // InternalSignalDSL.g:8704:3: ( rule__XOtherOperatorExpression__Group_1__0 )
+        // InternalSignalDSL.g:8704:3: rule__XOtherOperatorExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XPostfixOperation__Group_1__0();
+        rule__XOtherOperatorExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -70250,11 +71099,11 @@
 
     // $ANTLR start synpred133_InternalSignalDSL
     public final void synpred133_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:9842:3: ( rule__XMemberFeatureCall__Alternatives_1 )
-        // InternalSignalDSL.g:9842:3: rule__XMemberFeatureCall__Alternatives_1
+        // InternalSignalDSL.g:9217:3: ( rule__XAdditiveExpression__Group_1__0 )
+        // InternalSignalDSL.g:9217:3: rule__XAdditiveExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XMemberFeatureCall__Alternatives_1();
+        rule__XAdditiveExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -70263,13 +71112,28 @@
     }
     // $ANTLR end synpred133_InternalSignalDSL
 
-    // $ANTLR start synpred135_InternalSignalDSL
-    public final void synpred135_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:10140:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
-        // InternalSignalDSL.g:10140:3: rule__XMemberFeatureCall__Group_1_1_3__0
+    // $ANTLR start synpred134_InternalSignalDSL
+    public final void synpred134_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:9406:3: ( rule__XMultiplicativeExpression__Group_1__0 )
+        // InternalSignalDSL.g:9406:3: rule__XMultiplicativeExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XMemberFeatureCall__Group_1_1_3__0();
+        rule__XMultiplicativeExpression__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred134_InternalSignalDSL
+
+    // $ANTLR start synpred135_InternalSignalDSL
+    public final void synpred135_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:9676:3: ( rule__XCastedExpression__Group_1__0 )
+        // InternalSignalDSL.g:9676:3: rule__XCastedExpression__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XCastedExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -70280,8 +71144,53 @@
 
     // $ANTLR start synpred136_InternalSignalDSL
     public final void synpred136_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:10166:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
-        // InternalSignalDSL.g:10166:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+        // InternalSignalDSL.g:9865:3: ( rule__XPostfixOperation__Group_1__0 )
+        // InternalSignalDSL.g:9865:3: rule__XPostfixOperation__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XPostfixOperation__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred136_InternalSignalDSL
+
+    // $ANTLR start synpred137_InternalSignalDSL
+    public final void synpred137_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:10000:3: ( rule__XMemberFeatureCall__Alternatives_1 )
+        // InternalSignalDSL.g:10000:3: rule__XMemberFeatureCall__Alternatives_1
+        {
+        pushFollow(FOLLOW_2);
+        rule__XMemberFeatureCall__Alternatives_1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred137_InternalSignalDSL
+
+    // $ANTLR start synpred139_InternalSignalDSL
+    public final void synpred139_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:10298:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
+        // InternalSignalDSL.g:10298:3: rule__XMemberFeatureCall__Group_1_1_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XMemberFeatureCall__Group_1_1_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred139_InternalSignalDSL
+
+    // $ANTLR start synpred140_InternalSignalDSL
+    public final void synpred140_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:10324:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
+        // InternalSignalDSL.g:10324:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
@@ -70291,12 +71200,12 @@
 
         }
     }
-    // $ANTLR end synpred136_InternalSignalDSL
+    // $ANTLR end synpred140_InternalSignalDSL
 
-    // $ANTLR start synpred144_InternalSignalDSL
-    public final void synpred144_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:11139:3: ( rule__XClosure__Group_1__0 )
-        // InternalSignalDSL.g:11139:3: rule__XClosure__Group_1__0
+    // $ANTLR start synpred148_InternalSignalDSL
+    public final void synpred148_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:11297:3: ( rule__XClosure__Group_1__0 )
+        // InternalSignalDSL.g:11297:3: rule__XClosure__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XClosure__Group_1__0();
@@ -70306,12 +71215,12 @@
 
         }
     }
-    // $ANTLR end synpred144_InternalSignalDSL
+    // $ANTLR end synpred148_InternalSignalDSL
 
-    // $ANTLR start synpred151_InternalSignalDSL
-    public final void synpred151_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:12110:3: ( rule__XIfExpression__Group_6__0 )
-        // InternalSignalDSL.g:12110:3: rule__XIfExpression__Group_6__0
+    // $ANTLR start synpred155_InternalSignalDSL
+    public final void synpred155_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:12268:3: ( rule__XIfExpression__Group_6__0 )
+        // InternalSignalDSL.g:12268:3: rule__XIfExpression__Group_6__0
         {
         pushFollow(FOLLOW_2);
         rule__XIfExpression__Group_6__0();
@@ -70321,12 +71230,12 @@
 
         }
     }
-    // $ANTLR end synpred151_InternalSignalDSL
+    // $ANTLR end synpred155_InternalSignalDSL
 
-    // $ANTLR start synpred154_InternalSignalDSL
-    public final void synpred154_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:12570:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
-        // InternalSignalDSL.g:12570:3: rule__XSwitchExpression__Group_2_1_0__0
+    // $ANTLR start synpred158_InternalSignalDSL
+    public final void synpred158_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:12728:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
+        // InternalSignalDSL.g:12728:3: rule__XSwitchExpression__Group_2_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XSwitchExpression__Group_2_1_0__0();
@@ -70336,12 +71245,12 @@
 
         }
     }
-    // $ANTLR end synpred154_InternalSignalDSL
+    // $ANTLR end synpred158_InternalSignalDSL
 
-    // $ANTLR start synpred167_InternalSignalDSL
-    public final void synpred167_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:14703:3: ( rule__XFeatureCall__Group_3__0 )
-        // InternalSignalDSL.g:14703:3: rule__XFeatureCall__Group_3__0
+    // $ANTLR start synpred171_InternalSignalDSL
+    public final void synpred171_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:14861:3: ( rule__XFeatureCall__Group_3__0 )
+        // InternalSignalDSL.g:14861:3: rule__XFeatureCall__Group_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__Group_3__0();
@@ -70351,12 +71260,12 @@
 
         }
     }
-    // $ANTLR end synpred167_InternalSignalDSL
+    // $ANTLR end synpred171_InternalSignalDSL
 
-    // $ANTLR start synpred168_InternalSignalDSL
-    public final void synpred168_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:14729:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
-        // InternalSignalDSL.g:14729:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+    // $ANTLR start synpred172_InternalSignalDSL
+    public final void synpred172_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:14887:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
+        // InternalSignalDSL.g:14887:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
@@ -70366,12 +71275,12 @@
 
         }
     }
-    // $ANTLR end synpred168_InternalSignalDSL
+    // $ANTLR end synpred172_InternalSignalDSL
 
-    // $ANTLR start synpred172_InternalSignalDSL
-    public final void synpred172_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:15189:3: ( rule__XConstructorCall__Group_3__0 )
-        // InternalSignalDSL.g:15189:3: rule__XConstructorCall__Group_3__0
+    // $ANTLR start synpred176_InternalSignalDSL
+    public final void synpred176_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:15347:3: ( rule__XConstructorCall__Group_3__0 )
+        // InternalSignalDSL.g:15347:3: rule__XConstructorCall__Group_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__Group_3__0();
@@ -70381,12 +71290,12 @@
 
         }
     }
-    // $ANTLR end synpred172_InternalSignalDSL
+    // $ANTLR end synpred176_InternalSignalDSL
 
-    // $ANTLR start synpred173_InternalSignalDSL
-    public final void synpred173_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:15216:3: ( rule__XConstructorCall__Group_4__0 )
-        // InternalSignalDSL.g:15216:3: rule__XConstructorCall__Group_4__0
+    // $ANTLR start synpred177_InternalSignalDSL
+    public final void synpred177_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:15374:3: ( rule__XConstructorCall__Group_4__0 )
+        // InternalSignalDSL.g:15374:3: rule__XConstructorCall__Group_4__0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__Group_4__0();
@@ -70396,12 +71305,12 @@
 
         }
     }
-    // $ANTLR end synpred173_InternalSignalDSL
+    // $ANTLR end synpred177_InternalSignalDSL
 
-    // $ANTLR start synpred174_InternalSignalDSL
-    public final void synpred174_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:15242:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
-        // InternalSignalDSL.g:15242:3: rule__XConstructorCall__ArgumentsAssignment_5
+    // $ANTLR start synpred178_InternalSignalDSL
+    public final void synpred178_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:15400:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
+        // InternalSignalDSL.g:15400:3: rule__XConstructorCall__ArgumentsAssignment_5
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__ArgumentsAssignment_5();
@@ -70411,12 +71320,12 @@
 
         }
     }
-    // $ANTLR end synpred174_InternalSignalDSL
+    // $ANTLR end synpred178_InternalSignalDSL
 
-    // $ANTLR start synpred179_InternalSignalDSL
-    public final void synpred179_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:16133:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
-        // InternalSignalDSL.g:16133:3: rule__XReturnExpression__ExpressionAssignment_2
+    // $ANTLR start synpred183_InternalSignalDSL
+    public final void synpred183_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:16291:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
+        // InternalSignalDSL.g:16291:3: rule__XReturnExpression__ExpressionAssignment_2
         {
         pushFollow(FOLLOW_2);
         rule__XReturnExpression__ExpressionAssignment_2();
@@ -70426,12 +71335,12 @@
 
         }
     }
-    // $ANTLR end synpred179_InternalSignalDSL
+    // $ANTLR end synpred183_InternalSignalDSL
 
-    // $ANTLR start synpred180_InternalSignalDSL
-    public final void synpred180_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:16275:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
-        // InternalSignalDSL.g:16275:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+    // $ANTLR start synpred184_InternalSignalDSL
+    public final void synpred184_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:16433:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+        // InternalSignalDSL.g:16433:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
         {
         pushFollow(FOLLOW_2);
         rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
@@ -70441,12 +71350,12 @@
 
         }
     }
-    // $ANTLR end synpred180_InternalSignalDSL
+    // $ANTLR end synpred184_InternalSignalDSL
 
-    // $ANTLR start synpred181_InternalSignalDSL
-    public final void synpred181_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:16302:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
-        // InternalSignalDSL.g:16302:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+    // $ANTLR start synpred185_InternalSignalDSL
+    public final void synpred185_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:16460:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
+        // InternalSignalDSL.g:16460:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XTryCatchFinallyExpression__Group_3_0_1__0();
@@ -70456,12 +71365,12 @@
 
         }
     }
-    // $ANTLR end synpred181_InternalSignalDSL
+    // $ANTLR end synpred185_InternalSignalDSL
 
-    // $ANTLR start synpred182_InternalSignalDSL
-    public final void synpred182_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:16815:3: ( rule__QualifiedName__Group_1__0 )
-        // InternalSignalDSL.g:16815:3: rule__QualifiedName__Group_1__0
+    // $ANTLR start synpred186_InternalSignalDSL
+    public final void synpred186_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:16973:3: ( rule__QualifiedName__Group_1__0 )
+        // InternalSignalDSL.g:16973:3: rule__QualifiedName__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__QualifiedName__Group_1__0();
@@ -70471,12 +71380,12 @@
 
         }
     }
-    // $ANTLR end synpred182_InternalSignalDSL
+    // $ANTLR end synpred186_InternalSignalDSL
 
-    // $ANTLR start synpred184_InternalSignalDSL
-    public final void synpred184_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:17031:3: ( rule__JvmTypeReference__Group_0_1__0 )
-        // InternalSignalDSL.g:17031:3: rule__JvmTypeReference__Group_0_1__0
+    // $ANTLR start synpred188_InternalSignalDSL
+    public final void synpred188_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:17189:3: ( rule__JvmTypeReference__Group_0_1__0 )
+        // InternalSignalDSL.g:17189:3: rule__JvmTypeReference__Group_0_1__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmTypeReference__Group_0_1__0();
@@ -70486,12 +71395,12 @@
 
         }
     }
-    // $ANTLR end synpred184_InternalSignalDSL
+    // $ANTLR end synpred188_InternalSignalDSL
 
-    // $ANTLR start synpred188_InternalSignalDSL
-    public final void synpred188_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:17490:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
-        // InternalSignalDSL.g:17490:3: rule__JvmParameterizedTypeReference__Group_1__0
+    // $ANTLR start synpred192_InternalSignalDSL
+    public final void synpred192_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:17648:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
+        // InternalSignalDSL.g:17648:3: rule__JvmParameterizedTypeReference__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1__0();
@@ -70501,12 +71410,12 @@
 
         }
     }
-    // $ANTLR end synpred188_InternalSignalDSL
+    // $ANTLR end synpred192_InternalSignalDSL
 
-    // $ANTLR start synpred190_InternalSignalDSL
-    public final void synpred190_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:17625:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
-        // InternalSignalDSL.g:17625:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+    // $ANTLR start synpred194_InternalSignalDSL
+    public final void synpred194_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:17783:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
+        // InternalSignalDSL.g:17783:3: rule__JvmParameterizedTypeReference__Group_1_4__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1_4__0();
@@ -70516,12 +71425,12 @@
 
         }
     }
-    // $ANTLR end synpred190_InternalSignalDSL
+    // $ANTLR end synpred194_InternalSignalDSL
 
-    // $ANTLR start synpred191_InternalSignalDSL
-    public final void synpred191_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:17760:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
-        // InternalSignalDSL.g:17760:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+    // $ANTLR start synpred195_InternalSignalDSL
+    public final void synpred195_InternalSignalDSL_fragment() throws RecognitionException {   
+        // InternalSignalDSL.g:17918:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
+        // InternalSignalDSL.g:17918:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1_4_2__0();
@@ -70531,15 +71440,15 @@
 
         }
     }
-    // $ANTLR end synpred191_InternalSignalDSL
+    // $ANTLR end synpred195_InternalSignalDSL
 
     // Delegated rules
 
-    public final boolean synpred62_InternalSignalDSL() {
+    public final boolean synpred140_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred62_InternalSignalDSL_fragment(); // can never throw exception
+            synpred140_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70549,11 +71458,25 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred179_InternalSignalDSL() {
+    public final boolean synpred176_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred179_InternalSignalDSL_fragment(); // can never throw exception
+            synpred176_InternalSignalDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred17_InternalSignalDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred17_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70577,25 +71500,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred191_InternalSignalDSL() {
+    public final boolean synpred90_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred191_InternalSignalDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred125_InternalSignalDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred125_InternalSignalDSL_fragment(); // can never throw exception
+            synpred90_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70633,11 +71542,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred14_InternalSignalDSL() {
+    public final boolean synpred194_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred14_InternalSignalDSL_fragment(); // can never throw exception
+            synpred194_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70647,11 +71556,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred122_InternalSignalDSL() {
+    public final boolean synpred83_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred122_InternalSignalDSL_fragment(); // can never throw exception
+            synpred83_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70675,11 +71584,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred174_InternalSignalDSL() {
+    public final boolean synpred44_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred174_InternalSignalDSL_fragment(); // can never throw exception
+            synpred44_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70689,11 +71598,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred54_InternalSignalDSL() {
+    public final boolean synpred155_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred54_InternalSignalDSL_fragment(); // can never throw exception
+            synpred155_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70717,11 +71626,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred80_InternalSignalDSL() {
+    public final boolean synpred178_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred80_InternalSignalDSL_fragment(); // can never throw exception
+            synpred178_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70731,11 +71640,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred151_InternalSignalDSL() {
+    public final boolean synpred57_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred151_InternalSignalDSL_fragment(); // can never throw exception
+            synpred57_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70745,11 +71654,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred181_InternalSignalDSL() {
+    public final boolean synpred148_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred181_InternalSignalDSL_fragment(); // can never throw exception
+            synpred148_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70759,11 +71668,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred63_InternalSignalDSL() {
+    public final boolean synpred158_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred63_InternalSignalDSL_fragment(); // can never throw exception
+            synpred158_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70773,11 +71682,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred87_InternalSignalDSL() {
+    public final boolean synpred171_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred87_InternalSignalDSL_fragment(); // can never throw exception
+            synpred171_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70801,25 +71710,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred168_InternalSignalDSL() {
+    public final boolean synpred16_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred168_InternalSignalDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred40_InternalSignalDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred40_InternalSignalDSL_fragment(); // can never throw exception
+            synpred16_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70843,11 +71738,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred124_InternalSignalDSL() {
+    public final boolean synpred137_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred124_InternalSignalDSL_fragment(); // can never throw exception
+            synpred137_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70857,11 +71752,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred182_InternalSignalDSL() {
+    public final boolean synpred192_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred182_InternalSignalDSL_fragment(); // can never throw exception
+            synpred192_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70871,11 +71766,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred81_InternalSignalDSL() {
+    public final boolean synpred185_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred81_InternalSignalDSL_fragment(); // can never throw exception
+            synpred185_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70885,11 +71780,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred13_InternalSignalDSL() {
+    public final boolean synpred43_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred13_InternalSignalDSL_fragment(); // can never throw exception
+            synpred43_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70899,11 +71794,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred127_InternalSignalDSL() {
+    public final boolean synpred134_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred127_InternalSignalDSL_fragment(); // can never throw exception
+            synpred134_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70913,11 +71808,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred144_InternalSignalDSL() {
+    public final boolean synpred195_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred144_InternalSignalDSL_fragment(); // can never throw exception
+            synpred195_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70927,11 +71822,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred154_InternalSignalDSL() {
+    public final boolean synpred84_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred154_InternalSignalDSL_fragment(); // can never throw exception
+            synpred84_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70941,11 +71836,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred76_InternalSignalDSL() {
+    public final boolean synpred177_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred76_InternalSignalDSL_fragment(); // can never throw exception
+            synpred177_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70955,11 +71850,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred167_InternalSignalDSL() {
+    public final boolean synpred66_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred167_InternalSignalDSL_fragment(); // can never throw exception
+            synpred66_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -70983,25 +71878,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred41_InternalSignalDSL() {
+    public final boolean synpred79_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred41_InternalSignalDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred15_InternalSignalDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred15_InternalSignalDSL_fragment(); // can never throw exception
+            synpred79_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -71025,6 +71906,34 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred186_InternalSignalDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred186_InternalSignalDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred18_InternalSignalDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred18_InternalSignalDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred126_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -71053,11 +71962,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred180_InternalSignalDSL() {
+    public final boolean synpred139_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred180_InternalSignalDSL_fragment(); // can never throw exception
+            synpred139_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -71067,11 +71976,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred190_InternalSignalDSL() {
+    public final boolean synpred65_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred190_InternalSignalDSL_fragment(); // can never throw exception
+            synpred65_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -71095,11 +72004,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred173_InternalSignalDSL() {
+    public final boolean synpred183_InternalSignalDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred173_InternalSignalDSL_fragment(); // can never throw exception
+            synpred183_InternalSignalDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -71111,45 +72020,45 @@
     }
 
 
-    protected DFA6 dfa6 = new DFA6(this);
     protected DFA8 dfa8 = new DFA8(this);
-    protected DFA9 dfa9 = new DFA9(this);
     protected DFA10 dfa10 = new DFA10(this);
-    protected DFA17 dfa17 = new DFA17(this);
-    protected DFA25 dfa25 = new DFA25(this);
-    protected DFA28 dfa28 = new DFA28(this);
-    protected DFA29 dfa29 = new DFA29(this);
-    protected DFA32 dfa32 = new DFA32(this);
-    protected DFA37 dfa37 = new DFA37(this);
-    protected DFA40 dfa40 = new DFA40(this);
-    protected DFA70 dfa70 = new DFA70(this);
-    protected DFA76 dfa76 = new DFA76(this);
-    protected DFA83 dfa83 = new DFA83(this);
-    protected DFA84 dfa84 = new DFA84(this);
-    protected DFA92 dfa92 = new DFA92(this);
-    protected DFA102 dfa102 = new DFA102(this);
-    protected DFA115 dfa115 = new DFA115(this);
-    protected DFA116 dfa116 = new DFA116(this);
-    protected DFA120 dfa120 = new DFA120(this);
-    protected DFA121 dfa121 = new DFA121(this);
-    protected DFA122 dfa122 = new DFA122(this);
-    protected DFA127 dfa127 = new DFA127(this);
-    protected DFA136 dfa136 = new DFA136(this);
+    protected DFA11 dfa11 = new DFA11(this);
+    protected DFA12 dfa12 = new DFA12(this);
+    protected DFA19 dfa19 = new DFA19(this);
+    protected DFA27 dfa27 = new DFA27(this);
+    protected DFA30 dfa30 = new DFA30(this);
+    protected DFA31 dfa31 = new DFA31(this);
+    protected DFA34 dfa34 = new DFA34(this);
+    protected DFA39 dfa39 = new DFA39(this);
+    protected DFA42 dfa42 = new DFA42(this);
+    protected DFA73 dfa73 = new DFA73(this);
+    protected DFA79 dfa79 = new DFA79(this);
+    protected DFA86 dfa86 = new DFA86(this);
+    protected DFA87 dfa87 = new DFA87(this);
+    protected DFA95 dfa95 = new DFA95(this);
+    protected DFA105 dfa105 = new DFA105(this);
+    protected DFA118 dfa118 = new DFA118(this);
+    protected DFA119 dfa119 = new DFA119(this);
+    protected DFA123 dfa123 = new DFA123(this);
+    protected DFA124 dfa124 = new DFA124(this);
+    protected DFA125 dfa125 = new DFA125(this);
+    protected DFA130 dfa130 = new DFA130(this);
     protected DFA139 dfa139 = new DFA139(this);
+    protected DFA142 dfa142 = new DFA142(this);
     static final String dfa_1s = "\10\uffff";
     static final String dfa_2s = "\2\uffff\1\5\3\uffff\1\5\1\uffff";
-    static final String dfa_3s = "\1\4\1\uffff\1\53\1\uffff\1\4\1\uffff\1\53\1\uffff";
-    static final String dfa_4s = "\1\152\1\uffff\1\114\1\uffff\1\44\1\uffff\1\114\1\uffff";
+    static final String dfa_3s = "\1\4\1\uffff\1\54\1\uffff\1\4\1\uffff\1\54\1\uffff";
+    static final String dfa_4s = "\1\156\1\uffff\1\116\1\uffff\1\45\1\uffff\1\116\1\uffff";
     static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\uffff\1\3";
     static final String dfa_6s = "\10\uffff}>";
     static final String[] dfa_7s = {
-            "\1\2\51\uffff\1\1\73\uffff\1\3",
+            "\1\2\52\uffff\1\1\76\uffff\1\3",
             "",
-            "\1\4\3\uffff\1\5\15\uffff\1\5\16\uffff\1\5",
+            "\1\4\3\uffff\1\5\15\uffff\1\5\17\uffff\1\5",
             "",
-            "\1\6\37\uffff\1\7",
+            "\1\6\40\uffff\1\7",
             "",
-            "\1\4\3\uffff\1\5\15\uffff\1\5\16\uffff\1\5",
+            "\1\4\3\uffff\1\5\15\uffff\1\5\17\uffff\1\5",
             ""
     };
 
@@ -71161,11 +72070,11 @@
     static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
     static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
 
-    class DFA6 extends DFA {
+    class DFA8 extends DFA {
 
-        public DFA6(BaseRecognizer recognizer) {
+        public DFA8(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 6;
+            this.decisionNumber = 8;
             this.eot = dfa_1;
             this.eof = dfa_2;
             this.min = dfa_3;
@@ -71175,16 +72084,16 @@
             this.transition = dfa_7;
         }
         public String getDescription() {
-            return "2644:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );";
+            return "2667:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );";
         }
     }
     static final String dfa_8s = "\43\uffff";
     static final String dfa_9s = "\1\4\1\0\41\uffff";
-    static final String dfa_10s = "\1\157\1\0\41\uffff";
+    static final String dfa_10s = "\1\163\1\0\41\uffff";
     static final String dfa_11s = "\2\uffff\1\2\37\uffff\1\1";
     static final String dfa_12s = "\1\uffff\1\0\41\uffff}>";
     static final String[] dfa_13s = {
-            "\1\1\4\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\13\uffff\1\2\16\uffff\2\2\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\2\uffff\11\2\1\uffff\1\2\11\uffff\1\2",
+            "\1\1\4\2\23\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\13\uffff\1\2\17\uffff\2\2\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\2\uffff\11\2\1\uffff\1\2\13\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -71228,11 +72137,11 @@
     static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s);
     static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s);
 
-    class DFA8 extends DFA {
+    class DFA10 extends DFA {
 
-        public DFA8(BaseRecognizer recognizer) {
+        public DFA10(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 8;
+            this.decisionNumber = 10;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_9;
@@ -71242,37 +72151,37 @@
             this.transition = dfa_13;
         }
         public String getDescription() {
-            return "2698:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );";
+            return "2721:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA8_1 = input.LA(1);
+                        int LA10_1 = input.LA(1);
 
                          
-                        int index8_1 = input.index();
+                        int index10_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred13_InternalSignalDSL()) ) {s = 34;}
+                        if ( (synpred16_InternalSignalDSL()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index8_1);
+                        input.seek(index10_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 8, _s, input);
+                new NoViableAltException(getDescription(), 10, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_14s = {
-            "\5\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\13\uffff\1\2\16\uffff\2\2\3\uffff\1\1\1\2\2\uffff\1\2\1\uffff\1\2\2\uffff\11\2\1\uffff\1\2\11\uffff\1\2",
+            "\5\2\23\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\13\uffff\1\2\17\uffff\2\2\3\uffff\1\1\1\2\2\uffff\1\2\1\uffff\1\2\2\uffff\11\2\1\uffff\1\2\13\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -71310,11 +72219,11 @@
     };
     static final short[][] dfa_14 = unpackEncodedStringArray(dfa_14s);
 
-    class DFA9 extends DFA {
+    class DFA11 extends DFA {
 
-        public DFA9(BaseRecognizer recognizer) {
+        public DFA11(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 9;
+            this.decisionNumber = 11;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_9;
@@ -71324,41 +72233,41 @@
             this.transition = dfa_14;
         }
         public String getDescription() {
-            return "2719:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );";
+            return "2742:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA9_1 = input.LA(1);
+                        int LA11_1 = input.LA(1);
 
                          
-                        int index9_1 = input.index();
+                        int index11_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred14_InternalSignalDSL()) ) {s = 34;}
+                        if ( (synpred17_InternalSignalDSL()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index9_1);
+                        input.seek(index11_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 9, _s, input);
+                new NoViableAltException(getDescription(), 11, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA10 extends DFA {
+    class DFA12 extends DFA {
 
-        public DFA10(BaseRecognizer recognizer) {
+        public DFA12(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 10;
+            this.decisionNumber = 12;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_9;
@@ -71368,38 +72277,38 @@
             this.transition = dfa_14;
         }
         public String getDescription() {
-            return "2740:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
+            return "2763:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA10_1 = input.LA(1);
+                        int LA12_1 = input.LA(1);
 
                          
-                        int index10_1 = input.index();
+                        int index12_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred15_InternalSignalDSL()) ) {s = 34;}
+                        if ( (synpred18_InternalSignalDSL()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index10_1);
+                        input.seek(index12_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 10, _s, input);
+                new NoViableAltException(getDescription(), 12, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_15s = "\13\uffff";
-    static final String dfa_16s = "\1\32\2\uffff\1\32\7\uffff";
-    static final String dfa_17s = "\1\41\2\uffff\1\36\7\uffff";
+    static final String dfa_16s = "\1\33\2\uffff\1\33\7\uffff";
+    static final String dfa_17s = "\1\42\2\uffff\1\37\7\uffff";
     static final String dfa_18s = "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\3\1\6";
     static final String dfa_19s = "\13\uffff}>";
     static final String[] dfa_20s = {
@@ -71423,11 +72332,11 @@
     static final short[] dfa_19 = DFA.unpackEncodedString(dfa_19s);
     static final short[][] dfa_20 = unpackEncodedStringArray(dfa_20s);
 
-    class DFA17 extends DFA {
+    class DFA19 extends DFA {
 
-        public DFA17(BaseRecognizer recognizer) {
+        public DFA19(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 17;
+            this.decisionNumber = 19;
             this.eot = dfa_15;
             this.eof = dfa_15;
             this.min = dfa_16;
@@ -71437,25 +72346,25 @@
             this.transition = dfa_20;
         }
         public String getDescription() {
-            return "2941:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
+            return "2964:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
         }
     }
     static final String dfa_21s = "\12\uffff";
     static final String dfa_22s = "\4\uffff\5\3\1\uffff";
-    static final String dfa_23s = "\1\53\2\4\1\uffff\5\4\1\uffff";
-    static final String dfa_24s = "\1\154\2\61\1\uffff\5\157\1\uffff";
+    static final String dfa_23s = "\1\54\2\4\1\uffff\5\4\1\uffff";
+    static final String dfa_24s = "\1\160\2\62\1\uffff\5\163\1\uffff";
     static final String dfa_25s = "\3\uffff\1\2\5\uffff\1\1";
     static final String dfa_26s = "\12\uffff}>";
     static final String[] dfa_27s = {
-            "\1\1\77\uffff\1\2\1\3",
-            "\1\4\26\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
-            "\1\4\26\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
+            "\1\1\102\uffff\1\2\1\3",
+            "\1\4\27\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
+            "\1\4\27\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
             "",
-            "\5\3\4\uffff\1\11\45\3\13\uffff\2\3\10\uffff\1\3\3\uffff\1\3\1\uffff\31\3\4\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\13\uffff\2\3\10\uffff\1\3\3\uffff\1\3\1\uffff\31\3\4\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\13\uffff\2\3\10\uffff\1\3\3\uffff\1\3\1\uffff\31\3\4\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\13\uffff\2\3\10\uffff\1\3\3\uffff\1\3\1\uffff\31\3\4\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\13\uffff\2\3\10\uffff\1\3\3\uffff\1\3\1\uffff\31\3\4\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\2\3\1\uffff\43\3\13\uffff\2\3\7\uffff\1\3\5\uffff\1\3\1\uffff\31\3\6\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\2\3\1\uffff\43\3\13\uffff\2\3\7\uffff\1\3\5\uffff\1\3\1\uffff\31\3\6\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\2\3\1\uffff\43\3\13\uffff\2\3\7\uffff\1\3\5\uffff\1\3\1\uffff\31\3\6\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\2\3\1\uffff\43\3\13\uffff\2\3\7\uffff\1\3\5\uffff\1\3\1\uffff\31\3\6\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\2\3\1\uffff\43\3\13\uffff\2\3\7\uffff\1\3\5\uffff\1\3\1\uffff\31\3\6\uffff\2\3\1\uffff\2\3",
             ""
     };
 
@@ -71467,11 +72376,11 @@
     static final short[] dfa_26 = DFA.unpackEncodedString(dfa_26s);
     static final short[][] dfa_27 = unpackEncodedStringArray(dfa_27s);
 
-    class DFA25 extends DFA {
+    class DFA27 extends DFA {
 
-        public DFA25(BaseRecognizer recognizer) {
+        public DFA27(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 25;
+            this.decisionNumber = 27;
             this.eot = dfa_21;
             this.eof = dfa_22;
             this.min = dfa_23;
@@ -71481,15 +72390,15 @@
             this.transition = dfa_27;
         }
         public String getDescription() {
-            return "3175:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
+            return "3198:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
         }
     }
     static final String dfa_28s = "\1\4\2\0\40\uffff";
-    static final String dfa_29s = "\1\157\2\0\40\uffff";
+    static final String dfa_29s = "\1\163\2\0\40\uffff";
     static final String dfa_30s = "\3\uffff\1\1\1\uffff\1\2\35\uffff";
     static final String dfa_31s = "\1\uffff\1\0\1\1\40\uffff}>";
     static final String[] dfa_32s = {
-            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\4\uffff\6\5\13\uffff\1\5\17\uffff\1\2\3\uffff\2\5\2\uffff\1\5\1\uffff\1\5\2\uffff\11\5\1\uffff\1\5\7\uffff\1\3\1\uffff\1\5",
+            "\1\1\4\5\23\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\4\uffff\6\5\13\uffff\1\5\20\uffff\1\2\3\uffff\2\5\2\uffff\1\5\1\uffff\1\5\2\uffff\11\5\1\uffff\1\5\11\uffff\1\3\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -71531,11 +72440,11 @@
     static final short[] dfa_31 = DFA.unpackEncodedString(dfa_31s);
     static final short[][] dfa_32 = unpackEncodedStringArray(dfa_32s);
 
-    class DFA28 extends DFA {
+    class DFA30 extends DFA {
 
-        public DFA28(BaseRecognizer recognizer) {
+        public DFA30(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 28;
+            this.decisionNumber = 30;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_28;
@@ -71545,57 +72454,57 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3244:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );";
+            return "3267:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA28_1 = input.LA(1);
+                        int LA30_1 = input.LA(1);
 
                          
-                        int index28_1 = input.index();
+                        int index30_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred54_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred57_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index28_1);
+                        input.seek(index30_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA28_2 = input.LA(1);
+                        int LA30_2 = input.LA(1);
 
                          
-                        int index28_2 = input.index();
+                        int index30_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred54_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred57_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index28_2);
+                        input.seek(index30_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 28, _s, input);
+                new NoViableAltException(getDescription(), 30, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_33s = "\40\uffff";
     static final String dfa_34s = "\1\4\26\uffff\1\0\10\uffff";
-    static final String dfa_35s = "\1\157\26\uffff\1\0\10\uffff";
+    static final String dfa_35s = "\1\163\26\uffff\1\0\10\uffff";
     static final String dfa_36s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\6\uffff\1\6\11\uffff\1\7\1\uffff\1\12\1\13\1\14\1\15\1\16\1\17\1\10\1\11";
     static final String dfa_37s = "\27\uffff\1\0\10\uffff}>";
     static final String[] dfa_38s = {
-            "\1\5\4\14\22\uffff\1\5\21\uffff\5\5\1\14\13\uffff\1\2\17\uffff\1\35\3\uffff\2\14\2\uffff\1\26\1\uffff\1\3\2\uffff\1\27\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\11\uffff\1\14",
+            "\1\5\4\14\23\uffff\1\5\21\uffff\5\5\1\14\13\uffff\1\2\20\uffff\1\35\3\uffff\2\14\2\uffff\1\26\1\uffff\1\3\2\uffff\1\27\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\13\uffff\1\14",
             "",
             "",
             "",
@@ -71636,11 +72545,11 @@
     static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s);
     static final short[][] dfa_38 = unpackEncodedStringArray(dfa_38s);
 
-    class DFA29 extends DFA {
+    class DFA31 extends DFA {
 
-        public DFA29(BaseRecognizer recognizer) {
+        public DFA31(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 29;
+            this.decisionNumber = 31;
             this.eot = dfa_33;
             this.eof = dfa_33;
             this.min = dfa_34;
@@ -71650,37 +72559,37 @@
             this.transition = dfa_38;
         }
         public String getDescription() {
-            return "3265:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
+            return "3288:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA29_23 = input.LA(1);
+                        int LA31_23 = input.LA(1);
 
                          
-                        int index29_23 = input.index();
+                        int index31_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred62_InternalSignalDSL()) ) {s = 30;}
+                        if ( (synpred65_InternalSignalDSL()) ) {s = 30;}
 
-                        else if ( (synpred63_InternalSignalDSL()) ) {s = 31;}
+                        else if ( (synpred66_InternalSignalDSL()) ) {s = 31;}
 
                          
-                        input.seek(index29_23);
+                        input.seek(index31_23);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 29, _s, input);
+                new NoViableAltException(getDescription(), 31, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_39s = {
-            "\5\2\22\uffff\1\2\3\uffff\1\2\2\uffff\2\2\4\uffff\1\2\4\uffff\6\2\13\uffff\1\2\17\uffff\1\1\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\2\uffff\11\2\1\uffff\1\2\11\uffff\1\2",
+            "\5\2\23\uffff\1\2\3\uffff\1\2\2\uffff\2\2\4\uffff\1\2\4\uffff\6\2\13\uffff\1\2\20\uffff\1\1\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\2\uffff\11\2\1\uffff\1\2\13\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -71718,11 +72627,11 @@
     };
     static final short[][] dfa_39 = unpackEncodedStringArray(dfa_39s);
 
-    class DFA32 extends DFA {
+    class DFA34 extends DFA {
 
-        public DFA32(BaseRecognizer recognizer) {
+        public DFA34(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 32;
+            this.decisionNumber = 34;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_9;
@@ -71732,41 +72641,41 @@
             this.transition = dfa_39;
         }
         public String getDescription() {
-            return "3436:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
+            return "3459:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA32_1 = input.LA(1);
+                        int LA34_1 = input.LA(1);
 
                          
-                        int index32_1 = input.index();
+                        int index34_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred76_InternalSignalDSL()) ) {s = 34;}
+                        if ( (synpred79_InternalSignalDSL()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index32_1);
+                        input.seek(index34_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 32, _s, input);
+                new NoViableAltException(getDescription(), 34, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA37 extends DFA {
+    class DFA39 extends DFA {
 
-        public DFA37(BaseRecognizer recognizer) {
+        public DFA39(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 37;
+            this.decisionNumber = 39;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_28;
@@ -71776,56 +72685,56 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3541:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
+            return "3564:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA37_1 = input.LA(1);
+                        int LA39_1 = input.LA(1);
 
                          
-                        int index37_1 = input.index();
+                        int index39_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred81_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred84_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index37_1);
+                        input.seek(index39_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA37_2 = input.LA(1);
+                        int LA39_2 = input.LA(1);
 
                          
-                        int index37_2 = input.index();
+                        int index39_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred81_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred84_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index37_2);
+                        input.seek(index39_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 37, _s, input);
+                new NoViableAltException(getDescription(), 39, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA40 extends DFA {
+    class DFA42 extends DFA {
 
-        public DFA40(BaseRecognizer recognizer) {
+        public DFA42(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 40;
+            this.decisionNumber = 42;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_28;
@@ -71835,57 +72744,57 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3622:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
+            return "3645:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA40_1 = input.LA(1);
+                        int LA42_1 = input.LA(1);
 
                          
-                        int index40_1 = input.index();
+                        int index42_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred87_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred90_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index40_1);
+                        input.seek(index42_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA40_2 = input.LA(1);
+                        int LA42_2 = input.LA(1);
 
                          
-                        int index40_2 = input.index();
+                        int index42_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred87_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred90_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index40_2);
+                        input.seek(index42_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 40, _s, input);
+                new NoViableAltException(getDescription(), 42, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_40s = "\1\10\11\uffff";
     static final String dfa_41s = "\1\4\7\0\2\uffff";
-    static final String dfa_42s = "\1\157\7\0\2\uffff";
+    static final String dfa_42s = "\1\163\7\0\2\uffff";
     static final String dfa_43s = "\10\uffff\1\2\1\1";
-    static final String dfa_44s = "\1\uffff\1\1\1\0\1\6\1\3\1\2\1\4\1\5\2\uffff}>";
+    static final String dfa_44s = "\1\uffff\1\0\1\3\1\4\1\6\1\1\1\5\1\2\2\uffff}>";
     static final String[] dfa_45s = {
-            "\5\10\5\uffff\2\10\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\27\10\13\uffff\2\10\10\uffff\1\10\3\uffff\1\10\1\uffff\31\10\4\uffff\2\10\1\uffff\2\10",
+            "\5\10\5\uffff\2\10\1\uffff\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\27\10\13\uffff\2\10\7\uffff\1\10\5\uffff\1\10\1\uffff\31\10\6\uffff\2\10\1\uffff\2\10",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -71903,11 +72812,11 @@
     static final short[] dfa_44 = DFA.unpackEncodedString(dfa_44s);
     static final short[][] dfa_45 = unpackEncodedStringArray(dfa_45s);
 
-    class DFA70 extends DFA {
+    class DFA73 extends DFA {
 
-        public DFA70(BaseRecognizer recognizer) {
+        public DFA73(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 70;
+            this.decisionNumber = 73;
             this.eot = dfa_21;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -71917,132 +72826,132 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "7250:2: ( rule__XAssignment__Group_1_1__0 )?";
+            return "7408:2: ( rule__XAssignment__Group_1_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA70_2 = input.LA(1);
+                        int LA73_1 = input.LA(1);
 
                          
-                        int index70_2 = input.index();
+                        int index73_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred122_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred126_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index70_2);
+                        input.seek(index73_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA70_1 = input.LA(1);
+                        int LA73_5 = input.LA(1);
 
                          
-                        int index70_1 = input.index();
+                        int index73_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred122_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred126_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index70_1);
+                        input.seek(index73_5);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA70_5 = input.LA(1);
+                        int LA73_7 = input.LA(1);
 
                          
-                        int index70_5 = input.index();
+                        int index73_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred122_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred126_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index70_5);
+                        input.seek(index73_7);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA70_4 = input.LA(1);
+                        int LA73_2 = input.LA(1);
 
                          
-                        int index70_4 = input.index();
+                        int index73_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred122_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred126_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index70_4);
+                        input.seek(index73_2);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA70_6 = input.LA(1);
+                        int LA73_3 = input.LA(1);
 
                          
-                        int index70_6 = input.index();
+                        int index73_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred122_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred126_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index70_6);
+                        input.seek(index73_3);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA70_7 = input.LA(1);
+                        int LA73_6 = input.LA(1);
 
                          
-                        int index70_7 = input.index();
+                        int index73_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred122_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred126_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index70_7);
+                        input.seek(index73_6);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA70_3 = input.LA(1);
+                        int LA73_4 = input.LA(1);
 
                          
-                        int index70_3 = input.index();
+                        int index73_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred122_InternalSignalDSL()) ) {s = 9;}
+                        if ( (synpred126_InternalSignalDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index70_3);
+                        input.seek(index73_4);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 70, _s, input);
+                new NoViableAltException(getDescription(), 73, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_46s = "\1\1\12\uffff";
     static final String dfa_47s = "\1\4\1\uffff\10\0\1\uffff";
-    static final String dfa_48s = "\1\157\1\uffff\10\0\1\uffff";
+    static final String dfa_48s = "\1\163\1\uffff\10\0\1\uffff";
     static final String dfa_49s = "\1\uffff\1\2\10\uffff\1\1";
-    static final String dfa_50s = "\2\uffff\1\2\1\0\1\1\1\3\1\5\1\6\1\7\1\4\1\uffff}>";
+    static final String dfa_50s = "\2\uffff\1\2\1\5\1\0\1\6\1\4\1\1\1\3\1\7\1\uffff}>";
     static final String[] dfa_51s = {
-            "\5\1\5\uffff\14\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\21\1\13\uffff\2\1\10\uffff\1\1\3\uffff\1\1\1\uffff\31\1\4\uffff\2\1\1\uffff\2\1",
+            "\5\1\5\uffff\2\1\1\uffff\12\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\21\1\13\uffff\2\1\7\uffff\1\1\5\uffff\1\1\1\uffff\31\1\6\uffff\2\1\1\uffff\2\1",
             "",
             "\1\uffff",
             "\1\uffff",
@@ -72061,11 +72970,11 @@
     static final short[] dfa_50 = DFA.unpackEncodedString(dfa_50s);
     static final short[][] dfa_51 = unpackEncodedStringArray(dfa_51s);
 
-    class DFA76 extends DFA {
+    class DFA79 extends DFA {
 
-        public DFA76(BaseRecognizer recognizer) {
+        public DFA79(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 76;
+            this.decisionNumber = 79;
             this.eot = dfa_15;
             this.eof = dfa_46;
             this.min = dfa_47;
@@ -72075,136 +72984,136 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "()* loopback of 8546:2: ( rule__XOtherOperatorExpression__Group_1__0 )*";
+            return "()* loopback of 8704:2: ( rule__XOtherOperatorExpression__Group_1__0 )*";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA76_3 = input.LA(1);
+                        int LA79_4 = input.LA(1);
 
                          
-                        int index76_3 = input.index();
+                        int index79_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred128_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred132_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index76_3);
+                        input.seek(index79_4);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA76_4 = input.LA(1);
+                        int LA79_7 = input.LA(1);
 
                          
-                        int index76_4 = input.index();
+                        int index79_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred128_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred132_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index76_4);
+                        input.seek(index79_7);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA76_2 = input.LA(1);
+                        int LA79_2 = input.LA(1);
 
                          
-                        int index76_2 = input.index();
+                        int index79_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred128_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred132_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index76_2);
+                        input.seek(index79_2);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA76_5 = input.LA(1);
+                        int LA79_8 = input.LA(1);
 
                          
-                        int index76_5 = input.index();
+                        int index79_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred128_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred132_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index76_5);
+                        input.seek(index79_8);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA76_9 = input.LA(1);
+                        int LA79_6 = input.LA(1);
 
                          
-                        int index76_9 = input.index();
+                        int index79_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred128_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred132_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index76_9);
+                        input.seek(index79_6);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA76_6 = input.LA(1);
+                        int LA79_3 = input.LA(1);
 
                          
-                        int index76_6 = input.index();
+                        int index79_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred128_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred132_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index76_6);
+                        input.seek(index79_3);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA76_7 = input.LA(1);
+                        int LA79_5 = input.LA(1);
 
                          
-                        int index76_7 = input.index();
+                        int index79_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred128_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred132_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index76_7);
+                        input.seek(index79_5);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA76_8 = input.LA(1);
+                        int LA79_9 = input.LA(1);
 
                          
-                        int index76_8 = input.index();
+                        int index79_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred128_InternalSignalDSL()) ) {s = 10;}
+                        if ( (synpred132_InternalSignalDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index76_8);
+                        input.seek(index79_9);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 76, _s, input);
+                new NoViableAltException(getDescription(), 79, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -72212,11 +73121,11 @@
     static final String dfa_52s = "\116\uffff";
     static final String dfa_53s = "\1\2\115\uffff";
     static final String dfa_54s = "\1\4\1\0\114\uffff";
-    static final String dfa_55s = "\1\157\1\0\114\uffff";
+    static final String dfa_55s = "\1\163\1\0\114\uffff";
     static final String dfa_56s = "\2\uffff\1\2\112\uffff\1\1";
     static final String dfa_57s = "\1\uffff\1\0\114\uffff}>";
     static final String[] dfa_58s = {
-            "\5\2\5\uffff\45\2\13\uffff\2\2\10\uffff\1\2\3\uffff\1\2\1\uffff\1\1\30\2\4\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\2\2\1\uffff\43\2\13\uffff\2\2\7\uffff\1\2\5\uffff\1\2\1\uffff\1\1\30\2\6\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -72304,11 +73213,11 @@
     static final short[] dfa_57 = DFA.unpackEncodedString(dfa_57s);
     static final short[][] dfa_58 = unpackEncodedStringArray(dfa_58s);
 
-    class DFA83 extends DFA {
+    class DFA86 extends DFA {
 
-        public DFA83(BaseRecognizer recognizer) {
+        public DFA86(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 83;
+            this.decisionNumber = 86;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -72318,37 +73227,37 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "10140:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
+            return "10298:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA83_1 = input.LA(1);
+                        int LA86_1 = input.LA(1);
 
                          
-                        int index83_1 = input.index();
+                        int index86_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred135_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred139_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index83_1);
+                        input.seek(index86_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 83, _s, input);
+                new NoViableAltException(getDescription(), 86, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_59s = {
-            "\5\2\5\uffff\45\2\13\uffff\2\2\10\uffff\1\2\3\uffff\1\2\1\uffff\5\2\1\1\23\2\4\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\2\2\1\uffff\43\2\13\uffff\2\2\7\uffff\1\2\5\uffff\1\2\1\uffff\5\2\1\1\23\2\6\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -72429,11 +73338,11 @@
     };
     static final short[][] dfa_59 = unpackEncodedStringArray(dfa_59s);
 
-    class DFA84 extends DFA {
+    class DFA87 extends DFA {
 
-        public DFA84(BaseRecognizer recognizer) {
+        public DFA87(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 84;
+            this.decisionNumber = 87;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -72443,42 +73352,42 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "10166:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
+            return "10324:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA84_1 = input.LA(1);
+                        int LA87_1 = input.LA(1);
 
                          
-                        int index84_1 = input.index();
+                        int index87_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred136_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred140_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index84_1);
+                        input.seek(index87_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 84, _s, input);
+                new NoViableAltException(getDescription(), 87, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_60s = "\46\uffff";
     static final String dfa_61s = "\1\4\2\0\43\uffff";
-    static final String dfa_62s = "\1\157\2\0\43\uffff";
+    static final String dfa_62s = "\1\163\2\0\43\uffff";
     static final String dfa_63s = "\3\uffff\1\1\1\uffff\1\2\40\uffff";
     static final String dfa_64s = "\1\uffff\1\0\1\1\43\uffff}>";
     static final String[] dfa_65s = {
-            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\3\uffff\7\5\13\uffff\1\5\17\uffff\1\2\2\uffff\3\5\2\uffff\1\5\1\uffff\1\5\2\uffff\11\5\1\uffff\1\5\7\uffff\1\3\2\5",
+            "\1\1\4\5\23\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\3\uffff\7\5\13\uffff\1\5\20\uffff\1\2\2\uffff\3\5\2\uffff\1\5\1\uffff\1\5\2\uffff\11\5\1\uffff\1\5\11\uffff\1\3\2\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -72525,11 +73434,11 @@
     static final short[] dfa_64 = DFA.unpackEncodedString(dfa_64s);
     static final short[][] dfa_65 = unpackEncodedStringArray(dfa_65s);
 
-    class DFA92 extends DFA {
+    class DFA95 extends DFA {
 
-        public DFA92(BaseRecognizer recognizer) {
+        public DFA95(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 92;
+            this.decisionNumber = 95;
             this.eot = dfa_60;
             this.eof = dfa_60;
             this.min = dfa_61;
@@ -72539,57 +73448,57 @@
             this.transition = dfa_65;
         }
         public String getDescription() {
-            return "11139:2: ( rule__XClosure__Group_1__0 )?";
+            return "11297:2: ( rule__XClosure__Group_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA92_1 = input.LA(1);
+                        int LA95_1 = input.LA(1);
 
                          
-                        int index92_1 = input.index();
+                        int index95_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred144_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred148_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index92_1);
+                        input.seek(index95_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA92_2 = input.LA(1);
+                        int LA95_2 = input.LA(1);
 
                          
-                        int index92_2 = input.index();
+                        int index95_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred144_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred148_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index92_2);
+                        input.seek(index95_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 92, _s, input);
+                new NoViableAltException(getDescription(), 95, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_66s = "\42\uffff";
     static final String dfa_67s = "\1\4\2\0\37\uffff";
-    static final String dfa_68s = "\1\157\2\0\37\uffff";
+    static final String dfa_68s = "\1\163\2\0\37\uffff";
     static final String dfa_69s = "\3\uffff\1\1\1\2\35\uffff";
     static final String dfa_70s = "\1\uffff\1\0\1\1\37\uffff}>";
     static final String[] dfa_71s = {
-            "\1\1\4\4\22\uffff\1\4\3\uffff\1\3\2\uffff\2\4\4\uffff\1\4\4\uffff\6\4\13\uffff\1\4\17\uffff\1\2\3\uffff\2\4\2\uffff\1\4\1\uffff\1\4\2\uffff\11\4\1\uffff\1\4\11\uffff\1\4",
+            "\1\1\4\4\23\uffff\1\4\3\uffff\1\3\2\uffff\2\4\4\uffff\1\4\4\uffff\6\4\13\uffff\1\4\20\uffff\1\2\3\uffff\2\4\2\uffff\1\4\1\uffff\1\4\2\uffff\11\4\1\uffff\1\4\13\uffff\1\4",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -72632,11 +73541,11 @@
     static final short[] dfa_70 = DFA.unpackEncodedString(dfa_70s);
     static final short[][] dfa_71 = unpackEncodedStringArray(dfa_71s);
 
-    class DFA102 extends DFA {
+    class DFA105 extends DFA {
 
-        public DFA102(BaseRecognizer recognizer) {
+        public DFA105(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 102;
+            this.decisionNumber = 105;
             this.eot = dfa_66;
             this.eof = dfa_66;
             this.min = dfa_67;
@@ -72646,56 +73555,56 @@
             this.transition = dfa_71;
         }
         public String getDescription() {
-            return "12570:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
+            return "12728:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA102_1 = input.LA(1);
+                        int LA105_1 = input.LA(1);
 
                          
-                        int index102_1 = input.index();
+                        int index105_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred154_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred158_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index102_1);
+                        input.seek(index105_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA102_2 = input.LA(1);
+                        int LA105_2 = input.LA(1);
 
                          
-                        int index102_2 = input.index();
+                        int index105_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred154_InternalSignalDSL()) ) {s = 3;}
+                        if ( (synpred158_InternalSignalDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index102_2);
+                        input.seek(index105_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 102, _s, input);
+                new NoViableAltException(getDescription(), 105, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA115 extends DFA {
+    class DFA118 extends DFA {
 
-        public DFA115(BaseRecognizer recognizer) {
+        public DFA118(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 115;
+            this.decisionNumber = 118;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -72705,41 +73614,41 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "14703:2: ( rule__XFeatureCall__Group_3__0 )?";
+            return "14861:2: ( rule__XFeatureCall__Group_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA115_1 = input.LA(1);
+                        int LA118_1 = input.LA(1);
 
                          
-                        int index115_1 = input.index();
+                        int index118_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred167_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred171_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index115_1);
+                        input.seek(index118_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 115, _s, input);
+                new NoViableAltException(getDescription(), 118, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA116 extends DFA {
+    class DFA119 extends DFA {
 
-        public DFA116(BaseRecognizer recognizer) {
+        public DFA119(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 116;
+            this.decisionNumber = 119;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -72749,37 +73658,37 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "14729:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
+            return "14887:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA116_1 = input.LA(1);
+                        int LA119_1 = input.LA(1);
 
                          
-                        int index116_1 = input.index();
+                        int index119_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred168_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred172_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index116_1);
+                        input.seek(index119_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 116, _s, input);
+                new NoViableAltException(getDescription(), 119, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_72s = {
-            "\5\2\5\uffff\15\2\1\1\27\2\13\uffff\2\2\10\uffff\1\2\3\uffff\1\2\1\uffff\31\2\4\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\2\2\1\uffff\13\2\1\1\27\2\13\uffff\2\2\7\uffff\1\2\5\uffff\1\2\1\uffff\31\2\6\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -72860,11 +73769,11 @@
     };
     static final short[][] dfa_72 = unpackEncodedStringArray(dfa_72s);
 
-    class DFA120 extends DFA {
+    class DFA123 extends DFA {
 
-        public DFA120(BaseRecognizer recognizer) {
+        public DFA123(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 120;
+            this.decisionNumber = 123;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -72874,41 +73783,41 @@
             this.transition = dfa_72;
         }
         public String getDescription() {
-            return "15189:2: ( rule__XConstructorCall__Group_3__0 )?";
+            return "15347:2: ( rule__XConstructorCall__Group_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA120_1 = input.LA(1);
+                        int LA123_1 = input.LA(1);
 
                          
-                        int index120_1 = input.index();
+                        int index123_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred172_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred176_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index120_1);
+                        input.seek(index123_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 120, _s, input);
+                new NoViableAltException(getDescription(), 123, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA121 extends DFA {
+    class DFA124 extends DFA {
 
-        public DFA121(BaseRecognizer recognizer) {
+        public DFA124(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 121;
+            this.decisionNumber = 124;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -72918,41 +73827,41 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "15216:2: ( rule__XConstructorCall__Group_4__0 )?";
+            return "15374:2: ( rule__XConstructorCall__Group_4__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA121_1 = input.LA(1);
+                        int LA124_1 = input.LA(1);
 
                          
-                        int index121_1 = input.index();
+                        int index124_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred173_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred177_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index121_1);
+                        input.seek(index124_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 121, _s, input);
+                new NoViableAltException(getDescription(), 124, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA122 extends DFA {
+    class DFA125 extends DFA {
 
-        public DFA122(BaseRecognizer recognizer) {
+        public DFA125(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 122;
+            this.decisionNumber = 125;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -72962,42 +73871,42 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "15242:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
+            return "15400:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA122_1 = input.LA(1);
+                        int LA125_1 = input.LA(1);
 
                          
-                        int index122_1 = input.index();
+                        int index125_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred174_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred178_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index122_1);
+                        input.seek(index125_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 122, _s, input);
+                new NoViableAltException(getDescription(), 125, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_73s = "\1\41\115\uffff";
     static final String dfa_74s = "\1\4\40\0\55\uffff";
-    static final String dfa_75s = "\1\157\40\0\55\uffff";
+    static final String dfa_75s = "\1\163\40\0\55\uffff";
     static final String dfa_76s = "\41\uffff\1\2\53\uffff\1\1";
     static final String dfa_77s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\55\uffff}>";
     static final String[] dfa_78s = {
-            "\1\1\1\23\1\24\1\25\1\27\5\uffff\15\41\1\15\6\41\1\10\1\7\4\41\1\6\4\41\1\2\1\3\1\4\1\5\1\16\1\21\13\uffff\1\12\1\41\10\uffff\1\41\3\uffff\1\41\1\uffff\1\40\3\41\1\17\1\20\2\41\1\31\1\41\1\13\2\41\1\32\1\33\1\34\1\11\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41\4\uffff\2\41\1\uffff\1\41\1\22",
+            "\1\1\1\23\1\24\1\25\1\27\5\uffff\2\41\1\uffff\13\41\1\15\6\41\1\10\1\7\4\41\1\6\4\41\1\2\1\3\1\4\1\5\1\16\1\21\13\uffff\1\12\1\41\7\uffff\1\41\5\uffff\1\41\1\uffff\1\40\3\41\1\17\1\20\2\41\1\31\1\41\1\13\2\41\1\32\1\33\1\34\1\11\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41\6\uffff\2\41\1\uffff\1\41\1\22",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -73083,11 +73992,11 @@
     static final short[] dfa_77 = DFA.unpackEncodedString(dfa_77s);
     static final short[][] dfa_78 = unpackEncodedStringArray(dfa_78s);
 
-    class DFA127 extends DFA {
+    class DFA130 extends DFA {
 
-        public DFA127(BaseRecognizer recognizer) {
+        public DFA130(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 127;
+            this.decisionNumber = 130;
             this.eot = dfa_52;
             this.eof = dfa_73;
             this.min = dfa_74;
@@ -73097,496 +74006,496 @@
             this.transition = dfa_78;
         }
         public String getDescription() {
-            return "16133:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
+            return "16291:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA127_1 = input.LA(1);
+                        int LA130_1 = input.LA(1);
 
                          
-                        int index127_1 = input.index();
+                        int index130_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_1);
+                        input.seek(index130_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA127_2 = input.LA(1);
+                        int LA130_2 = input.LA(1);
 
                          
-                        int index127_2 = input.index();
+                        int index130_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_2);
+                        input.seek(index130_2);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA127_3 = input.LA(1);
+                        int LA130_3 = input.LA(1);
 
                          
-                        int index127_3 = input.index();
+                        int index130_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_3);
+                        input.seek(index130_3);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA127_4 = input.LA(1);
+                        int LA130_4 = input.LA(1);
 
                          
-                        int index127_4 = input.index();
+                        int index130_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_4);
+                        input.seek(index130_4);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA127_5 = input.LA(1);
+                        int LA130_5 = input.LA(1);
 
                          
-                        int index127_5 = input.index();
+                        int index130_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_5);
+                        input.seek(index130_5);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA127_6 = input.LA(1);
+                        int LA130_6 = input.LA(1);
 
                          
-                        int index127_6 = input.index();
+                        int index130_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_6);
+                        input.seek(index130_6);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA127_7 = input.LA(1);
+                        int LA130_7 = input.LA(1);
 
                          
-                        int index127_7 = input.index();
+                        int index130_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_7);
+                        input.seek(index130_7);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA127_8 = input.LA(1);
+                        int LA130_8 = input.LA(1);
 
                          
-                        int index127_8 = input.index();
+                        int index130_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_8);
+                        input.seek(index130_8);
                         if ( s>=0 ) return s;
                         break;
                     case 8 : 
-                        int LA127_9 = input.LA(1);
+                        int LA130_9 = input.LA(1);
 
                          
-                        int index127_9 = input.index();
+                        int index130_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_9);
+                        input.seek(index130_9);
                         if ( s>=0 ) return s;
                         break;
                     case 9 : 
-                        int LA127_10 = input.LA(1);
+                        int LA130_10 = input.LA(1);
 
                          
-                        int index127_10 = input.index();
+                        int index130_10 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_10);
+                        input.seek(index130_10);
                         if ( s>=0 ) return s;
                         break;
                     case 10 : 
-                        int LA127_11 = input.LA(1);
+                        int LA130_11 = input.LA(1);
 
                          
-                        int index127_11 = input.index();
+                        int index130_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_11);
+                        input.seek(index130_11);
                         if ( s>=0 ) return s;
                         break;
                     case 11 : 
-                        int LA127_12 = input.LA(1);
+                        int LA130_12 = input.LA(1);
 
                          
-                        int index127_12 = input.index();
+                        int index130_12 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_12);
+                        input.seek(index130_12);
                         if ( s>=0 ) return s;
                         break;
                     case 12 : 
-                        int LA127_13 = input.LA(1);
+                        int LA130_13 = input.LA(1);
 
                          
-                        int index127_13 = input.index();
+                        int index130_13 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_13);
+                        input.seek(index130_13);
                         if ( s>=0 ) return s;
                         break;
                     case 13 : 
-                        int LA127_14 = input.LA(1);
+                        int LA130_14 = input.LA(1);
 
                          
-                        int index127_14 = input.index();
+                        int index130_14 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_14);
+                        input.seek(index130_14);
                         if ( s>=0 ) return s;
                         break;
                     case 14 : 
-                        int LA127_15 = input.LA(1);
+                        int LA130_15 = input.LA(1);
 
                          
-                        int index127_15 = input.index();
+                        int index130_15 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_15);
+                        input.seek(index130_15);
                         if ( s>=0 ) return s;
                         break;
                     case 15 : 
-                        int LA127_16 = input.LA(1);
+                        int LA130_16 = input.LA(1);
 
                          
-                        int index127_16 = input.index();
+                        int index130_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_16);
+                        input.seek(index130_16);
                         if ( s>=0 ) return s;
                         break;
                     case 16 : 
-                        int LA127_17 = input.LA(1);
+                        int LA130_17 = input.LA(1);
 
                          
-                        int index127_17 = input.index();
+                        int index130_17 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_17);
+                        input.seek(index130_17);
                         if ( s>=0 ) return s;
                         break;
                     case 17 : 
-                        int LA127_18 = input.LA(1);
+                        int LA130_18 = input.LA(1);
 
                          
-                        int index127_18 = input.index();
+                        int index130_18 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_18);
+                        input.seek(index130_18);
                         if ( s>=0 ) return s;
                         break;
                     case 18 : 
-                        int LA127_19 = input.LA(1);
+                        int LA130_19 = input.LA(1);
 
                          
-                        int index127_19 = input.index();
+                        int index130_19 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_19);
+                        input.seek(index130_19);
                         if ( s>=0 ) return s;
                         break;
                     case 19 : 
-                        int LA127_20 = input.LA(1);
+                        int LA130_20 = input.LA(1);
 
                          
-                        int index127_20 = input.index();
+                        int index130_20 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_20);
+                        input.seek(index130_20);
                         if ( s>=0 ) return s;
                         break;
                     case 20 : 
-                        int LA127_21 = input.LA(1);
+                        int LA130_21 = input.LA(1);
 
                          
-                        int index127_21 = input.index();
+                        int index130_21 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_21);
+                        input.seek(index130_21);
                         if ( s>=0 ) return s;
                         break;
                     case 21 : 
-                        int LA127_22 = input.LA(1);
+                        int LA130_22 = input.LA(1);
 
                          
-                        int index127_22 = input.index();
+                        int index130_22 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_22);
+                        input.seek(index130_22);
                         if ( s>=0 ) return s;
                         break;
                     case 22 : 
-                        int LA127_23 = input.LA(1);
+                        int LA130_23 = input.LA(1);
 
                          
-                        int index127_23 = input.index();
+                        int index130_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_23);
+                        input.seek(index130_23);
                         if ( s>=0 ) return s;
                         break;
                     case 23 : 
-                        int LA127_24 = input.LA(1);
+                        int LA130_24 = input.LA(1);
 
                          
-                        int index127_24 = input.index();
+                        int index130_24 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_24);
+                        input.seek(index130_24);
                         if ( s>=0 ) return s;
                         break;
                     case 24 : 
-                        int LA127_25 = input.LA(1);
+                        int LA130_25 = input.LA(1);
 
                          
-                        int index127_25 = input.index();
+                        int index130_25 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_25);
+                        input.seek(index130_25);
                         if ( s>=0 ) return s;
                         break;
                     case 25 : 
-                        int LA127_26 = input.LA(1);
+                        int LA130_26 = input.LA(1);
 
                          
-                        int index127_26 = input.index();
+                        int index130_26 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_26);
+                        input.seek(index130_26);
                         if ( s>=0 ) return s;
                         break;
                     case 26 : 
-                        int LA127_27 = input.LA(1);
+                        int LA130_27 = input.LA(1);
 
                          
-                        int index127_27 = input.index();
+                        int index130_27 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_27);
+                        input.seek(index130_27);
                         if ( s>=0 ) return s;
                         break;
                     case 27 : 
-                        int LA127_28 = input.LA(1);
+                        int LA130_28 = input.LA(1);
 
                          
-                        int index127_28 = input.index();
+                        int index130_28 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_28);
+                        input.seek(index130_28);
                         if ( s>=0 ) return s;
                         break;
                     case 28 : 
-                        int LA127_29 = input.LA(1);
+                        int LA130_29 = input.LA(1);
 
                          
-                        int index127_29 = input.index();
+                        int index130_29 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_29);
+                        input.seek(index130_29);
                         if ( s>=0 ) return s;
                         break;
                     case 29 : 
-                        int LA127_30 = input.LA(1);
+                        int LA130_30 = input.LA(1);
 
                          
-                        int index127_30 = input.index();
+                        int index130_30 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_30);
+                        input.seek(index130_30);
                         if ( s>=0 ) return s;
                         break;
                     case 30 : 
-                        int LA127_31 = input.LA(1);
+                        int LA130_31 = input.LA(1);
 
                          
-                        int index127_31 = input.index();
+                        int index130_31 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_31);
+                        input.seek(index130_31);
                         if ( s>=0 ) return s;
                         break;
                     case 31 : 
-                        int LA127_32 = input.LA(1);
+                        int LA130_32 = input.LA(1);
 
                          
-                        int index127_32 = input.index();
+                        int index130_32 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred179_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred183_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index127_32);
+                        input.seek(index130_32);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 127, _s, input);
+                new NoViableAltException(getDescription(), 130, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -73594,11 +74503,11 @@
     static final String dfa_79s = "\117\uffff";
     static final String dfa_80s = "\1\2\116\uffff";
     static final String dfa_81s = "\1\4\1\0\115\uffff";
-    static final String dfa_82s = "\1\157\1\0\115\uffff";
+    static final String dfa_82s = "\1\163\1\0\115\uffff";
     static final String dfa_83s = "\2\uffff\1\2\113\uffff\1\1";
     static final String dfa_84s = "\1\uffff\1\0\115\uffff}>";
     static final String[] dfa_85s = {
-            "\5\2\5\uffff\15\2\1\1\27\2\13\uffff\2\2\10\uffff\1\2\3\uffff\1\2\1\uffff\31\2\1\uffff\1\2\2\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\2\2\1\uffff\13\2\1\1\27\2\13\uffff\2\2\7\uffff\1\2\5\uffff\1\2\1\uffff\31\2\1\uffff\1\2\4\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -73687,50 +74596,6 @@
     static final short[] dfa_84 = DFA.unpackEncodedString(dfa_84s);
     static final short[][] dfa_85 = unpackEncodedStringArray(dfa_85s);
 
-    class DFA136 extends DFA {
-
-        public DFA136(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 136;
-            this.eot = dfa_79;
-            this.eof = dfa_80;
-            this.min = dfa_81;
-            this.max = dfa_82;
-            this.accept = dfa_83;
-            this.special = dfa_84;
-            this.transition = dfa_85;
-        }
-        public String getDescription() {
-            return "17490:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
-        }
-        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
-            TokenStream input = (TokenStream)_input;
-        	int _s = s;
-            switch ( s ) {
-                    case 0 : 
-                        int LA136_1 = input.LA(1);
-
-                         
-                        int index136_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred188_InternalSignalDSL()) ) {s = 78;}
-
-                        else if ( (true) ) {s = 2;}
-
-                         
-                        input.seek(index136_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 136, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
     class DFA139 extends DFA {
 
         public DFA139(BaseRecognizer recognizer) {
@@ -73745,7 +74610,7 @@
             this.transition = dfa_85;
         }
         public String getDescription() {
-            return "17760:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
+            return "17648:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -73758,7 +74623,7 @@
                         int index139_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred191_InternalSignalDSL()) ) {s = 78;}
+                        if ( (synpred192_InternalSignalDSL()) ) {s = 78;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -73774,128 +74639,171 @@
             throw nvae;
         }
     }
+
+    class DFA142 extends DFA {
+
+        public DFA142(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 142;
+            this.eot = dfa_79;
+            this.eof = dfa_80;
+            this.min = dfa_81;
+            this.max = dfa_82;
+            this.accept = dfa_83;
+            this.special = dfa_84;
+            this.transition = dfa_85;
+        }
+        public String getDescription() {
+            return "17918:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA142_1 = input.LA(1);
+
+                         
+                        int index142_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred195_InternalSignalDSL()) ) {s = 78;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index142_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 142, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
     public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000800000000002L});
+    public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0001000000000002L});
     public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000012L});
-    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x2000000000000000L});
+    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x4000000000000000L});
     public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x4000000000000000L});
-    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x8000000000000000L,0x0000000000000011L});
-    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000011L});
-    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000000000L,0x000000000000000AL});
-    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0030000000000000L});
-    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
-    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0008800000000000L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x8000000000000000L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x8008800000000000L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0008800000000002L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000011L});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000AE0L});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0030000000000000L,0x0000000000000004L});
-    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x1FC0000000000000L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000800000000000L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000400000000010L,0x0000040000000000L});
-    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0001000000000010L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000001000000010L});
-    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x4007E10C080001F0L,0x0000802FF94CE000L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
-    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000002L,0x0000000000010000L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x4007E10C080001F0L,0x0000802FF94C6000L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x4007E10C080001F0L,0x0000802FF94E6000L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0001E00000000010L});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x000000000C1F0000L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000008000000L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000006000000L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000004002L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000008002L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000001E00000L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000001E00002L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x000000000E000000L,0x0000000000100000L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x000000000E000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000080000010L,0x0000000000004000L});
-    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
-    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x00000003FC000000L});
-    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x00000003FC000002L});
-    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000040000000L});
-    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000088000000L});
-    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000C00000000L});
-    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000C00000002L});
-    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x000000F000000000L});
-    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x000000F000000002L});
-    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000010C00000000L});
-    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
-    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000060000000000L});
-    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000080000000000L,0x0000180000000000L});
-    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000080000000002L,0x0000180000000000L});
-    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0000080000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0003E00008000010L});
-    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000000000000L,0x0000000000084000L});
-    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000080000010L,0x0000008000004000L});
-    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000004000000L,0x0000000000010000L});
-    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x4007E10C880001F0L,0x0000A02FF94CE000L});
-    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0xC007E10C080001F0L,0x0000802FF94C6000L});
-    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x4007F10C880001F0L,0x0000E02FF94C6000L});
-    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
-    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000080000010L,0x0000200000004000L});
-    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x4007F10C080001F2L,0x0000C02FF94C6000L});
-    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
-    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
-    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
-    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x4007E10C880001F0L,0x0000802FF94C6000L});
-    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x8000000080000010L,0x0000000006014100L});
-    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000080000012L,0x0000000004014100L});
-    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000080000010L,0x0000000004014100L});
-    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
-    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x4007F10C080001F0L,0x0000C02FF94C7000L});
-    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x4007E10C080001F0L,0x0000802FF94C7000L});
-    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x4007F10C080001F0L,0x0000C02FF94C6000L});
-    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
-    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0xC007F10C080001F0L,0x0000C02FF94C6000L});
-    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000100000000000L,0x0000400000000000L});
-    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000008000000L,0x0000000000084000L});
-    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0004000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
-    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x00000000000000E0L});
-    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x00040000000001E0L,0x00008001800C0000L});
-    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000000000000L,0x0000000000088000L});
-    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
-    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
-    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
-    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
-    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000000L,0x0000005000000000L});
-    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
-    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000000000000002L,0x0000004000000000L});
-    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
-    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000080000000000L});
-    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0000080000000002L});
-    public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x00000000000000C0L});
-    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000080000010L,0x000000000000C000L});
-    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0002200000000000L});
-    public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x0000000000000002L,0x0000010000000000L});
-    public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x8000000000000000L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000013L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000012L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000010000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0060000000000000L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0011000000000000L,0x0000000000001009L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0011000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000012L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000AE0L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0060000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0011000000000000L,0x0000000000001001L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x3F80000000000000L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000000L,0x0000300000002000L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0001000000000000L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000800000000010L,0x0000400000000000L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0002000000000010L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000002000000010L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x800FC218100001F0L,0x000800BFE5338000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000002L,0x0000000000040000L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x800FC218100001F0L,0x000800BFE5318000L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x800FC218100001F0L,0x000800BFE5398000L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0003C00000000010L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x00000000183E0000L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x000000000C000000L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000008002L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000003C00000L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000003C00002L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x000000001C000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x000000001C000002L,0x0000000000400000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000100000010L,0x0000000000010000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x00000007F8000000L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x00000007F8000002L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000110000000L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000001800000000L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000001800000002L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x000001E000000000L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x000001E000000002L});
+    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000021800000000L});
+    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000000000002L,0x0000000000800000L});
+    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x00000C0000000000L});
+    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000100000000000L,0x0001800000000000L});
+    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000100000000002L,0x0001800000000000L});
+    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000100000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0007C00010000010L});
+    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000100000010L,0x0000020000010000L});
+    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000008000000L,0x0000000000040000L});
+    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x800FC219100001F0L,0x000A00BFE5338000L});
+    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x800FC218100001F0L,0x000800BFE5318001L});
+    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x800FE219100001F0L,0x000E00BFE5318000L});
+    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
+    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000000100000010L,0x0002000000010000L});
+    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x800FE218100001F2L,0x000C00BFE5318000L});
+    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
+    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
+    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x800FC219100001F0L,0x000800BFE5318000L});
+    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000100000010L,0x0000000018050101L});
+    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000000100000012L,0x0000000010050100L});
+    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000100000010L,0x0000000010050100L});
+    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x800FE218100001F0L,0x000C00BFE531C000L});
+    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x800FC218100001F0L,0x000800BFE531C000L});
+    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x800FE218100001F0L,0x000C00BFE5318000L});
+    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
+    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x800FE218100001F0L,0x000C00BFE5318001L});
+    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000200000000000L,0x0004000000000000L});
+    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
+    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000010000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0008000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
+    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x00000000000000E0L});
+    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x00080000000001E0L,0x0008000600300000L});
+    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000000000000L,0x0000000000220000L});
+    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
+    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
+    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
+    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000000000000L,0x0000014000000000L});
+    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
+    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000000000000002L,0x0000010000000000L});
+    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
+    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000100000000002L});
+    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x00000000000000C0L});
+    public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0000000100000010L,0x0000000000030000L});
+    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0004400000000000L});
+    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
+    public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
+    public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x0000002000000000L});
 
 }
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.signal.ui/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.signal.ui/META-INF/MANIFEST.MF
index 15665b6..82bda00 100644
--- a/org.eclipse.osbp.xtext.signal.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.signal.ui/META-INF/MANIFEST.MF
@@ -31,7 +31,8 @@
  org.eclipse.osbp.xtext.signal.ide;bundle-version="0.9.0",
  org.eclipse.wb.core;bundle-version="1.9.0",
  org.eclipse.wb.core.java;bundle-version="1.9.0",
- org.eclipse.osbp.xtext.oxtype.ide;bundle-version="0.9.0"
+ org.eclipse.osbp.xtext.oxtype.ide;bundle-version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange;bundle-version="0.9.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.osbp.xtext.signal.ui.contentassist,
  org.eclipse.osbp.xtext.signal.ui.internal,
diff --git a/org.eclipse.osbp.xtext.signal.ui/src-gen/org/eclipse/osbp/xtext/signal/ui/contentassist/AbstractSignalDSLProposalProvider.java b/org.eclipse.osbp.xtext.signal.ui/src-gen/org/eclipse/osbp/xtext/signal/ui/contentassist/AbstractSignalDSLProposalProvider.java
index 0d821cf..c3ffe6e 100644
--- a/org.eclipse.osbp.xtext.signal.ui/src-gen/org/eclipse/osbp/xtext/signal/ui/contentassist/AbstractSignalDSLProposalProvider.java
+++ b/org.eclipse.osbp.xtext.signal.ui/src-gen/org/eclipse/osbp/xtext/signal/ui/contentassist/AbstractSignalDSLProposalProvider.java
@@ -48,31 +48,22 @@
 	public void completeSignalWatcher_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeSignalWatcher_Definition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeSignalWatcher_HasFileMask(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeSignalWatcher_Identifier(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeWatcherWithFileMask_Filemask(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeSignalWatcher_Executiontype(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeWatcherWithFileMask_Executiontype(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
-	public void completeWatcherWithFileMask_Interchangegroup(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeSignalWatcher_Interchangegroup(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeWatcherWithFileMask_Interchange(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
-	public void completeWatcherWithFileName_Filename(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
-	public void completeWatcherWithFileName_Executiontype(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
-	public void completeWatcherWithFileName_Interchangegroup(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeSignalWatcher_DefaultInterchange(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeWatcherWithFileName_Interchanges(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeSignalWatcher_Tasks(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
 	public void completeSignalScheduler_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -87,7 +78,7 @@
 	public void completeSignalScheduler_Interchangegroup(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeSignalScheduler_Interchanges(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeSignalScheduler_Tasks(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
 	public void completeCronScheduler_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -120,7 +111,7 @@
 	public void completeMonthlyScheduler_Minute(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeSignalDatainterchange_DataAction(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeSignalDatainterchange_ActionType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
 	public void completeSignalDatainterchange_DataRef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -129,6 +120,21 @@
 	public void completeSignalDatainterchange_Baseinterchange(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
+	public void completeSignalFunction_Group(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSignalFunction_DoExecuteFunction(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSignalFunction_OnImportFile(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeSignalFunction_SupportInterchange(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSignalFunction_OnExportFile(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 
 	public void complete_SignalModel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
@@ -142,15 +148,6 @@
 	public void complete_SignalWatcher(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_WatcherDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
-	public void complete_WatcherWithFileMask(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
-	public void complete_WatcherWithFileName(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
 	public void complete_SignalScheduler(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
@@ -172,10 +169,16 @@
 	public void complete_MonthlyScheduler(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
+	public void complete_SignalTask(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void complete_SignalDatainterchange(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_SignalActionEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_SignalFunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_SignalActionTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void complete_SignalExecutionTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
diff --git a/org.eclipse.osbp.xtext.signal.ui/src/org/eclipse/osbp/xtext/signal/ui/contentassist/SignalDSLProposalProvider.xtend b/org.eclipse.osbp.xtext.signal.ui/src/org/eclipse/osbp/xtext/signal/ui/contentassist/SignalDSLProposalProvider.xtend
index ece3dca..5702cad 100644
--- a/org.eclipse.osbp.xtext.signal.ui/src/org/eclipse/osbp/xtext/signal/ui/contentassist/SignalDSLProposalProvider.xtend
+++ b/org.eclipse.osbp.xtext.signal.ui/src/org/eclipse/osbp/xtext/signal/ui/contentassist/SignalDSLProposalProvider.xtend
@@ -26,11 +26,13 @@
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.jface.viewers.StyledString
 import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange
 import org.eclipse.osbp.xtext.signal.SignalDatainterchange
-import org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum
+import org.eclipse.osbp.xtext.signal.SignalDefinition
+import org.eclipse.osbp.xtext.signal.SignalFunction
 import org.eclipse.osbp.xtext.signal.SignalScheduler
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName
+import org.eclipse.osbp.xtext.signal.SignalTask
+import org.eclipse.osbp.xtext.signal.SignalWatcher
 import org.eclipse.osbp.xtext.signal.ui.SignalDSLDocumentationTranslator
 import org.eclipse.swt.widgets.DirectoryDialog
 import org.eclipse.wb.internal.core.nls.ui.ChooseLocaleDialog
@@ -41,7 +43,6 @@
 import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext
 import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor
 import org.eclipse.xtext.ui.editor.contentassist.ReplacementTextApplier
-import org.eclipse.osbp.xtext.signal.SignalWatcher
 
 class LocaleTextApplier extends ReplacementTextApplier {
 	var ContentAssistContext context
@@ -80,6 +81,8 @@
 }
 
 class SignalDSLProposalProvider extends AbstractSignalDSLProposalProvider {
+	
+	private val APPLYON = "applyon"
 
 	@Inject TerminalsProposalProvider provider
 	@Inject BasicDSLProposalProviderHelper providerHelper
@@ -117,8 +120,8 @@
 	override protected boolean isValidProposal(String proposal, String prefix, ContentAssistContext context) {
 		var result = super.isValidProposal(proposal, prefix, context)
 	
-		if (context.currentModel instanceof SignalWatcher) {
-			result = isValidProposalForSignalWatcherType(proposal, prefix, (context.currentModel as SignalWatcher), result)
+		if (context.currentModel instanceof SignalWatcher ) {
+			result = isValidProposalForSignalWatchers(proposal, prefix, (context.currentModel as SignalWatcher), result)
 		}
 		else if(context.currentModel instanceof SignalDatainterchange){
 			result = isValidProposalSignalDatainterchange(proposal, prefix, (context.currentModel as SignalDatainterchange), result)
@@ -126,58 +129,50 @@
 		return result
 	}
 	
-	def isValidProposalSignalDatainterchange(String proposal, String prefix, SignalDatainterchange interchange,
-		boolean result) {
+	def isValidProposalSignalDatainterchange(String proposal, String prefix, SignalDatainterchange interchange, boolean result) {
+		if (proposal.equals(APPLYON)) {
+			var signal = interchange.eContainer
 			
-		if (proposal.equals("applyon") && interchange !== null) {
-			if(interchange.eContainer instanceof WatcherWithFileMask){
-				return false
-			}
-			else if(interchange.eContainer instanceof WatcherWithFileName){
-				var watcher = (interchange.eContainer as WatcherWithFileName)
-				if(watcher.interchanges.size > 1 ){					
-					if(watcher.interchanges.basedInterchangeDefined){
-						return false
-					}
-				}				
-			}
-			else if(interchange.eContainer instanceof SignalScheduler){
-				return false
-			}
-		}
-		return result
-		
-	}
-	
-	def private boolean isValidProposalForSignalWatcherType(String proposal, String prefix, SignalWatcher signal,
-		boolean result) {
-		var watcher = signal.definition
-		if (watcher !== null) {
-			// if the data block has not been defined yet
-			if(watcher instanceof WatcherWithFileMask){
-				if (proposal.equals("applyon")) {
+			if(signal instanceof SignalWatcher){
+				if(signal.defaultInterchange !== null || signal.tasks.basedInterchangeDefined ){
 					return false
 				}
+				
 			}
-			else if(watcher instanceof WatcherWithFileName){
-				if(watcher.interchanges.size < 1 && (proposal.equals(SignalExecutionTypeEnum.NOSEQ.literal) || proposal.equals(SignalExecutionTypeEnum.SEQ.literal))){					
-					return false
-				}
+			else if(signal instanceof SignalScheduler){
+				return false
 			}
 		}
 		return result
 	}
 	
-	def boolean basedInterchangeDefined(EList<SignalDatainterchange> interchanges){
-		for(unit : interchanges){
-			if(unit.baseinterchange){
+	def private boolean isValidProposalForSignalWatchers(String proposal, String prefix, SignalWatcher watcher,	boolean result) {
+		if (watcher !== null && watcher.tasks !== null && !watcher.tasks.empty) {
+			
+			if(proposal.equals(APPLYON)){
+				if( watcher.defaultInterchange !== null ){ // default interchange already defined
+					return false
+				}
+				
+				if( watcher.tasks.basedInterchangeDefined && watcher.defaultInterchange === null){ // base interchange already defined
+					return false
+				}
+			}
+			
+		}
+		return result
+	}
+	
+	def boolean basedInterchangeDefined(EList<SignalTask> tasks){
+		for (task : tasks) {
+			if(task instanceof SignalDatainterchange)
+			if (task.baseinterchange) {
 				return true
 			}
 		}
 		return false
 	}
 	
-	
 	def getDirectoryURL(String directory) {
 	    try {
 			return new URL(directory);
@@ -192,6 +187,62 @@
 		}
 		return null
 	}
+	
+	def DataInterchange baseInterchange(SignalDefinition signal){
+		if(signal instanceof SignalWatcher) {
+			if(signal.defaultInterchange !== null){
+				return signal.defaultInterchange
+			}
+			else if (signal.tasks !== null && !signal.tasks.empty){
+				for(task : signal.tasks){
+					if(task instanceof SignalDatainterchange){
+						if(task.baseinterchange){
+							return task.dataRef
+						} 				
+					}					
+				}
+			}
+		}
+		return null
+	}
+	
+	def int definedBaseInterchangeCount(SignalDefinition signal) {
+		var count = 0
+		for (task : signal.tasks) {
+			if(task instanceof SignalDatainterchange){
+				if(task.baseinterchange){
+					count++
+				}
+			}
+		}
+		return count
+	}
+
+	def SignalDatainterchange definedBaseInterchange(SignalDefinition signal) {
+		for (task : signal.tasks) {
+			if(task instanceof SignalDatainterchange){
+				if(task.baseinterchange){
+					return task
+				}
+			}
+		}
+		return null
+	}
+	
+	def int taskCount(SignalDefinition signal, boolean interchange) {
+		var count = 0
+		for (task : signal.tasks) {
+			if(interchange){
+				if(task instanceof SignalDatainterchange){
+					count++
+				}
+			}
+			else if(task instanceof SignalFunction){
+				count++
+			}
+		}
+		return count
+	}
 
 	// ------------------------ delegates to TerminalsProposalProvider -----------------
 	override public void complete_INT(EObject model, RuleCall ruleCall, ContentAssistContext context,
@@ -213,5 +264,4 @@
 		ICompletionProposalAcceptor acceptor) {
 		provider.complete_STRING(model, ruleCall, context, acceptor)
 	}
-
 }
diff --git a/org.eclipse.osbp.xtext.signal.ui/xtend-gen/org/eclipse/osbp/xtext/signal/ui/contentassist/SignalDSLProposalProvider.java b/org.eclipse.osbp.xtext.signal.ui/xtend-gen/org/eclipse/osbp/xtext/signal/ui/contentassist/SignalDSLProposalProvider.java
index 506c80c..d1786ee 100644
--- a/org.eclipse.osbp.xtext.signal.ui/xtend-gen/org/eclipse/osbp/xtext/signal/ui/contentassist/SignalDSLProposalProvider.java
+++ b/org.eclipse.osbp.xtext.signal.ui/xtend-gen/org/eclipse/osbp/xtext/signal/ui/contentassist/SignalDSLProposalProvider.java
@@ -24,13 +24,13 @@
 import org.eclipse.jface.text.contentassist.ICompletionProposal;
 import org.eclipse.jface.viewers.StyledString;
 import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
 import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
-import org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum;
+import org.eclipse.osbp.xtext.signal.SignalDefinition;
+import org.eclipse.osbp.xtext.signal.SignalFunction;
 import org.eclipse.osbp.xtext.signal.SignalScheduler;
+import org.eclipse.osbp.xtext.signal.SignalTask;
 import org.eclipse.osbp.xtext.signal.SignalWatcher;
-import org.eclipse.osbp.xtext.signal.WatcherDefinition;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName;
 import org.eclipse.osbp.xtext.signal.ui.SignalDSLDocumentationTranslator;
 import org.eclipse.osbp.xtext.signal.ui.contentassist.AbstractSignalDSLProposalProvider;
 import org.eclipse.osbp.xtext.signal.ui.contentassist.DirectoryNameTextApplier;
@@ -44,6 +44,8 @@
 
 @SuppressWarnings("all")
 public class SignalDSLProposalProvider extends AbstractSignalDSLProposalProvider {
+  private final String APPLYON = "applyon";
+  
   @Inject
   private TerminalsProposalProvider provider;
   
@@ -89,7 +91,7 @@
     EObject _currentModel = context.getCurrentModel();
     if ((_currentModel instanceof SignalWatcher)) {
       EObject _currentModel_1 = context.getCurrentModel();
-      result = this.isValidProposalForSignalWatcherType(proposal, prefix, ((SignalWatcher) _currentModel_1), result);
+      result = this.isValidProposalForSignalWatchers(proposal, prefix, ((SignalWatcher) _currentModel_1), result);
     } else {
       EObject _currentModel_2 = context.getCurrentModel();
       if ((_currentModel_2 instanceof SignalDatainterchange)) {
@@ -101,58 +103,46 @@
   }
   
   public boolean isValidProposalSignalDatainterchange(final String proposal, final String prefix, final SignalDatainterchange interchange, final boolean result) {
-    if ((proposal.equals("applyon") && (interchange != null))) {
-      EObject _eContainer = interchange.eContainer();
-      if ((_eContainer instanceof WatcherWithFileMask)) {
-        return false;
-      } else {
-        EObject _eContainer_1 = interchange.eContainer();
-        if ((_eContainer_1 instanceof WatcherWithFileName)) {
-          EObject _eContainer_2 = interchange.eContainer();
-          WatcherWithFileName watcher = ((WatcherWithFileName) _eContainer_2);
-          int _size = watcher.getInterchanges().size();
-          boolean _greaterThan = (_size > 1);
-          if (_greaterThan) {
-            boolean _basedInterchangeDefined = this.basedInterchangeDefined(watcher.getInterchanges());
-            if (_basedInterchangeDefined) {
-              return false;
-            }
-          }
-        } else {
-          EObject _eContainer_3 = interchange.eContainer();
-          if ((_eContainer_3 instanceof SignalScheduler)) {
-            return false;
-          }
-        }
-      }
-    }
-    return result;
-  }
-  
-  private boolean isValidProposalForSignalWatcherType(final String proposal, final String prefix, final SignalWatcher signal, final boolean result) {
-    WatcherDefinition watcher = signal.getDefinition();
-    if ((watcher != null)) {
-      if ((watcher instanceof WatcherWithFileMask)) {
-        boolean _equals = proposal.equals("applyon");
-        if (_equals) {
+    boolean _equals = proposal.equals(this.APPLYON);
+    if (_equals) {
+      EObject signal = interchange.eContainer();
+      if ((signal instanceof SignalWatcher)) {
+        if (((((SignalWatcher)signal).getDefaultInterchange() != null) || this.basedInterchangeDefined(((SignalWatcher)signal).getTasks()))) {
           return false;
         }
       } else {
-        if ((watcher instanceof WatcherWithFileName)) {
-          if (((((WatcherWithFileName)watcher).getInterchanges().size() < 1) && (proposal.equals(SignalExecutionTypeEnum.NOSEQ.getLiteral()) || proposal.equals(SignalExecutionTypeEnum.SEQ.getLiteral())))) {
-            return false;
-          }
+        if ((signal instanceof SignalScheduler)) {
+          return false;
         }
       }
     }
     return result;
   }
   
-  public boolean basedInterchangeDefined(final EList<SignalDatainterchange> interchanges) {
-    for (final SignalDatainterchange unit : interchanges) {
-      boolean _isBaseinterchange = unit.isBaseinterchange();
-      if (_isBaseinterchange) {
-        return true;
+  private boolean isValidProposalForSignalWatchers(final String proposal, final String prefix, final SignalWatcher watcher, final boolean result) {
+    if ((((watcher != null) && (watcher.getTasks() != null)) && (!watcher.getTasks().isEmpty()))) {
+      boolean _equals = proposal.equals(this.APPLYON);
+      if (_equals) {
+        DataInterchange _defaultInterchange = watcher.getDefaultInterchange();
+        boolean _tripleNotEquals = (_defaultInterchange != null);
+        if (_tripleNotEquals) {
+          return false;
+        }
+        if ((this.basedInterchangeDefined(watcher.getTasks()) && (watcher.getDefaultInterchange() == null))) {
+          return false;
+        }
+      }
+    }
+    return result;
+  }
+  
+  public boolean basedInterchangeDefined(final EList<SignalTask> tasks) {
+    for (final SignalTask task : tasks) {
+      if ((task instanceof SignalDatainterchange)) {
+        boolean _isBaseinterchange = ((SignalDatainterchange)task).isBaseinterchange();
+        if (_isBaseinterchange) {
+          return true;
+        }
       }
     }
     return false;
@@ -183,6 +173,73 @@
     return null;
   }
   
+  public DataInterchange baseInterchange(final SignalDefinition signal) {
+    if ((signal instanceof SignalWatcher)) {
+      DataInterchange _defaultInterchange = ((SignalWatcher)signal).getDefaultInterchange();
+      boolean _tripleNotEquals = (_defaultInterchange != null);
+      if (_tripleNotEquals) {
+        return ((SignalWatcher)signal).getDefaultInterchange();
+      } else {
+        if (((((SignalWatcher)signal).getTasks() != null) && (!((SignalWatcher)signal).getTasks().isEmpty()))) {
+          EList<SignalTask> _tasks = ((SignalWatcher)signal).getTasks();
+          for (final SignalTask task : _tasks) {
+            if ((task instanceof SignalDatainterchange)) {
+              boolean _isBaseinterchange = ((SignalDatainterchange)task).isBaseinterchange();
+              if (_isBaseinterchange) {
+                return ((SignalDatainterchange)task).getDataRef();
+              }
+            }
+          }
+        }
+      }
+    }
+    return null;
+  }
+  
+  public int definedBaseInterchangeCount(final SignalDefinition signal) {
+    int count = 0;
+    EList<SignalTask> _tasks = signal.getTasks();
+    for (final SignalTask task : _tasks) {
+      if ((task instanceof SignalDatainterchange)) {
+        boolean _isBaseinterchange = ((SignalDatainterchange)task).isBaseinterchange();
+        if (_isBaseinterchange) {
+          count++;
+        }
+      }
+    }
+    return count;
+  }
+  
+  public SignalDatainterchange definedBaseInterchange(final SignalDefinition signal) {
+    EList<SignalTask> _tasks = signal.getTasks();
+    for (final SignalTask task : _tasks) {
+      if ((task instanceof SignalDatainterchange)) {
+        boolean _isBaseinterchange = ((SignalDatainterchange)task).isBaseinterchange();
+        if (_isBaseinterchange) {
+          return ((SignalDatainterchange)task);
+        }
+      }
+    }
+    return null;
+  }
+  
+  public int taskCount(final SignalDefinition signal, final boolean interchange) {
+    int count = 0;
+    EList<SignalTask> _tasks = signal.getTasks();
+    for (final SignalTask task : _tasks) {
+      if (interchange) {
+        if ((task instanceof SignalDatainterchange)) {
+          count++;
+        }
+      } else {
+        if ((task instanceof SignalFunction)) {
+          count++;
+        }
+      }
+    }
+    return count;
+  }
+  
   @Override
   public void complete_INT(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     this.provider.complete_INT(model, ruleCall, context, acceptor);
diff --git a/org.eclipse.osbp.xtext.signal/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.signal/META-INF/MANIFEST.MF
index 9143e25..5470704 100644
--- a/org.eclipse.osbp.xtext.signal/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.signal/META-INF/MANIFEST.MF
@@ -43,7 +43,8 @@
  org.eclipse.osbp.xtext.i18n,
  org.eclipse.osbp.xtext.addons;bundle-version="0.9.0",
  org.eclipse.osbp.xtext.datainterchange.common,
- org.eclipse.osbp.dependencies.bundle.quartz;bundle-version="2.2.1"
+ org.eclipse.osbp.dependencies.bundle.quartz;bundle-version="2.2.1",
+ org.eclipse.osbp.xtext.functionlibrarydsl;bundle-version="0.9.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Activator: org.eclipse.osbp.xtext.signal.Activator
 Export-Package: org.eclipse.osbp.xtext.signal,
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalActionEnum.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalActionTypeEnum.java
similarity index 72%
rename from org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalActionEnum.java
rename to org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalActionTypeEnum.java
index 3b0d472..53584d5 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalActionEnum.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalActionTypeEnum.java
@@ -24,14 +24,14 @@
 
 /**
  * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Signal Action Enum</b></em>',
+ * A representation of the literals of the enumeration '<em><b>Signal Action Type Enum</b></em>',
  * and utility methods for working with them.
  * <!-- end-user-doc -->
- * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalActionEnum()
+ * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalActionTypeEnum()
  * @model
  * @generated
  */
-public enum SignalActionEnum implements Enumerator {
+public enum SignalActionTypeEnum implements Enumerator {
 	/**
 	 * The '<em><b>DATAIMPORT</b></em>' literal object.
 	 * <!-- begin-user-doc -->
@@ -50,17 +50,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	DATAEXPORT(0, "DATAEXPORT", "export"),
-
-	/**
-	 * The '<em><b>NONE</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #NONE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	NONE(0, "NONE", "none");
+	DATAEXPORT(0, "DATAEXPORT", "export");
 
 	/**
 	 * The '<em><b>DATAIMPORT</b></em>' literal value.
@@ -93,52 +83,36 @@
 	public static final int DATAEXPORT_VALUE = 0;
 
 	/**
-	 * 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 literal="none"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int NONE_VALUE = 0;
-
-	/**
-	 * An array of all the '<em><b>Signal Action Enum</b></em>' enumerators.
+	 * An array of all the '<em><b>Signal Action Type Enum</b></em>' enumerators.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private static final SignalActionEnum[] VALUES_ARRAY =
-		new SignalActionEnum[] {
+	private static final SignalActionTypeEnum[] VALUES_ARRAY =
+		new SignalActionTypeEnum[] {
 			DATAIMPORT,
 			DATAEXPORT,
-			NONE,
 		};
 
 	/**
-	 * A public read-only list of all the '<em><b>Signal Action Enum</b></em>' enumerators.
+	 * A public read-only list of all the '<em><b>Signal Action Type Enum</b></em>' enumerators.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public static final List<SignalActionEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+	public static final List<SignalActionTypeEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
 
 	/**
-	 * Returns the '<em><b>Signal Action Enum</b></em>' literal with the specified literal value.
+	 * Returns the '<em><b>Signal Action Type 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 SignalActionEnum get(String literal) {
+	public static SignalActionTypeEnum get(String literal) {
 		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			SignalActionEnum result = VALUES_ARRAY[i];
+			SignalActionTypeEnum result = VALUES_ARRAY[i];
 			if (result.toString().equals(literal)) {
 				return result;
 			}
@@ -147,16 +121,16 @@
 	}
 
 	/**
-	 * Returns the '<em><b>Signal Action Enum</b></em>' literal with the specified name.
+	 * Returns the '<em><b>Signal Action Type 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 SignalActionEnum getByName(String name) {
+	public static SignalActionTypeEnum getByName(String name) {
 		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			SignalActionEnum result = VALUES_ARRAY[i];
+			SignalActionTypeEnum result = VALUES_ARRAY[i];
 			if (result.getName().equals(name)) {
 				return result;
 			}
@@ -165,14 +139,14 @@
 	}
 
 	/**
-	 * Returns the '<em><b>Signal Action Enum</b></em>' literal with the specified integer value.
+	 * Returns the '<em><b>Signal Action Type 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 SignalActionEnum get(int value) {
+	public static SignalActionTypeEnum get(int value) {
 		switch (value) {
 			case DATAIMPORT_VALUE: return DATAIMPORT;
 		}
@@ -206,7 +180,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private SignalActionEnum(int value, String name, String literal) {
+	private SignalActionTypeEnum(int value, String name, String literal) {
 		this.value = value;
 		this.name = name;
 		this.literal = literal;
@@ -250,4 +224,4 @@
 		return literal;
 	}
 	
-} //SignalActionEnum
+} //SignalActionTypeEnum
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDSLFactory.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDSLFactory.java
index df7f686..66d8afa 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDSLFactory.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDSLFactory.java
@@ -81,31 +81,13 @@
 	SignalWatcher createSignalWatcher();
 
 	/**
-	 * Returns a new object of class '<em>Watcher Definition</em>'.
+	 * Returns a new object of class '<em>Signal Scheduler</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Watcher Definition</em>'.
+	 * @return a new object of class '<em>Signal Scheduler</em>'.
 	 * @generated
 	 */
-	WatcherDefinition createWatcherDefinition();
-
-	/**
-	 * Returns a new object of class '<em>Watcher With File Mask</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Watcher With File Mask</em>'.
-	 * @generated
-	 */
-	WatcherWithFileMask createWatcherWithFileMask();
-
-	/**
-	 * Returns a new object of class '<em>Watcher With File Name</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Watcher With File Name</em>'.
-	 * @generated
-	 */
-	WatcherWithFileName createWatcherWithFileName();
+	SignalScheduler createSignalScheduler();
 
 	/**
 	 * Returns a new object of class '<em>Scheduler Type</em>'.
@@ -117,15 +99,6 @@
 	SchedulerType createSchedulerType();
 
 	/**
-	 * Returns a new object of class '<em>Signal Scheduler</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Signal Scheduler</em>'.
-	 * @generated
-	 */
-	SignalScheduler createSignalScheduler();
-
-	/**
 	 * Returns a new object of class '<em>Cron Scheduler</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -171,6 +144,15 @@
 	MonthlyScheduler createMonthlyScheduler();
 
 	/**
+	 * Returns a new object of class '<em>Signal Task</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Signal Task</em>'.
+	 * @generated
+	 */
+	SignalTask createSignalTask();
+
+	/**
 	 * Returns a new object of class '<em>Signal Datainterchange</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -180,6 +162,15 @@
 	SignalDatainterchange createSignalDatainterchange();
 
 	/**
+	 * Returns a new object of class '<em>Signal Function</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Signal Function</em>'.
+	 * @generated
+	 */
+	SignalFunction createSignalFunction();
+
+	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDSLPackage.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDSLPackage.java
index 144f18a..7ae6f06 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDSLPackage.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDSLPackage.java
@@ -235,13 +235,40 @@
 	int SIGNAL_DEFINITION__NAME = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Interchangegroup</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_DEFINITION__INTERCHANGEGROUP = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Executiontype</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_DEFINITION__EXECUTIONTYPE = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Tasks</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_DEFINITION__TASKS = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 3;
+
+	/**
 	 * The number of structural features of the '<em>Signal Definition</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_DEFINITION_FEATURE_COUNT = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 1;
+	int SIGNAL_DEFINITION_FEATURE_COUNT = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 4;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -281,13 +308,58 @@
 	int SIGNAL_WATCHER__NAME = SIGNAL_DEFINITION__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Definition</b></em>' containment reference.
+	 * The feature id for the '<em><b>Interchangegroup</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_WATCHER__DEFINITION = SIGNAL_DEFINITION_FEATURE_COUNT + 0;
+	int SIGNAL_WATCHER__INTERCHANGEGROUP = SIGNAL_DEFINITION__INTERCHANGEGROUP;
+
+	/**
+	 * The feature id for the '<em><b>Executiontype</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_WATCHER__EXECUTIONTYPE = SIGNAL_DEFINITION__EXECUTIONTYPE;
+
+	/**
+	 * The feature id for the '<em><b>Tasks</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_WATCHER__TASKS = SIGNAL_DEFINITION__TASKS;
+
+	/**
+	 * The feature id for the '<em><b>Default Interchange</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_WATCHER__DEFAULT_INTERCHANGE = SIGNAL_DEFINITION_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Has File Mask</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_WATCHER__HAS_FILE_MASK = SIGNAL_DEFINITION_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Identifier</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_WATCHER__IDENTIFIER = SIGNAL_DEFINITION_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Signal Watcher</em>' class.
@@ -296,7 +368,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_WATCHER_FEATURE_COUNT = SIGNAL_DEFINITION_FEATURE_COUNT + 1;
+	int SIGNAL_WATCHER_FEATURE_COUNT = SIGNAL_DEFINITION_FEATURE_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -317,14 +389,23 @@
 	int SIGNAL_WATCHER_OPERATION_COUNT = SIGNAL_DEFINITION_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.WatcherDefinitionImpl <em>Watcher Definition</em>}' class.
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalSchedulerImpl <em>Signal Scheduler</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.signal.impl.WatcherDefinitionImpl
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getWatcherDefinition()
+	 * @see org.eclipse.osbp.xtext.signal.impl.SignalSchedulerImpl
+	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalScheduler()
 	 * @generated
 	 */
-	int WATCHER_DEFINITION = 5;
+	int SIGNAL_SCHEDULER = 5;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_SCHEDULER__NAME = SIGNAL_DEFINITION__NAME;
 
 	/**
 	 * The feature id for the '<em><b>Interchangegroup</b></em>' reference.
@@ -333,7 +414,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WATCHER_DEFINITION__INTERCHANGEGROUP = 0;
+	int SIGNAL_SCHEDULER__INTERCHANGEGROUP = SIGNAL_DEFINITION__INTERCHANGEGROUP;
 
 	/**
 	 * The feature id for the '<em><b>Executiontype</b></em>' attribute.
@@ -342,153 +423,52 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WATCHER_DEFINITION__EXECUTIONTYPE = 1;
+	int SIGNAL_SCHEDULER__EXECUTIONTYPE = SIGNAL_DEFINITION__EXECUTIONTYPE;
 
 	/**
-	 * The number of structural features of the '<em>Watcher Definition</em>' class.
+	 * The feature id for the '<em><b>Tasks</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int WATCHER_DEFINITION_FEATURE_COUNT = 2;
+	int SIGNAL_SCHEDULER__TASKS = SIGNAL_DEFINITION__TASKS;
 
 	/**
-	 * The number of operations of the '<em>Watcher Definition</em>' class.
+	 * The feature id for the '<em><b>Schedulertype</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int WATCHER_DEFINITION_OPERATION_COUNT = 0;
+	int SIGNAL_SCHEDULER__SCHEDULERTYPE = SIGNAL_DEFINITION_FEATURE_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.WatcherWithFileMaskImpl <em>Watcher With File Mask</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.signal.impl.WatcherWithFileMaskImpl
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getWatcherWithFileMask()
-	 * @generated
-	 */
-	int WATCHER_WITH_FILE_MASK = 6;
-
-	/**
-	 * The feature id for the '<em><b>Interchangegroup</b></em>' reference.
+	 * The number of structural features of the '<em>Signal Scheduler</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int WATCHER_WITH_FILE_MASK__INTERCHANGEGROUP = WATCHER_DEFINITION__INTERCHANGEGROUP;
+	int SIGNAL_SCHEDULER_FEATURE_COUNT = SIGNAL_DEFINITION_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Executiontype</b></em>' attribute.
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int WATCHER_WITH_FILE_MASK__EXECUTIONTYPE = WATCHER_DEFINITION__EXECUTIONTYPE;
+	int SIGNAL_SCHEDULER___ERESOLVE_PROXY__INTERNALEOBJECT = SIGNAL_DEFINITION___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
-	 * The feature id for the '<em><b>Filemask</b></em>' attribute.
+	 * The number of operations of the '<em>Signal Scheduler</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int WATCHER_WITH_FILE_MASK__FILEMASK = WATCHER_DEFINITION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Interchange</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WATCHER_WITH_FILE_MASK__INTERCHANGE = WATCHER_DEFINITION_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Watcher With File Mask</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WATCHER_WITH_FILE_MASK_FEATURE_COUNT = WATCHER_DEFINITION_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Watcher With File Mask</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WATCHER_WITH_FILE_MASK_OPERATION_COUNT = WATCHER_DEFINITION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.WatcherWithFileNameImpl <em>Watcher With File Name</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.signal.impl.WatcherWithFileNameImpl
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getWatcherWithFileName()
-	 * @generated
-	 */
-	int WATCHER_WITH_FILE_NAME = 7;
-
-	/**
-	 * The feature id for the '<em><b>Interchangegroup</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WATCHER_WITH_FILE_NAME__INTERCHANGEGROUP = WATCHER_DEFINITION__INTERCHANGEGROUP;
-
-	/**
-	 * The feature id for the '<em><b>Executiontype</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WATCHER_WITH_FILE_NAME__EXECUTIONTYPE = WATCHER_DEFINITION__EXECUTIONTYPE;
-
-	/**
-	 * The feature id for the '<em><b>Filename</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WATCHER_WITH_FILE_NAME__FILENAME = WATCHER_DEFINITION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Interchanges</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WATCHER_WITH_FILE_NAME__INTERCHANGES = WATCHER_DEFINITION_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Watcher With File Name</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WATCHER_WITH_FILE_NAME_FEATURE_COUNT = WATCHER_DEFINITION_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Watcher With File Name</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WATCHER_WITH_FILE_NAME_OPERATION_COUNT = WATCHER_DEFINITION_OPERATION_COUNT + 0;
+	int SIGNAL_SCHEDULER_OPERATION_COUNT = SIGNAL_DEFINITION_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.SchedulerTypeImpl <em>Scheduler Type</em>}' class.
@@ -498,7 +478,7 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSchedulerType()
 	 * @generated
 	 */
-	int SCHEDULER_TYPE = 8;
+	int SCHEDULER_TYPE = 6;
 
 	/**
 	 * The number of structural features of the '<em>Scheduler Type</em>' class.
@@ -528,88 +508,6 @@
 	int SCHEDULER_TYPE_OPERATION_COUNT = SIGNAL_LAZY_RESOLVER_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalSchedulerImpl <em>Signal Scheduler</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalSchedulerImpl
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalScheduler()
-	 * @generated
-	 */
-	int SIGNAL_SCHEDULER = 9;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_SCHEDULER__NAME = SIGNAL_DEFINITION__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Interchangegroup</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_SCHEDULER__INTERCHANGEGROUP = SIGNAL_DEFINITION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Executiontype</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_SCHEDULER__EXECUTIONTYPE = SIGNAL_DEFINITION_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Schedulertype</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_SCHEDULER__SCHEDULERTYPE = SIGNAL_DEFINITION_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Interchanges</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_SCHEDULER__INTERCHANGES = SIGNAL_DEFINITION_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Signal Scheduler</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_SCHEDULER_FEATURE_COUNT = SIGNAL_DEFINITION_FEATURE_COUNT + 4;
-
-	/**
-	 * The operation id for the '<em>EResolve Proxy</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_SCHEDULER___ERESOLVE_PROXY__INTERNALEOBJECT = SIGNAL_DEFINITION___ERESOLVE_PROXY__INTERNALEOBJECT;
-
-	/**
-	 * The number of operations of the '<em>Signal Scheduler</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SIGNAL_SCHEDULER_OPERATION_COUNT = SIGNAL_DEFINITION_OPERATION_COUNT + 0;
-
-	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.CronSchedulerImpl <em>Cron Scheduler</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -617,7 +515,7 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getCronScheduler()
 	 * @generated
 	 */
-	int CRON_SCHEDULER = 10;
+	int CRON_SCHEDULER = 7;
 
 	/**
 	 * The feature id for the '<em><b>Expression</b></em>' attribute.
@@ -663,7 +561,7 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getHourlyScheduler()
 	 * @generated
 	 */
-	int HOURLY_SCHEDULER = 11;
+	int HOURLY_SCHEDULER = 8;
 
 	/**
 	 * The feature id for the '<em><b>Minute</b></em>' attribute.
@@ -709,7 +607,7 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getDailyScheduler()
 	 * @generated
 	 */
-	int DAILY_SCHEDULER = 12;
+	int DAILY_SCHEDULER = 9;
 
 	/**
 	 * The feature id for the '<em><b>Hour</b></em>' attribute.
@@ -764,7 +662,7 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getWeeklyScheduler()
 	 * @generated
 	 */
-	int WEEKLY_SCHEDULER = 13;
+	int WEEKLY_SCHEDULER = 10;
 
 	/**
 	 * The feature id for the '<em><b>Dayofweek</b></em>' attribute.
@@ -828,7 +726,7 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getMonthlyScheduler()
 	 * @generated
 	 */
-	int MONTHLY_SCHEDULER = 14;
+	int MONTHLY_SCHEDULER = 11;
 
 	/**
 	 * The feature id for the '<em><b>Dayofmonth</b></em>' attribute.
@@ -885,23 +783,23 @@
 	int MONTHLY_SCHEDULER_OPERATION_COUNT = SCHEDULER_TYPE_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.SignalProcessor <em>Signal Processor</em>}' class.
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalTaskImpl <em>Signal Task</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.signal.SignalProcessor
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalProcessor()
+	 * @see org.eclipse.osbp.xtext.signal.impl.SignalTaskImpl
+	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalTask()
 	 * @generated
 	 */
-	int SIGNAL_PROCESSOR = 15;
+	int SIGNAL_TASK = 12;
 
 	/**
-	 * The number of structural features of the '<em>Signal Processor</em>' class.
+	 * The number of structural features of the '<em>Signal Task</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_PROCESSOR_FEATURE_COUNT = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 0;
+	int SIGNAL_TASK_FEATURE_COUNT = SIGNAL_LAZY_RESOLVER_FEATURE_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -910,16 +808,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_PROCESSOR___ERESOLVE_PROXY__INTERNALEOBJECT = SIGNAL_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+	int SIGNAL_TASK___ERESOLVE_PROXY__INTERNALEOBJECT = SIGNAL_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
-	 * The number of operations of the '<em>Signal Processor</em>' class.
+	 * The number of operations of the '<em>Signal Task</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_PROCESSOR_OPERATION_COUNT = SIGNAL_LAZY_RESOLVER_OPERATION_COUNT + 0;
+	int SIGNAL_TASK_OPERATION_COUNT = SIGNAL_LAZY_RESOLVER_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalDatainterchangeImpl <em>Signal Datainterchange</em>}' class.
@@ -929,16 +827,16 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalDatainterchange()
 	 * @generated
 	 */
-	int SIGNAL_DATAINTERCHANGE = 16;
+	int SIGNAL_DATAINTERCHANGE = 13;
 
 	/**
-	 * The feature id for the '<em><b>Data Action</b></em>' attribute.
+	 * The feature id for the '<em><b>Action Type</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_DATAINTERCHANGE__DATA_ACTION = SIGNAL_PROCESSOR_FEATURE_COUNT + 0;
+	int SIGNAL_DATAINTERCHANGE__ACTION_TYPE = SIGNAL_TASK_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Data Ref</b></em>' reference.
@@ -947,7 +845,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_DATAINTERCHANGE__DATA_REF = SIGNAL_PROCESSOR_FEATURE_COUNT + 1;
+	int SIGNAL_DATAINTERCHANGE__DATA_REF = SIGNAL_TASK_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Baseinterchange</b></em>' attribute.
@@ -956,7 +854,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_DATAINTERCHANGE__BASEINTERCHANGE = SIGNAL_PROCESSOR_FEATURE_COUNT + 2;
+	int SIGNAL_DATAINTERCHANGE__BASEINTERCHANGE = SIGNAL_TASK_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Signal Datainterchange</em>' class.
@@ -965,7 +863,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_DATAINTERCHANGE_FEATURE_COUNT = SIGNAL_PROCESSOR_FEATURE_COUNT + 3;
+	int SIGNAL_DATAINTERCHANGE_FEATURE_COUNT = SIGNAL_TASK_FEATURE_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -974,7 +872,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_DATAINTERCHANGE___ERESOLVE_PROXY__INTERNALEOBJECT = SIGNAL_PROCESSOR___ERESOLVE_PROXY__INTERNALEOBJECT;
+	int SIGNAL_DATAINTERCHANGE___ERESOLVE_PROXY__INTERNALEOBJECT = SIGNAL_TASK___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
 	 * The number of operations of the '<em>Signal Datainterchange</em>' class.
@@ -983,17 +881,99 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SIGNAL_DATAINTERCHANGE_OPERATION_COUNT = SIGNAL_PROCESSOR_OPERATION_COUNT + 0;
+	int SIGNAL_DATAINTERCHANGE_OPERATION_COUNT = SIGNAL_TASK_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.SignalActionEnum <em>Signal Action Enum</em>}' enum.
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalFunctionImpl <em>Signal Function</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.signal.SignalActionEnum
-	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalActionEnum()
+	 * @see org.eclipse.osbp.xtext.signal.impl.SignalFunctionImpl
+	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalFunction()
 	 * @generated
 	 */
-	int SIGNAL_ACTION_ENUM = 17;
+	int SIGNAL_FUNCTION = 14;
+
+	/**
+	 * The feature id for the '<em><b>Group</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_FUNCTION__GROUP = SIGNAL_TASK_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Do Execute Function</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION = SIGNAL_TASK_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>On Import File</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_FUNCTION__ON_IMPORT_FILE = SIGNAL_TASK_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>On Export File</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_FUNCTION__ON_EXPORT_FILE = SIGNAL_TASK_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Support Interchange</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_FUNCTION__SUPPORT_INTERCHANGE = SIGNAL_TASK_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>Signal Function</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_FUNCTION_FEATURE_COUNT = SIGNAL_TASK_FEATURE_COUNT + 5;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_FUNCTION___ERESOLVE_PROXY__INTERNALEOBJECT = SIGNAL_TASK___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Signal Function</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIGNAL_FUNCTION_OPERATION_COUNT = SIGNAL_TASK_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.SignalActionTypeEnum <em>Signal Action Type Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.signal.SignalActionTypeEnum
+	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalActionTypeEnum()
+	 * @generated
+	 */
+	int SIGNAL_ACTION_TYPE_ENUM = 15;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum <em>Signal Execution Type Enum</em>}' enum.
@@ -1003,7 +983,7 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalExecutionTypeEnum()
 	 * @generated
 	 */
-	int SIGNAL_EXECUTION_TYPE_ENUM = 18;
+	int SIGNAL_EXECUTION_TYPE_ENUM = 16;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.signal.DayOfWeekEnum <em>Day Of Week Enum</em>}' enum.
@@ -1013,7 +993,7 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getDayOfWeekEnum()
 	 * @generated
 	 */
-	int DAY_OF_WEEK_ENUM = 19;
+	int DAY_OF_WEEK_ENUM = 17;
 
 	/**
 	 * The meta object id for the '<em>Internal EObject</em>' data type.
@@ -1023,7 +1003,7 @@
 	 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getInternalEObject()
 	 * @generated
 	 */
-	int INTERNAL_EOBJECT = 20;
+	int INTERNAL_EOBJECT = 18;
 
 
 	/**
@@ -1121,6 +1101,39 @@
 	EAttribute getSignalDefinition_Name();
 
 	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.signal.SignalDefinition#getInterchangegroup <em>Interchangegroup</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Interchangegroup</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalDefinition#getInterchangegroup()
+	 * @see #getSignalDefinition()
+	 * @generated
+	 */
+	EReference getSignalDefinition_Interchangegroup();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalDefinition#getExecutiontype <em>Executiontype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Executiontype</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalDefinition#getExecutiontype()
+	 * @see #getSignalDefinition()
+	 * @generated
+	 */
+	EAttribute getSignalDefinition_Executiontype();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.signal.SignalDefinition#getTasks <em>Tasks</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Tasks</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalDefinition#getTasks()
+	 * @see #getSignalDefinition()
+	 * @generated
+	 */
+	EReference getSignalDefinition_Tasks();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SignalWatcher <em>Signal Watcher</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1131,121 +1144,37 @@
 	EClass getSignalWatcher();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getDefinition <em>Definition</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getDefaultInterchange <em>Default Interchange</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Definition</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalWatcher#getDefinition()
+	 * @return the meta object for the reference '<em>Default Interchange</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalWatcher#getDefaultInterchange()
 	 * @see #getSignalWatcher()
 	 * @generated
 	 */
-	EReference getSignalWatcher_Definition();
+	EReference getSignalWatcher_DefaultInterchange();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.WatcherDefinition <em>Watcher Definition</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalWatcher#isHasFileMask <em>Has File Mask</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Watcher Definition</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.WatcherDefinition
+	 * @return the meta object for the attribute '<em>Has File Mask</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalWatcher#isHasFileMask()
+	 * @see #getSignalWatcher()
 	 * @generated
 	 */
-	EClass getWatcherDefinition();
+	EAttribute getSignalWatcher_HasFileMask();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.signal.WatcherDefinition#getInterchangegroup <em>Interchangegroup</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getIdentifier <em>Identifier</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Interchangegroup</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.WatcherDefinition#getInterchangegroup()
-	 * @see #getWatcherDefinition()
+	 * @return the meta object for the attribute '<em>Identifier</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalWatcher#getIdentifier()
+	 * @see #getSignalWatcher()
 	 * @generated
 	 */
-	EReference getWatcherDefinition_Interchangegroup();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.WatcherDefinition#getExecutiontype <em>Executiontype</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Executiontype</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.WatcherDefinition#getExecutiontype()
-	 * @see #getWatcherDefinition()
-	 * @generated
-	 */
-	EAttribute getWatcherDefinition_Executiontype();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.WatcherWithFileMask <em>Watcher With File Mask</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Watcher With File Mask</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.WatcherWithFileMask
-	 * @generated
-	 */
-	EClass getWatcherWithFileMask();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.WatcherWithFileMask#getFilemask <em>Filemask</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Filemask</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.WatcherWithFileMask#getFilemask()
-	 * @see #getWatcherWithFileMask()
-	 * @generated
-	 */
-	EAttribute getWatcherWithFileMask_Filemask();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.signal.WatcherWithFileMask#getInterchange <em>Interchange</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Interchange</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.WatcherWithFileMask#getInterchange()
-	 * @see #getWatcherWithFileMask()
-	 * @generated
-	 */
-	EReference getWatcherWithFileMask_Interchange();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.WatcherWithFileName <em>Watcher With File Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Watcher With File Name</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.WatcherWithFileName
-	 * @generated
-	 */
-	EClass getWatcherWithFileName();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.WatcherWithFileName#getFilename <em>Filename</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Filename</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.WatcherWithFileName#getFilename()
-	 * @see #getWatcherWithFileName()
-	 * @generated
-	 */
-	EAttribute getWatcherWithFileName_Filename();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.signal.WatcherWithFileName#getInterchanges <em>Interchanges</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Interchanges</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.WatcherWithFileName#getInterchanges()
-	 * @see #getWatcherWithFileName()
-	 * @generated
-	 */
-	EReference getWatcherWithFileName_Interchanges();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SchedulerType <em>Scheduler Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Scheduler Type</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SchedulerType
-	 * @generated
-	 */
-	EClass getSchedulerType();
+	EAttribute getSignalWatcher_Identifier();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SignalScheduler <em>Signal Scheduler</em>}'.
@@ -1258,28 +1187,6 @@
 	EClass getSignalScheduler();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.signal.SignalScheduler#getInterchangegroup <em>Interchangegroup</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Interchangegroup</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalScheduler#getInterchangegroup()
-	 * @see #getSignalScheduler()
-	 * @generated
-	 */
-	EReference getSignalScheduler_Interchangegroup();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalScheduler#getExecutiontype <em>Executiontype</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Executiontype</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalScheduler#getExecutiontype()
-	 * @see #getSignalScheduler()
-	 * @generated
-	 */
-	EAttribute getSignalScheduler_Executiontype();
-
-	/**
 	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.signal.SignalScheduler#getSchedulertype <em>Schedulertype</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1291,15 +1198,14 @@
 	EReference getSignalScheduler_Schedulertype();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.signal.SignalScheduler#getInterchanges <em>Interchanges</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SchedulerType <em>Scheduler Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Interchanges</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalScheduler#getInterchanges()
-	 * @see #getSignalScheduler()
+	 * @return the meta object for class '<em>Scheduler Type</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SchedulerType
 	 * @generated
 	 */
-	EReference getSignalScheduler_Interchanges();
+	EClass getSchedulerType();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.CronScheduler <em>Cron Scheduler</em>}'.
@@ -1462,14 +1368,14 @@
 	EAttribute getMonthlyScheduler_Minute();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SignalProcessor <em>Signal Processor</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SignalTask <em>Signal Task</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Signal Processor</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalProcessor
+	 * @return the meta object for class '<em>Signal Task</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalTask
 	 * @generated
 	 */
-	EClass getSignalProcessor();
+	EClass getSignalTask();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange <em>Signal Datainterchange</em>}'.
@@ -1482,15 +1388,15 @@
 	EClass getSignalDatainterchange();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange#getDataAction <em>Data Action</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange#getActionType <em>Action Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Data Action</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalDatainterchange#getDataAction()
+	 * @return the meta object for the attribute '<em>Action Type</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalDatainterchange#getActionType()
 	 * @see #getSignalDatainterchange()
 	 * @generated
 	 */
-	EAttribute getSignalDatainterchange_DataAction();
+	EAttribute getSignalDatainterchange_ActionType();
 
 	/**
 	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange#getDataRef <em>Data Ref</em>}'.
@@ -1515,14 +1421,79 @@
 	EAttribute getSignalDatainterchange_Baseinterchange();
 
 	/**
-	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.signal.SignalActionEnum <em>Signal Action Enum</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.signal.SignalFunction <em>Signal Function</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Signal Action Enum</em>'.
-	 * @see org.eclipse.osbp.xtext.signal.SignalActionEnum
+	 * @return the meta object for class '<em>Signal Function</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalFunction
 	 * @generated
 	 */
-	EEnum getSignalActionEnum();
+	EClass getSignalFunction();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.signal.SignalFunction#getGroup <em>Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Group</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalFunction#getGroup()
+	 * @see #getSignalFunction()
+	 * @generated
+	 */
+	EReference getSignalFunction_Group();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.signal.SignalFunction#getDoExecuteFunction <em>Do Execute Function</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Do Execute Function</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalFunction#getDoExecuteFunction()
+	 * @see #getSignalFunction()
+	 * @generated
+	 */
+	EReference getSignalFunction_DoExecuteFunction();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalFunction#isOnImportFile <em>On Import File</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>On Import File</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalFunction#isOnImportFile()
+	 * @see #getSignalFunction()
+	 * @generated
+	 */
+	EAttribute getSignalFunction_OnImportFile();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.signal.SignalFunction#isOnExportFile <em>On Export File</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>On Export File</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalFunction#isOnExportFile()
+	 * @see #getSignalFunction()
+	 * @generated
+	 */
+	EAttribute getSignalFunction_OnExportFile();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.signal.SignalFunction#getSupportInterchange <em>Support Interchange</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Support Interchange</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalFunction#getSupportInterchange()
+	 * @see #getSignalFunction()
+	 * @generated
+	 */
+	EReference getSignalFunction_SupportInterchange();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.signal.SignalActionTypeEnum <em>Signal Action Type Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Signal Action Type Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.signal.SignalActionTypeEnum
+	 * @generated
+	 */
+	EEnum getSignalActionTypeEnum();
 
 	/**
 	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum <em>Signal Execution Type Enum</em>}'.
@@ -1659,6 +1630,30 @@
 		EAttribute SIGNAL_DEFINITION__NAME = eINSTANCE.getSignalDefinition_Name();
 
 		/**
+		 * The meta object literal for the '<em><b>Interchangegroup</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SIGNAL_DEFINITION__INTERCHANGEGROUP = eINSTANCE.getSignalDefinition_Interchangegroup();
+
+		/**
+		 * The meta object literal for the '<em><b>Executiontype</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SIGNAL_DEFINITION__EXECUTIONTYPE = eINSTANCE.getSignalDefinition_Executiontype();
+
+		/**
+		 * The meta object literal for the '<em><b>Tasks</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SIGNAL_DEFINITION__TASKS = eINSTANCE.getSignalDefinition_Tasks();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalWatcherImpl <em>Signal Watcher</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -1669,100 +1664,28 @@
 		EClass SIGNAL_WATCHER = eINSTANCE.getSignalWatcher();
 
 		/**
-		 * The meta object literal for the '<em><b>Definition</b></em>' containment reference feature.
+		 * The meta object literal for the '<em><b>Default Interchange</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference SIGNAL_WATCHER__DEFINITION = eINSTANCE.getSignalWatcher_Definition();
+		EReference SIGNAL_WATCHER__DEFAULT_INTERCHANGE = eINSTANCE.getSignalWatcher_DefaultInterchange();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.WatcherDefinitionImpl <em>Watcher Definition</em>}' class.
+		 * The meta object literal for the '<em><b>Has File Mask</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.signal.impl.WatcherDefinitionImpl
-		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getWatcherDefinition()
 		 * @generated
 		 */
-		EClass WATCHER_DEFINITION = eINSTANCE.getWatcherDefinition();
+		EAttribute SIGNAL_WATCHER__HAS_FILE_MASK = eINSTANCE.getSignalWatcher_HasFileMask();
 
 		/**
-		 * The meta object literal for the '<em><b>Interchangegroup</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Identifier</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference WATCHER_DEFINITION__INTERCHANGEGROUP = eINSTANCE.getWatcherDefinition_Interchangegroup();
-
-		/**
-		 * The meta object literal for the '<em><b>Executiontype</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute WATCHER_DEFINITION__EXECUTIONTYPE = eINSTANCE.getWatcherDefinition_Executiontype();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.WatcherWithFileMaskImpl <em>Watcher With File Mask</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.signal.impl.WatcherWithFileMaskImpl
-		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getWatcherWithFileMask()
-		 * @generated
-		 */
-		EClass WATCHER_WITH_FILE_MASK = eINSTANCE.getWatcherWithFileMask();
-
-		/**
-		 * The meta object literal for the '<em><b>Filemask</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute WATCHER_WITH_FILE_MASK__FILEMASK = eINSTANCE.getWatcherWithFileMask_Filemask();
-
-		/**
-		 * The meta object literal for the '<em><b>Interchange</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference WATCHER_WITH_FILE_MASK__INTERCHANGE = eINSTANCE.getWatcherWithFileMask_Interchange();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.WatcherWithFileNameImpl <em>Watcher With File Name</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.signal.impl.WatcherWithFileNameImpl
-		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getWatcherWithFileName()
-		 * @generated
-		 */
-		EClass WATCHER_WITH_FILE_NAME = eINSTANCE.getWatcherWithFileName();
-
-		/**
-		 * The meta object literal for the '<em><b>Filename</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute WATCHER_WITH_FILE_NAME__FILENAME = eINSTANCE.getWatcherWithFileName_Filename();
-
-		/**
-		 * The meta object literal for the '<em><b>Interchanges</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference WATCHER_WITH_FILE_NAME__INTERCHANGES = eINSTANCE.getWatcherWithFileName_Interchanges();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.SchedulerTypeImpl <em>Scheduler Type</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.signal.impl.SchedulerTypeImpl
-		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSchedulerType()
-		 * @generated
-		 */
-		EClass SCHEDULER_TYPE = eINSTANCE.getSchedulerType();
+		EAttribute SIGNAL_WATCHER__IDENTIFIER = eINSTANCE.getSignalWatcher_Identifier();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalSchedulerImpl <em>Signal Scheduler</em>}' class.
@@ -1775,22 +1698,6 @@
 		EClass SIGNAL_SCHEDULER = eINSTANCE.getSignalScheduler();
 
 		/**
-		 * The meta object literal for the '<em><b>Interchangegroup</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SIGNAL_SCHEDULER__INTERCHANGEGROUP = eINSTANCE.getSignalScheduler_Interchangegroup();
-
-		/**
-		 * The meta object literal for the '<em><b>Executiontype</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute SIGNAL_SCHEDULER__EXECUTIONTYPE = eINSTANCE.getSignalScheduler_Executiontype();
-
-		/**
 		 * The meta object literal for the '<em><b>Schedulertype</b></em>' containment reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -1799,12 +1706,14 @@
 		EReference SIGNAL_SCHEDULER__SCHEDULERTYPE = eINSTANCE.getSignalScheduler_Schedulertype();
 
 		/**
-		 * The meta object literal for the '<em><b>Interchanges</b></em>' containment reference list feature.
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.SchedulerTypeImpl <em>Scheduler Type</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.signal.impl.SchedulerTypeImpl
+		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSchedulerType()
 		 * @generated
 		 */
-		EReference SIGNAL_SCHEDULER__INTERCHANGES = eINSTANCE.getSignalScheduler_Interchanges();
+		EClass SCHEDULER_TYPE = eINSTANCE.getSchedulerType();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.CronSchedulerImpl <em>Cron Scheduler</em>}' class.
@@ -1937,14 +1846,14 @@
 		EAttribute MONTHLY_SCHEDULER__MINUTE = eINSTANCE.getMonthlyScheduler_Minute();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.SignalProcessor <em>Signal Processor</em>}' class.
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalTaskImpl <em>Signal Task</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.signal.SignalProcessor
-		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalProcessor()
+		 * @see org.eclipse.osbp.xtext.signal.impl.SignalTaskImpl
+		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalTask()
 		 * @generated
 		 */
-		EClass SIGNAL_PROCESSOR = eINSTANCE.getSignalProcessor();
+		EClass SIGNAL_TASK = eINSTANCE.getSignalTask();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalDatainterchangeImpl <em>Signal Datainterchange</em>}' class.
@@ -1957,12 +1866,12 @@
 		EClass SIGNAL_DATAINTERCHANGE = eINSTANCE.getSignalDatainterchange();
 
 		/**
-		 * The meta object literal for the '<em><b>Data Action</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Action Type</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute SIGNAL_DATAINTERCHANGE__DATA_ACTION = eINSTANCE.getSignalDatainterchange_DataAction();
+		EAttribute SIGNAL_DATAINTERCHANGE__ACTION_TYPE = eINSTANCE.getSignalDatainterchange_ActionType();
 
 		/**
 		 * The meta object literal for the '<em><b>Data Ref</b></em>' reference feature.
@@ -1981,14 +1890,64 @@
 		EAttribute SIGNAL_DATAINTERCHANGE__BASEINTERCHANGE = eINSTANCE.getSignalDatainterchange_Baseinterchange();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.SignalActionEnum <em>Signal Action Enum</em>}' enum.
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.impl.SignalFunctionImpl <em>Signal Function</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.signal.SignalActionEnum
-		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalActionEnum()
+		 * @see org.eclipse.osbp.xtext.signal.impl.SignalFunctionImpl
+		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalFunction()
 		 * @generated
 		 */
-		EEnum SIGNAL_ACTION_ENUM = eINSTANCE.getSignalActionEnum();
+		EClass SIGNAL_FUNCTION = eINSTANCE.getSignalFunction();
+
+		/**
+		 * The meta object literal for the '<em><b>Group</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SIGNAL_FUNCTION__GROUP = eINSTANCE.getSignalFunction_Group();
+
+		/**
+		 * The meta object literal for the '<em><b>Do Execute Function</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION = eINSTANCE.getSignalFunction_DoExecuteFunction();
+
+		/**
+		 * The meta object literal for the '<em><b>On Import File</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SIGNAL_FUNCTION__ON_IMPORT_FILE = eINSTANCE.getSignalFunction_OnImportFile();
+
+		/**
+		 * The meta object literal for the '<em><b>On Export File</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SIGNAL_FUNCTION__ON_EXPORT_FILE = eINSTANCE.getSignalFunction_OnExportFile();
+
+		/**
+		 * The meta object literal for the '<em><b>Support Interchange</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SIGNAL_FUNCTION__SUPPORT_INTERCHANGE = eINSTANCE.getSignalFunction_SupportInterchange();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.SignalActionTypeEnum <em>Signal Action Type Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.signal.SignalActionTypeEnum
+		 * @see org.eclipse.osbp.xtext.signal.impl.SignalDSLPackageImpl#getSignalActionTypeEnum()
+		 * @generated
+		 */
+		EEnum SIGNAL_ACTION_TYPE_ENUM = eINSTANCE.getSignalActionTypeEnum();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum <em>Signal Execution Type Enum</em>}' enum.
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDatainterchange.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDatainterchange.java
index 6600a0f..4aaba9c 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDatainterchange.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDatainterchange.java
@@ -27,7 +27,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange#getDataAction <em>Data Action</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange#getActionType <em>Action Type</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange#getDataRef <em>Data Ref</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange#isBaseinterchange <em>Baseinterchange</em>}</li>
  * </ul>
@@ -36,35 +36,35 @@
  * @model
  * @generated
  */
-public interface SignalDatainterchange extends SignalProcessor {
+public interface SignalDatainterchange extends SignalTask {
 	/**
-	 * Returns the value of the '<em><b>Data Action</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.signal.SignalActionEnum}.
+	 * Returns the value of the '<em><b>Action Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.signal.SignalActionTypeEnum}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Data Action</em>' attribute isn't clear,
+	 * If the meaning of the '<em>Action Type</em>' attribute isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Data Action</em>' attribute.
-	 * @see org.eclipse.osbp.xtext.signal.SignalActionEnum
-	 * @see #setDataAction(SignalActionEnum)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalDatainterchange_DataAction()
+	 * @return the value of the '<em>Action Type</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.signal.SignalActionTypeEnum
+	 * @see #setActionType(SignalActionTypeEnum)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalDatainterchange_ActionType()
 	 * @model unique="false"
 	 * @generated
 	 */
-	SignalActionEnum getDataAction();
+	SignalActionTypeEnum getActionType();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange#getDataAction <em>Data Action</em>}' attribute.
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalDatainterchange#getActionType <em>Action Type</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Data Action</em>' attribute.
-	 * @see org.eclipse.osbp.xtext.signal.SignalActionEnum
-	 * @see #getDataAction()
+	 * @param value the new value of the '<em>Action Type</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.signal.SignalActionTypeEnum
+	 * @see #getActionType()
 	 * @generated
 	 */
-	void setDataAction(SignalActionEnum value);
+	void setActionType(SignalActionTypeEnum value);
 
 	/**
 	 * Returns the value of the '<em><b>Data Ref</b></em>' reference.
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDefinition.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDefinition.java
index 92e35f7..672f381 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDefinition.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalDefinition.java
@@ -16,6 +16,9 @@
  */
 package org.eclipse.osbp.xtext.signal;
 
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeGroup;
 
 /**
  * <!-- begin-user-doc -->
@@ -27,6 +30,9 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.signal.SignalDefinition#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalDefinition#getInterchangegroup <em>Interchangegroup</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalDefinition#getExecutiontype <em>Executiontype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalDefinition#getTasks <em>Tasks</em>}</li>
  * </ul>
  *
  * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalDefinition()
@@ -60,4 +66,75 @@
 	 */
 	void setName(String value);
 
+	/**
+	 * Returns the value of the '<em><b>Interchangegroup</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Interchangegroup</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Interchangegroup</em>' reference.
+	 * @see #setInterchangegroup(DataInterchangeGroup)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalDefinition_Interchangegroup()
+	 * @model
+	 * @generated
+	 */
+	DataInterchangeGroup getInterchangegroup();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalDefinition#getInterchangegroup <em>Interchangegroup</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Interchangegroup</em>' reference.
+	 * @see #getInterchangegroup()
+	 * @generated
+	 */
+	void setInterchangegroup(DataInterchangeGroup value);
+
+	/**
+	 * Returns the value of the '<em><b>Executiontype</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Executiontype</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Executiontype</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum
+	 * @see #setExecutiontype(SignalExecutionTypeEnum)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalDefinition_Executiontype()
+	 * @model unique="false"
+	 * @generated
+	 */
+	SignalExecutionTypeEnum getExecutiontype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalDefinition#getExecutiontype <em>Executiontype</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Executiontype</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum
+	 * @see #getExecutiontype()
+	 * @generated
+	 */
+	void setExecutiontype(SignalExecutionTypeEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Tasks</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.signal.SignalTask}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tasks</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>Tasks</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalDefinition_Tasks()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<SignalTask> getTasks();
+
 } // SignalDefinition
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalFunction.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalFunction.java
new file mode 100644
index 0000000..c7a47a9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalFunction.java
@@ -0,0 +1,175 @@
+/**
+ * Copyright (c) 2011, 2018 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0 
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from SignalDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.signal;
+
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryActionGroup;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryExecute;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Signal Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalFunction#getGroup <em>Group</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalFunction#getDoExecuteFunction <em>Do Execute Function</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalFunction#isOnImportFile <em>On Import File</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalFunction#isOnExportFile <em>On Export File</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalFunction#getSupportInterchange <em>Support Interchange</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalFunction()
+ * @model
+ * @generated
+ */
+public interface SignalFunction extends SignalTask {
+	/**
+	 * Returns the value of the '<em><b>Group</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Group</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Group</em>' reference.
+	 * @see #setGroup(FunctionLibraryActionGroup)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalFunction_Group()
+	 * @model
+	 * @generated
+	 */
+	FunctionLibraryActionGroup getGroup();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalFunction#getGroup <em>Group</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Group</em>' reference.
+	 * @see #getGroup()
+	 * @generated
+	 */
+	void setGroup(FunctionLibraryActionGroup value);
+
+	/**
+	 * Returns the value of the '<em><b>Do Execute Function</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Do Execute Function</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Do Execute Function</em>' reference.
+	 * @see #setDoExecuteFunction(FunctionLibraryExecute)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalFunction_DoExecuteFunction()
+	 * @model
+	 * @generated
+	 */
+	FunctionLibraryExecute getDoExecuteFunction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalFunction#getDoExecuteFunction <em>Do Execute Function</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Do Execute Function</em>' reference.
+	 * @see #getDoExecuteFunction()
+	 * @generated
+	 */
+	void setDoExecuteFunction(FunctionLibraryExecute value);
+
+	/**
+	 * Returns the value of the '<em><b>On Import File</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>On Import File</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>On Import File</em>' attribute.
+	 * @see #setOnImportFile(boolean)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalFunction_OnImportFile()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isOnImportFile();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalFunction#isOnImportFile <em>On Import File</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>On Import File</em>' attribute.
+	 * @see #isOnImportFile()
+	 * @generated
+	 */
+	void setOnImportFile(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>On Export File</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>On Export File</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>On Export File</em>' attribute.
+	 * @see #setOnExportFile(boolean)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalFunction_OnExportFile()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isOnExportFile();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalFunction#isOnExportFile <em>On Export File</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>On Export File</em>' attribute.
+	 * @see #isOnExportFile()
+	 * @generated
+	 */
+	void setOnExportFile(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Support Interchange</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Support Interchange</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Support Interchange</em>' reference.
+	 * @see #setSupportInterchange(DataInterchange)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalFunction_SupportInterchange()
+	 * @model
+	 * @generated
+	 */
+	DataInterchange getSupportInterchange();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalFunction#getSupportInterchange <em>Support Interchange</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Support Interchange</em>' reference.
+	 * @see #getSupportInterchange()
+	 * @generated
+	 */
+	void setSupportInterchange(DataInterchange value);
+
+} // SignalFunction
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalScheduler.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalScheduler.java
index 9036bf9..07d0020 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalScheduler.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalScheduler.java
@@ -16,9 +16,6 @@
  */
 package org.eclipse.osbp.xtext.signal;
 
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.osbp.xtext.datainterchange.DataInterchangeGroup;
 
 /**
  * <!-- begin-user-doc -->
@@ -29,10 +26,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.SignalScheduler#getInterchangegroup <em>Interchangegroup</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.SignalScheduler#getExecutiontype <em>Executiontype</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.signal.SignalScheduler#getSchedulertype <em>Schedulertype</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.SignalScheduler#getInterchanges <em>Interchanges</em>}</li>
  * </ul>
  *
  * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalScheduler()
@@ -41,61 +35,6 @@
  */
 public interface SignalScheduler extends SignalDefinition {
 	/**
-	 * Returns the value of the '<em><b>Interchangegroup</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Interchangegroup</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Interchangegroup</em>' reference.
-	 * @see #setInterchangegroup(DataInterchangeGroup)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalScheduler_Interchangegroup()
-	 * @model
-	 * @generated
-	 */
-	DataInterchangeGroup getInterchangegroup();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalScheduler#getInterchangegroup <em>Interchangegroup</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Interchangegroup</em>' reference.
-	 * @see #getInterchangegroup()
-	 * @generated
-	 */
-	void setInterchangegroup(DataInterchangeGroup value);
-
-	/**
-	 * Returns the value of the '<em><b>Executiontype</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Executiontype</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Executiontype</em>' attribute.
-	 * @see org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum
-	 * @see #setExecutiontype(SignalExecutionTypeEnum)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalScheduler_Executiontype()
-	 * @model unique="false"
-	 * @generated
-	 */
-	SignalExecutionTypeEnum getExecutiontype();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalScheduler#getExecutiontype <em>Executiontype</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Executiontype</em>' attribute.
-	 * @see org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum
-	 * @see #getExecutiontype()
-	 * @generated
-	 */
-	void setExecutiontype(SignalExecutionTypeEnum value);
-
-	/**
 	 * Returns the value of the '<em><b>Schedulertype</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
@@ -121,20 +60,4 @@
 	 */
 	void setSchedulertype(SchedulerType value);
 
-	/**
-	 * Returns the value of the '<em><b>Interchanges</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.osbp.xtext.signal.SignalDatainterchange}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Interchanges</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>Interchanges</em>' containment reference list.
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalScheduler_Interchanges()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<SignalDatainterchange> getInterchanges();
-
 } // SignalScheduler
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalProcessor.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalTask.java
similarity index 77%
rename from org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalProcessor.java
rename to org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalTask.java
index 602b649..587276b 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalProcessor.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalTask.java
@@ -19,13 +19,13 @@
 
 /**
  * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Signal Processor</b></em>'.
+ * A representation of the model object '<em><b>Signal Task</b></em>'.
  * <!-- end-user-doc -->
  *
  *
- * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalProcessor()
- * @model interface="true" abstract="true"
+ * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalTask()
+ * @model
  * @generated
  */
-public interface SignalProcessor extends SignalLazyResolver {
-} // SignalProcessor
+public interface SignalTask extends SignalLazyResolver {
+} // SignalTask
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalWatcher.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalWatcher.java
index a17c1a2..bebbc7f 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalWatcher.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/SignalWatcher.java
@@ -16,6 +16,7 @@
  */
 package org.eclipse.osbp.xtext.signal;
 
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
 
 /**
  * <!-- begin-user-doc -->
@@ -26,7 +27,9 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getDefinition <em>Definition</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getDefaultInterchange <em>Default Interchange</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalWatcher#isHasFileMask <em>Has File Mask</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getIdentifier <em>Identifier</em>}</li>
  * </ul>
  *
  * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalWatcher()
@@ -35,29 +38,81 @@
  */
 public interface SignalWatcher extends SignalDefinition {
 	/**
-	 * Returns the value of the '<em><b>Definition</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Default Interchange</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Definition</em>' containment reference isn't clear,
+	 * If the meaning of the '<em>Default Interchange</em>' reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Definition</em>' containment reference.
-	 * @see #setDefinition(WatcherDefinition)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalWatcher_Definition()
-	 * @model containment="true"
+	 * @return the value of the '<em>Default Interchange</em>' reference.
+	 * @see #setDefaultInterchange(DataInterchange)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalWatcher_DefaultInterchange()
+	 * @model
 	 * @generated
 	 */
-	WatcherDefinition getDefinition();
+	DataInterchange getDefaultInterchange();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getDefinition <em>Definition</em>}' containment reference.
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getDefaultInterchange <em>Default Interchange</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Definition</em>' containment reference.
-	 * @see #getDefinition()
+	 * @param value the new value of the '<em>Default Interchange</em>' reference.
+	 * @see #getDefaultInterchange()
 	 * @generated
 	 */
-	void setDefinition(WatcherDefinition value);
+	void setDefaultInterchange(DataInterchange value);
+
+	/**
+	 * Returns the value of the '<em><b>Has File Mask</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Has File Mask</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Has File Mask</em>' attribute.
+	 * @see #setHasFileMask(boolean)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalWatcher_HasFileMask()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isHasFileMask();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalWatcher#isHasFileMask <em>Has File Mask</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Has File Mask</em>' attribute.
+	 * @see #isHasFileMask()
+	 * @generated
+	 */
+	void setHasFileMask(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Identifier</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Identifier</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Identifier</em>' attribute.
+	 * @see #setIdentifier(String)
+	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getSignalWatcher_Identifier()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getIdentifier();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.SignalWatcher#getIdentifier <em>Identifier</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Identifier</em>' attribute.
+	 * @see #getIdentifier()
+	 * @generated
+	 */
+	void setIdentifier(String value);
 
 } // SignalWatcher
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/WatcherDefinition.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/WatcherDefinition.java
deleted file mode 100644
index abb6ae3..0000000
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/WatcherDefinition.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- * Copyright (c) 2011, 2018 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- *  
- *  Contributors:                                                      
- *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- *  
- *  generated from SignalDSL.xcore
- * 
- *  
- */
-package org.eclipse.osbp.xtext.signal;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.osbp.xtext.datainterchange.DataInterchangeGroup;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Watcher Definition</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.WatcherDefinition#getInterchangegroup <em>Interchangegroup</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.WatcherDefinition#getExecutiontype <em>Executiontype</em>}</li>
- * </ul>
- *
- * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getWatcherDefinition()
- * @model
- * @generated
- */
-public interface WatcherDefinition extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Interchangegroup</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Interchangegroup</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Interchangegroup</em>' reference.
-	 * @see #setInterchangegroup(DataInterchangeGroup)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getWatcherDefinition_Interchangegroup()
-	 * @model
-	 * @generated
-	 */
-	DataInterchangeGroup getInterchangegroup();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.WatcherDefinition#getInterchangegroup <em>Interchangegroup</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Interchangegroup</em>' reference.
-	 * @see #getInterchangegroup()
-	 * @generated
-	 */
-	void setInterchangegroup(DataInterchangeGroup value);
-
-	/**
-	 * Returns the value of the '<em><b>Executiontype</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Executiontype</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Executiontype</em>' attribute.
-	 * @see org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum
-	 * @see #setExecutiontype(SignalExecutionTypeEnum)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getWatcherDefinition_Executiontype()
-	 * @model unique="false"
-	 * @generated
-	 */
-	SignalExecutionTypeEnum getExecutiontype();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.WatcherDefinition#getExecutiontype <em>Executiontype</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Executiontype</em>' attribute.
-	 * @see org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum
-	 * @see #getExecutiontype()
-	 * @generated
-	 */
-	void setExecutiontype(SignalExecutionTypeEnum value);
-
-} // WatcherDefinition
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/WatcherWithFileMask.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/WatcherWithFileMask.java
deleted file mode 100644
index 7ad1b6b..0000000
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/WatcherWithFileMask.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Copyright (c) 2011, 2018 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- *  
- *  Contributors:                                                      
- *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- *  
- *  generated from SignalDSL.xcore
- * 
- *  
- */
-package org.eclipse.osbp.xtext.signal;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Watcher With File Mask</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.WatcherWithFileMask#getFilemask <em>Filemask</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.WatcherWithFileMask#getInterchange <em>Interchange</em>}</li>
- * </ul>
- *
- * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getWatcherWithFileMask()
- * @model
- * @generated
- */
-public interface WatcherWithFileMask extends WatcherDefinition {
-	/**
-	 * Returns the value of the '<em><b>Filemask</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Filemask</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Filemask</em>' attribute.
-	 * @see #setFilemask(String)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getWatcherWithFileMask_Filemask()
-	 * @model unique="false"
-	 * @generated
-	 */
-	String getFilemask();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.WatcherWithFileMask#getFilemask <em>Filemask</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Filemask</em>' attribute.
-	 * @see #getFilemask()
-	 * @generated
-	 */
-	void setFilemask(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Interchange</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Interchange</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>Interchange</em>' containment reference.
-	 * @see #setInterchange(SignalDatainterchange)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getWatcherWithFileMask_Interchange()
-	 * @model containment="true"
-	 * @generated
-	 */
-	SignalDatainterchange getInterchange();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.WatcherWithFileMask#getInterchange <em>Interchange</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Interchange</em>' containment reference.
-	 * @see #getInterchange()
-	 * @generated
-	 */
-	void setInterchange(SignalDatainterchange value);
-
-} // WatcherWithFileMask
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/WatcherWithFileName.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/WatcherWithFileName.java
deleted file mode 100644
index ab78b15..0000000
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/WatcherWithFileName.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * Copyright (c) 2011, 2018 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- *  
- *  Contributors:                                                      
- *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- *  
- *  generated from SignalDSL.xcore
- * 
- *  
- */
-package org.eclipse.osbp.xtext.signal;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Watcher With File Name</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.WatcherWithFileName#getFilename <em>Filename</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.WatcherWithFileName#getInterchanges <em>Interchanges</em>}</li>
- * </ul>
- *
- * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getWatcherWithFileName()
- * @model
- * @generated
- */
-public interface WatcherWithFileName extends WatcherDefinition {
-	/**
-	 * Returns the value of the '<em><b>Filename</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Filename</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Filename</em>' attribute.
-	 * @see #setFilename(String)
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getWatcherWithFileName_Filename()
-	 * @model unique="false"
-	 * @generated
-	 */
-	String getFilename();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.osbp.xtext.signal.WatcherWithFileName#getFilename <em>Filename</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Filename</em>' attribute.
-	 * @see #getFilename()
-	 * @generated
-	 */
-	void setFilename(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Interchanges</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.osbp.xtext.signal.SignalDatainterchange}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Interchanges</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>Interchanges</em>' containment reference list.
-	 * @see org.eclipse.osbp.xtext.signal.SignalDSLPackage#getWatcherWithFileName_Interchanges()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<SignalDatainterchange> getInterchanges();
-
-} // WatcherWithFileName
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDSLFactoryImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDSLFactoryImpl.java
index 06443a1..ef3a2df 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDSLFactoryImpl.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDSLFactoryImpl.java
@@ -77,17 +77,16 @@
 			case SignalDSLPackage.SIGNAL_PACKAGE: return createSignalPackage();
 			case SignalDSLPackage.SIGNAL_DEFINITION: return createSignalDefinition();
 			case SignalDSLPackage.SIGNAL_WATCHER: return createSignalWatcher();
-			case SignalDSLPackage.WATCHER_DEFINITION: return createWatcherDefinition();
-			case SignalDSLPackage.WATCHER_WITH_FILE_MASK: return createWatcherWithFileMask();
-			case SignalDSLPackage.WATCHER_WITH_FILE_NAME: return createWatcherWithFileName();
-			case SignalDSLPackage.SCHEDULER_TYPE: return createSchedulerType();
 			case SignalDSLPackage.SIGNAL_SCHEDULER: return createSignalScheduler();
+			case SignalDSLPackage.SCHEDULER_TYPE: return createSchedulerType();
 			case SignalDSLPackage.CRON_SCHEDULER: return createCronScheduler();
 			case SignalDSLPackage.HOURLY_SCHEDULER: return createHourlyScheduler();
 			case SignalDSLPackage.DAILY_SCHEDULER: return createDailyScheduler();
 			case SignalDSLPackage.WEEKLY_SCHEDULER: return createWeeklyScheduler();
 			case SignalDSLPackage.MONTHLY_SCHEDULER: return createMonthlyScheduler();
+			case SignalDSLPackage.SIGNAL_TASK: return createSignalTask();
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE: return createSignalDatainterchange();
+			case SignalDSLPackage.SIGNAL_FUNCTION: return createSignalFunction();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -101,8 +100,8 @@
 	@Override
 	public Object createFromString(EDataType eDataType, String initialValue) {
 		switch (eDataType.getClassifierID()) {
-			case SignalDSLPackage.SIGNAL_ACTION_ENUM:
-				return createSignalActionEnumFromString(eDataType, initialValue);
+			case SignalDSLPackage.SIGNAL_ACTION_TYPE_ENUM:
+				return createSignalActionTypeEnumFromString(eDataType, initialValue);
 			case SignalDSLPackage.SIGNAL_EXECUTION_TYPE_ENUM:
 				return createSignalExecutionTypeEnumFromString(eDataType, initialValue);
 			case SignalDSLPackage.DAY_OF_WEEK_ENUM:
@@ -122,8 +121,8 @@
 	@Override
 	public String convertToString(EDataType eDataType, Object instanceValue) {
 		switch (eDataType.getClassifierID()) {
-			case SignalDSLPackage.SIGNAL_ACTION_ENUM:
-				return convertSignalActionEnumToString(eDataType, instanceValue);
+			case SignalDSLPackage.SIGNAL_ACTION_TYPE_ENUM:
+				return convertSignalActionTypeEnumToString(eDataType, instanceValue);
 			case SignalDSLPackage.SIGNAL_EXECUTION_TYPE_ENUM:
 				return convertSignalExecutionTypeEnumToString(eDataType, instanceValue);
 			case SignalDSLPackage.DAY_OF_WEEK_ENUM:
@@ -190,29 +189,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public WatcherDefinition createWatcherDefinition() {
-		WatcherDefinitionImpl watcherDefinition = new WatcherDefinitionImpl();
-		return watcherDefinition;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WatcherWithFileMask createWatcherWithFileMask() {
-		WatcherWithFileMaskImpl watcherWithFileMask = new WatcherWithFileMaskImpl();
-		return watcherWithFileMask;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WatcherWithFileName createWatcherWithFileName() {
-		WatcherWithFileNameImpl watcherWithFileName = new WatcherWithFileNameImpl();
-		return watcherWithFileName;
+	public SignalScheduler createSignalScheduler() {
+		SignalSchedulerImpl signalScheduler = new SignalSchedulerImpl();
+		return signalScheduler;
 	}
 
 	/**
@@ -230,16 +209,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SignalScheduler createSignalScheduler() {
-		SignalSchedulerImpl signalScheduler = new SignalSchedulerImpl();
-		return signalScheduler;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public CronScheduler createCronScheduler() {
 		CronSchedulerImpl cronScheduler = new CronSchedulerImpl();
 		return cronScheduler;
@@ -290,6 +259,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public SignalTask createSignalTask() {
+		SignalTaskImpl signalTask = new SignalTaskImpl();
+		return signalTask;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public SignalDatainterchange createSignalDatainterchange() {
 		SignalDatainterchangeImpl signalDatainterchange = new SignalDatainterchangeImpl();
 		return signalDatainterchange;
@@ -300,8 +279,18 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SignalActionEnum createSignalActionEnumFromString(EDataType eDataType, String initialValue) {
-		SignalActionEnum result = SignalActionEnum.get(initialValue);
+	public SignalFunction createSignalFunction() {
+		SignalFunctionImpl signalFunction = new SignalFunctionImpl();
+		return signalFunction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SignalActionTypeEnum createSignalActionTypeEnumFromString(EDataType eDataType, String initialValue) {
+		SignalActionTypeEnum result = SignalActionTypeEnum.get(initialValue);
 		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
 		return result;
 	}
@@ -311,7 +300,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String convertSignalActionEnumToString(EDataType eDataType, Object instanceValue) {
+	public String convertSignalActionTypeEnumToString(EDataType eDataType, Object instanceValue) {
 		return instanceValue == null ? null : instanceValue.toString();
 	}
 
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDSLPackageImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDSLPackageImpl.java
index f9b90b4..819b91b 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDSLPackageImpl.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDSLPackageImpl.java
@@ -32,27 +32,27 @@
 
 import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
 
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryDSLPackage;
+
 import org.eclipse.osbp.xtext.signal.CronScheduler;
 import org.eclipse.osbp.xtext.signal.DailyScheduler;
 import org.eclipse.osbp.xtext.signal.DayOfWeekEnum;
 import org.eclipse.osbp.xtext.signal.HourlyScheduler;
 import org.eclipse.osbp.xtext.signal.MonthlyScheduler;
 import org.eclipse.osbp.xtext.signal.SchedulerType;
-import org.eclipse.osbp.xtext.signal.SignalActionEnum;
+import org.eclipse.osbp.xtext.signal.SignalActionTypeEnum;
 import org.eclipse.osbp.xtext.signal.SignalDSLFactory;
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
 import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
 import org.eclipse.osbp.xtext.signal.SignalDefinition;
 import org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum;
+import org.eclipse.osbp.xtext.signal.SignalFunction;
 import org.eclipse.osbp.xtext.signal.SignalLazyResolver;
 import org.eclipse.osbp.xtext.signal.SignalModel;
 import org.eclipse.osbp.xtext.signal.SignalPackage;
-import org.eclipse.osbp.xtext.signal.SignalProcessor;
 import org.eclipse.osbp.xtext.signal.SignalScheduler;
+import org.eclipse.osbp.xtext.signal.SignalTask;
 import org.eclipse.osbp.xtext.signal.SignalWatcher;
-import org.eclipse.osbp.xtext.signal.WatcherDefinition;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName;
 import org.eclipse.osbp.xtext.signal.WeeklyScheduler;
 
 import org.eclipse.xtext.xtype.XtypePackage;
@@ -104,21 +104,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass watcherDefinitionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass watcherWithFileMaskEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass watcherWithFileNameEClass = null;
+	private EClass signalSchedulerEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -132,13 +118,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass signalSchedulerEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	private EClass cronSchedulerEClass = null;
 
 	/**
@@ -174,7 +153,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass signalProcessorEClass = null;
+	private EClass signalTaskEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -188,7 +167,14 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EEnum signalActionEnumEEnum = null;
+	private EClass signalFunctionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum signalActionTypeEnumEEnum = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -259,6 +245,7 @@
 
 		// Initialize simple dependencies
 		DataDSLPackage.eINSTANCE.eClass();
+		FunctionLibraryDSLPackage.eINSTANCE.eClass();
 
 		// Create package meta-data objects
 		theSignalDSLPackage.createPackageContents();
@@ -361,6 +348,33 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EReference getSignalDefinition_Interchangegroup() {
+		return (EReference)signalDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSignalDefinition_Executiontype() {
+		return (EAttribute)signalDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSignalDefinition_Tasks() {
+		return (EReference)signalDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getSignalWatcher() {
 		return signalWatcherEClass;
 	}
@@ -370,7 +384,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getSignalWatcher_Definition() {
+	public EReference getSignalWatcher_DefaultInterchange() {
 		return (EReference)signalWatcherEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -379,8 +393,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getWatcherDefinition() {
-		return watcherDefinitionEClass;
+	public EAttribute getSignalWatcher_HasFileMask() {
+		return (EAttribute)signalWatcherEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -388,80 +402,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getWatcherDefinition_Interchangegroup() {
-		return (EReference)watcherDefinitionEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getWatcherDefinition_Executiontype() {
-		return (EAttribute)watcherDefinitionEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getWatcherWithFileMask() {
-		return watcherWithFileMaskEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getWatcherWithFileMask_Filemask() {
-		return (EAttribute)watcherWithFileMaskEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getWatcherWithFileMask_Interchange() {
-		return (EReference)watcherWithFileMaskEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getWatcherWithFileName() {
-		return watcherWithFileNameEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getWatcherWithFileName_Filename() {
-		return (EAttribute)watcherWithFileNameEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getWatcherWithFileName_Interchanges() {
-		return (EReference)watcherWithFileNameEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getSchedulerType() {
-		return schedulerTypeEClass;
+	public EAttribute getSignalWatcher_Identifier() {
+		return (EAttribute)signalWatcherEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -478,7 +420,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getSignalScheduler_Interchangegroup() {
+	public EReference getSignalScheduler_Schedulertype() {
 		return (EReference)signalSchedulerEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -487,26 +429,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getSignalScheduler_Executiontype() {
-		return (EAttribute)signalSchedulerEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSignalScheduler_Schedulertype() {
-		return (EReference)signalSchedulerEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSignalScheduler_Interchanges() {
-		return (EReference)signalSchedulerEClass.getEStructuralFeatures().get(3);
+	public EClass getSchedulerType() {
+		return schedulerTypeEClass;
 	}
 
 	/**
@@ -649,8 +573,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getSignalProcessor() {
-		return signalProcessorEClass;
+	public EClass getSignalTask() {
+		return signalTaskEClass;
 	}
 
 	/**
@@ -667,7 +591,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getSignalDatainterchange_DataAction() {
+	public EAttribute getSignalDatainterchange_ActionType() {
 		return (EAttribute)signalDatainterchangeEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -694,8 +618,62 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EEnum getSignalActionEnum() {
-		return signalActionEnumEEnum;
+	public EClass getSignalFunction() {
+		return signalFunctionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSignalFunction_Group() {
+		return (EReference)signalFunctionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSignalFunction_DoExecuteFunction() {
+		return (EReference)signalFunctionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSignalFunction_OnImportFile() {
+		return (EAttribute)signalFunctionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSignalFunction_OnExportFile() {
+		return (EAttribute)signalFunctionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSignalFunction_SupportInterchange() {
+		return (EReference)signalFunctionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getSignalActionTypeEnum() {
+		return signalActionTypeEnumEEnum;
 	}
 
 	/**
@@ -765,29 +743,19 @@
 
 		signalDefinitionEClass = createEClass(SIGNAL_DEFINITION);
 		createEAttribute(signalDefinitionEClass, SIGNAL_DEFINITION__NAME);
+		createEReference(signalDefinitionEClass, SIGNAL_DEFINITION__INTERCHANGEGROUP);
+		createEAttribute(signalDefinitionEClass, SIGNAL_DEFINITION__EXECUTIONTYPE);
+		createEReference(signalDefinitionEClass, SIGNAL_DEFINITION__TASKS);
 
 		signalWatcherEClass = createEClass(SIGNAL_WATCHER);
-		createEReference(signalWatcherEClass, SIGNAL_WATCHER__DEFINITION);
-
-		watcherDefinitionEClass = createEClass(WATCHER_DEFINITION);
-		createEReference(watcherDefinitionEClass, WATCHER_DEFINITION__INTERCHANGEGROUP);
-		createEAttribute(watcherDefinitionEClass, WATCHER_DEFINITION__EXECUTIONTYPE);
-
-		watcherWithFileMaskEClass = createEClass(WATCHER_WITH_FILE_MASK);
-		createEAttribute(watcherWithFileMaskEClass, WATCHER_WITH_FILE_MASK__FILEMASK);
-		createEReference(watcherWithFileMaskEClass, WATCHER_WITH_FILE_MASK__INTERCHANGE);
-
-		watcherWithFileNameEClass = createEClass(WATCHER_WITH_FILE_NAME);
-		createEAttribute(watcherWithFileNameEClass, WATCHER_WITH_FILE_NAME__FILENAME);
-		createEReference(watcherWithFileNameEClass, WATCHER_WITH_FILE_NAME__INTERCHANGES);
-
-		schedulerTypeEClass = createEClass(SCHEDULER_TYPE);
+		createEReference(signalWatcherEClass, SIGNAL_WATCHER__DEFAULT_INTERCHANGE);
+		createEAttribute(signalWatcherEClass, SIGNAL_WATCHER__HAS_FILE_MASK);
+		createEAttribute(signalWatcherEClass, SIGNAL_WATCHER__IDENTIFIER);
 
 		signalSchedulerEClass = createEClass(SIGNAL_SCHEDULER);
-		createEReference(signalSchedulerEClass, SIGNAL_SCHEDULER__INTERCHANGEGROUP);
-		createEAttribute(signalSchedulerEClass, SIGNAL_SCHEDULER__EXECUTIONTYPE);
 		createEReference(signalSchedulerEClass, SIGNAL_SCHEDULER__SCHEDULERTYPE);
-		createEReference(signalSchedulerEClass, SIGNAL_SCHEDULER__INTERCHANGES);
+
+		schedulerTypeEClass = createEClass(SCHEDULER_TYPE);
 
 		cronSchedulerEClass = createEClass(CRON_SCHEDULER);
 		createEAttribute(cronSchedulerEClass, CRON_SCHEDULER__EXPRESSION);
@@ -809,15 +777,22 @@
 		createEAttribute(monthlySchedulerEClass, MONTHLY_SCHEDULER__HOUR);
 		createEAttribute(monthlySchedulerEClass, MONTHLY_SCHEDULER__MINUTE);
 
-		signalProcessorEClass = createEClass(SIGNAL_PROCESSOR);
+		signalTaskEClass = createEClass(SIGNAL_TASK);
 
 		signalDatainterchangeEClass = createEClass(SIGNAL_DATAINTERCHANGE);
-		createEAttribute(signalDatainterchangeEClass, SIGNAL_DATAINTERCHANGE__DATA_ACTION);
+		createEAttribute(signalDatainterchangeEClass, SIGNAL_DATAINTERCHANGE__ACTION_TYPE);
 		createEReference(signalDatainterchangeEClass, SIGNAL_DATAINTERCHANGE__DATA_REF);
 		createEAttribute(signalDatainterchangeEClass, SIGNAL_DATAINTERCHANGE__BASEINTERCHANGE);
 
+		signalFunctionEClass = createEClass(SIGNAL_FUNCTION);
+		createEReference(signalFunctionEClass, SIGNAL_FUNCTION__GROUP);
+		createEReference(signalFunctionEClass, SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION);
+		createEAttribute(signalFunctionEClass, SIGNAL_FUNCTION__ON_IMPORT_FILE);
+		createEAttribute(signalFunctionEClass, SIGNAL_FUNCTION__ON_EXPORT_FILE);
+		createEReference(signalFunctionEClass, SIGNAL_FUNCTION__SUPPORT_INTERCHANGE);
+
 		// Create enums
-		signalActionEnumEEnum = createEEnum(SIGNAL_ACTION_ENUM);
+		signalActionTypeEnumEEnum = createEEnum(SIGNAL_ACTION_TYPE_ENUM);
 		signalExecutionTypeEnumEEnum = createEEnum(SIGNAL_EXECUTION_TYPE_ENUM);
 		dayOfWeekEnumEEnum = createEEnum(DAY_OF_WEEK_ENUM);
 
@@ -853,6 +828,7 @@
 		EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
 		OSBPTypesPackage theOSBPTypesPackage = (OSBPTypesPackage)EPackage.Registry.INSTANCE.getEPackage(OSBPTypesPackage.eNS_URI);
 		DataDSLPackage theDataDSLPackage = (DataDSLPackage)EPackage.Registry.INSTANCE.getEPackage(DataDSLPackage.eNS_URI);
+		FunctionLibraryDSLPackage theFunctionLibraryDSLPackage = (FunctionLibraryDSLPackage)EPackage.Registry.INSTANCE.getEPackage(FunctionLibraryDSLPackage.eNS_URI);
 
 		// Create type parameters
 
@@ -862,17 +838,16 @@
 		signalPackageEClass.getESuperTypes().add(theOSBPTypesPackage.getLPackage());
 		signalDefinitionEClass.getESuperTypes().add(this.getSignalLazyResolver());
 		signalWatcherEClass.getESuperTypes().add(this.getSignalDefinition());
-		watcherWithFileMaskEClass.getESuperTypes().add(this.getWatcherDefinition());
-		watcherWithFileNameEClass.getESuperTypes().add(this.getWatcherDefinition());
-		schedulerTypeEClass.getESuperTypes().add(this.getSignalLazyResolver());
 		signalSchedulerEClass.getESuperTypes().add(this.getSignalDefinition());
+		schedulerTypeEClass.getESuperTypes().add(this.getSignalLazyResolver());
 		cronSchedulerEClass.getESuperTypes().add(this.getSchedulerType());
 		hourlySchedulerEClass.getESuperTypes().add(this.getSchedulerType());
 		dailySchedulerEClass.getESuperTypes().add(this.getSchedulerType());
 		weeklySchedulerEClass.getESuperTypes().add(this.getSchedulerType());
 		monthlySchedulerEClass.getESuperTypes().add(this.getSchedulerType());
-		signalProcessorEClass.getESuperTypes().add(this.getSignalLazyResolver());
-		signalDatainterchangeEClass.getESuperTypes().add(this.getSignalProcessor());
+		signalTaskEClass.getESuperTypes().add(this.getSignalLazyResolver());
+		signalDatainterchangeEClass.getESuperTypes().add(this.getSignalTask());
+		signalFunctionEClass.getESuperTypes().add(this.getSignalTask());
 
 		// Initialize classes, features, and operations; add parameters
 		initEClass(signalModelEClass, SignalModel.class, "SignalModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -889,29 +864,19 @@
 
 		initEClass(signalDefinitionEClass, SignalDefinition.class, "SignalDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getSignalDefinition_Name(), theEcorePackage.getEString(), "name", null, 0, 1, SignalDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getSignalDefinition_Interchangegroup(), theDataDSLPackage.getDataInterchangeGroup(), null, "interchangegroup", null, 0, 1, SignalDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSignalDefinition_Executiontype(), this.getSignalExecutionTypeEnum(), "executiontype", null, 0, 1, SignalDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getSignalDefinition_Tasks(), this.getSignalTask(), null, "tasks", null, 0, -1, SignalDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(signalWatcherEClass, SignalWatcher.class, "SignalWatcher", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getSignalWatcher_Definition(), this.getWatcherDefinition(), null, "definition", null, 0, 1, SignalWatcher.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(watcherDefinitionEClass, WatcherDefinition.class, "WatcherDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getWatcherDefinition_Interchangegroup(), theDataDSLPackage.getDataInterchangeGroup(), null, "interchangegroup", null, 0, 1, WatcherDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getWatcherDefinition_Executiontype(), this.getSignalExecutionTypeEnum(), "executiontype", null, 0, 1, WatcherDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(watcherWithFileMaskEClass, WatcherWithFileMask.class, "WatcherWithFileMask", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getWatcherWithFileMask_Filemask(), theEcorePackage.getEString(), "filemask", null, 0, 1, WatcherWithFileMask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getWatcherWithFileMask_Interchange(), this.getSignalDatainterchange(), null, "interchange", null, 0, 1, WatcherWithFileMask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(watcherWithFileNameEClass, WatcherWithFileName.class, "WatcherWithFileName", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getWatcherWithFileName_Filename(), theEcorePackage.getEString(), "filename", null, 0, 1, WatcherWithFileName.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getWatcherWithFileName_Interchanges(), this.getSignalDatainterchange(), null, "interchanges", null, 0, -1, WatcherWithFileName.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(schedulerTypeEClass, SchedulerType.class, "SchedulerType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSignalWatcher_DefaultInterchange(), theDataDSLPackage.getDataInterchange(), null, "defaultInterchange", null, 0, 1, SignalWatcher.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSignalWatcher_HasFileMask(), theEcorePackage.getEBoolean(), "hasFileMask", null, 0, 1, SignalWatcher.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSignalWatcher_Identifier(), theEcorePackage.getEString(), "identifier", null, 0, 1, SignalWatcher.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(signalSchedulerEClass, SignalScheduler.class, "SignalScheduler", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getSignalScheduler_Interchangegroup(), theDataDSLPackage.getDataInterchangeGroup(), null, "interchangegroup", null, 0, 1, SignalScheduler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getSignalScheduler_Executiontype(), this.getSignalExecutionTypeEnum(), "executiontype", null, 0, 1, SignalScheduler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getSignalScheduler_Schedulertype(), this.getSchedulerType(), null, "schedulertype", null, 0, 1, SignalScheduler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getSignalScheduler_Interchanges(), this.getSignalDatainterchange(), null, "interchanges", null, 0, -1, SignalScheduler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(schedulerTypeEClass, SchedulerType.class, "SchedulerType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(cronSchedulerEClass, CronScheduler.class, "CronScheduler", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getCronScheduler_Expression(), theEcorePackage.getEString(), "expression", null, 0, 1, CronScheduler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -933,18 +898,24 @@
 		initEAttribute(getMonthlyScheduler_Hour(), theEcorePackage.getEInt(), "hour", null, 0, 1, MonthlyScheduler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getMonthlyScheduler_Minute(), theEcorePackage.getEInt(), "minute", null, 0, 1, MonthlyScheduler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(signalProcessorEClass, SignalProcessor.class, "SignalProcessor", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEClass(signalTaskEClass, SignalTask.class, "SignalTask", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(signalDatainterchangeEClass, SignalDatainterchange.class, "SignalDatainterchange", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getSignalDatainterchange_DataAction(), this.getSignalActionEnum(), "dataAction", null, 0, 1, SignalDatainterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSignalDatainterchange_ActionType(), this.getSignalActionTypeEnum(), "actionType", null, 0, 1, SignalDatainterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getSignalDatainterchange_DataRef(), theDataDSLPackage.getDataInterchange(), null, "dataRef", null, 0, 1, SignalDatainterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getSignalDatainterchange_Baseinterchange(), theEcorePackage.getEBoolean(), "baseinterchange", null, 0, 1, SignalDatainterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(signalFunctionEClass, SignalFunction.class, "SignalFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSignalFunction_Group(), theFunctionLibraryDSLPackage.getFunctionLibraryActionGroup(), null, "group", null, 0, 1, SignalFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getSignalFunction_DoExecuteFunction(), theFunctionLibraryDSLPackage.getFunctionLibraryExecute(), null, "doExecuteFunction", null, 0, 1, SignalFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSignalFunction_OnImportFile(), theEcorePackage.getEBoolean(), "onImportFile", null, 0, 1, SignalFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSignalFunction_OnExportFile(), theEcorePackage.getEBoolean(), "onExportFile", null, 0, 1, SignalFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getSignalFunction_SupportInterchange(), theDataDSLPackage.getDataInterchange(), null, "supportInterchange", null, 0, 1, SignalFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		// Initialize enums and add enum literals
-		initEEnum(signalActionEnumEEnum, SignalActionEnum.class, "SignalActionEnum");
-		addEEnumLiteral(signalActionEnumEEnum, SignalActionEnum.DATAIMPORT);
-		addEEnumLiteral(signalActionEnumEEnum, SignalActionEnum.DATAEXPORT);
-		addEEnumLiteral(signalActionEnumEEnum, SignalActionEnum.NONE);
+		initEEnum(signalActionTypeEnumEEnum, SignalActionTypeEnum.class, "SignalActionTypeEnum");
+		addEEnumLiteral(signalActionTypeEnumEEnum, SignalActionTypeEnum.DATAIMPORT);
+		addEEnumLiteral(signalActionTypeEnumEEnum, SignalActionTypeEnum.DATAEXPORT);
 
 		initEEnum(signalExecutionTypeEnumEEnum, SignalExecutionTypeEnum.class, "SignalExecutionTypeEnum");
 		addEEnumLiteral(signalExecutionTypeEnumEEnum, SignalExecutionTypeEnum.SEQ);
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDatainterchangeImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDatainterchangeImpl.java
index e1414f5..fe29797 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDatainterchangeImpl.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDatainterchangeImpl.java
@@ -25,7 +25,7 @@
 
 import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
 
-import org.eclipse.osbp.xtext.signal.SignalActionEnum;
+import org.eclipse.osbp.xtext.signal.SignalActionTypeEnum;
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
 import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
 
@@ -37,33 +37,33 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalDatainterchangeImpl#getDataAction <em>Data Action</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalDatainterchangeImpl#getActionType <em>Action Type</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalDatainterchangeImpl#getDataRef <em>Data Ref</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalDatainterchangeImpl#isBaseinterchange <em>Baseinterchange</em>}</li>
  * </ul>
  *
  * @generated
  */
-public class SignalDatainterchangeImpl extends SignalLazyResolverImpl implements SignalDatainterchange {
+public class SignalDatainterchangeImpl extends SignalTaskImpl implements SignalDatainterchange {
 	/**
-	 * The default value of the '{@link #getDataAction() <em>Data Action</em>}' attribute.
+	 * The default value of the '{@link #getActionType() <em>Action Type</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getDataAction()
+	 * @see #getActionType()
 	 * @generated
 	 * @ordered
 	 */
-	protected static final SignalActionEnum DATA_ACTION_EDEFAULT = SignalActionEnum.DATAIMPORT;
+	protected static final SignalActionTypeEnum ACTION_TYPE_EDEFAULT = SignalActionTypeEnum.DATAIMPORT;
 
 	/**
-	 * The cached value of the '{@link #getDataAction() <em>Data Action</em>}' attribute.
+	 * The cached value of the '{@link #getActionType() <em>Action Type</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getDataAction()
+	 * @see #getActionType()
 	 * @generated
 	 * @ordered
 	 */
-	protected SignalActionEnum dataAction = DATA_ACTION_EDEFAULT;
+	protected SignalActionTypeEnum actionType = ACTION_TYPE_EDEFAULT;
 
 	/**
 	 * The cached value of the '{@link #getDataRef() <em>Data Ref</em>}' reference.
@@ -119,8 +119,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SignalActionEnum getDataAction() {
-		return dataAction;
+	public SignalActionTypeEnum getActionType() {
+		return actionType;
 	}
 
 	/**
@@ -128,11 +128,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setDataAction(SignalActionEnum newDataAction) {
-		SignalActionEnum oldDataAction = dataAction;
-		dataAction = newDataAction == null ? DATA_ACTION_EDEFAULT : newDataAction;
+	public void setActionType(SignalActionTypeEnum newActionType) {
+		SignalActionTypeEnum oldActionType = actionType;
+		actionType = newActionType == null ? ACTION_TYPE_EDEFAULT : newActionType;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_ACTION, oldDataAction, dataAction));
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_DATAINTERCHANGE__ACTION_TYPE, oldActionType, actionType));
 	}
 
 	/**
@@ -202,8 +202,8 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_ACTION:
-				return getDataAction();
+			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__ACTION_TYPE:
+				return getActionType();
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_REF:
 				if (resolve) return getDataRef();
 				return basicGetDataRef();
@@ -221,8 +221,8 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_ACTION:
-				setDataAction((SignalActionEnum)newValue);
+			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__ACTION_TYPE:
+				setActionType((SignalActionTypeEnum)newValue);
 				return;
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_REF:
 				setDataRef((DataInterchange)newValue);
@@ -242,8 +242,8 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_ACTION:
-				setDataAction(DATA_ACTION_EDEFAULT);
+			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__ACTION_TYPE:
+				setActionType(ACTION_TYPE_EDEFAULT);
 				return;
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_REF:
 				setDataRef((DataInterchange)null);
@@ -263,8 +263,8 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_ACTION:
-				return dataAction != DATA_ACTION_EDEFAULT;
+			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__ACTION_TYPE:
+				return actionType != ACTION_TYPE_EDEFAULT;
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__DATA_REF:
 				return dataRef != null;
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE__BASEINTERCHANGE:
@@ -283,8 +283,8 @@
 		if (eIsProxy()) return super.toString();
 
 		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (dataAction: ");
-		result.append(dataAction);
+		result.append(" (actionType: ");
+		result.append(actionType);
 		result.append(", baseinterchange: ");
 		result.append(baseinterchange);
 		result.append(')');
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDefinitionImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDefinitionImpl.java
index c632736..87080e5 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDefinitionImpl.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalDefinitionImpl.java
@@ -16,14 +16,27 @@
  */
 package org.eclipse.osbp.xtext.signal.impl;
 
+import java.util.Collection;
+
 import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeGroup;
+
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
 import org.eclipse.osbp.xtext.signal.SignalDefinition;
+import org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum;
+import org.eclipse.osbp.xtext.signal.SignalTask;
 
 /**
  * <!-- begin-user-doc -->
@@ -34,6 +47,9 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalDefinitionImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalDefinitionImpl#getInterchangegroup <em>Interchangegroup</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalDefinitionImpl#getExecutiontype <em>Executiontype</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalDefinitionImpl#getTasks <em>Tasks</em>}</li>
  * </ul>
  *
  * @generated
@@ -60,6 +76,46 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getInterchangegroup() <em>Interchangegroup</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInterchangegroup()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataInterchangeGroup interchangegroup;
+
+	/**
+	 * The default value of the '{@link #getExecutiontype() <em>Executiontype</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExecutiontype()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final SignalExecutionTypeEnum EXECUTIONTYPE_EDEFAULT = SignalExecutionTypeEnum.SEQ;
+
+	/**
+	 * The cached value of the '{@link #getExecutiontype() <em>Executiontype</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExecutiontype()
+	 * @generated
+	 * @ordered
+	 */
+	protected SignalExecutionTypeEnum executiontype = EXECUTIONTYPE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getTasks() <em>Tasks</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTasks()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<SignalTask> tasks;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -104,11 +160,103 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public DataInterchangeGroup getInterchangegroup() {
+		if (interchangegroup != null && interchangegroup.eIsProxy()) {
+			InternalEObject oldInterchangegroup = (InternalEObject)interchangegroup;
+			interchangegroup = (DataInterchangeGroup)eResolveProxy(oldInterchangegroup);
+			if (interchangegroup != oldInterchangegroup) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SignalDSLPackage.SIGNAL_DEFINITION__INTERCHANGEGROUP, oldInterchangegroup, interchangegroup));
+			}
+		}
+		return interchangegroup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeGroup basicGetInterchangegroup() {
+		return interchangegroup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInterchangegroup(DataInterchangeGroup newInterchangegroup) {
+		DataInterchangeGroup oldInterchangegroup = interchangegroup;
+		interchangegroup = newInterchangegroup;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_DEFINITION__INTERCHANGEGROUP, oldInterchangegroup, interchangegroup));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SignalExecutionTypeEnum getExecutiontype() {
+		return executiontype;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExecutiontype(SignalExecutionTypeEnum newExecutiontype) {
+		SignalExecutionTypeEnum oldExecutiontype = executiontype;
+		executiontype = newExecutiontype == null ? EXECUTIONTYPE_EDEFAULT : newExecutiontype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_DEFINITION__EXECUTIONTYPE, oldExecutiontype, executiontype));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<SignalTask> getTasks() {
+		if (tasks == null) {
+			tasks = new EObjectContainmentEList<SignalTask>(SignalTask.class, this, SignalDSLPackage.SIGNAL_DEFINITION__TASKS);
+		}
+		return tasks;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SignalDSLPackage.SIGNAL_DEFINITION__TASKS:
+				return ((InternalEList<?>)getTasks()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case SignalDSLPackage.SIGNAL_DEFINITION__NAME:
 				return getName();
+			case SignalDSLPackage.SIGNAL_DEFINITION__INTERCHANGEGROUP:
+				if (resolve) return getInterchangegroup();
+				return basicGetInterchangegroup();
+			case SignalDSLPackage.SIGNAL_DEFINITION__EXECUTIONTYPE:
+				return getExecutiontype();
+			case SignalDSLPackage.SIGNAL_DEFINITION__TASKS:
+				return getTasks();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -118,12 +266,23 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case SignalDSLPackage.SIGNAL_DEFINITION__NAME:
 				setName((String)newValue);
 				return;
+			case SignalDSLPackage.SIGNAL_DEFINITION__INTERCHANGEGROUP:
+				setInterchangegroup((DataInterchangeGroup)newValue);
+				return;
+			case SignalDSLPackage.SIGNAL_DEFINITION__EXECUTIONTYPE:
+				setExecutiontype((SignalExecutionTypeEnum)newValue);
+				return;
+			case SignalDSLPackage.SIGNAL_DEFINITION__TASKS:
+				getTasks().clear();
+				getTasks().addAll((Collection<? extends SignalTask>)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -139,6 +298,15 @@
 			case SignalDSLPackage.SIGNAL_DEFINITION__NAME:
 				setName(NAME_EDEFAULT);
 				return;
+			case SignalDSLPackage.SIGNAL_DEFINITION__INTERCHANGEGROUP:
+				setInterchangegroup((DataInterchangeGroup)null);
+				return;
+			case SignalDSLPackage.SIGNAL_DEFINITION__EXECUTIONTYPE:
+				setExecutiontype(EXECUTIONTYPE_EDEFAULT);
+				return;
+			case SignalDSLPackage.SIGNAL_DEFINITION__TASKS:
+				getTasks().clear();
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -153,6 +321,12 @@
 		switch (featureID) {
 			case SignalDSLPackage.SIGNAL_DEFINITION__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case SignalDSLPackage.SIGNAL_DEFINITION__INTERCHANGEGROUP:
+				return interchangegroup != null;
+			case SignalDSLPackage.SIGNAL_DEFINITION__EXECUTIONTYPE:
+				return executiontype != EXECUTIONTYPE_EDEFAULT;
+			case SignalDSLPackage.SIGNAL_DEFINITION__TASKS:
+				return tasks != null && !tasks.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
@@ -169,6 +343,8 @@
 		StringBuffer result = new StringBuffer(super.toString());
 		result.append(" (name: ");
 		result.append(name);
+		result.append(", executiontype: ");
+		result.append(executiontype);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalFunctionImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalFunctionImpl.java
new file mode 100644
index 0000000..9d52b28
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalFunctionImpl.java
@@ -0,0 +1,416 @@
+/**
+ * Copyright (c) 2011, 2018 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0 
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from SignalDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.signal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryActionGroup;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryExecute;
+
+import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
+import org.eclipse.osbp.xtext.signal.SignalFunction;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Signal Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalFunctionImpl#getGroup <em>Group</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalFunctionImpl#getDoExecuteFunction <em>Do Execute Function</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalFunctionImpl#isOnImportFile <em>On Import File</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalFunctionImpl#isOnExportFile <em>On Export File</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalFunctionImpl#getSupportInterchange <em>Support Interchange</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SignalFunctionImpl extends SignalTaskImpl implements SignalFunction {
+	/**
+	 * The cached value of the '{@link #getGroup() <em>Group</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGroup()
+	 * @generated
+	 * @ordered
+	 */
+	protected FunctionLibraryActionGroup group;
+
+	/**
+	 * The cached value of the '{@link #getDoExecuteFunction() <em>Do Execute Function</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDoExecuteFunction()
+	 * @generated
+	 * @ordered
+	 */
+	protected FunctionLibraryExecute doExecuteFunction;
+
+	/**
+	 * The default value of the '{@link #isOnImportFile() <em>On Import File</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOnImportFile()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ON_IMPORT_FILE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isOnImportFile() <em>On Import File</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOnImportFile()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean onImportFile = ON_IMPORT_FILE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isOnExportFile() <em>On Export File</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOnExportFile()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ON_EXPORT_FILE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isOnExportFile() <em>On Export File</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOnExportFile()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean onExportFile = ON_EXPORT_FILE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getSupportInterchange() <em>Support Interchange</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSupportInterchange()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataInterchange supportInterchange;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SignalFunctionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SignalDSLPackage.Literals.SIGNAL_FUNCTION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionLibraryActionGroup getGroup() {
+		if (group != null && group.eIsProxy()) {
+			InternalEObject oldGroup = (InternalEObject)group;
+			group = (FunctionLibraryActionGroup)eResolveProxy(oldGroup);
+			if (group != oldGroup) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SignalDSLPackage.SIGNAL_FUNCTION__GROUP, oldGroup, group));
+			}
+		}
+		return group;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionLibraryActionGroup basicGetGroup() {
+		return group;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGroup(FunctionLibraryActionGroup newGroup) {
+		FunctionLibraryActionGroup oldGroup = group;
+		group = newGroup;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_FUNCTION__GROUP, oldGroup, group));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionLibraryExecute getDoExecuteFunction() {
+		if (doExecuteFunction != null && doExecuteFunction.eIsProxy()) {
+			InternalEObject oldDoExecuteFunction = (InternalEObject)doExecuteFunction;
+			doExecuteFunction = (FunctionLibraryExecute)eResolveProxy(oldDoExecuteFunction);
+			if (doExecuteFunction != oldDoExecuteFunction) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SignalDSLPackage.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION, oldDoExecuteFunction, doExecuteFunction));
+			}
+		}
+		return doExecuteFunction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionLibraryExecute basicGetDoExecuteFunction() {
+		return doExecuteFunction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDoExecuteFunction(FunctionLibraryExecute newDoExecuteFunction) {
+		FunctionLibraryExecute oldDoExecuteFunction = doExecuteFunction;
+		doExecuteFunction = newDoExecuteFunction;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION, oldDoExecuteFunction, doExecuteFunction));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isOnImportFile() {
+		return onImportFile;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOnImportFile(boolean newOnImportFile) {
+		boolean oldOnImportFile = onImportFile;
+		onImportFile = newOnImportFile;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_FUNCTION__ON_IMPORT_FILE, oldOnImportFile, onImportFile));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isOnExportFile() {
+		return onExportFile;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOnExportFile(boolean newOnExportFile) {
+		boolean oldOnExportFile = onExportFile;
+		onExportFile = newOnExportFile;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_FUNCTION__ON_EXPORT_FILE, oldOnExportFile, onExportFile));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchange getSupportInterchange() {
+		if (supportInterchange != null && supportInterchange.eIsProxy()) {
+			InternalEObject oldSupportInterchange = (InternalEObject)supportInterchange;
+			supportInterchange = (DataInterchange)eResolveProxy(oldSupportInterchange);
+			if (supportInterchange != oldSupportInterchange) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SignalDSLPackage.SIGNAL_FUNCTION__SUPPORT_INTERCHANGE, oldSupportInterchange, supportInterchange));
+			}
+		}
+		return supportInterchange;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchange basicGetSupportInterchange() {
+		return supportInterchange;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSupportInterchange(DataInterchange newSupportInterchange) {
+		DataInterchange oldSupportInterchange = supportInterchange;
+		supportInterchange = newSupportInterchange;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_FUNCTION__SUPPORT_INTERCHANGE, oldSupportInterchange, supportInterchange));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SignalDSLPackage.SIGNAL_FUNCTION__GROUP:
+				if (resolve) return getGroup();
+				return basicGetGroup();
+			case SignalDSLPackage.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION:
+				if (resolve) return getDoExecuteFunction();
+				return basicGetDoExecuteFunction();
+			case SignalDSLPackage.SIGNAL_FUNCTION__ON_IMPORT_FILE:
+				return isOnImportFile();
+			case SignalDSLPackage.SIGNAL_FUNCTION__ON_EXPORT_FILE:
+				return isOnExportFile();
+			case SignalDSLPackage.SIGNAL_FUNCTION__SUPPORT_INTERCHANGE:
+				if (resolve) return getSupportInterchange();
+				return basicGetSupportInterchange();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SignalDSLPackage.SIGNAL_FUNCTION__GROUP:
+				setGroup((FunctionLibraryActionGroup)newValue);
+				return;
+			case SignalDSLPackage.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION:
+				setDoExecuteFunction((FunctionLibraryExecute)newValue);
+				return;
+			case SignalDSLPackage.SIGNAL_FUNCTION__ON_IMPORT_FILE:
+				setOnImportFile((Boolean)newValue);
+				return;
+			case SignalDSLPackage.SIGNAL_FUNCTION__ON_EXPORT_FILE:
+				setOnExportFile((Boolean)newValue);
+				return;
+			case SignalDSLPackage.SIGNAL_FUNCTION__SUPPORT_INTERCHANGE:
+				setSupportInterchange((DataInterchange)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SignalDSLPackage.SIGNAL_FUNCTION__GROUP:
+				setGroup((FunctionLibraryActionGroup)null);
+				return;
+			case SignalDSLPackage.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION:
+				setDoExecuteFunction((FunctionLibraryExecute)null);
+				return;
+			case SignalDSLPackage.SIGNAL_FUNCTION__ON_IMPORT_FILE:
+				setOnImportFile(ON_IMPORT_FILE_EDEFAULT);
+				return;
+			case SignalDSLPackage.SIGNAL_FUNCTION__ON_EXPORT_FILE:
+				setOnExportFile(ON_EXPORT_FILE_EDEFAULT);
+				return;
+			case SignalDSLPackage.SIGNAL_FUNCTION__SUPPORT_INTERCHANGE:
+				setSupportInterchange((DataInterchange)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SignalDSLPackage.SIGNAL_FUNCTION__GROUP:
+				return group != null;
+			case SignalDSLPackage.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION:
+				return doExecuteFunction != null;
+			case SignalDSLPackage.SIGNAL_FUNCTION__ON_IMPORT_FILE:
+				return onImportFile != ON_IMPORT_FILE_EDEFAULT;
+			case SignalDSLPackage.SIGNAL_FUNCTION__ON_EXPORT_FILE:
+				return onExportFile != ON_EXPORT_FILE_EDEFAULT;
+			case SignalDSLPackage.SIGNAL_FUNCTION__SUPPORT_INTERCHANGE:
+				return supportInterchange != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (onImportFile: ");
+		result.append(onImportFile);
+		result.append(", onExportFile: ");
+		result.append(onExportFile);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SignalFunctionImpl
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalSchedulerImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalSchedulerImpl.java
index 5cb3dfc..cff46d0 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalSchedulerImpl.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalSchedulerImpl.java
@@ -16,27 +16,16 @@
  */
 package org.eclipse.osbp.xtext.signal.impl;
 
-import java.util.Collection;
-
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
-import org.eclipse.emf.common.util.EList;
-
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.osbp.xtext.datainterchange.DataInterchangeGroup;
-
 import org.eclipse.osbp.xtext.signal.SchedulerType;
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
-import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
-import org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum;
 import org.eclipse.osbp.xtext.signal.SignalScheduler;
 
 /**
@@ -47,46 +36,13 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalSchedulerImpl#getInterchangegroup <em>Interchangegroup</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalSchedulerImpl#getExecutiontype <em>Executiontype</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalSchedulerImpl#getSchedulertype <em>Schedulertype</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalSchedulerImpl#getInterchanges <em>Interchanges</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class SignalSchedulerImpl extends SignalDefinitionImpl implements SignalScheduler {
 	/**
-	 * The cached value of the '{@link #getInterchangegroup() <em>Interchangegroup</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInterchangegroup()
-	 * @generated
-	 * @ordered
-	 */
-	protected DataInterchangeGroup interchangegroup;
-
-	/**
-	 * The default value of the '{@link #getExecutiontype() <em>Executiontype</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExecutiontype()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final SignalExecutionTypeEnum EXECUTIONTYPE_EDEFAULT = SignalExecutionTypeEnum.SEQ;
-
-	/**
-	 * The cached value of the '{@link #getExecutiontype() <em>Executiontype</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExecutiontype()
-	 * @generated
-	 * @ordered
-	 */
-	protected SignalExecutionTypeEnum executiontype = EXECUTIONTYPE_EDEFAULT;
-
-	/**
 	 * The cached value of the '{@link #getSchedulertype() <em>Schedulertype</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -97,16 +53,6 @@
 	protected SchedulerType schedulertype;
 
 	/**
-	 * The cached value of the '{@link #getInterchanges() <em>Interchanges</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInterchanges()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<SignalDatainterchange> interchanges;
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -130,65 +76,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public DataInterchangeGroup getInterchangegroup() {
-		if (interchangegroup != null && interchangegroup.eIsProxy()) {
-			InternalEObject oldInterchangegroup = (InternalEObject)interchangegroup;
-			interchangegroup = (DataInterchangeGroup)eResolveProxy(oldInterchangegroup);
-			if (interchangegroup != oldInterchangegroup) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SignalDSLPackage.SIGNAL_SCHEDULER__INTERCHANGEGROUP, oldInterchangegroup, interchangegroup));
-			}
-		}
-		return interchangegroup;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DataInterchangeGroup basicGetInterchangegroup() {
-		return interchangegroup;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setInterchangegroup(DataInterchangeGroup newInterchangegroup) {
-		DataInterchangeGroup oldInterchangegroup = interchangegroup;
-		interchangegroup = newInterchangegroup;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_SCHEDULER__INTERCHANGEGROUP, oldInterchangegroup, interchangegroup));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SignalExecutionTypeEnum getExecutiontype() {
-		return executiontype;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setExecutiontype(SignalExecutionTypeEnum newExecutiontype) {
-		SignalExecutionTypeEnum oldExecutiontype = executiontype;
-		executiontype = newExecutiontype == null ? EXECUTIONTYPE_EDEFAULT : newExecutiontype;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_SCHEDULER__EXECUTIONTYPE, oldExecutiontype, executiontype));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public SchedulerType getSchedulertype() {
 		return schedulertype;
 	}
@@ -232,25 +119,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EList<SignalDatainterchange> getInterchanges() {
-		if (interchanges == null) {
-			interchanges = new EObjectContainmentEList<SignalDatainterchange>(SignalDatainterchange.class, this, SignalDSLPackage.SIGNAL_SCHEDULER__INTERCHANGES);
-		}
-		return interchanges;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case SignalDSLPackage.SIGNAL_SCHEDULER__SCHEDULERTYPE:
 				return basicSetSchedulertype(null, msgs);
-			case SignalDSLPackage.SIGNAL_SCHEDULER__INTERCHANGES:
-				return ((InternalEList<?>)getInterchanges()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -263,15 +136,8 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_SCHEDULER__INTERCHANGEGROUP:
-				if (resolve) return getInterchangegroup();
-				return basicGetInterchangegroup();
-			case SignalDSLPackage.SIGNAL_SCHEDULER__EXECUTIONTYPE:
-				return getExecutiontype();
 			case SignalDSLPackage.SIGNAL_SCHEDULER__SCHEDULERTYPE:
 				return getSchedulertype();
-			case SignalDSLPackage.SIGNAL_SCHEDULER__INTERCHANGES:
-				return getInterchanges();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -281,23 +147,12 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_SCHEDULER__INTERCHANGEGROUP:
-				setInterchangegroup((DataInterchangeGroup)newValue);
-				return;
-			case SignalDSLPackage.SIGNAL_SCHEDULER__EXECUTIONTYPE:
-				setExecutiontype((SignalExecutionTypeEnum)newValue);
-				return;
 			case SignalDSLPackage.SIGNAL_SCHEDULER__SCHEDULERTYPE:
 				setSchedulertype((SchedulerType)newValue);
 				return;
-			case SignalDSLPackage.SIGNAL_SCHEDULER__INTERCHANGES:
-				getInterchanges().clear();
-				getInterchanges().addAll((Collection<? extends SignalDatainterchange>)newValue);
-				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -310,18 +165,9 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_SCHEDULER__INTERCHANGEGROUP:
-				setInterchangegroup((DataInterchangeGroup)null);
-				return;
-			case SignalDSLPackage.SIGNAL_SCHEDULER__EXECUTIONTYPE:
-				setExecutiontype(EXECUTIONTYPE_EDEFAULT);
-				return;
 			case SignalDSLPackage.SIGNAL_SCHEDULER__SCHEDULERTYPE:
 				setSchedulertype((SchedulerType)null);
 				return;
-			case SignalDSLPackage.SIGNAL_SCHEDULER__INTERCHANGES:
-				getInterchanges().clear();
-				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -334,32 +180,10 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_SCHEDULER__INTERCHANGEGROUP:
-				return interchangegroup != null;
-			case SignalDSLPackage.SIGNAL_SCHEDULER__EXECUTIONTYPE:
-				return executiontype != EXECUTIONTYPE_EDEFAULT;
 			case SignalDSLPackage.SIGNAL_SCHEDULER__SCHEDULERTYPE:
 				return schedulertype != null;
-			case SignalDSLPackage.SIGNAL_SCHEDULER__INTERCHANGES:
-				return interchanges != null && !interchanges.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (executiontype: ");
-		result.append(executiontype);
-		result.append(')');
-		return result.toString();
-	}
-
 } //SignalSchedulerImpl
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalTaskImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalTaskImpl.java
new file mode 100644
index 0000000..0c8c671
--- /dev/null
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalTaskImpl.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2011, 2018 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0 
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from SignalDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.signal.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
+import org.eclipse.osbp.xtext.signal.SignalTask;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Signal Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SignalTaskImpl extends SignalLazyResolverImpl implements SignalTask {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SignalTaskImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SignalDSLPackage.Literals.SIGNAL_TASK;
+	}
+
+} //SignalTaskImpl
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalWatcherImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalWatcherImpl.java
index 9d0388b..79a552c 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalWatcherImpl.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/SignalWatcherImpl.java
@@ -17,16 +17,16 @@
 package org.eclipse.osbp.xtext.signal.impl;
 
 import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
 
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
 import org.eclipse.osbp.xtext.signal.SignalWatcher;
-import org.eclipse.osbp.xtext.signal.WatcherDefinition;
 
 /**
  * <!-- begin-user-doc -->
@@ -36,21 +36,63 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalWatcherImpl#getDefinition <em>Definition</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalWatcherImpl#getDefaultInterchange <em>Default Interchange</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalWatcherImpl#isHasFileMask <em>Has File Mask</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.signal.impl.SignalWatcherImpl#getIdentifier <em>Identifier</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class SignalWatcherImpl extends SignalDefinitionImpl implements SignalWatcher {
 	/**
-	 * The cached value of the '{@link #getDefinition() <em>Definition</em>}' containment reference.
+	 * The cached value of the '{@link #getDefaultInterchange() <em>Default Interchange</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getDefinition()
+	 * @see #getDefaultInterchange()
 	 * @generated
 	 * @ordered
 	 */
-	protected WatcherDefinition definition;
+	protected DataInterchange defaultInterchange;
+
+	/**
+	 * The default value of the '{@link #isHasFileMask() <em>Has File Mask</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHasFileMask()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean HAS_FILE_MASK_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isHasFileMask() <em>Has File Mask</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHasFileMask()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean hasFileMask = HAS_FILE_MASK_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getIdentifier() <em>Identifier</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIdentifier()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String IDENTIFIER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getIdentifier() <em>Identifier</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIdentifier()
+	 * @generated
+	 * @ordered
+	 */
+	protected String identifier = IDENTIFIER_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -76,8 +118,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public WatcherDefinition getDefinition() {
-		return definition;
+	public DataInterchange getDefaultInterchange() {
+		if (defaultInterchange != null && defaultInterchange.eIsProxy()) {
+			InternalEObject oldDefaultInterchange = (InternalEObject)defaultInterchange;
+			defaultInterchange = (DataInterchange)eResolveProxy(oldDefaultInterchange);
+			if (defaultInterchange != oldDefaultInterchange) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SignalDSLPackage.SIGNAL_WATCHER__DEFAULT_INTERCHANGE, oldDefaultInterchange, defaultInterchange));
+			}
+		}
+		return defaultInterchange;
 	}
 
 	/**
@@ -85,14 +135,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetDefinition(WatcherDefinition newDefinition, NotificationChain msgs) {
-		WatcherDefinition oldDefinition = definition;
-		definition = newDefinition;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_WATCHER__DEFINITION, oldDefinition, newDefinition);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
+	public DataInterchange basicGetDefaultInterchange() {
+		return defaultInterchange;
 	}
 
 	/**
@@ -100,18 +144,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setDefinition(WatcherDefinition newDefinition) {
-		if (newDefinition != definition) {
-			NotificationChain msgs = null;
-			if (definition != null)
-				msgs = ((InternalEObject)definition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SignalDSLPackage.SIGNAL_WATCHER__DEFINITION, null, msgs);
-			if (newDefinition != null)
-				msgs = ((InternalEObject)newDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SignalDSLPackage.SIGNAL_WATCHER__DEFINITION, null, msgs);
-			msgs = basicSetDefinition(newDefinition, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_WATCHER__DEFINITION, newDefinition, newDefinition));
+	public void setDefaultInterchange(DataInterchange newDefaultInterchange) {
+		DataInterchange oldDefaultInterchange = defaultInterchange;
+		defaultInterchange = newDefaultInterchange;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_WATCHER__DEFAULT_INTERCHANGE, oldDefaultInterchange, defaultInterchange));
 	}
 
 	/**
@@ -119,13 +156,41 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_WATCHER__DEFINITION:
-				return basicSetDefinition(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
+	public boolean isHasFileMask() {
+		return hasFileMask;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHasFileMask(boolean newHasFileMask) {
+		boolean oldHasFileMask = hasFileMask;
+		hasFileMask = newHasFileMask;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_WATCHER__HAS_FILE_MASK, oldHasFileMask, hasFileMask));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getIdentifier() {
+		return identifier;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIdentifier(String newIdentifier) {
+		String oldIdentifier = identifier;
+		identifier = newIdentifier;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.SIGNAL_WATCHER__IDENTIFIER, oldIdentifier, identifier));
 	}
 
 	/**
@@ -136,8 +201,13 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_WATCHER__DEFINITION:
-				return getDefinition();
+			case SignalDSLPackage.SIGNAL_WATCHER__DEFAULT_INTERCHANGE:
+				if (resolve) return getDefaultInterchange();
+				return basicGetDefaultInterchange();
+			case SignalDSLPackage.SIGNAL_WATCHER__HAS_FILE_MASK:
+				return isHasFileMask();
+			case SignalDSLPackage.SIGNAL_WATCHER__IDENTIFIER:
+				return getIdentifier();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -150,8 +220,14 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_WATCHER__DEFINITION:
-				setDefinition((WatcherDefinition)newValue);
+			case SignalDSLPackage.SIGNAL_WATCHER__DEFAULT_INTERCHANGE:
+				setDefaultInterchange((DataInterchange)newValue);
+				return;
+			case SignalDSLPackage.SIGNAL_WATCHER__HAS_FILE_MASK:
+				setHasFileMask((Boolean)newValue);
+				return;
+			case SignalDSLPackage.SIGNAL_WATCHER__IDENTIFIER:
+				setIdentifier((String)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -165,8 +241,14 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_WATCHER__DEFINITION:
-				setDefinition((WatcherDefinition)null);
+			case SignalDSLPackage.SIGNAL_WATCHER__DEFAULT_INTERCHANGE:
+				setDefaultInterchange((DataInterchange)null);
+				return;
+			case SignalDSLPackage.SIGNAL_WATCHER__HAS_FILE_MASK:
+				setHasFileMask(HAS_FILE_MASK_EDEFAULT);
+				return;
+			case SignalDSLPackage.SIGNAL_WATCHER__IDENTIFIER:
+				setIdentifier(IDENTIFIER_EDEFAULT);
 				return;
 		}
 		super.eUnset(featureID);
@@ -180,10 +262,32 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case SignalDSLPackage.SIGNAL_WATCHER__DEFINITION:
-				return definition != null;
+			case SignalDSLPackage.SIGNAL_WATCHER__DEFAULT_INTERCHANGE:
+				return defaultInterchange != null;
+			case SignalDSLPackage.SIGNAL_WATCHER__HAS_FILE_MASK:
+				return hasFileMask != HAS_FILE_MASK_EDEFAULT;
+			case SignalDSLPackage.SIGNAL_WATCHER__IDENTIFIER:
+				return IDENTIFIER_EDEFAULT == null ? identifier != null : !IDENTIFIER_EDEFAULT.equals(identifier);
 		}
 		return super.eIsSet(featureID);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (hasFileMask: ");
+		result.append(hasFileMask);
+		result.append(", identifier: ");
+		result.append(identifier);
+		result.append(')');
+		return result.toString();
+	}
+
 } //SignalWatcherImpl
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/WatcherDefinitionImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/WatcherDefinitionImpl.java
deleted file mode 100644
index e25ed53..0000000
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/WatcherDefinitionImpl.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/**
- * Copyright (c) 2011, 2018 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- *  
- *  Contributors:                                                      
- *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- *  
- *  generated from SignalDSL.xcore
- * 
- *  
- */
-package org.eclipse.osbp.xtext.signal.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.osbp.xtext.datainterchange.DataInterchangeGroup;
-
-import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
-import org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum;
-import org.eclipse.osbp.xtext.signal.WatcherDefinition;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Watcher Definition</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.WatcherDefinitionImpl#getInterchangegroup <em>Interchangegroup</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.WatcherDefinitionImpl#getExecutiontype <em>Executiontype</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class WatcherDefinitionImpl extends MinimalEObjectImpl.Container implements WatcherDefinition {
-	/**
-	 * The cached value of the '{@link #getInterchangegroup() <em>Interchangegroup</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInterchangegroup()
-	 * @generated
-	 * @ordered
-	 */
-	protected DataInterchangeGroup interchangegroup;
-
-	/**
-	 * The default value of the '{@link #getExecutiontype() <em>Executiontype</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExecutiontype()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final SignalExecutionTypeEnum EXECUTIONTYPE_EDEFAULT = SignalExecutionTypeEnum.SEQ;
-
-	/**
-	 * The cached value of the '{@link #getExecutiontype() <em>Executiontype</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExecutiontype()
-	 * @generated
-	 * @ordered
-	 */
-	protected SignalExecutionTypeEnum executiontype = EXECUTIONTYPE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected WatcherDefinitionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SignalDSLPackage.Literals.WATCHER_DEFINITION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DataInterchangeGroup getInterchangegroup() {
-		if (interchangegroup != null && interchangegroup.eIsProxy()) {
-			InternalEObject oldInterchangegroup = (InternalEObject)interchangegroup;
-			interchangegroup = (DataInterchangeGroup)eResolveProxy(oldInterchangegroup);
-			if (interchangegroup != oldInterchangegroup) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SignalDSLPackage.WATCHER_DEFINITION__INTERCHANGEGROUP, oldInterchangegroup, interchangegroup));
-			}
-		}
-		return interchangegroup;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DataInterchangeGroup basicGetInterchangegroup() {
-		return interchangegroup;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setInterchangegroup(DataInterchangeGroup newInterchangegroup) {
-		DataInterchangeGroup oldInterchangegroup = interchangegroup;
-		interchangegroup = newInterchangegroup;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.WATCHER_DEFINITION__INTERCHANGEGROUP, oldInterchangegroup, interchangegroup));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SignalExecutionTypeEnum getExecutiontype() {
-		return executiontype;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setExecutiontype(SignalExecutionTypeEnum newExecutiontype) {
-		SignalExecutionTypeEnum oldExecutiontype = executiontype;
-		executiontype = newExecutiontype == null ? EXECUTIONTYPE_EDEFAULT : newExecutiontype;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.WATCHER_DEFINITION__EXECUTIONTYPE, oldExecutiontype, executiontype));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_DEFINITION__INTERCHANGEGROUP:
-				if (resolve) return getInterchangegroup();
-				return basicGetInterchangegroup();
-			case SignalDSLPackage.WATCHER_DEFINITION__EXECUTIONTYPE:
-				return getExecutiontype();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_DEFINITION__INTERCHANGEGROUP:
-				setInterchangegroup((DataInterchangeGroup)newValue);
-				return;
-			case SignalDSLPackage.WATCHER_DEFINITION__EXECUTIONTYPE:
-				setExecutiontype((SignalExecutionTypeEnum)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_DEFINITION__INTERCHANGEGROUP:
-				setInterchangegroup((DataInterchangeGroup)null);
-				return;
-			case SignalDSLPackage.WATCHER_DEFINITION__EXECUTIONTYPE:
-				setExecutiontype(EXECUTIONTYPE_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_DEFINITION__INTERCHANGEGROUP:
-				return interchangegroup != null;
-			case SignalDSLPackage.WATCHER_DEFINITION__EXECUTIONTYPE:
-				return executiontype != EXECUTIONTYPE_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (executiontype: ");
-		result.append(executiontype);
-		result.append(')');
-		return result.toString();
-	}
-
-} //WatcherDefinitionImpl
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/WatcherWithFileMaskImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/WatcherWithFileMaskImpl.java
deleted file mode 100644
index 3ef07c0..0000000
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/WatcherWithFileMaskImpl.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/**
- * Copyright (c) 2011, 2018 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- *  
- *  Contributors:                                                      
- *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- *  
- *  generated from SignalDSL.xcore
- * 
- *  
- */
-package org.eclipse.osbp.xtext.signal.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
-import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Watcher With File Mask</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.WatcherWithFileMaskImpl#getFilemask <em>Filemask</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.WatcherWithFileMaskImpl#getInterchange <em>Interchange</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class WatcherWithFileMaskImpl extends WatcherDefinitionImpl implements WatcherWithFileMask {
-	/**
-	 * The default value of the '{@link #getFilemask() <em>Filemask</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getFilemask()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String FILEMASK_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getFilemask() <em>Filemask</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getFilemask()
-	 * @generated
-	 * @ordered
-	 */
-	protected String filemask = FILEMASK_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getInterchange() <em>Interchange</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInterchange()
-	 * @generated
-	 * @ordered
-	 */
-	protected SignalDatainterchange interchange;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected WatcherWithFileMaskImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getFilemask() {
-		return filemask;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setFilemask(String newFilemask) {
-		String oldFilemask = filemask;
-		filemask = newFilemask;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.WATCHER_WITH_FILE_MASK__FILEMASK, oldFilemask, filemask));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SignalDatainterchange getInterchange() {
-		return interchange;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetInterchange(SignalDatainterchange newInterchange, NotificationChain msgs) {
-		SignalDatainterchange oldInterchange = interchange;
-		interchange = newInterchange;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SignalDSLPackage.WATCHER_WITH_FILE_MASK__INTERCHANGE, oldInterchange, newInterchange);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setInterchange(SignalDatainterchange newInterchange) {
-		if (newInterchange != interchange) {
-			NotificationChain msgs = null;
-			if (interchange != null)
-				msgs = ((InternalEObject)interchange).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SignalDSLPackage.WATCHER_WITH_FILE_MASK__INTERCHANGE, null, msgs);
-			if (newInterchange != null)
-				msgs = ((InternalEObject)newInterchange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SignalDSLPackage.WATCHER_WITH_FILE_MASK__INTERCHANGE, null, msgs);
-			msgs = basicSetInterchange(newInterchange, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.WATCHER_WITH_FILE_MASK__INTERCHANGE, newInterchange, newInterchange));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_WITH_FILE_MASK__INTERCHANGE:
-				return basicSetInterchange(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_WITH_FILE_MASK__FILEMASK:
-				return getFilemask();
-			case SignalDSLPackage.WATCHER_WITH_FILE_MASK__INTERCHANGE:
-				return getInterchange();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_WITH_FILE_MASK__FILEMASK:
-				setFilemask((String)newValue);
-				return;
-			case SignalDSLPackage.WATCHER_WITH_FILE_MASK__INTERCHANGE:
-				setInterchange((SignalDatainterchange)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_WITH_FILE_MASK__FILEMASK:
-				setFilemask(FILEMASK_EDEFAULT);
-				return;
-			case SignalDSLPackage.WATCHER_WITH_FILE_MASK__INTERCHANGE:
-				setInterchange((SignalDatainterchange)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_WITH_FILE_MASK__FILEMASK:
-				return FILEMASK_EDEFAULT == null ? filemask != null : !FILEMASK_EDEFAULT.equals(filemask);
-			case SignalDSLPackage.WATCHER_WITH_FILE_MASK__INTERCHANGE:
-				return interchange != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (filemask: ");
-		result.append(filemask);
-		result.append(')');
-		return result.toString();
-	}
-
-} //WatcherWithFileMaskImpl
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/WatcherWithFileNameImpl.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/WatcherWithFileNameImpl.java
deleted file mode 100644
index 1c14fb9..0000000
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/impl/WatcherWithFileNameImpl.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/**
- * Copyright (c) 2011, 2018 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- *  
- *  Contributors:                                                      
- *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- *  
- *  generated from SignalDSL.xcore
- * 
- *  
- */
-package org.eclipse.osbp.xtext.signal.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
-import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Watcher With File Name</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.WatcherWithFileNameImpl#getFilename <em>Filename</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.signal.impl.WatcherWithFileNameImpl#getInterchanges <em>Interchanges</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class WatcherWithFileNameImpl extends WatcherDefinitionImpl implements WatcherWithFileName {
-	/**
-	 * The default value of the '{@link #getFilename() <em>Filename</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getFilename()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String FILENAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getFilename() <em>Filename</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getFilename()
-	 * @generated
-	 * @ordered
-	 */
-	protected String filename = FILENAME_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getInterchanges() <em>Interchanges</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInterchanges()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<SignalDatainterchange> interchanges;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected WatcherWithFileNameImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getFilename() {
-		return filename;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setFilename(String newFilename) {
-		String oldFilename = filename;
-		filename = newFilename;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SignalDSLPackage.WATCHER_WITH_FILE_NAME__FILENAME, oldFilename, filename));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<SignalDatainterchange> getInterchanges() {
-		if (interchanges == null) {
-			interchanges = new EObjectContainmentEList<SignalDatainterchange>(SignalDatainterchange.class, this, SignalDSLPackage.WATCHER_WITH_FILE_NAME__INTERCHANGES);
-		}
-		return interchanges;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_WITH_FILE_NAME__INTERCHANGES:
-				return ((InternalEList<?>)getInterchanges()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_WITH_FILE_NAME__FILENAME:
-				return getFilename();
-			case SignalDSLPackage.WATCHER_WITH_FILE_NAME__INTERCHANGES:
-				return getInterchanges();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_WITH_FILE_NAME__FILENAME:
-				setFilename((String)newValue);
-				return;
-			case SignalDSLPackage.WATCHER_WITH_FILE_NAME__INTERCHANGES:
-				getInterchanges().clear();
-				getInterchanges().addAll((Collection<? extends SignalDatainterchange>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_WITH_FILE_NAME__FILENAME:
-				setFilename(FILENAME_EDEFAULT);
-				return;
-			case SignalDSLPackage.WATCHER_WITH_FILE_NAME__INTERCHANGES:
-				getInterchanges().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case SignalDSLPackage.WATCHER_WITH_FILE_NAME__FILENAME:
-				return FILENAME_EDEFAULT == null ? filename != null : !FILENAME_EDEFAULT.equals(filename);
-			case SignalDSLPackage.WATCHER_WITH_FILE_NAME__INTERCHANGES:
-				return interchanges != null && !interchanges.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (filename: ");
-		result.append(filename);
-		result.append(')');
-		return result.toString();
-	}
-
-} //WatcherWithFileNameImpl
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/util/SignalDSLAdapterFactory.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/util/SignalDSLAdapterFactory.java
index 68d9d1d..6d22d9c 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/util/SignalDSLAdapterFactory.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/util/SignalDSLAdapterFactory.java
@@ -105,26 +105,14 @@
 				return createSignalWatcherAdapter();
 			}
 			@Override
-			public Adapter caseWatcherDefinition(WatcherDefinition object) {
-				return createWatcherDefinitionAdapter();
-			}
-			@Override
-			public Adapter caseWatcherWithFileMask(WatcherWithFileMask object) {
-				return createWatcherWithFileMaskAdapter();
-			}
-			@Override
-			public Adapter caseWatcherWithFileName(WatcherWithFileName object) {
-				return createWatcherWithFileNameAdapter();
+			public Adapter caseSignalScheduler(SignalScheduler object) {
+				return createSignalSchedulerAdapter();
 			}
 			@Override
 			public Adapter caseSchedulerType(SchedulerType object) {
 				return createSchedulerTypeAdapter();
 			}
 			@Override
-			public Adapter caseSignalScheduler(SignalScheduler object) {
-				return createSignalSchedulerAdapter();
-			}
-			@Override
 			public Adapter caseCronScheduler(CronScheduler object) {
 				return createCronSchedulerAdapter();
 			}
@@ -145,14 +133,18 @@
 				return createMonthlySchedulerAdapter();
 			}
 			@Override
-			public Adapter caseSignalProcessor(SignalProcessor object) {
-				return createSignalProcessorAdapter();
+			public Adapter caseSignalTask(SignalTask object) {
+				return createSignalTaskAdapter();
 			}
 			@Override
 			public Adapter caseSignalDatainterchange(SignalDatainterchange object) {
 				return createSignalDatainterchangeAdapter();
 			}
 			@Override
+			public Adapter caseSignalFunction(SignalFunction object) {
+				return createSignalFunctionAdapter();
+			}
+			@Override
 			public Adapter caseLLazyResolver(LLazyResolver object) {
 				return createLLazyResolverAdapter();
 			}
@@ -251,44 +243,16 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.WatcherDefinition <em>Watcher Definition</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.SignalScheduler <em>Signal Scheduler</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * @return the new adapter.
-	 * @see org.eclipse.osbp.xtext.signal.WatcherDefinition
+	 * @see org.eclipse.osbp.xtext.signal.SignalScheduler
 	 * @generated
 	 */
-	public Adapter createWatcherDefinitionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.WatcherWithFileMask <em>Watcher With File Mask</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.osbp.xtext.signal.WatcherWithFileMask
-	 * @generated
-	 */
-	public Adapter createWatcherWithFileMaskAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.WatcherWithFileName <em>Watcher With File Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.osbp.xtext.signal.WatcherWithFileName
-	 * @generated
-	 */
-	public Adapter createWatcherWithFileNameAdapter() {
+	public Adapter createSignalSchedulerAdapter() {
 		return null;
 	}
 
@@ -307,20 +271,6 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.SignalScheduler <em>Signal Scheduler</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.osbp.xtext.signal.SignalScheduler
-	 * @generated
-	 */
-	public Adapter createSignalSchedulerAdapter() {
-		return null;
-	}
-
-	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.CronScheduler <em>Cron Scheduler</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -391,16 +341,16 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.SignalProcessor <em>Signal Processor</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.SignalTask <em>Signal Task</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * @return the new adapter.
-	 * @see org.eclipse.osbp.xtext.signal.SignalProcessor
+	 * @see org.eclipse.osbp.xtext.signal.SignalTask
 	 * @generated
 	 */
-	public Adapter createSignalProcessorAdapter() {
+	public Adapter createSignalTaskAdapter() {
 		return null;
 	}
 
@@ -419,6 +369,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.signal.SignalFunction <em>Signal Function</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.signal.SignalFunction
+	 * @generated
+	 */
+	public Adapter createSignalFunctionAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.dsl.semantic.common.types.LLazyResolver <em>LLazy Resolver</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/util/SignalDSLSwitch.java b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/util/SignalDSLSwitch.java
index 7e6440a..12e22ba 100644
--- a/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/util/SignalDSLSwitch.java
+++ b/org.eclipse.osbp.xtext.signal/emf-gen/org/eclipse/osbp/xtext/signal/util/SignalDSLSwitch.java
@@ -118,23 +118,11 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case SignalDSLPackage.WATCHER_DEFINITION: {
-				WatcherDefinition watcherDefinition = (WatcherDefinition)theEObject;
-				T result = caseWatcherDefinition(watcherDefinition);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case SignalDSLPackage.WATCHER_WITH_FILE_MASK: {
-				WatcherWithFileMask watcherWithFileMask = (WatcherWithFileMask)theEObject;
-				T result = caseWatcherWithFileMask(watcherWithFileMask);
-				if (result == null) result = caseWatcherDefinition(watcherWithFileMask);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case SignalDSLPackage.WATCHER_WITH_FILE_NAME: {
-				WatcherWithFileName watcherWithFileName = (WatcherWithFileName)theEObject;
-				T result = caseWatcherWithFileName(watcherWithFileName);
-				if (result == null) result = caseWatcherDefinition(watcherWithFileName);
+			case SignalDSLPackage.SIGNAL_SCHEDULER: {
+				SignalScheduler signalScheduler = (SignalScheduler)theEObject;
+				T result = caseSignalScheduler(signalScheduler);
+				if (result == null) result = caseSignalDefinition(signalScheduler);
+				if (result == null) result = caseSignalLazyResolver(signalScheduler);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -145,14 +133,6 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case SignalDSLPackage.SIGNAL_SCHEDULER: {
-				SignalScheduler signalScheduler = (SignalScheduler)theEObject;
-				T result = caseSignalScheduler(signalScheduler);
-				if (result == null) result = caseSignalDefinition(signalScheduler);
-				if (result == null) result = caseSignalLazyResolver(signalScheduler);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
 			case SignalDSLPackage.CRON_SCHEDULER: {
 				CronScheduler cronScheduler = (CronScheduler)theEObject;
 				T result = caseCronScheduler(cronScheduler);
@@ -193,21 +173,29 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case SignalDSLPackage.SIGNAL_PROCESSOR: {
-				SignalProcessor signalProcessor = (SignalProcessor)theEObject;
-				T result = caseSignalProcessor(signalProcessor);
-				if (result == null) result = caseSignalLazyResolver(signalProcessor);
+			case SignalDSLPackage.SIGNAL_TASK: {
+				SignalTask signalTask = (SignalTask)theEObject;
+				T result = caseSignalTask(signalTask);
+				if (result == null) result = caseSignalLazyResolver(signalTask);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE: {
 				SignalDatainterchange signalDatainterchange = (SignalDatainterchange)theEObject;
 				T result = caseSignalDatainterchange(signalDatainterchange);
-				if (result == null) result = caseSignalProcessor(signalDatainterchange);
+				if (result == null) result = caseSignalTask(signalDatainterchange);
 				if (result == null) result = caseSignalLazyResolver(signalDatainterchange);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case SignalDSLPackage.SIGNAL_FUNCTION: {
+				SignalFunction signalFunction = (SignalFunction)theEObject;
+				T result = caseSignalFunction(signalFunction);
+				if (result == null) result = caseSignalTask(signalFunction);
+				if (result == null) result = caseSignalLazyResolver(signalFunction);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			default: return defaultCase(theEObject);
 		}
 	}
@@ -288,47 +276,17 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Watcher Definition</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Signal Scheduler</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Watcher Definition</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Signal Scheduler</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseWatcherDefinition(WatcherDefinition object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Watcher With File Mask</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Watcher With File Mask</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseWatcherWithFileMask(WatcherWithFileMask object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Watcher With File Name</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Watcher With File Name</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseWatcherWithFileName(WatcherWithFileName object) {
+	public T caseSignalScheduler(SignalScheduler object) {
 		return null;
 	}
 
@@ -348,21 +306,6 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Signal Scheduler</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Signal Scheduler</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseSignalScheduler(SignalScheduler object) {
-		return null;
-	}
-
-	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Cron Scheduler</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -438,17 +381,17 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Signal Processor</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Signal Task</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Signal Processor</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Signal Task</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseSignalProcessor(SignalProcessor object) {
+	public T caseSignalTask(SignalTask object) {
 		return null;
 	}
 
@@ -468,6 +411,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Signal Function</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Signal Function</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSignalFunction(SignalFunction object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>LLazy Resolver</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/org.eclipse.osbp.xtext.signal/model/SignalDSL.xcore b/org.eclipse.osbp.xtext.signal/model/SignalDSL.xcore
index 4dd8bd8..a4152fe 100644
--- a/org.eclipse.osbp.xtext.signal/model/SignalDSL.xcore
+++ b/org.eclipse.osbp.xtext.signal/model/SignalDSL.xcore
@@ -28,10 +28,12 @@
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.emf.ecore.InternalEObject
 import org.eclipse.osbp.dsl.semantic.common.types.LPackage
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange
 import org.eclipse.osbp.xtext.datainterchange.DataInterchangeGroup
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryExecute
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryActionGroup
 import org.eclipse.osbp.xtext.oxtype.resource.EcoreUtil3
 import org.eclipse.xtext.xtype.XImportSection
-import org.eclipse.osbp.xtext.datainterchange.DataInterchange
 
 class SignalModel{
 	contains XImportSection importSection
@@ -52,69 +54,72 @@
 
 class SignalDefinition extends SignalLazyResolver{
 	String name
-}
-
-class SignalWatcher extends SignalDefinition {
-	contains WatcherDefinition definition
-}
-
-class WatcherDefinition {
 	refers DataInterchangeGroup interchangegroup
 	SignalExecutionTypeEnum executiontype
+	contains SignalTask[] tasks
 }
 
-class WatcherWithFileMask extends WatcherDefinition{
-	String filemask
-	contains SignalDatainterchange interchange
+// Watchers are defined here bellow. 
+class SignalWatcher extends SignalDefinition {
+	refers DataInterchange defaultInterchange
+	boolean hasFileMask
+	String identifier   // the file name or the file mask
 }
-class WatcherWithFileName extends WatcherDefinition {
-	String filename
-	contains SignalDatainterchange[] interchanges
+
+// Scheduler is defined here after.
+class SignalScheduler extends SignalDefinition {
+	contains SchedulerType schedulertype
 }
 
 class SchedulerType extends SignalLazyResolver {
 }
 
-class SignalScheduler extends SignalDefinition {
-	refers DataInterchangeGroup interchangegroup
-	SignalExecutionTypeEnum executiontype
-	contains SchedulerType schedulertype
-	contains SignalDatainterchange[] interchanges
-}
-
 class CronScheduler extends SchedulerType {
 	String expression
 }
+
 class HourlyScheduler extends SchedulerType {
 	int minute
 }
+
 class DailyScheduler extends SchedulerType {
 	int hour
 	int minute
 }
+
 class WeeklyScheduler extends SchedulerType {
 	DayOfWeekEnum dayofweek
 	int hour
 	int minute
 }
+
 class MonthlyScheduler extends SchedulerType {
 	int dayofmonth
 	int hour
 	int minute
 }
 
-interface SignalProcessor extends SignalLazyResolver {}
+class SignalTask extends SignalLazyResolver {
+// All types of signal tasks are defined bellow: a - data interchange tasks | b - function tasks 
+}
 
-class SignalDatainterchange extends SignalProcessor {
-	SignalActionEnum dataAction
+class SignalDatainterchange extends SignalTask {
+	SignalActionTypeEnum actionType
 	refers DataInterchange dataRef
 	boolean baseinterchange
 }
 
-enum SignalActionEnum {
+class SignalFunction extends SignalTask {
+	refers FunctionLibraryActionGroup group
+	refers FunctionLibraryExecute doExecuteFunction
+	boolean onImportFile
+	boolean onExportFile
+	refers DataInterchange supportInterchange
+}
+
+enum SignalActionTypeEnum {
 	DATAIMPORT as 'import'
 	DATAEXPORT as 'export'
-	NONE as 'none'
 }
 
 enum SignalExecutionTypeEnum {
@@ -130,4 +135,4 @@
 	THURSDAY as 'thursday'
 	FRIDAY as 'friday'
 	SATURDAY as 'saturday'
-}
\ No newline at end of file
+}
diff --git a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/SignalDSL.xtextbin b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/SignalDSL.xtextbin
index 2e4a01d..95c6de1 100644
--- a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/SignalDSL.xtextbin
+++ b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/SignalDSL.xtextbin
Binary files differ
diff --git a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSL.g b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSL.g
index d78e5c8..c145093 100644
--- a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSL.g
+++ b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSL.g
@@ -295,280 +295,124 @@
 		)
 		(
 			(
+				(
+					lv_hasFileMask_3_0='filemask'
+					{
+						newLeafNode(lv_hasFileMask_3_0, grammarAccess.getSignalWatcherAccess().getHasFileMaskFilemaskKeyword_3_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getSignalWatcherRule());
+						}
+						setWithLastConsumed($current, "hasFileMask", true, "filemask");
+					}
+				)
+			)
+			    |
+			otherlv_4='filename'
+			{
+				newLeafNode(otherlv_4, grammarAccess.getSignalWatcherAccess().getFilenameKeyword_3_1());
+			}
+		)
+		(
+			(
+				lv_identifier_5_0=RULE_STRING
 				{
-					newCompositeNode(grammarAccess.getSignalWatcherAccess().getDefinitionWatcherDefinitionParserRuleCall_3_0());
+					newLeafNode(lv_identifier_5_0, grammarAccess.getSignalWatcherAccess().getIdentifierSTRINGTerminalRuleCall_4_0());
 				}
-				lv_definition_3_0=ruleWatcherDefinition
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getSignalWatcherRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"identifier",
+						lv_identifier_5_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getSignalWatcherAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_5_0());
+				}
+				lv_executiontype_6_0=ruleSignalExecutionTypeEnum
 				{
 					if ($current==null) {
 						$current = createModelElementForParent(grammarAccess.getSignalWatcherRule());
 					}
 					set(
 						$current,
-						"definition",
-						lv_definition_3_0,
-						"org.eclipse.osbp.xtext.signal.SignalDSL.WatcherDefinition");
-					afterParserOrEnumRuleCall();
-				}
-			)
-		)
-	)
-;
-
-// Entry rule entryRuleWatcherDefinition
-entryRuleWatcherDefinition returns [EObject current=null]:
-	{ newCompositeNode(grammarAccess.getWatcherDefinitionRule()); }
-	iv_ruleWatcherDefinition=ruleWatcherDefinition
-	{ $current=$iv_ruleWatcherDefinition.current; }
-	EOF;
-
-// Rule WatcherDefinition
-ruleWatcherDefinition returns [EObject current=null]
-@init {
-	enterRule();
-}
-@after {
-	leaveRule();
-}:
-	(
-		{
-			newCompositeNode(grammarAccess.getWatcherDefinitionAccess().getWatcherWithFileMaskParserRuleCall_0());
-		}
-		this_WatcherWithFileMask_0=ruleWatcherWithFileMask
-		{
-			$current = $this_WatcherWithFileMask_0.current;
-			afterParserOrEnumRuleCall();
-		}
-		    |
-		{
-			newCompositeNode(grammarAccess.getWatcherDefinitionAccess().getWatcherWithFileNameParserRuleCall_1());
-		}
-		this_WatcherWithFileName_1=ruleWatcherWithFileName
-		{
-			$current = $this_WatcherWithFileName_1.current;
-			afterParserOrEnumRuleCall();
-		}
-	)
-;
-
-// Entry rule entryRuleWatcherWithFileMask
-entryRuleWatcherWithFileMask returns [EObject current=null]:
-	{ newCompositeNode(grammarAccess.getWatcherWithFileMaskRule()); }
-	iv_ruleWatcherWithFileMask=ruleWatcherWithFileMask
-	{ $current=$iv_ruleWatcherWithFileMask.current; }
-	EOF;
-
-// Rule WatcherWithFileMask
-ruleWatcherWithFileMask returns [EObject current=null]
-@init {
-	enterRule();
-}
-@after {
-	leaveRule();
-}:
-	(
-		(
-			{
-				$current = forceCreateModelElement(
-					grammarAccess.getWatcherWithFileMaskAccess().getWatcherWithFileMaskAction_0(),
-					$current);
-			}
-		)
-		otherlv_1='filemask'
-		{
-			newLeafNode(otherlv_1, grammarAccess.getWatcherWithFileMaskAccess().getFilemaskKeyword_1());
-		}
-		(
-			(
-				lv_filemask_2_0=RULE_STRING
-				{
-					newLeafNode(lv_filemask_2_0, grammarAccess.getWatcherWithFileMaskAccess().getFilemaskSTRINGTerminalRuleCall_2_0());
-				}
-				{
-					if ($current==null) {
-						$current = createModelElement(grammarAccess.getWatcherWithFileMaskRule());
-					}
-					setWithLastConsumed(
-						$current,
-						"filemask",
-						lv_filemask_2_0,
-						"org.eclipse.xtext.xbase.Xtype.STRING");
-				}
-			)
-		)
-		(
-			(
-				{
-					newCompositeNode(grammarAccess.getWatcherWithFileMaskAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0());
-				}
-				lv_executiontype_3_0=ruleSignalExecutionTypeEnum
-				{
-					if ($current==null) {
-						$current = createModelElementForParent(grammarAccess.getWatcherWithFileMaskRule());
-					}
-					set(
-						$current,
 						"executiontype",
-						lv_executiontype_3_0,
+						lv_executiontype_6_0,
 						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalExecutionTypeEnum");
 					afterParserOrEnumRuleCall();
 				}
 			)
 		)
-		otherlv_4='from'
+		otherlv_7='from'
 		{
-			newLeafNode(otherlv_4, grammarAccess.getWatcherWithFileMaskAccess().getFromKeyword_4());
+			newLeafNode(otherlv_7, grammarAccess.getSignalWatcherAccess().getFromKeyword_6());
 		}
 		(
 			(
 				{
 					if ($current==null) {
-						$current = createModelElement(grammarAccess.getWatcherWithFileMaskRule());
+						$current = createModelElement(grammarAccess.getSignalWatcherRule());
 					}
 				}
-				otherlv_5=RULE_ID
+				otherlv_8=RULE_ID
 				{
-					newLeafNode(otherlv_5, grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupDataInterchangeGroupCrossReference_5_0());
+					newLeafNode(otherlv_8, grammarAccess.getSignalWatcherAccess().getInterchangegroupDataInterchangeGroupCrossReference_7_0());
 				}
 			)
 		)
-		otherlv_6='{'
+		otherlv_9='{'
 		{
-			newLeafNode(otherlv_6, grammarAccess.getWatcherWithFileMaskAccess().getLeftCurlyBracketKeyword_6());
+			newLeafNode(otherlv_9, grammarAccess.getSignalWatcherAccess().getLeftCurlyBracketKeyword_8());
 		}
 		(
-			(
-				{
-					newCompositeNode(grammarAccess.getWatcherWithFileMaskAccess().getInterchangeSignalDatainterchangeParserRuleCall_7_0());
-				}
-				lv_interchange_7_0=ruleSignalDatainterchange
-				{
-					if ($current==null) {
-						$current = createModelElementForParent(grammarAccess.getWatcherWithFileMaskRule());
-					}
-					set(
-						$current,
-						"interchange",
-						lv_interchange_7_0,
-						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalDatainterchange");
-					afterParserOrEnumRuleCall();
-				}
-			)
-		)
-		otherlv_8='}'
-		{
-			newLeafNode(otherlv_8, grammarAccess.getWatcherWithFileMaskAccess().getRightCurlyBracketKeyword_8());
-		}
-	)
-;
-
-// Entry rule entryRuleWatcherWithFileName
-entryRuleWatcherWithFileName returns [EObject current=null]:
-	{ newCompositeNode(grammarAccess.getWatcherWithFileNameRule()); }
-	iv_ruleWatcherWithFileName=ruleWatcherWithFileName
-	{ $current=$iv_ruleWatcherWithFileName.current; }
-	EOF;
-
-// Rule WatcherWithFileName
-ruleWatcherWithFileName returns [EObject current=null]
-@init {
-	enterRule();
-}
-@after {
-	leaveRule();
-}:
-	(
-		(
+			otherlv_10='applyon'
 			{
-				$current = forceCreateModelElement(
-					grammarAccess.getWatcherWithFileNameAccess().getWatcherWithFileNameAction_0(),
-					$current);
+				newLeafNode(otherlv_10, grammarAccess.getSignalWatcherAccess().getApplyonKeyword_9_0());
 			}
-		)
-		otherlv_1='filename'
-		{
-			newLeafNode(otherlv_1, grammarAccess.getWatcherWithFileNameAccess().getFilenameKeyword_1());
-		}
-		(
 			(
-				lv_filename_2_0=RULE_STRING
-				{
-					newLeafNode(lv_filename_2_0, grammarAccess.getWatcherWithFileNameAccess().getFilenameSTRINGTerminalRuleCall_2_0());
-				}
-				{
-					if ($current==null) {
-						$current = createModelElement(grammarAccess.getWatcherWithFileNameRule());
+				(
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getSignalWatcherRule());
+						}
 					}
-					setWithLastConsumed(
-						$current,
-						"filename",
-						lv_filename_2_0,
-						"org.eclipse.xtext.xbase.Xtype.STRING");
-				}
-			)
-		)
-		(
-			(
-				{
-					newCompositeNode(grammarAccess.getWatcherWithFileNameAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0());
-				}
-				lv_executiontype_3_0=ruleSignalExecutionTypeEnum
-				{
-					if ($current==null) {
-						$current = createModelElementForParent(grammarAccess.getWatcherWithFileNameRule());
+					otherlv_11=RULE_ID
+					{
+						newLeafNode(otherlv_11, grammarAccess.getSignalWatcherAccess().getDefaultInterchangeDataInterchangeCrossReference_9_1_0());
 					}
-					set(
-						$current,
-						"executiontype",
-						lv_executiontype_3_0,
-						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalExecutionTypeEnum");
-					afterParserOrEnumRuleCall();
-				}
+				)
 			)
-		)
-		otherlv_4='from'
-		{
-			newLeafNode(otherlv_4, grammarAccess.getWatcherWithFileNameAccess().getFromKeyword_4());
-		}
+		)?
 		(
 			(
 				{
-					if ($current==null) {
-						$current = createModelElement(grammarAccess.getWatcherWithFileNameRule());
-					}
+					newCompositeNode(grammarAccess.getSignalWatcherAccess().getTasksSignalTaskParserRuleCall_10_0());
 				}
-				otherlv_5=RULE_ID
-				{
-					newLeafNode(otherlv_5, grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupDataInterchangeGroupCrossReference_5_0());
-				}
-			)
-		)
-		otherlv_6='{'
-		{
-			newLeafNode(otherlv_6, grammarAccess.getWatcherWithFileNameAccess().getLeftCurlyBracketKeyword_6());
-		}
-		(
-			(
-				{
-					newCompositeNode(grammarAccess.getWatcherWithFileNameAccess().getInterchangesSignalDatainterchangeParserRuleCall_7_0());
-				}
-				lv_interchanges_7_0=ruleSignalDatainterchange
+				lv_tasks_12_0=ruleSignalTask
 				{
 					if ($current==null) {
-						$current = createModelElementForParent(grammarAccess.getWatcherWithFileNameRule());
+						$current = createModelElementForParent(grammarAccess.getSignalWatcherRule());
 					}
 					add(
 						$current,
-						"interchanges",
-						lv_interchanges_7_0,
-						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalDatainterchange");
+						"tasks",
+						lv_tasks_12_0,
+						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalTask");
 					afterParserOrEnumRuleCall();
 				}
 			)
 		)*
-		otherlv_8='}'
+		otherlv_13='}'
 		{
-			newLeafNode(otherlv_8, grammarAccess.getWatcherWithFileNameAccess().getRightCurlyBracketKeyword_8());
+			newLeafNode(otherlv_13, grammarAccess.getSignalWatcherAccess().getRightCurlyBracketKeyword_11());
 		}
 	)
 ;
@@ -681,18 +525,18 @@
 		(
 			(
 				{
-					newCompositeNode(grammarAccess.getSignalSchedulerAccess().getInterchangesSignalDatainterchangeParserRuleCall_8_0());
+					newCompositeNode(grammarAccess.getSignalSchedulerAccess().getTasksSignalTaskParserRuleCall_8_0());
 				}
-				lv_interchanges_8_0=ruleSignalDatainterchange
+				lv_tasks_8_0=ruleSignalTask
 				{
 					if ($current==null) {
 						$current = createModelElementForParent(grammarAccess.getSignalSchedulerRule());
 					}
 					add(
 						$current,
-						"interchanges",
-						lv_interchanges_8_0,
-						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalDatainterchange");
+						"tasks",
+						lv_tasks_8_0,
+						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalTask");
 					afterParserOrEnumRuleCall();
 				}
 			)
@@ -1083,6 +927,42 @@
 	)
 ;
 
+// Entry rule entryRuleSignalTask
+entryRuleSignalTask returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getSignalTaskRule()); }
+	iv_ruleSignalTask=ruleSignalTask
+	{ $current=$iv_ruleSignalTask.current; }
+	EOF;
+
+// Rule SignalTask
+ruleSignalTask returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getSignalTaskAccess().getSignalDatainterchangeParserRuleCall_0());
+		}
+		this_SignalDatainterchange_0=ruleSignalDatainterchange
+		{
+			$current = $this_SignalDatainterchange_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getSignalTaskAccess().getSignalFunctionParserRuleCall_1());
+		}
+		this_SignalFunction_1=ruleSignalFunction
+		{
+			$current = $this_SignalFunction_1.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
 // Entry rule entryRuleSignalDatainterchange
 entryRuleSignalDatainterchange returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getSignalDatainterchangeRule()); }
@@ -1102,18 +982,18 @@
 		(
 			(
 				{
-					newCompositeNode(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0());
+					newCompositeNode(grammarAccess.getSignalDatainterchangeAccess().getActionTypeSignalActionTypeEnumEnumRuleCall_0_0());
 				}
-				lv_dataAction_0_0=ruleSignalActionEnum
+				lv_actionType_0_0=ruleSignalActionTypeEnum
 				{
 					if ($current==null) {
 						$current = createModelElementForParent(grammarAccess.getSignalDatainterchangeRule());
 					}
 					set(
 						$current,
-						"dataAction",
-						lv_dataAction_0_0,
-						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalActionEnum");
+						"actionType",
+						lv_actionType_0_0,
+						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalActionTypeEnum");
 					afterParserOrEnumRuleCall();
 				}
 			)
@@ -1148,6 +1028,157 @@
 	)
 ;
 
+// Entry rule entryRuleSignalFunction
+entryRuleSignalFunction returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getSignalFunctionRule()); }
+	iv_ruleSignalFunction=ruleSignalFunction
+	{ $current=$iv_ruleSignalFunction.current; }
+	EOF;
+
+// Rule SignalFunction
+ruleSignalFunction returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='functionGroup'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getSignalFunctionAccess().getFunctionGroupKeyword_0());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getSignalFunctionRule());
+					}
+				}
+				otherlv_1=RULE_ID
+				{
+					newLeafNode(otherlv_1, grammarAccess.getSignalFunctionAccess().getGroupFunctionLibraryActionGroupCrossReference_1_0());
+				}
+			)
+		)
+		(
+			(
+				otherlv_2='execute'
+				{
+					newLeafNode(otherlv_2, grammarAccess.getSignalFunctionAccess().getExecuteKeyword_2_0_0());
+				}
+				(
+					(
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getSignalFunctionRule());
+							}
+						}
+						otherlv_3=RULE_ID
+						{
+							newLeafNode(otherlv_3, grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_0_1_0());
+						}
+					)
+				)
+			)
+			    |
+			(
+				(
+					(
+						lv_onImportFile_4_0='executeOnImportFile'
+						{
+							newLeafNode(lv_onImportFile_4_0, grammarAccess.getSignalFunctionAccess().getOnImportFileExecuteOnImportFileKeyword_2_1_0_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getSignalFunctionRule());
+							}
+							setWithLastConsumed($current, "onImportFile", true, "executeOnImportFile");
+						}
+					)
+				)
+				(
+					(
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getSignalFunctionRule());
+							}
+						}
+						otherlv_5=RULE_ID
+						{
+							newLeafNode(otherlv_5, grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_1_1_0());
+						}
+					)
+				)
+				otherlv_6='from'
+				{
+					newLeafNode(otherlv_6, grammarAccess.getSignalFunctionAccess().getFromKeyword_2_1_2());
+				}
+				(
+					(
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getSignalFunctionRule());
+							}
+						}
+						otherlv_7=RULE_ID
+						{
+							newLeafNode(otherlv_7, grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeCrossReference_2_1_3_0());
+						}
+					)
+				)
+			)
+			    |
+			(
+				(
+					(
+						lv_onExportFile_8_0='executeOnExportFile'
+						{
+							newLeafNode(lv_onExportFile_8_0, grammarAccess.getSignalFunctionAccess().getOnExportFileExecuteOnExportFileKeyword_2_2_0_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getSignalFunctionRule());
+							}
+							setWithLastConsumed($current, "onExportFile", true, "executeOnExportFile");
+						}
+					)
+				)
+				(
+					(
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getSignalFunctionRule());
+							}
+						}
+						otherlv_9=RULE_ID
+						{
+							newLeafNode(otherlv_9, grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_2_1_0());
+						}
+					)
+				)
+				otherlv_10='from'
+				{
+					newLeafNode(otherlv_10, grammarAccess.getSignalFunctionAccess().getFromKeyword_2_2_2());
+				}
+				(
+					(
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getSignalFunctionRule());
+							}
+						}
+						otherlv_11=RULE_ID
+						{
+							newLeafNode(otherlv_11, grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeCrossReference_2_2_3_0());
+						}
+					)
+				)
+			)
+		)
+	)
+;
+
 // Entry rule entryRuleTRANSLATABLEID
 entryRuleTRANSLATABLEID returns [String current=null]:
 	{ newCompositeNode(grammarAccess.getTRANSLATABLEIDRule()); }
@@ -8033,8 +8064,8 @@
 	)+
 ;
 
-// Rule SignalActionEnum
-ruleSignalActionEnum returns [Enumerator current=null]
+// Rule SignalActionTypeEnum
+ruleSignalActionTypeEnum returns [Enumerator current=null]
 @init {
 	enterRule();
 }
@@ -8045,16 +8076,16 @@
 		(
 			enumLiteral_0='import'
 			{
-				$current = grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_0, grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0());
+				$current = grammarAccess.getSignalActionTypeEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getSignalActionTypeEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0());
 			}
 		)
 		    |
 		(
 			enumLiteral_1='export'
 			{
-				$current = grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
-				newLeafNode(enumLiteral_1, grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1());
+				$current = grammarAccess.getSignalActionTypeEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getSignalActionTypeEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1());
 			}
 		)
 	)
diff --git a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSL.tokens b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSL.tokens
index fb70722..5e33809 100644
--- a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSL.tokens
+++ b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSL.tokens
@@ -1,101 +1,105 @@
-'!'=69
-'!='=54
-'!=='=56
-'#'=40
-'%'=68
-'%='=47
-'&&'=52
-'&'=101
-'('=36
-')'=38
-'*'=32
-'**'=66
-'*='=45
-'+'=64
-'++'=71
-'+='=43
-','=37
-'-'=65
-'--'=72
-'-='=44
-'->'=58
-'.'=73
-'..'=60
-'..<'=59
-'/'=67
-'/='=46
-':'=24
-'::'=74
-';'=34
-'<'=48
-'<>'=62
-'='=39
-'=='=53
-'==='=55
-'=>'=61
-'>'=49
-'>='=50
-'?'=100
-'?.'=75
-'?:'=63
-'@'=35
-'['=41
-']'=42
-'applyon'=28
-'as'=70
-'at'=26
-'case'=81
-'catch'=99
-'cron'=21
-'dailyat'=23
-'default'=80
-'do'=84
-'else'=78
-'export'=102
-'extends'=87
-'extension'=31
-'false'=90
+'!'=73
+'!='=58
+'!=='=60
+'#'=44
+'%'=72
+'%='=51
+'&&'=56
+'&'=105
+'('=40
+')'=42
+'*'=36
+'**'=70
+'*='=49
+'+'=68
+'++'=75
+'+='=47
+','=41
+'-'=69
+'--'=76
+'-='=48
+'->'=62
+'.'=77
+'..'=64
+'..<'=63
+'/'=71
+'/='=50
+':'=25
+'::'=78
+';'=38
+'<'=52
+'<>'=66
+'='=43
+'=='=57
+'==='=59
+'=>'=65
+'>'=53
+'>='=54
+'?'=104
+'?.'=79
+'?:'=67
+'@'=39
+'['=45
+']'=46
+'applyon'=20
+'as'=74
+'at'=27
+'case'=85
+'catch'=103
+'cron'=22
+'dailyat'=24
+'default'=84
+'do'=88
+'else'=82
+'execute'=30
+'executeOnExportFile'=32
+'executeOnImportFile'=31
+'export'=106
+'extends'=91
+'extension'=35
+'false'=94
 'filemask'=17
-'filename'=19
-'finally'=97
-'for'=82
-'friday'=110
-'from'=18
-'hourlyat'=22
-'if'=77
-'import'=29
-'instanceof'=57
-'monday'=106
-'monthlyon'=27
-'new'=89
-'ns'=33
-'null'=92
+'filename'=18
+'finally'=101
+'for'=86
+'friday'=114
+'from'=19
+'functionGroup'=29
+'hourlyat'=23
+'if'=81
+'import'=33
+'instanceof'=61
+'monday'=110
+'monthlyon'=28
+'new'=93
+'ns'=37
+'null'=96
 'package'=13
-'parallel'=104
-'return'=95
-'saturday'=111
-'scheduler'=20
-'sequential'=103
-'static'=30
-'sunday'=105
-'super'=88
-'switch'=79
-'synchronized'=98
-'throw'=94
-'thursday'=109
-'true'=91
-'try'=96
-'tuesday'=107
-'typeof'=93
-'val'=86
-'var'=85
+'parallel'=108
+'return'=99
+'saturday'=115
+'scheduler'=21
+'sequential'=107
+'static'=34
+'sunday'=109
+'super'=92
+'switch'=83
+'synchronized'=102
+'throw'=98
+'thursday'=113
+'true'=95
+'try'=100
+'tuesday'=111
+'typeof'=97
+'val'=90
+'var'=89
 'watcher'=16
-'wednesday'=108
-'weeklyon'=25
-'while'=83
+'wednesday'=112
+'weeklyon'=26
+'while'=87
 '{'=14
-'|'=76
-'||'=51
+'|'=80
+'||'=55
 '}'=15
 RULE_ANY_OTHER=12
 RULE_DECIMAL=8
@@ -118,6 +122,10 @@
 T__109=109
 T__110=110
 T__111=111
+T__112=112
+T__113=113
+T__114=114
+T__115=115
 T__13=13
 T__14=14
 T__15=15
diff --git a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSLLexer.java b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSLLexer.java
index b628445..67eafbf 100644
--- a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSLLexer.java
+++ b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSLLexer.java
@@ -96,8 +96,10 @@
     public static final int T__78=78;
     public static final int T__79=79;
     public static final int T__73=73;
+    public static final int T__115=115;
     public static final int EOF=-1;
     public static final int T__74=74;
+    public static final int T__114=114;
     public static final int T__75=75;
     public static final int T__76=76;
     public static final int T__80=80;
@@ -105,7 +107,9 @@
     public static final int T__81=81;
     public static final int T__110=110;
     public static final int T__82=82;
+    public static final int T__113=113;
     public static final int T__83=83;
+    public static final int T__112=112;
     public static final int RULE_WS=11;
     public static final int RULE_ANY_OTHER=12;
     public static final int T__88=88;
@@ -243,10 +247,10 @@
         try {
             int _type = T__18;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:16:7: ( 'from' )
-            // InternalSignalDSL.g:16:9: 'from'
+            // InternalSignalDSL.g:16:7: ( 'filename' )
+            // InternalSignalDSL.g:16:9: 'filename'
             {
-            match("from"); 
+            match("filename"); 
 
 
             }
@@ -264,10 +268,10 @@
         try {
             int _type = T__19;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:17:7: ( 'filename' )
-            // InternalSignalDSL.g:17:9: 'filename'
+            // InternalSignalDSL.g:17:7: ( 'from' )
+            // InternalSignalDSL.g:17:9: 'from'
             {
-            match("filename"); 
+            match("from"); 
 
 
             }
@@ -285,10 +289,10 @@
         try {
             int _type = T__20;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:18:7: ( 'scheduler' )
-            // InternalSignalDSL.g:18:9: 'scheduler'
+            // InternalSignalDSL.g:18:7: ( 'applyon' )
+            // InternalSignalDSL.g:18:9: 'applyon'
             {
-            match("scheduler"); 
+            match("applyon"); 
 
 
             }
@@ -306,10 +310,10 @@
         try {
             int _type = T__21;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:19:7: ( 'cron' )
-            // InternalSignalDSL.g:19:9: 'cron'
+            // InternalSignalDSL.g:19:7: ( 'scheduler' )
+            // InternalSignalDSL.g:19:9: 'scheduler'
             {
-            match("cron"); 
+            match("scheduler"); 
 
 
             }
@@ -327,10 +331,10 @@
         try {
             int _type = T__22;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:20:7: ( 'hourlyat' )
-            // InternalSignalDSL.g:20:9: 'hourlyat'
+            // InternalSignalDSL.g:20:7: ( 'cron' )
+            // InternalSignalDSL.g:20:9: 'cron'
             {
-            match("hourlyat"); 
+            match("cron"); 
 
 
             }
@@ -348,10 +352,10 @@
         try {
             int _type = T__23;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:21:7: ( 'dailyat' )
-            // InternalSignalDSL.g:21:9: 'dailyat'
+            // InternalSignalDSL.g:21:7: ( 'hourlyat' )
+            // InternalSignalDSL.g:21:9: 'hourlyat'
             {
-            match("dailyat"); 
+            match("hourlyat"); 
 
 
             }
@@ -369,10 +373,11 @@
         try {
             int _type = T__24;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:22:7: ( ':' )
-            // InternalSignalDSL.g:22:9: ':'
+            // InternalSignalDSL.g:22:7: ( 'dailyat' )
+            // InternalSignalDSL.g:22:9: 'dailyat'
             {
-            match(':'); 
+            match("dailyat"); 
+
 
             }
 
@@ -389,11 +394,10 @@
         try {
             int _type = T__25;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:23:7: ( 'weeklyon' )
-            // InternalSignalDSL.g:23:9: 'weeklyon'
+            // InternalSignalDSL.g:23:7: ( ':' )
+            // InternalSignalDSL.g:23:9: ':'
             {
-            match("weeklyon"); 
-
+            match(':'); 
 
             }
 
@@ -410,10 +414,10 @@
         try {
             int _type = T__26;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:24:7: ( 'at' )
-            // InternalSignalDSL.g:24:9: 'at'
+            // InternalSignalDSL.g:24:7: ( 'weeklyon' )
+            // InternalSignalDSL.g:24:9: 'weeklyon'
             {
-            match("at"); 
+            match("weeklyon"); 
 
 
             }
@@ -431,10 +435,10 @@
         try {
             int _type = T__27;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:25:7: ( 'monthlyon' )
-            // InternalSignalDSL.g:25:9: 'monthlyon'
+            // InternalSignalDSL.g:25:7: ( 'at' )
+            // InternalSignalDSL.g:25:9: 'at'
             {
-            match("monthlyon"); 
+            match("at"); 
 
 
             }
@@ -452,10 +456,10 @@
         try {
             int _type = T__28;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:26:7: ( 'applyon' )
-            // InternalSignalDSL.g:26:9: 'applyon'
+            // InternalSignalDSL.g:26:7: ( 'monthlyon' )
+            // InternalSignalDSL.g:26:9: 'monthlyon'
             {
-            match("applyon"); 
+            match("monthlyon"); 
 
 
             }
@@ -473,10 +477,10 @@
         try {
             int _type = T__29;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:27:7: ( 'import' )
-            // InternalSignalDSL.g:27:9: 'import'
+            // InternalSignalDSL.g:27:7: ( 'functionGroup' )
+            // InternalSignalDSL.g:27:9: 'functionGroup'
             {
-            match("import"); 
+            match("functionGroup"); 
 
 
             }
@@ -494,10 +498,10 @@
         try {
             int _type = T__30;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:28:7: ( 'static' )
-            // InternalSignalDSL.g:28:9: 'static'
+            // InternalSignalDSL.g:28:7: ( 'execute' )
+            // InternalSignalDSL.g:28:9: 'execute'
             {
-            match("static"); 
+            match("execute"); 
 
 
             }
@@ -515,10 +519,10 @@
         try {
             int _type = T__31;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:29:7: ( 'extension' )
-            // InternalSignalDSL.g:29:9: 'extension'
+            // InternalSignalDSL.g:29:7: ( 'executeOnImportFile' )
+            // InternalSignalDSL.g:29:9: 'executeOnImportFile'
             {
-            match("extension"); 
+            match("executeOnImportFile"); 
 
 
             }
@@ -536,10 +540,11 @@
         try {
             int _type = T__32;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:30:7: ( '*' )
-            // InternalSignalDSL.g:30:9: '*'
+            // InternalSignalDSL.g:30:7: ( 'executeOnExportFile' )
+            // InternalSignalDSL.g:30:9: 'executeOnExportFile'
             {
-            match('*'); 
+            match("executeOnExportFile"); 
+
 
             }
 
@@ -556,10 +561,10 @@
         try {
             int _type = T__33;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:31:7: ( 'ns' )
-            // InternalSignalDSL.g:31:9: 'ns'
+            // InternalSignalDSL.g:31:7: ( 'import' )
+            // InternalSignalDSL.g:31:9: 'import'
             {
-            match("ns"); 
+            match("import"); 
 
 
             }
@@ -577,10 +582,11 @@
         try {
             int _type = T__34;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:32:7: ( ';' )
-            // InternalSignalDSL.g:32:9: ';'
+            // InternalSignalDSL.g:32:7: ( 'static' )
+            // InternalSignalDSL.g:32:9: 'static'
             {
-            match(';'); 
+            match("static"); 
+
 
             }
 
@@ -597,10 +603,11 @@
         try {
             int _type = T__35;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:33:7: ( '@' )
-            // InternalSignalDSL.g:33:9: '@'
+            // InternalSignalDSL.g:33:7: ( 'extension' )
+            // InternalSignalDSL.g:33:9: 'extension'
             {
-            match('@'); 
+            match("extension"); 
+
 
             }
 
@@ -617,10 +624,10 @@
         try {
             int _type = T__36;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:34:7: ( '(' )
-            // InternalSignalDSL.g:34:9: '('
+            // InternalSignalDSL.g:34:7: ( '*' )
+            // InternalSignalDSL.g:34:9: '*'
             {
-            match('('); 
+            match('*'); 
 
             }
 
@@ -637,10 +644,11 @@
         try {
             int _type = T__37;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:35:7: ( ',' )
-            // InternalSignalDSL.g:35:9: ','
+            // InternalSignalDSL.g:35:7: ( 'ns' )
+            // InternalSignalDSL.g:35:9: 'ns'
             {
-            match(','); 
+            match("ns"); 
+
 
             }
 
@@ -657,10 +665,10 @@
         try {
             int _type = T__38;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:36:7: ( ')' )
-            // InternalSignalDSL.g:36:9: ')'
+            // InternalSignalDSL.g:36:7: ( ';' )
+            // InternalSignalDSL.g:36:9: ';'
             {
-            match(')'); 
+            match(';'); 
 
             }
 
@@ -677,10 +685,10 @@
         try {
             int _type = T__39;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:37:7: ( '=' )
-            // InternalSignalDSL.g:37:9: '='
+            // InternalSignalDSL.g:37:7: ( '@' )
+            // InternalSignalDSL.g:37:9: '@'
             {
-            match('='); 
+            match('@'); 
 
             }
 
@@ -697,10 +705,10 @@
         try {
             int _type = T__40;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:38:7: ( '#' )
-            // InternalSignalDSL.g:38:9: '#'
+            // InternalSignalDSL.g:38:7: ( '(' )
+            // InternalSignalDSL.g:38:9: '('
             {
-            match('#'); 
+            match('('); 
 
             }
 
@@ -717,10 +725,10 @@
         try {
             int _type = T__41;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:39:7: ( '[' )
-            // InternalSignalDSL.g:39:9: '['
+            // InternalSignalDSL.g:39:7: ( ',' )
+            // InternalSignalDSL.g:39:9: ','
             {
-            match('['); 
+            match(','); 
 
             }
 
@@ -737,10 +745,10 @@
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:40:7: ( ']' )
-            // InternalSignalDSL.g:40:9: ']'
+            // InternalSignalDSL.g:40:7: ( ')' )
+            // InternalSignalDSL.g:40:9: ')'
             {
-            match(']'); 
+            match(')'); 
 
             }
 
@@ -757,11 +765,10 @@
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:41:7: ( '+=' )
-            // InternalSignalDSL.g:41:9: '+='
+            // InternalSignalDSL.g:41:7: ( '=' )
+            // InternalSignalDSL.g:41:9: '='
             {
-            match("+="); 
-
+            match('='); 
 
             }
 
@@ -778,11 +785,10 @@
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:42:7: ( '-=' )
-            // InternalSignalDSL.g:42:9: '-='
+            // InternalSignalDSL.g:42:7: ( '#' )
+            // InternalSignalDSL.g:42:9: '#'
             {
-            match("-="); 
-
+            match('#'); 
 
             }
 
@@ -799,11 +805,10 @@
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:43:7: ( '*=' )
-            // InternalSignalDSL.g:43:9: '*='
+            // InternalSignalDSL.g:43:7: ( '[' )
+            // InternalSignalDSL.g:43:9: '['
             {
-            match("*="); 
-
+            match('['); 
 
             }
 
@@ -820,11 +825,10 @@
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:44:7: ( '/=' )
-            // InternalSignalDSL.g:44:9: '/='
+            // InternalSignalDSL.g:44:7: ( ']' )
+            // InternalSignalDSL.g:44:9: ']'
             {
-            match("/="); 
-
+            match(']'); 
 
             }
 
@@ -841,10 +845,10 @@
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:45:7: ( '%=' )
-            // InternalSignalDSL.g:45:9: '%='
+            // InternalSignalDSL.g:45:7: ( '+=' )
+            // InternalSignalDSL.g:45:9: '+='
             {
-            match("%="); 
+            match("+="); 
 
 
             }
@@ -862,10 +866,11 @@
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:46:7: ( '<' )
-            // InternalSignalDSL.g:46:9: '<'
+            // InternalSignalDSL.g:46:7: ( '-=' )
+            // InternalSignalDSL.g:46:9: '-='
             {
-            match('<'); 
+            match("-="); 
+
 
             }
 
@@ -882,10 +887,11 @@
         try {
             int _type = T__49;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:47:7: ( '>' )
-            // InternalSignalDSL.g:47:9: '>'
+            // InternalSignalDSL.g:47:7: ( '*=' )
+            // InternalSignalDSL.g:47:9: '*='
             {
-            match('>'); 
+            match("*="); 
+
 
             }
 
@@ -902,10 +908,10 @@
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:48:7: ( '>=' )
-            // InternalSignalDSL.g:48:9: '>='
+            // InternalSignalDSL.g:48:7: ( '/=' )
+            // InternalSignalDSL.g:48:9: '/='
             {
-            match(">="); 
+            match("/="); 
 
 
             }
@@ -923,10 +929,10 @@
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:49:7: ( '||' )
-            // InternalSignalDSL.g:49:9: '||'
+            // InternalSignalDSL.g:49:7: ( '%=' )
+            // InternalSignalDSL.g:49:9: '%='
             {
-            match("||"); 
+            match("%="); 
 
 
             }
@@ -944,11 +950,10 @@
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:50:7: ( '&&' )
-            // InternalSignalDSL.g:50:9: '&&'
+            // InternalSignalDSL.g:50:7: ( '<' )
+            // InternalSignalDSL.g:50:9: '<'
             {
-            match("&&"); 
-
+            match('<'); 
 
             }
 
@@ -965,11 +970,10 @@
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:51:7: ( '==' )
-            // InternalSignalDSL.g:51:9: '=='
+            // InternalSignalDSL.g:51:7: ( '>' )
+            // InternalSignalDSL.g:51:9: '>'
             {
-            match("=="); 
-
+            match('>'); 
 
             }
 
@@ -986,10 +990,10 @@
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:52:7: ( '!=' )
-            // InternalSignalDSL.g:52:9: '!='
+            // InternalSignalDSL.g:52:7: ( '>=' )
+            // InternalSignalDSL.g:52:9: '>='
             {
-            match("!="); 
+            match(">="); 
 
 
             }
@@ -1007,10 +1011,10 @@
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:53:7: ( '===' )
-            // InternalSignalDSL.g:53:9: '==='
+            // InternalSignalDSL.g:53:7: ( '||' )
+            // InternalSignalDSL.g:53:9: '||'
             {
-            match("==="); 
+            match("||"); 
 
 
             }
@@ -1028,10 +1032,10 @@
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:54:7: ( '!==' )
-            // InternalSignalDSL.g:54:9: '!=='
+            // InternalSignalDSL.g:54:7: ( '&&' )
+            // InternalSignalDSL.g:54:9: '&&'
             {
-            match("!=="); 
+            match("&&"); 
 
 
             }
@@ -1049,10 +1053,10 @@
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:55:7: ( 'instanceof' )
-            // InternalSignalDSL.g:55:9: 'instanceof'
+            // InternalSignalDSL.g:55:7: ( '==' )
+            // InternalSignalDSL.g:55:9: '=='
             {
-            match("instanceof"); 
+            match("=="); 
 
 
             }
@@ -1070,10 +1074,10 @@
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:56:7: ( '->' )
-            // InternalSignalDSL.g:56:9: '->'
+            // InternalSignalDSL.g:56:7: ( '!=' )
+            // InternalSignalDSL.g:56:9: '!='
             {
-            match("->"); 
+            match("!="); 
 
 
             }
@@ -1091,10 +1095,10 @@
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:57:7: ( '..<' )
-            // InternalSignalDSL.g:57:9: '..<'
+            // InternalSignalDSL.g:57:7: ( '===' )
+            // InternalSignalDSL.g:57:9: '==='
             {
-            match("..<"); 
+            match("==="); 
 
 
             }
@@ -1112,10 +1116,10 @@
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:58:7: ( '..' )
-            // InternalSignalDSL.g:58:9: '..'
+            // InternalSignalDSL.g:58:7: ( '!==' )
+            // InternalSignalDSL.g:58:9: '!=='
             {
-            match(".."); 
+            match("!=="); 
 
 
             }
@@ -1133,10 +1137,10 @@
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:59:7: ( '=>' )
-            // InternalSignalDSL.g:59:9: '=>'
+            // InternalSignalDSL.g:59:7: ( 'instanceof' )
+            // InternalSignalDSL.g:59:9: 'instanceof'
             {
-            match("=>"); 
+            match("instanceof"); 
 
 
             }
@@ -1154,10 +1158,10 @@
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:60:7: ( '<>' )
-            // InternalSignalDSL.g:60:9: '<>'
+            // InternalSignalDSL.g:60:7: ( '->' )
+            // InternalSignalDSL.g:60:9: '->'
             {
-            match("<>"); 
+            match("->"); 
 
 
             }
@@ -1175,10 +1179,10 @@
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:61:7: ( '?:' )
-            // InternalSignalDSL.g:61:9: '?:'
+            // InternalSignalDSL.g:61:7: ( '..<' )
+            // InternalSignalDSL.g:61:9: '..<'
             {
-            match("?:"); 
+            match("..<"); 
 
 
             }
@@ -1196,10 +1200,11 @@
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:62:7: ( '+' )
-            // InternalSignalDSL.g:62:9: '+'
+            // InternalSignalDSL.g:62:7: ( '..' )
+            // InternalSignalDSL.g:62:9: '..'
             {
-            match('+'); 
+            match(".."); 
+
 
             }
 
@@ -1216,10 +1221,11 @@
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:63:7: ( '-' )
-            // InternalSignalDSL.g:63:9: '-'
+            // InternalSignalDSL.g:63:7: ( '=>' )
+            // InternalSignalDSL.g:63:9: '=>'
             {
-            match('-'); 
+            match("=>"); 
+
 
             }
 
@@ -1236,10 +1242,10 @@
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:64:7: ( '**' )
-            // InternalSignalDSL.g:64:9: '**'
+            // InternalSignalDSL.g:64:7: ( '<>' )
+            // InternalSignalDSL.g:64:9: '<>'
             {
-            match("**"); 
+            match("<>"); 
 
 
             }
@@ -1257,10 +1263,11 @@
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:65:7: ( '/' )
-            // InternalSignalDSL.g:65:9: '/'
+            // InternalSignalDSL.g:65:7: ( '?:' )
+            // InternalSignalDSL.g:65:9: '?:'
             {
-            match('/'); 
+            match("?:"); 
+
 
             }
 
@@ -1277,10 +1284,10 @@
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:66:7: ( '%' )
-            // InternalSignalDSL.g:66:9: '%'
+            // InternalSignalDSL.g:66:7: ( '+' )
+            // InternalSignalDSL.g:66:9: '+'
             {
-            match('%'); 
+            match('+'); 
 
             }
 
@@ -1297,10 +1304,10 @@
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:67:7: ( '!' )
-            // InternalSignalDSL.g:67:9: '!'
+            // InternalSignalDSL.g:67:7: ( '-' )
+            // InternalSignalDSL.g:67:9: '-'
             {
-            match('!'); 
+            match('-'); 
 
             }
 
@@ -1317,10 +1324,10 @@
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:68:7: ( 'as' )
-            // InternalSignalDSL.g:68:9: 'as'
+            // InternalSignalDSL.g:68:7: ( '**' )
+            // InternalSignalDSL.g:68:9: '**'
             {
-            match("as"); 
+            match("**"); 
 
 
             }
@@ -1338,11 +1345,10 @@
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:69:7: ( '++' )
-            // InternalSignalDSL.g:69:9: '++'
+            // InternalSignalDSL.g:69:7: ( '/' )
+            // InternalSignalDSL.g:69:9: '/'
             {
-            match("++"); 
-
+            match('/'); 
 
             }
 
@@ -1359,11 +1365,10 @@
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:70:7: ( '--' )
-            // InternalSignalDSL.g:70:9: '--'
+            // InternalSignalDSL.g:70:7: ( '%' )
+            // InternalSignalDSL.g:70:9: '%'
             {
-            match("--"); 
-
+            match('%'); 
 
             }
 
@@ -1380,10 +1385,10 @@
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:71:7: ( '.' )
-            // InternalSignalDSL.g:71:9: '.'
+            // InternalSignalDSL.g:71:7: ( '!' )
+            // InternalSignalDSL.g:71:9: '!'
             {
-            match('.'); 
+            match('!'); 
 
             }
 
@@ -1400,10 +1405,10 @@
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:72:7: ( '::' )
-            // InternalSignalDSL.g:72:9: '::'
+            // InternalSignalDSL.g:72:7: ( 'as' )
+            // InternalSignalDSL.g:72:9: 'as'
             {
-            match("::"); 
+            match("as"); 
 
 
             }
@@ -1421,10 +1426,10 @@
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:73:7: ( '?.' )
-            // InternalSignalDSL.g:73:9: '?.'
+            // InternalSignalDSL.g:73:7: ( '++' )
+            // InternalSignalDSL.g:73:9: '++'
             {
-            match("?."); 
+            match("++"); 
 
 
             }
@@ -1442,10 +1447,11 @@
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:74:7: ( '|' )
-            // InternalSignalDSL.g:74:9: '|'
+            // InternalSignalDSL.g:74:7: ( '--' )
+            // InternalSignalDSL.g:74:9: '--'
             {
-            match('|'); 
+            match("--"); 
+
 
             }
 
@@ -1462,11 +1468,10 @@
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:75:7: ( 'if' )
-            // InternalSignalDSL.g:75:9: 'if'
+            // InternalSignalDSL.g:75:7: ( '.' )
+            // InternalSignalDSL.g:75:9: '.'
             {
-            match("if"); 
-
+            match('.'); 
 
             }
 
@@ -1483,10 +1488,10 @@
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:76:7: ( 'else' )
-            // InternalSignalDSL.g:76:9: 'else'
+            // InternalSignalDSL.g:76:7: ( '::' )
+            // InternalSignalDSL.g:76:9: '::'
             {
-            match("else"); 
+            match("::"); 
 
 
             }
@@ -1504,10 +1509,10 @@
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:77:7: ( 'switch' )
-            // InternalSignalDSL.g:77:9: 'switch'
+            // InternalSignalDSL.g:77:7: ( '?.' )
+            // InternalSignalDSL.g:77:9: '?.'
             {
-            match("switch"); 
+            match("?."); 
 
 
             }
@@ -1525,11 +1530,10 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:78:7: ( 'default' )
-            // InternalSignalDSL.g:78:9: 'default'
+            // InternalSignalDSL.g:78:7: ( '|' )
+            // InternalSignalDSL.g:78:9: '|'
             {
-            match("default"); 
-
+            match('|'); 
 
             }
 
@@ -1546,10 +1550,10 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:79:7: ( 'case' )
-            // InternalSignalDSL.g:79:9: 'case'
+            // InternalSignalDSL.g:79:7: ( 'if' )
+            // InternalSignalDSL.g:79:9: 'if'
             {
-            match("case"); 
+            match("if"); 
 
 
             }
@@ -1567,10 +1571,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:80:7: ( 'for' )
-            // InternalSignalDSL.g:80:9: 'for'
+            // InternalSignalDSL.g:80:7: ( 'else' )
+            // InternalSignalDSL.g:80:9: 'else'
             {
-            match("for"); 
+            match("else"); 
 
 
             }
@@ -1588,10 +1592,10 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:81:7: ( 'while' )
-            // InternalSignalDSL.g:81:9: 'while'
+            // InternalSignalDSL.g:81:7: ( 'switch' )
+            // InternalSignalDSL.g:81:9: 'switch'
             {
-            match("while"); 
+            match("switch"); 
 
 
             }
@@ -1609,10 +1613,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:82:7: ( 'do' )
-            // InternalSignalDSL.g:82:9: 'do'
+            // InternalSignalDSL.g:82:7: ( 'default' )
+            // InternalSignalDSL.g:82:9: 'default'
             {
-            match("do"); 
+            match("default"); 
 
 
             }
@@ -1630,10 +1634,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:83:7: ( 'var' )
-            // InternalSignalDSL.g:83:9: 'var'
+            // InternalSignalDSL.g:83:7: ( 'case' )
+            // InternalSignalDSL.g:83:9: 'case'
             {
-            match("var"); 
+            match("case"); 
 
 
             }
@@ -1651,10 +1655,10 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:84:7: ( 'val' )
-            // InternalSignalDSL.g:84:9: 'val'
+            // InternalSignalDSL.g:84:7: ( 'for' )
+            // InternalSignalDSL.g:84:9: 'for'
             {
-            match("val"); 
+            match("for"); 
 
 
             }
@@ -1672,10 +1676,10 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:85:7: ( 'extends' )
-            // InternalSignalDSL.g:85:9: 'extends'
+            // InternalSignalDSL.g:85:7: ( 'while' )
+            // InternalSignalDSL.g:85:9: 'while'
             {
-            match("extends"); 
+            match("while"); 
 
 
             }
@@ -1693,10 +1697,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:86:7: ( 'super' )
-            // InternalSignalDSL.g:86:9: 'super'
+            // InternalSignalDSL.g:86:7: ( 'do' )
+            // InternalSignalDSL.g:86:9: 'do'
             {
-            match("super"); 
+            match("do"); 
 
 
             }
@@ -1714,10 +1718,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:87:7: ( 'new' )
-            // InternalSignalDSL.g:87:9: 'new'
+            // InternalSignalDSL.g:87:7: ( 'var' )
+            // InternalSignalDSL.g:87:9: 'var'
             {
-            match("new"); 
+            match("var"); 
 
 
             }
@@ -1735,10 +1739,10 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:88:7: ( 'false' )
-            // InternalSignalDSL.g:88:9: 'false'
+            // InternalSignalDSL.g:88:7: ( 'val' )
+            // InternalSignalDSL.g:88:9: 'val'
             {
-            match("false"); 
+            match("val"); 
 
 
             }
@@ -1756,10 +1760,10 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:89:7: ( 'true' )
-            // InternalSignalDSL.g:89:9: 'true'
+            // InternalSignalDSL.g:89:7: ( 'extends' )
+            // InternalSignalDSL.g:89:9: 'extends'
             {
-            match("true"); 
+            match("extends"); 
 
 
             }
@@ -1777,10 +1781,10 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:90:7: ( 'null' )
-            // InternalSignalDSL.g:90:9: 'null'
+            // InternalSignalDSL.g:90:7: ( 'super' )
+            // InternalSignalDSL.g:90:9: 'super'
             {
-            match("null"); 
+            match("super"); 
 
 
             }
@@ -1798,10 +1802,10 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:91:7: ( 'typeof' )
-            // InternalSignalDSL.g:91:9: 'typeof'
+            // InternalSignalDSL.g:91:7: ( 'new' )
+            // InternalSignalDSL.g:91:9: 'new'
             {
-            match("typeof"); 
+            match("new"); 
 
 
             }
@@ -1819,10 +1823,10 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:92:7: ( 'throw' )
-            // InternalSignalDSL.g:92:9: 'throw'
+            // InternalSignalDSL.g:92:7: ( 'false' )
+            // InternalSignalDSL.g:92:9: 'false'
             {
-            match("throw"); 
+            match("false"); 
 
 
             }
@@ -1840,10 +1844,10 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:93:7: ( 'return' )
-            // InternalSignalDSL.g:93:9: 'return'
+            // InternalSignalDSL.g:93:7: ( 'true' )
+            // InternalSignalDSL.g:93:9: 'true'
             {
-            match("return"); 
+            match("true"); 
 
 
             }
@@ -1861,10 +1865,10 @@
         try {
             int _type = T__96;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:94:7: ( 'try' )
-            // InternalSignalDSL.g:94:9: 'try'
+            // InternalSignalDSL.g:94:7: ( 'null' )
+            // InternalSignalDSL.g:94:9: 'null'
             {
-            match("try"); 
+            match("null"); 
 
 
             }
@@ -1882,10 +1886,10 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:95:7: ( 'finally' )
-            // InternalSignalDSL.g:95:9: 'finally'
+            // InternalSignalDSL.g:95:7: ( 'typeof' )
+            // InternalSignalDSL.g:95:9: 'typeof'
             {
-            match("finally"); 
+            match("typeof"); 
 
 
             }
@@ -1903,10 +1907,10 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:96:7: ( 'synchronized' )
-            // InternalSignalDSL.g:96:9: 'synchronized'
+            // InternalSignalDSL.g:96:7: ( 'throw' )
+            // InternalSignalDSL.g:96:9: 'throw'
             {
-            match("synchronized"); 
+            match("throw"); 
 
 
             }
@@ -1924,10 +1928,10 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:97:7: ( 'catch' )
-            // InternalSignalDSL.g:97:9: 'catch'
+            // InternalSignalDSL.g:97:7: ( 'return' )
+            // InternalSignalDSL.g:97:9: 'return'
             {
-            match("catch"); 
+            match("return"); 
 
 
             }
@@ -1945,10 +1949,11 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:98:8: ( '?' )
-            // InternalSignalDSL.g:98:10: '?'
+            // InternalSignalDSL.g:98:8: ( 'try' )
+            // InternalSignalDSL.g:98:10: 'try'
             {
-            match('?'); 
+            match("try"); 
+
 
             }
 
@@ -1965,10 +1970,11 @@
         try {
             int _type = T__101;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:99:8: ( '&' )
-            // InternalSignalDSL.g:99:10: '&'
+            // InternalSignalDSL.g:99:8: ( 'finally' )
+            // InternalSignalDSL.g:99:10: 'finally'
             {
-            match('&'); 
+            match("finally"); 
+
 
             }
 
@@ -1985,10 +1991,10 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:100:8: ( 'export' )
-            // InternalSignalDSL.g:100:10: 'export'
+            // InternalSignalDSL.g:100:8: ( 'synchronized' )
+            // InternalSignalDSL.g:100:10: 'synchronized'
             {
-            match("export"); 
+            match("synchronized"); 
 
 
             }
@@ -2006,10 +2012,10 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:101:8: ( 'sequential' )
-            // InternalSignalDSL.g:101:10: 'sequential'
+            // InternalSignalDSL.g:101:8: ( 'catch' )
+            // InternalSignalDSL.g:101:10: 'catch'
             {
-            match("sequential"); 
+            match("catch"); 
 
 
             }
@@ -2027,11 +2033,10 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:102:8: ( 'parallel' )
-            // InternalSignalDSL.g:102:10: 'parallel'
+            // InternalSignalDSL.g:102:8: ( '?' )
+            // InternalSignalDSL.g:102:10: '?'
             {
-            match("parallel"); 
-
+            match('?'); 
 
             }
 
@@ -2048,11 +2053,10 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:103:8: ( 'sunday' )
-            // InternalSignalDSL.g:103:10: 'sunday'
+            // InternalSignalDSL.g:103:8: ( '&' )
+            // InternalSignalDSL.g:103:10: '&'
             {
-            match("sunday"); 
-
+            match('&'); 
 
             }
 
@@ -2069,10 +2073,10 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:104:8: ( 'monday' )
-            // InternalSignalDSL.g:104:10: 'monday'
+            // InternalSignalDSL.g:104:8: ( 'export' )
+            // InternalSignalDSL.g:104:10: 'export'
             {
-            match("monday"); 
+            match("export"); 
 
 
             }
@@ -2090,10 +2094,10 @@
         try {
             int _type = T__107;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:105:8: ( 'tuesday' )
-            // InternalSignalDSL.g:105:10: 'tuesday'
+            // InternalSignalDSL.g:105:8: ( 'sequential' )
+            // InternalSignalDSL.g:105:10: 'sequential'
             {
-            match("tuesday"); 
+            match("sequential"); 
 
 
             }
@@ -2111,10 +2115,10 @@
         try {
             int _type = T__108;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:106:8: ( 'wednesday' )
-            // InternalSignalDSL.g:106:10: 'wednesday'
+            // InternalSignalDSL.g:106:8: ( 'parallel' )
+            // InternalSignalDSL.g:106:10: 'parallel'
             {
-            match("wednesday"); 
+            match("parallel"); 
 
 
             }
@@ -2132,10 +2136,10 @@
         try {
             int _type = T__109;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:107:8: ( 'thursday' )
-            // InternalSignalDSL.g:107:10: 'thursday'
+            // InternalSignalDSL.g:107:8: ( 'sunday' )
+            // InternalSignalDSL.g:107:10: 'sunday'
             {
-            match("thursday"); 
+            match("sunday"); 
 
 
             }
@@ -2153,10 +2157,10 @@
         try {
             int _type = T__110;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:108:8: ( 'friday' )
-            // InternalSignalDSL.g:108:10: 'friday'
+            // InternalSignalDSL.g:108:8: ( 'monday' )
+            // InternalSignalDSL.g:108:10: 'monday'
             {
-            match("friday"); 
+            match("monday"); 
 
 
             }
@@ -2174,10 +2178,10 @@
         try {
             int _type = T__111;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:109:8: ( 'saturday' )
-            // InternalSignalDSL.g:109:10: 'saturday'
+            // InternalSignalDSL.g:109:8: ( 'tuesday' )
+            // InternalSignalDSL.g:109:10: 'tuesday'
             {
-            match("saturday"); 
+            match("tuesday"); 
 
 
             }
@@ -2190,15 +2194,99 @@
     }
     // $ANTLR end "T__111"
 
+    // $ANTLR start "T__112"
+    public final void mT__112() throws RecognitionException {
+        try {
+            int _type = T__112;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalSignalDSL.g:110:8: ( 'wednesday' )
+            // InternalSignalDSL.g:110:10: 'wednesday'
+            {
+            match("wednesday"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__112"
+
+    // $ANTLR start "T__113"
+    public final void mT__113() throws RecognitionException {
+        try {
+            int _type = T__113;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalSignalDSL.g:111:8: ( 'thursday' )
+            // InternalSignalDSL.g:111:10: 'thursday'
+            {
+            match("thursday"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__113"
+
+    // $ANTLR start "T__114"
+    public final void mT__114() throws RecognitionException {
+        try {
+            int _type = T__114;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalSignalDSL.g:112:8: ( 'friday' )
+            // InternalSignalDSL.g:112:10: 'friday'
+            {
+            match("friday"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__114"
+
+    // $ANTLR start "T__115"
+    public final void mT__115() throws RecognitionException {
+        try {
+            int _type = T__115;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalSignalDSL.g:113:8: ( 'saturday' )
+            // InternalSignalDSL.g:113:10: 'saturday'
+            {
+            match("saturday"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__115"
+
     // $ANTLR start "RULE_HEX"
     public final void mRULE_HEX() throws RecognitionException {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:8157:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalSignalDSL.g:8157:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalSignalDSL.g:8188:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalSignalDSL.g:8188:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalSignalDSL.g:8157:12: ( '0x' | '0X' )
+            // InternalSignalDSL.g:8188:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -2226,7 +2314,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalSignalDSL.g:8157:13: '0x'
+                    // InternalSignalDSL.g:8188:13: '0x'
                     {
                     match("0x"); 
 
@@ -2234,7 +2322,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:8157:18: '0X'
+                    // InternalSignalDSL.g:8188:18: '0X'
                     {
                     match("0X"); 
 
@@ -2244,7 +2332,7 @@
 
             }
 
-            // InternalSignalDSL.g:8157:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalSignalDSL.g:8188:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -2282,7 +2370,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalSignalDSL.g:8157:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalSignalDSL.g:8188:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -2291,10 +2379,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalSignalDSL.g:8157:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalSignalDSL.g:8188:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalSignalDSL.g:8157:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalSignalDSL.g:8188:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -2312,7 +2400,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalSignalDSL.g:8157:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalSignalDSL.g:8188:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -2336,7 +2424,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:8157:84: ( 'l' | 'L' )
+                            // InternalSignalDSL.g:8188:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -2375,11 +2463,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:8159:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalSignalDSL.g:8159:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalSignalDSL.g:8190:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalSignalDSL.g:8190:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalSignalDSL.g:8159:21: ( '0' .. '9' | '_' )*
+            // InternalSignalDSL.g:8190:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -2428,11 +2516,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:8161:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalSignalDSL.g:8161:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalSignalDSL.g:8192:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalSignalDSL.g:8192:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalSignalDSL.g:8161:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalSignalDSL.g:8192:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -2441,7 +2529,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalSignalDSL.g:8161:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalSignalDSL.g:8192:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -2452,7 +2540,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalSignalDSL.g:8161:36: ( '+' | '-' )?
+                    // InternalSignalDSL.g:8192:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -2485,7 +2573,7 @@
 
             }
 
-            // InternalSignalDSL.g:8161:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalSignalDSL.g:8192:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -2497,7 +2585,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalSignalDSL.g:8161:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalSignalDSL.g:8192:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -2521,7 +2609,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:8161:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalSignalDSL.g:8192:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
                     {
                     if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='L'||input.LA(1)=='d'||input.LA(1)=='f'||input.LA(1)=='l' ) {
                         input.consume();
@@ -2554,10 +2642,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:8163:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalSignalDSL.g:8163:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalSignalDSL.g:8194:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalSignalDSL.g:8194:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalSignalDSL.g:8163:11: ( '^' )?
+            // InternalSignalDSL.g:8194:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -2566,7 +2654,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalSignalDSL.g:8163:11: '^'
+                    // InternalSignalDSL.g:8194:11: '^'
                     {
                     match('^'); 
 
@@ -2584,7 +2672,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalSignalDSL.g:8163:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalSignalDSL.g:8194:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -2633,10 +2721,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:8165:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalSignalDSL.g:8165:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalSignalDSL.g:8196:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalSignalDSL.g:8196:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalSignalDSL.g:8165:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalSignalDSL.g:8196:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2654,10 +2742,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalSignalDSL.g:8165:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalSignalDSL.g:8196:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalSignalDSL.g:8165:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalSignalDSL.g:8196:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -2673,7 +2761,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:8165:21: '\\\\' .
+                    	    // InternalSignalDSL.g:8196:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -2681,7 +2769,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalSignalDSL.g:8165:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalSignalDSL.g:8196:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -2701,7 +2789,7 @@
                         }
                     } while (true);
 
-                    // InternalSignalDSL.g:8165:44: ( '\"' )?
+                    // InternalSignalDSL.g:8196:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -2710,7 +2798,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalSignalDSL.g:8165:44: '\"'
+                            // InternalSignalDSL.g:8196:44: '\"'
                             {
                             match('\"'); 
 
@@ -2723,10 +2811,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:8165:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalSignalDSL.g:8196:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalSignalDSL.g:8165:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalSignalDSL.g:8196:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -2742,7 +2830,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:8165:55: '\\\\' .
+                    	    // InternalSignalDSL.g:8196:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -2750,7 +2838,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalSignalDSL.g:8165:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalSignalDSL.g:8196:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -2770,7 +2858,7 @@
                         }
                     } while (true);
 
-                    // InternalSignalDSL.g:8165:79: ( '\\'' )?
+                    // InternalSignalDSL.g:8196:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2779,7 +2867,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalSignalDSL.g:8165:79: '\\''
+                            // InternalSignalDSL.g:8196:79: '\\''
                             {
                             match('\''); 
 
@@ -2810,12 +2898,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:8167:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalSignalDSL.g:8167:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalSignalDSL.g:8198:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalSignalDSL.g:8198:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalSignalDSL.g:8167:24: ( options {greedy=false; } : . )*
+            // InternalSignalDSL.g:8198:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -2840,7 +2928,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalSignalDSL.g:8167:52: .
+            	    // InternalSignalDSL.g:8198:52: .
             	    {
             	    matchAny(); 
 
@@ -2870,12 +2958,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:8169:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalSignalDSL.g:8169:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalSignalDSL.g:8200:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalSignalDSL.g:8200:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalSignalDSL.g:8169:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalSignalDSL.g:8200:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -2888,7 +2976,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalSignalDSL.g:8169:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalSignalDSL.g:8200:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2908,7 +2996,7 @@
                 }
             } while (true);
 
-            // InternalSignalDSL.g:8169:40: ( ( '\\r' )? '\\n' )?
+            // InternalSignalDSL.g:8200:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -2917,9 +3005,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalSignalDSL.g:8169:41: ( '\\r' )? '\\n'
+                    // InternalSignalDSL.g:8200:41: ( '\\r' )? '\\n'
                     {
-                    // InternalSignalDSL.g:8169:41: ( '\\r' )?
+                    // InternalSignalDSL.g:8200:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -2928,7 +3016,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalSignalDSL.g:8169:41: '\\r'
+                            // InternalSignalDSL.g:8200:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2960,10 +3048,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:8171:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalSignalDSL.g:8171:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalSignalDSL.g:8202:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalSignalDSL.g:8202:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalSignalDSL.g:8171:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalSignalDSL.g:8202:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -3017,8 +3105,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalSignalDSL.g:8173:16: ( . )
-            // InternalSignalDSL.g:8173:18: .
+            // InternalSignalDSL.g:8204:16: ( . )
+            // InternalSignalDSL.g:8204:18: .
             {
             matchAny(); 
 
@@ -3033,8 +3121,8 @@
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalSignalDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=108;
+        // InternalSignalDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=112;
         alt21 = dfa21.predict(input);
         switch (alt21) {
             case 1 :
@@ -3731,63 +3819,91 @@
                 }
                 break;
             case 100 :
-                // InternalSignalDSL.g:1:616: RULE_HEX
+                // InternalSignalDSL.g:1:616: T__112
+                {
+                mT__112(); 
+
+                }
+                break;
+            case 101 :
+                // InternalSignalDSL.g:1:623: T__113
+                {
+                mT__113(); 
+
+                }
+                break;
+            case 102 :
+                // InternalSignalDSL.g:1:630: T__114
+                {
+                mT__114(); 
+
+                }
+                break;
+            case 103 :
+                // InternalSignalDSL.g:1:637: T__115
+                {
+                mT__115(); 
+
+                }
+                break;
+            case 104 :
+                // InternalSignalDSL.g:1:644: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 101 :
-                // InternalSignalDSL.g:1:625: RULE_INT
+            case 105 :
+                // InternalSignalDSL.g:1:653: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 102 :
-                // InternalSignalDSL.g:1:634: RULE_DECIMAL
+            case 106 :
+                // InternalSignalDSL.g:1:662: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 103 :
-                // InternalSignalDSL.g:1:647: RULE_ID
+            case 107 :
+                // InternalSignalDSL.g:1:675: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 104 :
-                // InternalSignalDSL.g:1:655: RULE_STRING
+            case 108 :
+                // InternalSignalDSL.g:1:683: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 105 :
-                // InternalSignalDSL.g:1:667: RULE_ML_COMMENT
+            case 109 :
+                // InternalSignalDSL.g:1:695: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 106 :
-                // InternalSignalDSL.g:1:683: RULE_SL_COMMENT
+            case 110 :
+                // InternalSignalDSL.g:1:711: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 107 :
-                // InternalSignalDSL.g:1:699: RULE_WS
+            case 111 :
+                // InternalSignalDSL.g:1:727: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 108 :
-                // InternalSignalDSL.g:1:707: RULE_ANY_OTHER
+            case 112 :
+                // InternalSignalDSL.g:1:735: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -3801,161 +3917,159 @@
 
     protected DFA21 dfa21 = new DFA21(this);
     static final String DFA21_eotS =
-        "\1\uffff\1\61\2\uffff\6\61\1\111\4\61\1\125\1\61\5\uffff\1\140\3\uffff\1\146\1\152\1\156\1\160\1\162\1\164\1\166\1\170\1\172\1\174\1\177\3\61\2\u0088\1\57\5\uffff\1\61\3\uffff\23\61\1\u00a6\2\uffff\1\u00a7\1\61\1\u00a9\3\61\1\u00ad\2\61\3\uffff\1\u00b1\2\61\5\uffff\1\u00b5\32\uffff\1\u00b7\1\uffff\1\u00b9\4\uffff\6\61\1\uffff\1\u0088\4\uffff\12\61\1\u00cd\17\61\2\uffff\1\61\1\uffff\3\61\1\uffff\3\61\1\uffff\1\u00e5\1\61\6\uffff\1\u00e7\1\u00e8\1\61\1\u00ea\15\61\1\u00f9\1\61\1\uffff\11\61\1\u0104\1\u0105\13\61\1\u0111\1\uffff\1\u0112\2\uffff\1\u0113\1\uffff\12\61\1\u011e\3\61\1\uffff\1\61\1\u0123\3\61\1\u0127\4\61\2\uffff\1\u012c\12\61\3\uffff\1\61\1\u0139\10\61\1\uffff\3\61\1\u0145\1\uffff\1\61\1\u0147\1\u0148\1\uffff\1\u0149\3\61\1\uffff\5\61\1\u0152\1\u0153\3\61\1\u0157\1\u0158\1\uffff\2\61\1\u015b\1\u015c\1\61\1\u015e\4\61\1\u0163\1\uffff\1\61\3\uffff\4\61\1\u0169\1\u016a\1\u016b\1\61\2\uffff\2\61\1\u016f\2\uffff\1\61\1\u0171\2\uffff\1\u0172\1\uffff\1\u0173\1\61\1\u0175\1\u0176\1\uffff\3\61\1\u017a\1\u017b\3\uffff\3\61\1\uffff\1\u017f\3\uffff\1\u0180\2\uffff\1\u0181\2\61\2\uffff\1\u0184\1\61\1\u0186\3\uffff\1\61\1\u0188\1\uffff\1\u0189\1\uffff\1\61\2\uffff\1\u018b\1\uffff";
+        "\1\uffff\1\61\2\uffff\7\61\1\115\3\61\1\126\1\61\5\uffff\1\141\3\uffff\1\147\1\153\1\157\1\161\1\163\1\165\1\167\1\171\1\173\1\175\1\u0080\3\61\2\u0089\1\57\5\uffff\1\61\3\uffff\11\61\1\u009b\1\u009c\14\61\1\u00ab\2\uffff\5\61\1\u00b3\3\uffff\1\u00b4\2\61\5\uffff\1\u00b8\32\uffff\1\u00ba\1\uffff\1\u00bc\4\uffff\6\61\1\uffff\1\u0089\4\uffff\13\61\1\u00d1\2\61\2\uffff\16\61\1\uffff\7\61\2\uffff\1\u00ea\1\61\6\uffff\1\u00ec\1\u00ed\1\61\1\u00ef\15\61\1\u00fe\2\61\1\uffff\12\61\1\u010b\1\u010c\11\61\1\u0116\2\61\1\uffff\1\u0119\2\uffff\1\u011a\1\uffff\12\61\1\u0125\3\61\1\uffff\2\61\1\u012b\4\61\1\u0130\4\61\2\uffff\1\u0135\10\61\1\uffff\2\61\2\uffff\1\61\1\u0142\10\61\1\uffff\3\61\1\u014e\1\61\1\uffff\2\61\1\u0152\1\u0153\1\uffff\1\u0154\3\61\1\uffff\4\61\1\u015c\3\61\1\u0160\1\u0161\1\61\1\u0163\1\uffff\2\61\1\u0166\1\u0167\1\61\1\u0169\4\61\1\u016e\1\uffff\1\61\1\u0170\1\61\3\uffff\4\61\1\u0176\1\u0177\1\61\1\uffff\1\u017a\1\61\1\u017c\2\uffff\1\61\1\uffff\1\61\1\u017f\2\uffff\1\u0180\1\uffff\1\u0181\1\61\1\u0183\1\u0184\1\uffff\1\61\1\uffff\3\61\1\u0189\1\u018a\2\uffff\2\61\1\uffff\1\61\1\uffff\1\61\1\u018f\3\uffff\1\u0190\2\uffff\1\61\1\u0192\2\61\2\uffff\1\u0195\1\61\1\u0198\1\61\2\uffff\1\61\1\uffff\1\61\1\u019c\1\uffff\2\61\1\uffff\1\u019f\2\61\1\uffff\2\61\1\uffff\1\61\1\u01a5\2\61\1\u01a8\1\uffff\2\61\1\uffff\12\61\1\u01b5\1\u01b6\2\uffff";
     static final String DFA21_eofS =
-        "\u018c\uffff";
+        "\u01b7\uffff";
     static final String DFA21_minS =
-        "\1\0\1\141\2\uffff\4\141\1\157\1\141\1\72\1\160\1\157\1\146\1\154\1\52\1\145\5\uffff\1\75\3\uffff\1\53\1\55\1\52\1\75\1\76\1\75\1\174\1\46\1\75\2\56\1\141\1\150\1\145\2\60\1\44\5\uffff\1\143\3\uffff\1\164\1\144\1\151\1\154\1\151\1\162\1\154\1\150\1\141\1\151\2\156\1\161\1\164\1\157\1\163\1\165\1\151\1\146\1\44\2\uffff\1\44\1\160\1\44\1\156\1\160\1\163\1\44\1\160\1\163\3\uffff\1\44\1\167\1\154\5\uffff\1\75\32\uffff\1\75\1\uffff\1\74\4\uffff\1\154\1\165\1\160\1\162\1\145\1\164\1\uffff\1\60\4\uffff\1\153\1\141\1\143\1\153\1\156\1\154\1\145\1\141\1\155\1\144\1\44\1\163\1\145\2\164\1\145\1\144\1\143\2\165\1\156\1\145\1\143\1\162\1\154\1\141\2\uffff\1\154\1\uffff\1\144\1\157\1\164\1\uffff\1\145\1\157\1\145\1\uffff\1\44\1\154\6\uffff\2\44\1\145\1\44\1\145\1\157\1\162\1\163\1\165\1\141\1\154\1\150\1\154\2\145\1\155\1\154\1\44\1\141\1\uffff\1\145\1\144\1\151\1\143\1\162\1\141\1\150\1\145\1\162\2\44\1\150\1\154\1\171\1\165\1\171\1\150\1\141\1\162\1\141\1\156\1\162\1\44\1\uffff\1\44\2\uffff\1\44\1\uffff\1\157\1\167\1\163\1\144\1\162\1\147\1\154\1\145\1\171\1\163\1\44\2\141\1\154\1\uffff\1\171\1\44\1\165\1\143\1\150\1\44\1\171\1\162\1\156\1\144\2\uffff\1\44\1\171\1\141\1\154\1\157\1\154\1\171\1\164\1\156\1\144\1\164\3\uffff\1\146\1\44\1\144\1\141\1\156\2\145\1\162\1\157\1\144\1\uffff\1\163\1\155\1\171\1\44\1\uffff\1\154\2\44\1\uffff\1\44\1\157\1\164\1\141\1\uffff\1\141\2\164\1\156\1\171\2\44\1\143\1\151\1\163\2\44\1\uffff\1\141\1\171\2\44\1\154\1\44\1\156\1\141\1\153\1\145\1\44\1\uffff\1\145\3\uffff\1\156\1\151\1\171\1\164\3\44\1\157\2\uffff\1\145\1\157\1\44\2\uffff\1\171\1\44\2\uffff\1\44\1\uffff\1\44\1\171\2\44\1\uffff\1\162\1\151\1\141\2\44\3\uffff\1\156\1\157\1\156\1\uffff\1\44\3\uffff\1\44\2\uffff\1\44\1\172\1\154\2\uffff\1\44\1\146\1\44\3\uffff\1\145\1\44\1\uffff\1\44\1\uffff\1\144\2\uffff\1\44\1\uffff";
+        "\1\0\1\141\2\uffff\2\141\1\160\2\141\1\157\1\141\1\72\1\157\1\154\1\146\1\52\1\145\5\uffff\1\75\3\uffff\1\53\1\55\1\52\1\75\1\76\1\75\1\174\1\46\1\75\2\56\1\141\1\150\1\145\2\60\1\44\5\uffff\1\143\3\uffff\1\164\1\144\1\151\1\154\1\151\1\156\1\162\1\154\1\160\2\44\1\150\1\141\1\151\2\156\1\161\1\164\1\157\1\163\1\165\1\151\1\146\1\44\2\uffff\1\156\1\145\1\163\1\160\1\163\1\44\3\uffff\1\44\1\167\1\154\5\uffff\1\75\32\uffff\1\75\1\uffff\1\74\4\uffff\1\154\1\165\1\160\1\162\1\145\1\164\1\uffff\1\60\4\uffff\1\153\1\141\1\143\1\153\1\156\1\154\1\145\1\141\1\155\1\144\1\143\1\44\1\163\1\154\2\uffff\1\145\2\164\1\145\1\144\1\143\2\165\1\156\1\145\1\143\1\162\1\154\1\141\1\uffff\1\144\1\143\1\145\1\157\1\145\1\157\1\164\2\uffff\1\44\1\154\6\uffff\2\44\1\145\1\44\1\145\1\157\1\162\1\163\1\165\1\141\1\154\1\150\1\154\2\145\1\155\1\154\1\44\1\141\1\164\1\uffff\1\145\1\171\1\144\1\151\1\143\1\162\1\141\1\150\1\145\1\162\2\44\1\150\1\154\1\171\1\165\1\150\1\141\1\165\1\156\1\162\1\44\1\162\1\141\1\uffff\1\44\2\uffff\1\44\1\uffff\1\157\1\167\1\163\1\144\1\162\1\147\1\154\1\145\1\171\1\163\1\44\2\141\1\154\1\uffff\1\171\1\151\1\44\1\157\1\165\1\143\1\150\1\44\1\171\1\162\1\156\1\144\2\uffff\1\44\1\171\1\141\2\154\1\171\1\164\1\144\1\164\1\uffff\1\164\1\156\2\uffff\1\146\1\44\1\144\1\141\1\156\2\145\1\162\1\157\1\144\1\uffff\1\163\1\155\1\171\1\44\1\157\1\uffff\1\156\1\154\2\44\1\uffff\1\44\1\157\1\164\1\141\1\uffff\1\141\2\164\1\171\1\44\1\145\1\151\1\163\2\44\1\143\1\44\1\uffff\1\141\1\171\2\44\1\154\1\44\1\156\1\141\1\153\1\145\1\44\1\uffff\1\156\1\44\1\145\3\uffff\1\156\1\151\1\171\1\164\2\44\1\157\1\uffff\1\44\1\157\1\44\2\uffff\1\145\1\uffff\1\171\1\44\2\uffff\1\44\1\uffff\1\44\1\171\2\44\1\uffff\1\107\1\uffff\1\162\1\151\1\141\2\44\2\uffff\2\156\1\uffff\1\156\1\uffff\1\157\1\44\3\uffff\1\44\2\uffff\1\162\1\44\1\172\1\154\2\uffff\1\44\1\105\1\44\1\146\2\uffff\1\157\1\uffff\1\145\1\44\1\uffff\1\155\1\170\1\uffff\1\44\1\165\1\144\1\uffff\2\160\1\uffff\1\160\1\44\2\157\1\44\1\uffff\2\162\1\uffff\2\164\2\106\2\151\2\154\2\145\2\44\2\uffff";
     static final String DFA21_maxS =
-        "\1\uffff\1\141\2\uffff\1\150\1\162\1\171\1\162\2\157\1\72\1\164\1\157\1\156\1\170\1\75\1\165\5\uffff\1\76\3\uffff\1\75\1\76\2\75\1\76\1\75\1\174\1\46\1\75\1\56\1\72\1\141\1\171\1\145\1\170\1\154\1\172\5\uffff\1\162\3\uffff\1\164\1\145\1\151\1\156\1\157\1\162\1\154\1\150\1\141\1\151\1\160\1\156\1\161\1\164\1\157\1\164\1\165\1\151\1\146\1\172\2\uffff\1\172\1\160\1\172\1\156\1\160\1\163\1\172\1\164\1\163\3\uffff\1\172\1\167\1\154\5\uffff\1\75\32\uffff\1\75\1\uffff\1\74\4\uffff\1\162\1\171\1\160\1\165\1\145\1\164\1\uffff\1\154\4\uffff\1\153\1\141\1\143\1\153\1\156\1\154\1\145\1\141\1\155\1\144\1\172\1\163\1\145\2\164\1\145\1\144\1\143\2\165\1\156\1\145\1\143\1\162\1\154\1\141\2\uffff\1\154\1\uffff\1\164\1\157\1\164\1\uffff\1\145\1\157\1\145\1\uffff\1\172\1\154\6\uffff\2\172\1\145\1\172\1\145\1\157\1\162\1\163\1\165\1\141\1\154\1\150\1\154\2\145\1\156\1\154\1\172\1\141\1\uffff\1\145\1\144\1\151\1\143\1\162\1\141\1\150\1\145\1\162\2\172\1\150\1\154\1\171\1\165\1\171\1\150\1\141\1\162\1\141\1\156\1\162\1\172\1\uffff\1\172\2\uffff\1\172\1\uffff\1\157\1\167\1\163\1\144\1\162\1\147\1\154\1\145\1\171\1\163\1\172\2\141\1\154\1\uffff\1\171\1\172\1\165\1\143\1\150\1\172\1\171\1\162\1\156\1\144\2\uffff\1\172\1\171\1\141\1\154\1\157\1\154\1\171\1\164\1\156\1\163\1\164\3\uffff\1\146\1\172\1\144\1\141\1\156\2\145\1\162\1\157\1\144\1\uffff\1\163\1\155\1\171\1\172\1\uffff\1\154\2\172\1\uffff\1\172\1\157\1\164\1\141\1\uffff\1\141\2\164\1\156\1\171\2\172\1\143\1\151\1\163\2\172\1\uffff\1\141\1\171\2\172\1\154\1\172\1\156\1\141\1\153\1\145\1\172\1\uffff\1\145\3\uffff\1\156\1\151\1\171\1\164\3\172\1\157\2\uffff\1\145\1\157\1\172\2\uffff\1\171\1\172\2\uffff\1\172\1\uffff\1\172\1\171\2\172\1\uffff\1\162\1\151\1\141\2\172\3\uffff\1\156\1\157\1\156\1\uffff\1\172\3\uffff\1\172\2\uffff\2\172\1\154\2\uffff\1\172\1\146\1\172\3\uffff\1\145\1\172\1\uffff\1\172\1\uffff\1\144\2\uffff\1\172\1\uffff";
+        "\1\uffff\1\141\2\uffff\1\150\1\165\1\164\1\171\1\162\2\157\1\72\1\157\1\170\1\156\1\75\1\165\5\uffff\1\76\3\uffff\1\75\1\76\2\75\1\76\1\75\1\174\1\46\1\75\1\56\1\72\1\141\1\171\1\145\1\170\1\154\1\172\5\uffff\1\162\3\uffff\1\164\1\145\1\151\1\156\1\157\1\156\1\162\1\154\1\160\2\172\1\150\1\141\1\151\1\160\1\156\1\161\1\164\1\157\1\164\1\165\1\151\1\146\1\172\2\uffff\1\156\1\164\1\163\1\160\1\163\1\172\3\uffff\1\172\1\167\1\154\5\uffff\1\75\32\uffff\1\75\1\uffff\1\74\4\uffff\1\162\1\171\1\160\1\165\1\145\1\164\1\uffff\1\154\4\uffff\1\153\1\141\1\143\1\153\1\156\1\154\1\145\1\141\1\155\1\144\1\143\1\172\1\163\1\154\2\uffff\1\145\2\164\1\145\1\144\1\143\2\165\1\156\1\145\1\143\1\162\1\154\1\141\1\uffff\1\164\1\143\1\145\1\157\1\145\1\157\1\164\2\uffff\1\172\1\154\6\uffff\2\172\1\145\1\172\1\145\1\157\1\162\1\163\1\165\1\141\1\154\1\150\1\154\2\145\1\156\1\154\1\172\1\141\1\164\1\uffff\1\145\1\171\1\144\1\151\1\143\1\162\1\141\1\150\1\145\1\162\2\172\1\150\1\154\1\171\1\165\1\150\1\141\1\165\1\156\1\162\1\172\1\162\1\141\1\uffff\1\172\2\uffff\1\172\1\uffff\1\157\1\167\1\163\1\144\1\162\1\147\1\154\1\145\1\171\1\163\1\172\2\141\1\154\1\uffff\1\171\1\151\1\172\1\157\1\165\1\143\1\150\1\172\1\171\1\162\1\156\1\144\2\uffff\1\172\1\171\1\141\2\154\1\171\1\164\1\163\1\164\1\uffff\1\164\1\156\2\uffff\1\146\1\172\1\144\1\141\1\156\2\145\1\162\1\157\1\144\1\uffff\1\163\1\155\1\171\1\172\1\157\1\uffff\1\156\1\154\2\172\1\uffff\1\172\1\157\1\164\1\141\1\uffff\1\141\2\164\1\171\1\172\1\145\1\151\1\163\2\172\1\143\1\172\1\uffff\1\141\1\171\2\172\1\154\1\172\1\156\1\141\1\153\1\145\1\172\1\uffff\1\156\1\172\1\145\3\uffff\1\156\1\151\1\171\1\164\2\172\1\157\1\uffff\1\172\1\157\1\172\2\uffff\1\145\1\uffff\1\171\1\172\2\uffff\1\172\1\uffff\1\172\1\171\2\172\1\uffff\1\107\1\uffff\1\162\1\151\1\141\2\172\2\uffff\2\156\1\uffff\1\156\1\uffff\1\157\1\172\3\uffff\1\172\2\uffff\1\162\2\172\1\154\2\uffff\1\172\1\111\1\172\1\146\2\uffff\1\157\1\uffff\1\145\1\172\1\uffff\1\155\1\170\1\uffff\1\172\1\165\1\144\1\uffff\2\160\1\uffff\1\160\1\172\2\157\1\172\1\uffff\2\162\1\uffff\2\164\2\106\2\151\2\154\2\145\2\172\2\uffff";
     static final String DFA21_acceptS =
-        "\2\uffff\1\2\1\3\15\uffff\1\26\1\27\1\30\1\31\1\32\1\uffff\1\34\1\35\1\36\21\uffff\1\147\2\150\1\153\1\154\1\uffff\1\147\1\2\1\3\24\uffff\1\76\1\14\11\uffff\1\41\1\66\1\24\3\uffff\1\26\1\27\1\30\1\31\1\32\1\uffff\1\61\1\33\1\34\1\35\1\36\1\37\1\73\1\64\1\40\1\56\1\74\1\65\1\42\1\151\1\152\1\67\1\43\1\70\1\62\1\44\1\46\1\45\1\47\1\100\1\50\1\131\1\uffff\1\71\1\uffff\1\75\1\63\1\77\1\130\6\uffff\1\144\1\uffff\1\145\1\146\1\150\1\153\32\uffff\1\110\1\16\1\uffff\1\72\3\uffff\1\101\3\uffff\1\25\2\uffff\1\53\1\51\1\54\1\52\1\57\1\60\23\uffff\1\106\27\uffff\1\115\1\uffff\1\111\1\112\1\uffff\1\124\16\uffff\1\6\12\uffff\1\11\1\105\13\uffff\1\102\1\120\1\117\12\uffff\1\107\4\uffff\1\116\3\uffff\1\114\4\uffff\1\127\14\uffff\1\122\13\uffff\1\142\1\uffff\1\22\1\103\1\135\10\uffff\1\136\1\21\3\uffff\1\132\1\121\2\uffff\1\123\1\1\1\uffff\1\4\4\uffff\1\125\5\uffff\1\13\1\104\1\20\3\uffff\1\113\1\uffff\1\137\1\134\1\15\1\uffff\1\5\1\7\3\uffff\1\143\1\12\3\uffff\1\141\1\140\1\10\2\uffff\1\17\1\uffff\1\23\1\uffff\1\133\1\55\1\uffff\1\126";
+        "\2\uffff\1\2\1\3\15\uffff\1\32\1\33\1\34\1\35\1\36\1\uffff\1\40\1\41\1\42\21\uffff\1\153\2\154\1\157\1\160\1\uffff\1\153\1\2\1\3\30\uffff\1\102\1\15\6\uffff\1\45\1\72\1\30\3\uffff\1\32\1\33\1\34\1\35\1\36\1\uffff\1\65\1\37\1\40\1\41\1\42\1\43\1\77\1\70\1\44\1\62\1\100\1\71\1\46\1\155\1\156\1\73\1\47\1\74\1\66\1\50\1\52\1\51\1\53\1\104\1\54\1\135\1\uffff\1\75\1\uffff\1\101\1\67\1\103\1\134\6\uffff\1\150\1\uffff\1\151\1\152\1\154\1\157\16\uffff\1\17\1\76\16\uffff\1\114\7\uffff\1\105\1\31\2\uffff\1\57\1\55\1\60\1\56\1\63\1\64\24\uffff\1\112\30\uffff\1\121\1\uffff\1\115\1\116\1\uffff\1\130\16\uffff\1\7\14\uffff\1\12\1\111\11\uffff\1\106\2\uffff\1\124\1\123\12\uffff\1\113\5\uffff\1\122\4\uffff\1\120\4\uffff\1\133\14\uffff\1\126\13\uffff\1\146\3\uffff\1\26\1\107\1\141\7\uffff\1\142\3\uffff\1\136\1\25\1\uffff\1\125\2\uffff\1\127\1\1\1\uffff\1\4\4\uffff\1\131\1\uffff\1\10\5\uffff\1\14\1\110\2\uffff\1\22\1\uffff\1\117\2\uffff\1\143\1\140\1\16\1\uffff\1\5\1\6\4\uffff\1\147\1\13\4\uffff\1\145\1\144\1\uffff\1\11\2\uffff\1\20\2\uffff\1\27\3\uffff\1\137\2\uffff\1\61\5\uffff\1\132\2\uffff\1\21\14\uffff\1\23\1\24";
     static final String DFA21_specialS =
-        "\1\0\u018b\uffff}>";
+        "\1\0\u01b6\uffff}>";
     static final String[] DFA21_transitionS = {
-            "\11\57\2\56\2\57\1\56\22\57\1\56\1\42\1\54\1\27\1\53\1\35\1\41\1\55\1\23\1\25\1\17\1\32\1\24\1\33\1\43\1\34\1\50\11\51\1\12\1\21\1\36\1\26\1\37\1\44\1\22\32\53\1\30\1\57\1\31\1\52\1\53\1\57\1\13\1\53\1\7\1\11\1\16\1\5\1\53\1\10\1\15\3\53\1\14\1\20\1\53\1\1\1\53\1\47\1\6\1\46\1\53\1\45\1\4\3\53\1\2\1\40\1\3\uff82\57",
+            "\11\57\2\56\2\57\1\56\22\57\1\56\1\42\1\54\1\27\1\53\1\35\1\41\1\55\1\23\1\25\1\17\1\32\1\24\1\33\1\43\1\34\1\50\11\51\1\13\1\21\1\36\1\26\1\37\1\44\1\22\32\53\1\30\1\57\1\31\1\52\1\53\1\57\1\6\1\53\1\10\1\12\1\15\1\5\1\53\1\11\1\16\3\53\1\14\1\20\1\53\1\1\1\53\1\47\1\7\1\46\1\53\1\45\1\4\3\53\1\2\1\40\1\3\uff82\57",
             "\1\60",
             "",
             "",
             "\1\64\3\uffff\1\65\2\uffff\1\66",
-            "\1\72\7\uffff\1\67\5\uffff\1\71\2\uffff\1\70",
-            "\1\101\1\uffff\1\73\1\uffff\1\100\16\uffff\1\74\1\76\1\uffff\1\75\1\uffff\1\77",
-            "\1\103\20\uffff\1\102",
-            "\1\104",
-            "\1\105\3\uffff\1\106\11\uffff\1\107",
+            "\1\73\7\uffff\1\67\5\uffff\1\72\2\uffff\1\70\2\uffff\1\71",
+            "\1\74\2\uffff\1\76\1\75",
+            "\1\105\1\uffff\1\77\1\uffff\1\104\16\uffff\1\100\1\102\1\uffff\1\101\1\uffff\1\103",
+            "\1\107\20\uffff\1\106",
             "\1\110",
-            "\1\113\2\uffff\1\114\1\112",
-            "\1\115",
-            "\1\120\6\uffff\1\116\1\117",
-            "\1\122\13\uffff\1\121",
-            "\1\124\22\uffff\1\123",
-            "\1\127\15\uffff\1\126\1\uffff\1\130",
+            "\1\111\3\uffff\1\112\11\uffff\1\113",
+            "\1\114",
+            "\1\116",
+            "\1\120\13\uffff\1\117",
+            "\1\123\6\uffff\1\121\1\122",
+            "\1\125\22\uffff\1\124",
+            "\1\130\15\uffff\1\127\1\uffff\1\131",
             "",
             "",
             "",
             "",
             "",
-            "\1\136\1\137",
+            "\1\137\1\140",
             "",
             "",
             "",
-            "\1\145\21\uffff\1\144",
-            "\1\151\17\uffff\1\147\1\150",
-            "\1\154\4\uffff\1\155\15\uffff\1\153",
-            "\1\157",
-            "\1\161",
-            "\1\163",
-            "\1\165",
-            "\1\167",
-            "\1\171",
-            "\1\173",
-            "\1\176\13\uffff\1\175",
-            "\1\u0080",
-            "\1\u0083\11\uffff\1\u0081\2\uffff\1\u0084\3\uffff\1\u0082",
-            "\1\u0085",
-            "\12\u0087\10\uffff\1\u0089\1\uffff\3\u0089\5\uffff\1\u0089\13\uffff\1\u0086\6\uffff\1\u0087\2\uffff\1\u0089\1\uffff\3\u0089\5\uffff\1\u0089\13\uffff\1\u0086",
-            "\12\u0087\10\uffff\1\u0089\1\uffff\3\u0089\5\uffff\1\u0089\22\uffff\1\u0087\2\uffff\1\u0089\1\uffff\3\u0089\5\uffff\1\u0089",
+            "\1\146\21\uffff\1\145",
+            "\1\152\17\uffff\1\150\1\151",
+            "\1\155\4\uffff\1\156\15\uffff\1\154",
+            "\1\160",
+            "\1\162",
+            "\1\164",
+            "\1\166",
+            "\1\170",
+            "\1\172",
+            "\1\174",
+            "\1\177\13\uffff\1\176",
+            "\1\u0081",
+            "\1\u0084\11\uffff\1\u0082\2\uffff\1\u0085\3\uffff\1\u0083",
+            "\1\u0086",
+            "\12\u0088\10\uffff\1\u008a\1\uffff\3\u008a\5\uffff\1\u008a\13\uffff\1\u0087\6\uffff\1\u0088\2\uffff\1\u008a\1\uffff\3\u008a\5\uffff\1\u008a\13\uffff\1\u0087",
+            "\12\u0088\10\uffff\1\u008a\1\uffff\3\u008a\5\uffff\1\u008a\22\uffff\1\u0088\2\uffff\1\u008a\1\uffff\3\u008a\5\uffff\1\u008a",
             "\1\61\34\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "",
             "",
             "",
             "",
             "",
-            "\1\u008c\16\uffff\1\u008d",
+            "\1\u008d\16\uffff\1\u008e",
             "",
             "",
             "",
-            "\1\u008e",
-            "\1\u0090\1\u008f",
-            "\1\u0091",
-            "\1\u0092\1\uffff\1\u0093",
-            "\1\u0095\5\uffff\1\u0094",
-            "\1\u0096",
+            "\1\u008f",
+            "\1\u0091\1\u0090",
+            "\1\u0092",
+            "\1\u0093\1\uffff\1\u0094",
+            "\1\u0096\5\uffff\1\u0095",
             "\1\u0097",
             "\1\u0098",
             "\1\u0099",
             "\1\u009a",
-            "\1\u009c\1\uffff\1\u009b",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u009d",
             "\1\u009e",
             "\1\u009f",
-            "\1\u00a0",
-            "\1\u00a1\1\u00a2",
+            "\1\u00a1\1\uffff\1\u00a0",
+            "\1\u00a2",
             "\1\u00a3",
             "\1\u00a4",
             "\1\u00a5",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "",
-            "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u00a6\1\u00a7",
             "\1\u00a8",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u00a9",
             "\1\u00aa",
-            "\1\u00ab",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "",
+            "",
             "\1\u00ac",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\u00af\3\uffff\1\u00ae",
+            "\1\u00ad\12\uffff\1\u00af\3\uffff\1\u00ae",
             "\1\u00b0",
+            "\1\u00b1",
+            "\1\u00b2",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "",
             "",
             "",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\u00b2",
-            "\1\u00b3",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00b4",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
+            "\1\u00b5",
             "\1\u00b6",
             "",
-            "\1\u00b8",
             "",
             "",
             "",
             "",
-            "\1\u00bb\5\uffff\1\u00ba",
-            "\1\u00bc\3\uffff\1\u00bd",
-            "\1\u00be",
-            "\1\u00bf\2\uffff\1\u00c0",
+            "\1\u00b7",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00b9",
+            "",
+            "\1\u00bb",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00be\5\uffff\1\u00bd",
+            "\1\u00bf\3\uffff\1\u00c0",
             "\1\u00c1",
-            "\1\u00c2",
-            "",
-            "\12\u0087\10\uffff\1\u0089\1\uffff\3\u0089\5\uffff\1\u0089\22\uffff\1\u0087\2\uffff\1\u0089\1\uffff\3\u0089\5\uffff\1\u0089",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00c3",
+            "\1\u00c2\2\uffff\1\u00c3",
             "\1\u00c4",
             "\1\u00c5",
+            "",
+            "\12\u0088\10\uffff\1\u008a\1\uffff\3\u008a\5\uffff\1\u008a\22\uffff\1\u0088\2\uffff\1\u008a\1\uffff\3\u008a\5\uffff\1\u008a",
+            "",
+            "",
+            "",
+            "",
             "\1\u00c6",
             "\1\u00c7",
             "\1\u00c8",
@@ -3963,13 +4077,15 @@
             "\1\u00ca",
             "\1\u00cb",
             "\1\u00cc",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u00cd",
             "\1\u00ce",
             "\1\u00cf",
             "\1\u00d0",
-            "\1\u00d1",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u00d2",
             "\1\u00d3",
+            "",
+            "",
             "\1\u00d4",
             "\1\u00d5",
             "\1\u00d6",
@@ -3979,235 +4095,278 @@
             "\1\u00da",
             "\1\u00db",
             "\1\u00dc",
-            "",
-            "",
             "\1\u00dd",
-            "",
-            "\1\u00df\17\uffff\1\u00de",
+            "\1\u00de",
+            "\1\u00df",
             "\1\u00e0",
             "\1\u00e1",
             "",
-            "\1\u00e2",
-            "\1\u00e3",
+            "\1\u00e3\17\uffff\1\u00e2",
             "\1\u00e4",
-            "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u00e5",
             "\1\u00e6",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u00e7",
+            "\1\u00e8",
             "\1\u00e9",
+            "",
+            "",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u00eb",
-            "\1\u00ec",
-            "\1\u00ed",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u00ee",
-            "\1\u00ef",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u00f0",
             "\1\u00f1",
             "\1\u00f2",
             "\1\u00f3",
             "\1\u00f4",
             "\1\u00f5",
-            "\1\u00f6\1\u00f7",
+            "\1\u00f6",
+            "\1\u00f7",
             "\1\u00f8",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u00f9",
             "\1\u00fa",
-            "",
-            "\1\u00fb",
-            "\1\u00fc",
+            "\1\u00fb\1\u00fc",
             "\1\u00fd",
-            "\1\u00fe",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u00ff",
             "\1\u0100",
+            "",
             "\1\u0101",
             "\1\u0102",
             "\1\u0103",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0104",
+            "\1\u0105",
             "\1\u0106",
             "\1\u0107",
             "\1\u0108",
             "\1\u0109",
             "\1\u010a",
-            "\1\u010b",
-            "\1\u010c",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u010d",
             "\1\u010e",
             "\1\u010f",
             "\1\u0110",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "",
-            "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "",
+            "\1\u0111",
+            "\1\u0112",
+            "\1\u0113",
             "\1\u0114",
             "\1\u0115",
-            "\1\u0116",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u0117",
             "\1\u0118",
-            "\1\u0119",
-            "\1\u011a",
+            "",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "",
+            "",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "",
             "\1\u011b",
             "\1\u011c",
             "\1\u011d",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u011e",
             "\1\u011f",
             "\1\u0120",
             "\1\u0121",
-            "",
             "\1\u0122",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0123",
             "\1\u0124",
-            "\1\u0125",
-            "\1\u0126",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0126",
+            "\1\u0127",
             "\1\u0128",
+            "",
             "\1\u0129",
             "\1\u012a",
-            "\1\u012b",
-            "",
-            "",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u012c",
             "\1\u012d",
             "\1\u012e",
             "\1\u012f",
-            "\1\u0130",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u0131",
             "\1\u0132",
             "\1\u0133",
             "\1\u0134",
-            "\1\u0136\16\uffff\1\u0135",
-            "\1\u0137",
             "",
             "",
-            "",
-            "\1\u0138",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0136",
+            "\1\u0137",
+            "\1\u0138",
+            "\1\u0139",
             "\1\u013a",
             "\1\u013b",
-            "\1\u013c",
-            "\1\u013d",
+            "\1\u013d\16\uffff\1\u013c",
             "\1\u013e",
+            "",
             "\1\u013f",
             "\1\u0140",
-            "\1\u0141",
             "",
-            "\1\u0142",
+            "",
+            "\1\u0141",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u0143",
             "\1\u0144",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "",
+            "\1\u0145",
             "\1\u0146",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0147",
+            "\1\u0148",
+            "\1\u0149",
             "\1\u014a",
+            "",
             "\1\u014b",
             "\1\u014c",
-            "",
             "\1\u014d",
-            "\1\u014e",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u014f",
+            "",
             "\1\u0150",
             "\1\u0151",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\u0154",
+            "",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u0155",
             "\1\u0156",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0157",
             "",
+            "\1\u0158",
             "\1\u0159",
             "\1\u015a",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u015b",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u015d",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u015e",
             "\1\u015f",
-            "\1\u0160",
-            "\1\u0161",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u0162",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "",
             "\1\u0164",
-            "",
-            "",
-            "",
             "\1\u0165",
-            "\1\u0166",
-            "\1\u0167",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u0168",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u016a",
+            "\1\u016b",
             "\1\u016c",
-            "",
-            "",
             "\1\u016d",
-            "\1\u016e",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "",
-            "",
-            "\1\u0170",
+            "\1\u016f",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0171",
             "",
             "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0172",
+            "\1\u0173",
             "\1\u0174",
+            "\1\u0175",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
-            "",
-            "\1\u0177",
             "\1\u0178",
-            "\1\u0179",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "",
+            "\1\61\13\uffff\12\61\7\uffff\16\61\1\u0179\13\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u017b",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "",
             "",
-            "",
-            "\1\u017c",
             "\1\u017d",
+            "",
             "\1\u017e",
-            "",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "",
             "",
-            "",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "",
-            "",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "\1\u0182",
-            "\1\u0183",
-            "",
-            "",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "",
             "\1\u0185",
-            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "",
-            "",
-            "",
+            "\1\u0186",
             "\1\u0187",
+            "\1\u0188",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "",
+            "",
+            "\1\u018b",
+            "\1\u018c",
+            "",
+            "\1\u018d",
+            "",
+            "\1\u018e",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "",
+            "",
             "",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
             "",
-            "\1\u018a",
+            "",
+            "\1\u0191",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0193",
+            "\1\u0194",
             "",
             "",
             "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0197\3\uffff\1\u0196",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u0199",
+            "",
+            "",
+            "\1\u019a",
+            "",
+            "\1\u019b",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "",
+            "\1\u019d",
+            "\1\u019e",
+            "",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u01a0",
+            "\1\u01a1",
+            "",
+            "\1\u01a2",
+            "\1\u01a3",
+            "",
+            "\1\u01a4",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\u01a6",
+            "\1\u01a7",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "",
+            "\1\u01a9",
+            "\1\u01aa",
+            "",
+            "\1\u01ab",
+            "\1\u01ac",
+            "\1\u01ad",
+            "\1\u01ae",
+            "\1\u01af",
+            "\1\u01b0",
+            "\1\u01b1",
+            "\1\u01b2",
+            "\1\u01b3",
+            "\1\u01b4",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "\1\61\13\uffff\12\61\7\uffff\32\61\4\uffff\1\61\1\uffff\32\61",
+            "",
             ""
     };
 
@@ -4241,7 +4400,7 @@
             this.transition = DFA21_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
@@ -4261,23 +4420,23 @@
 
                         else if ( (LA21_0=='f') ) {s = 5;}
 
-                        else if ( (LA21_0=='s') ) {s = 6;}
+                        else if ( (LA21_0=='a') ) {s = 6;}
 
-                        else if ( (LA21_0=='c') ) {s = 7;}
+                        else if ( (LA21_0=='s') ) {s = 7;}
 
-                        else if ( (LA21_0=='h') ) {s = 8;}
+                        else if ( (LA21_0=='c') ) {s = 8;}
 
-                        else if ( (LA21_0=='d') ) {s = 9;}
+                        else if ( (LA21_0=='h') ) {s = 9;}
 
-                        else if ( (LA21_0==':') ) {s = 10;}
+                        else if ( (LA21_0=='d') ) {s = 10;}
 
-                        else if ( (LA21_0=='a') ) {s = 11;}
+                        else if ( (LA21_0==':') ) {s = 11;}
 
                         else if ( (LA21_0=='m') ) {s = 12;}
 
-                        else if ( (LA21_0=='i') ) {s = 13;}
+                        else if ( (LA21_0=='e') ) {s = 13;}
 
-                        else if ( (LA21_0=='e') ) {s = 14;}
+                        else if ( (LA21_0=='i') ) {s = 14;}
 
                         else if ( (LA21_0=='*') ) {s = 15;}
 
diff --git a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSLParser.java b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSLParser.java
index c9b4864..ea81729 100644
--- a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSLParser.java
+++ b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/parser/antlr/internal/InternalSignalDSLParser.java
@@ -40,7 +40,7 @@
 @SuppressWarnings("all")
 public class InternalSignalDSLParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_HEX", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'watcher'", "'filemask'", "'from'", "'filename'", "'scheduler'", "'cron'", "'hourlyat'", "'dailyat'", "':'", "'weeklyon'", "'at'", "'monthlyon'", "'applyon'", "'import'", "'static'", "'extension'", "'*'", "'ns'", "';'", "'@'", "'('", "','", "')'", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'**'", "'/'", "'%'", "'!'", "'as'", "'++'", "'--'", "'.'", "'::'", "'?.'", "'|'", "'if'", "'else'", "'switch'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'export'", "'sequential'", "'parallel'", "'sunday'", "'monday'", "'tuesday'", "'wednesday'", "'thursday'", "'friday'", "'saturday'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_HEX", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'watcher'", "'filemask'", "'filename'", "'from'", "'applyon'", "'scheduler'", "'cron'", "'hourlyat'", "'dailyat'", "':'", "'weeklyon'", "'at'", "'monthlyon'", "'functionGroup'", "'execute'", "'executeOnImportFile'", "'executeOnExportFile'", "'import'", "'static'", "'extension'", "'*'", "'ns'", "';'", "'@'", "'('", "','", "')'", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'**'", "'/'", "'%'", "'!'", "'as'", "'++'", "'--'", "'.'", "'::'", "'?.'", "'|'", "'if'", "'else'", "'switch'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'export'", "'sequential'", "'parallel'", "'sunday'", "'monday'", "'tuesday'", "'wednesday'", "'thursday'", "'friday'", "'saturday'"
     };
     public static final int RULE_HEX=7;
     public static final int T__50=50;
@@ -126,8 +126,10 @@
     public static final int T__78=78;
     public static final int T__79=79;
     public static final int T__73=73;
+    public static final int T__115=115;
     public static final int EOF=-1;
     public static final int T__74=74;
+    public static final int T__114=114;
     public static final int T__75=75;
     public static final int T__76=76;
     public static final int T__80=80;
@@ -135,7 +137,9 @@
     public static final int T__81=81;
     public static final int T__110=110;
     public static final int T__82=82;
+    public static final int T__113=113;
     public static final int T__83=83;
+    public static final int T__112=112;
     public static final int RULE_WS=11;
     public static final int RULE_ANY_OTHER=12;
     public static final int T__88=88;
@@ -255,7 +259,7 @@
             int alt1=2;
             int LA1_0 = input.LA(1);
 
-            if ( (LA1_0==29) ) {
+            if ( (LA1_0==33) ) {
                 alt1=1;
             }
             switch (alt1) {
@@ -496,7 +500,7 @@
                         int alt2=2;
                         int LA2_0 = input.LA(1);
 
-                        if ( (LA2_0==16||LA2_0==20) ) {
+                        if ( (LA2_0==16||LA2_0==21) ) {
                             alt2=1;
                         }
 
@@ -643,7 +647,7 @@
             if ( (LA4_0==16) ) {
                 alt4=1;
             }
-            else if ( (LA4_0==20) ) {
+            else if ( (LA4_0==21) ) {
                 alt4=2;
             }
             else {
@@ -763,25 +767,36 @@
 
 
     // $ANTLR start "ruleSignalWatcher"
-    // InternalSignalDSL.g:258:1: ruleSignalWatcher returns [EObject current=null] : ( () otherlv_1= 'watcher' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_definition_3_0= ruleWatcherDefinition ) ) ) ;
+    // InternalSignalDSL.g:258:1: ruleSignalWatcher returns [EObject current=null] : ( () otherlv_1= 'watcher' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_hasFileMask_3_0= 'filemask' ) ) | otherlv_4= 'filename' ) ( (lv_identifier_5_0= RULE_STRING ) ) ( (lv_executiontype_6_0= ruleSignalExecutionTypeEnum ) ) otherlv_7= 'from' ( (otherlv_8= RULE_ID ) ) otherlv_9= '{' (otherlv_10= 'applyon' ( (otherlv_11= RULE_ID ) ) )? ( (lv_tasks_12_0= ruleSignalTask ) )* otherlv_13= '}' ) ;
     public final EObject ruleSignalWatcher() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
+        Token lv_hasFileMask_3_0=null;
+        Token otherlv_4=null;
+        Token lv_identifier_5_0=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+        Token otherlv_13=null;
         AntlrDatatypeRuleToken lv_name_2_0 = null;
 
-        EObject lv_definition_3_0 = null;
+        Enumerator lv_executiontype_6_0 = null;
+
+        EObject lv_tasks_12_0 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:264:2: ( ( () otherlv_1= 'watcher' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_definition_3_0= ruleWatcherDefinition ) ) ) )
-            // InternalSignalDSL.g:265:2: ( () otherlv_1= 'watcher' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_definition_3_0= ruleWatcherDefinition ) ) )
+            // InternalSignalDSL.g:264:2: ( ( () otherlv_1= 'watcher' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_hasFileMask_3_0= 'filemask' ) ) | otherlv_4= 'filename' ) ( (lv_identifier_5_0= RULE_STRING ) ) ( (lv_executiontype_6_0= ruleSignalExecutionTypeEnum ) ) otherlv_7= 'from' ( (otherlv_8= RULE_ID ) ) otherlv_9= '{' (otherlv_10= 'applyon' ( (otherlv_11= RULE_ID ) ) )? ( (lv_tasks_12_0= ruleSignalTask ) )* otherlv_13= '}' ) )
+            // InternalSignalDSL.g:265:2: ( () otherlv_1= 'watcher' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_hasFileMask_3_0= 'filemask' ) ) | otherlv_4= 'filename' ) ( (lv_identifier_5_0= RULE_STRING ) ) ( (lv_executiontype_6_0= ruleSignalExecutionTypeEnum ) ) otherlv_7= 'from' ( (otherlv_8= RULE_ID ) ) otherlv_9= '{' (otherlv_10= 'applyon' ( (otherlv_11= RULE_ID ) ) )? ( (lv_tasks_12_0= ruleSignalTask ) )* otherlv_13= '}' )
             {
-            // InternalSignalDSL.g:265:2: ( () otherlv_1= 'watcher' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_definition_3_0= ruleWatcherDefinition ) ) )
-            // InternalSignalDSL.g:266:3: () otherlv_1= 'watcher' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_definition_3_0= ruleWatcherDefinition ) )
+            // InternalSignalDSL.g:265:2: ( () otherlv_1= 'watcher' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_hasFileMask_3_0= 'filemask' ) ) | otherlv_4= 'filename' ) ( (lv_identifier_5_0= RULE_STRING ) ) ( (lv_executiontype_6_0= ruleSignalExecutionTypeEnum ) ) otherlv_7= 'from' ( (otherlv_8= RULE_ID ) ) otherlv_9= '{' (otherlv_10= 'applyon' ( (otherlv_11= RULE_ID ) ) )? ( (lv_tasks_12_0= ruleSignalTask ) )* otherlv_13= '}' )
+            // InternalSignalDSL.g:266:3: () otherlv_1= 'watcher' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_hasFileMask_3_0= 'filemask' ) ) | otherlv_4= 'filename' ) ( (lv_identifier_5_0= RULE_STRING ) ) ( (lv_executiontype_6_0= ruleSignalExecutionTypeEnum ) ) otherlv_7= 'from' ( (otherlv_8= RULE_ID ) ) otherlv_9= '{' (otherlv_10= 'applyon' ( (otherlv_11= RULE_ID ) ) )? ( (lv_tasks_12_0= ruleSignalTask ) )* otherlv_13= '}'
             {
             // InternalSignalDSL.g:266:3: ()
             // InternalSignalDSL.g:267:4: 
@@ -837,19 +852,114 @@
 
             }
 
-            // InternalSignalDSL.g:296:3: ( (lv_definition_3_0= ruleWatcherDefinition ) )
-            // InternalSignalDSL.g:297:4: (lv_definition_3_0= ruleWatcherDefinition )
+            // InternalSignalDSL.g:296:3: ( ( (lv_hasFileMask_3_0= 'filemask' ) ) | otherlv_4= 'filename' )
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==17) ) {
+                alt5=1;
+            }
+            else if ( (LA5_0==18) ) {
+                alt5=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 5, 0, input);
+
+                throw nvae;
+            }
+            switch (alt5) {
+                case 1 :
+                    // InternalSignalDSL.g:297:4: ( (lv_hasFileMask_3_0= 'filemask' ) )
+                    {
+                    // InternalSignalDSL.g:297:4: ( (lv_hasFileMask_3_0= 'filemask' ) )
+                    // InternalSignalDSL.g:298:5: (lv_hasFileMask_3_0= 'filemask' )
+                    {
+                    // InternalSignalDSL.g:298:5: (lv_hasFileMask_3_0= 'filemask' )
+                    // InternalSignalDSL.g:299:6: lv_hasFileMask_3_0= 'filemask'
+                    {
+                    lv_hasFileMask_3_0=(Token)match(input,17,FOLLOW_8); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_hasFileMask_3_0, grammarAccess.getSignalWatcherAccess().getHasFileMaskFilemaskKeyword_3_0_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getSignalWatcherRule());
+                      						}
+                      						setWithLastConsumed(current, "hasFileMask", true, "filemask");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:312:4: otherlv_4= 'filename'
+                    {
+                    otherlv_4=(Token)match(input,18,FOLLOW_8); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_4, grammarAccess.getSignalWatcherAccess().getFilenameKeyword_3_1());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // InternalSignalDSL.g:317:3: ( (lv_identifier_5_0= RULE_STRING ) )
+            // InternalSignalDSL.g:318:4: (lv_identifier_5_0= RULE_STRING )
             {
-            // InternalSignalDSL.g:297:4: (lv_definition_3_0= ruleWatcherDefinition )
-            // InternalSignalDSL.g:298:5: lv_definition_3_0= ruleWatcherDefinition
+            // InternalSignalDSL.g:318:4: (lv_identifier_5_0= RULE_STRING )
+            // InternalSignalDSL.g:319:5: lv_identifier_5_0= RULE_STRING
+            {
+            lv_identifier_5_0=(Token)match(input,RULE_STRING,FOLLOW_9); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(lv_identifier_5_0, grammarAccess.getSignalWatcherAccess().getIdentifierSTRINGTerminalRuleCall_4_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getSignalWatcherRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"identifier",
+              						lv_identifier_5_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalSignalDSL.g:335:3: ( (lv_executiontype_6_0= ruleSignalExecutionTypeEnum ) )
+            // InternalSignalDSL.g:336:4: (lv_executiontype_6_0= ruleSignalExecutionTypeEnum )
+            {
+            // InternalSignalDSL.g:336:4: (lv_executiontype_6_0= ruleSignalExecutionTypeEnum )
+            // InternalSignalDSL.g:337:5: lv_executiontype_6_0= ruleSignalExecutionTypeEnum
             {
             if ( state.backtracking==0 ) {
 
-              					newCompositeNode(grammarAccess.getSignalWatcherAccess().getDefinitionWatcherDefinitionParserRuleCall_3_0());
+              					newCompositeNode(grammarAccess.getSignalWatcherAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_5_0());
               				
             }
-            pushFollow(FOLLOW_2);
-            lv_definition_3_0=ruleWatcherDefinition();
+            pushFollow(FOLLOW_10);
+            lv_executiontype_6_0=ruleSignalExecutionTypeEnum();
 
             state._fsp--;
             if (state.failed) return current;
@@ -860,9 +970,9 @@
               					}
               					set(
               						current,
-              						"definition",
-              						lv_definition_3_0,
-              						"org.eclipse.osbp.xtext.signal.SignalDSL.WatcherDefinition");
+              						"executiontype",
+              						lv_executiontype_6_0,
+              						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalExecutionTypeEnum");
               					afterParserOrEnumRuleCall();
               				
             }
@@ -872,6 +982,150 @@
 
             }
 
+            otherlv_7=(Token)match(input,19,FOLLOW_4); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_7, grammarAccess.getSignalWatcherAccess().getFromKeyword_6());
+              		
+            }
+            // InternalSignalDSL.g:358:3: ( (otherlv_8= RULE_ID ) )
+            // InternalSignalDSL.g:359:4: (otherlv_8= RULE_ID )
+            {
+            // InternalSignalDSL.g:359:4: (otherlv_8= RULE_ID )
+            // InternalSignalDSL.g:360:5: otherlv_8= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getSignalWatcherRule());
+              					}
+              				
+            }
+            otherlv_8=(Token)match(input,RULE_ID,FOLLOW_11); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_8, grammarAccess.getSignalWatcherAccess().getInterchangegroupDataInterchangeGroupCrossReference_7_0());
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_9=(Token)match(input,14,FOLLOW_12); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_9, grammarAccess.getSignalWatcherAccess().getLeftCurlyBracketKeyword_8());
+              		
+            }
+            // InternalSignalDSL.g:375:3: (otherlv_10= 'applyon' ( (otherlv_11= RULE_ID ) ) )?
+            int alt6=2;
+            int LA6_0 = input.LA(1);
+
+            if ( (LA6_0==20) ) {
+                alt6=1;
+            }
+            switch (alt6) {
+                case 1 :
+                    // InternalSignalDSL.g:376:4: otherlv_10= 'applyon' ( (otherlv_11= RULE_ID ) )
+                    {
+                    otherlv_10=(Token)match(input,20,FOLLOW_4); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_10, grammarAccess.getSignalWatcherAccess().getApplyonKeyword_9_0());
+                      			
+                    }
+                    // InternalSignalDSL.g:380:4: ( (otherlv_11= RULE_ID ) )
+                    // InternalSignalDSL.g:381:5: (otherlv_11= RULE_ID )
+                    {
+                    // InternalSignalDSL.g:381:5: (otherlv_11= RULE_ID )
+                    // InternalSignalDSL.g:382:6: otherlv_11= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getSignalWatcherRule());
+                      						}
+                      					
+                    }
+                    otherlv_11=(Token)match(input,RULE_ID,FOLLOW_13); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(otherlv_11, grammarAccess.getSignalWatcherAccess().getDefaultInterchangeDataInterchangeCrossReference_9_1_0());
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalSignalDSL.g:394:3: ( (lv_tasks_12_0= ruleSignalTask ) )*
+            loop7:
+            do {
+                int alt7=2;
+                int LA7_0 = input.LA(1);
+
+                if ( (LA7_0==29||LA7_0==33||LA7_0==106) ) {
+                    alt7=1;
+                }
+
+
+                switch (alt7) {
+            	case 1 :
+            	    // InternalSignalDSL.g:395:4: (lv_tasks_12_0= ruleSignalTask )
+            	    {
+            	    // InternalSignalDSL.g:395:4: (lv_tasks_12_0= ruleSignalTask )
+            	    // InternalSignalDSL.g:396:5: lv_tasks_12_0= ruleSignalTask
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      					newCompositeNode(grammarAccess.getSignalWatcherAccess().getTasksSignalTaskParserRuleCall_10_0());
+            	      				
+            	    }
+            	    pushFollow(FOLLOW_13);
+            	    lv_tasks_12_0=ruleSignalTask();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      					if (current==null) {
+            	      						current = createModelElementForParent(grammarAccess.getSignalWatcherRule());
+            	      					}
+            	      					add(
+            	      						current,
+            	      						"tasks",
+            	      						lv_tasks_12_0,
+            	      						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalTask");
+            	      					afterParserOrEnumRuleCall();
+            	      				
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop7;
+                }
+            } while (true);
+
+            otherlv_13=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_13, grammarAccess.getSignalWatcherAccess().getRightCurlyBracketKeyword_11());
+              		
+            }
 
             }
 
@@ -896,673 +1150,8 @@
     // $ANTLR end "ruleSignalWatcher"
 
 
-    // $ANTLR start "entryRuleWatcherDefinition"
-    // InternalSignalDSL.g:319:1: entryRuleWatcherDefinition returns [EObject current=null] : iv_ruleWatcherDefinition= ruleWatcherDefinition EOF ;
-    public final EObject entryRuleWatcherDefinition() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleWatcherDefinition = null;
-
-
-        try {
-            // InternalSignalDSL.g:319:58: (iv_ruleWatcherDefinition= ruleWatcherDefinition EOF )
-            // InternalSignalDSL.g:320:2: iv_ruleWatcherDefinition= ruleWatcherDefinition EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getWatcherDefinitionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleWatcherDefinition=ruleWatcherDefinition();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleWatcherDefinition; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleWatcherDefinition"
-
-
-    // $ANTLR start "ruleWatcherDefinition"
-    // InternalSignalDSL.g:326:1: ruleWatcherDefinition returns [EObject current=null] : (this_WatcherWithFileMask_0= ruleWatcherWithFileMask | this_WatcherWithFileName_1= ruleWatcherWithFileName ) ;
-    public final EObject ruleWatcherDefinition() throws RecognitionException {
-        EObject current = null;
-
-        EObject this_WatcherWithFileMask_0 = null;
-
-        EObject this_WatcherWithFileName_1 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalSignalDSL.g:332:2: ( (this_WatcherWithFileMask_0= ruleWatcherWithFileMask | this_WatcherWithFileName_1= ruleWatcherWithFileName ) )
-            // InternalSignalDSL.g:333:2: (this_WatcherWithFileMask_0= ruleWatcherWithFileMask | this_WatcherWithFileName_1= ruleWatcherWithFileName )
-            {
-            // InternalSignalDSL.g:333:2: (this_WatcherWithFileMask_0= ruleWatcherWithFileMask | this_WatcherWithFileName_1= ruleWatcherWithFileName )
-            int alt5=2;
-            int LA5_0 = input.LA(1);
-
-            if ( (LA5_0==17) ) {
-                alt5=1;
-            }
-            else if ( (LA5_0==19) ) {
-                alt5=2;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return current;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 5, 0, input);
-
-                throw nvae;
-            }
-            switch (alt5) {
-                case 1 :
-                    // InternalSignalDSL.g:334:3: this_WatcherWithFileMask_0= ruleWatcherWithFileMask
-                    {
-                    if ( state.backtracking==0 ) {
-
-                      			newCompositeNode(grammarAccess.getWatcherDefinitionAccess().getWatcherWithFileMaskParserRuleCall_0());
-                      		
-                    }
-                    pushFollow(FOLLOW_2);
-                    this_WatcherWithFileMask_0=ruleWatcherWithFileMask();
-
-                    state._fsp--;
-                    if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current = this_WatcherWithFileMask_0;
-                      			afterParserOrEnumRuleCall();
-                      		
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // InternalSignalDSL.g:343:3: this_WatcherWithFileName_1= ruleWatcherWithFileName
-                    {
-                    if ( state.backtracking==0 ) {
-
-                      			newCompositeNode(grammarAccess.getWatcherDefinitionAccess().getWatcherWithFileNameParserRuleCall_1());
-                      		
-                    }
-                    pushFollow(FOLLOW_2);
-                    this_WatcherWithFileName_1=ruleWatcherWithFileName();
-
-                    state._fsp--;
-                    if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current = this_WatcherWithFileName_1;
-                      			afterParserOrEnumRuleCall();
-                      		
-                    }
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleWatcherDefinition"
-
-
-    // $ANTLR start "entryRuleWatcherWithFileMask"
-    // InternalSignalDSL.g:355:1: entryRuleWatcherWithFileMask returns [EObject current=null] : iv_ruleWatcherWithFileMask= ruleWatcherWithFileMask EOF ;
-    public final EObject entryRuleWatcherWithFileMask() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleWatcherWithFileMask = null;
-
-
-        try {
-            // InternalSignalDSL.g:355:60: (iv_ruleWatcherWithFileMask= ruleWatcherWithFileMask EOF )
-            // InternalSignalDSL.g:356:2: iv_ruleWatcherWithFileMask= ruleWatcherWithFileMask EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getWatcherWithFileMaskRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleWatcherWithFileMask=ruleWatcherWithFileMask();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleWatcherWithFileMask; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleWatcherWithFileMask"
-
-
-    // $ANTLR start "ruleWatcherWithFileMask"
-    // InternalSignalDSL.g:362:1: ruleWatcherWithFileMask returns [EObject current=null] : ( () otherlv_1= 'filemask' ( (lv_filemask_2_0= RULE_STRING ) ) ( (lv_executiontype_3_0= ruleSignalExecutionTypeEnum ) ) otherlv_4= 'from' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_interchange_7_0= ruleSignalDatainterchange ) ) otherlv_8= '}' ) ;
-    public final EObject ruleWatcherWithFileMask() throws RecognitionException {
-        EObject current = null;
-
-        Token otherlv_1=null;
-        Token lv_filemask_2_0=null;
-        Token otherlv_4=null;
-        Token otherlv_5=null;
-        Token otherlv_6=null;
-        Token otherlv_8=null;
-        Enumerator lv_executiontype_3_0 = null;
-
-        EObject lv_interchange_7_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalSignalDSL.g:368:2: ( ( () otherlv_1= 'filemask' ( (lv_filemask_2_0= RULE_STRING ) ) ( (lv_executiontype_3_0= ruleSignalExecutionTypeEnum ) ) otherlv_4= 'from' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_interchange_7_0= ruleSignalDatainterchange ) ) otherlv_8= '}' ) )
-            // InternalSignalDSL.g:369:2: ( () otherlv_1= 'filemask' ( (lv_filemask_2_0= RULE_STRING ) ) ( (lv_executiontype_3_0= ruleSignalExecutionTypeEnum ) ) otherlv_4= 'from' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_interchange_7_0= ruleSignalDatainterchange ) ) otherlv_8= '}' )
-            {
-            // InternalSignalDSL.g:369:2: ( () otherlv_1= 'filemask' ( (lv_filemask_2_0= RULE_STRING ) ) ( (lv_executiontype_3_0= ruleSignalExecutionTypeEnum ) ) otherlv_4= 'from' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_interchange_7_0= ruleSignalDatainterchange ) ) otherlv_8= '}' )
-            // InternalSignalDSL.g:370:3: () otherlv_1= 'filemask' ( (lv_filemask_2_0= RULE_STRING ) ) ( (lv_executiontype_3_0= ruleSignalExecutionTypeEnum ) ) otherlv_4= 'from' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_interchange_7_0= ruleSignalDatainterchange ) ) otherlv_8= '}'
-            {
-            // InternalSignalDSL.g:370:3: ()
-            // InternalSignalDSL.g:371:4: 
-            {
-            if ( state.backtracking==0 ) {
-
-              				current = forceCreateModelElement(
-              					grammarAccess.getWatcherWithFileMaskAccess().getWatcherWithFileMaskAction_0(),
-              					current);
-              			
-            }
-
-            }
-
-            otherlv_1=(Token)match(input,17,FOLLOW_8); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(otherlv_1, grammarAccess.getWatcherWithFileMaskAccess().getFilemaskKeyword_1());
-              		
-            }
-            // InternalSignalDSL.g:381:3: ( (lv_filemask_2_0= RULE_STRING ) )
-            // InternalSignalDSL.g:382:4: (lv_filemask_2_0= RULE_STRING )
-            {
-            // InternalSignalDSL.g:382:4: (lv_filemask_2_0= RULE_STRING )
-            // InternalSignalDSL.g:383:5: lv_filemask_2_0= RULE_STRING
-            {
-            lv_filemask_2_0=(Token)match(input,RULE_STRING,FOLLOW_9); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              					newLeafNode(lv_filemask_2_0, grammarAccess.getWatcherWithFileMaskAccess().getFilemaskSTRINGTerminalRuleCall_2_0());
-              				
-            }
-            if ( state.backtracking==0 ) {
-
-              					if (current==null) {
-              						current = createModelElement(grammarAccess.getWatcherWithFileMaskRule());
-              					}
-              					setWithLastConsumed(
-              						current,
-              						"filemask",
-              						lv_filemask_2_0,
-              						"org.eclipse.xtext.xbase.Xtype.STRING");
-              				
-            }
-
-            }
-
-
-            }
-
-            // InternalSignalDSL.g:399:3: ( (lv_executiontype_3_0= ruleSignalExecutionTypeEnum ) )
-            // InternalSignalDSL.g:400:4: (lv_executiontype_3_0= ruleSignalExecutionTypeEnum )
-            {
-            // InternalSignalDSL.g:400:4: (lv_executiontype_3_0= ruleSignalExecutionTypeEnum )
-            // InternalSignalDSL.g:401:5: lv_executiontype_3_0= ruleSignalExecutionTypeEnum
-            {
-            if ( state.backtracking==0 ) {
-
-              					newCompositeNode(grammarAccess.getWatcherWithFileMaskAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0());
-              				
-            }
-            pushFollow(FOLLOW_10);
-            lv_executiontype_3_0=ruleSignalExecutionTypeEnum();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              					if (current==null) {
-              						current = createModelElementForParent(grammarAccess.getWatcherWithFileMaskRule());
-              					}
-              					set(
-              						current,
-              						"executiontype",
-              						lv_executiontype_3_0,
-              						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalExecutionTypeEnum");
-              					afterParserOrEnumRuleCall();
-              				
-            }
-
-            }
-
-
-            }
-
-            otherlv_4=(Token)match(input,18,FOLLOW_4); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(otherlv_4, grammarAccess.getWatcherWithFileMaskAccess().getFromKeyword_4());
-              		
-            }
-            // InternalSignalDSL.g:422:3: ( (otherlv_5= RULE_ID ) )
-            // InternalSignalDSL.g:423:4: (otherlv_5= RULE_ID )
-            {
-            // InternalSignalDSL.g:423:4: (otherlv_5= RULE_ID )
-            // InternalSignalDSL.g:424:5: otherlv_5= RULE_ID
-            {
-            if ( state.backtracking==0 ) {
-
-              					if (current==null) {
-              						current = createModelElement(grammarAccess.getWatcherWithFileMaskRule());
-              					}
-              				
-            }
-            otherlv_5=(Token)match(input,RULE_ID,FOLLOW_11); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              					newLeafNode(otherlv_5, grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupDataInterchangeGroupCrossReference_5_0());
-              				
-            }
-
-            }
-
-
-            }
-
-            otherlv_6=(Token)match(input,14,FOLLOW_12); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(otherlv_6, grammarAccess.getWatcherWithFileMaskAccess().getLeftCurlyBracketKeyword_6());
-              		
-            }
-            // InternalSignalDSL.g:439:3: ( (lv_interchange_7_0= ruleSignalDatainterchange ) )
-            // InternalSignalDSL.g:440:4: (lv_interchange_7_0= ruleSignalDatainterchange )
-            {
-            // InternalSignalDSL.g:440:4: (lv_interchange_7_0= ruleSignalDatainterchange )
-            // InternalSignalDSL.g:441:5: lv_interchange_7_0= ruleSignalDatainterchange
-            {
-            if ( state.backtracking==0 ) {
-
-              					newCompositeNode(grammarAccess.getWatcherWithFileMaskAccess().getInterchangeSignalDatainterchangeParserRuleCall_7_0());
-              				
-            }
-            pushFollow(FOLLOW_13);
-            lv_interchange_7_0=ruleSignalDatainterchange();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              					if (current==null) {
-              						current = createModelElementForParent(grammarAccess.getWatcherWithFileMaskRule());
-              					}
-              					set(
-              						current,
-              						"interchange",
-              						lv_interchange_7_0,
-              						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalDatainterchange");
-              					afterParserOrEnumRuleCall();
-              				
-            }
-
-            }
-
-
-            }
-
-            otherlv_8=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(otherlv_8, grammarAccess.getWatcherWithFileMaskAccess().getRightCurlyBracketKeyword_8());
-              		
-            }
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleWatcherWithFileMask"
-
-
-    // $ANTLR start "entryRuleWatcherWithFileName"
-    // InternalSignalDSL.g:466:1: entryRuleWatcherWithFileName returns [EObject current=null] : iv_ruleWatcherWithFileName= ruleWatcherWithFileName EOF ;
-    public final EObject entryRuleWatcherWithFileName() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleWatcherWithFileName = null;
-
-
-        try {
-            // InternalSignalDSL.g:466:60: (iv_ruleWatcherWithFileName= ruleWatcherWithFileName EOF )
-            // InternalSignalDSL.g:467:2: iv_ruleWatcherWithFileName= ruleWatcherWithFileName EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getWatcherWithFileNameRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleWatcherWithFileName=ruleWatcherWithFileName();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleWatcherWithFileName; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleWatcherWithFileName"
-
-
-    // $ANTLR start "ruleWatcherWithFileName"
-    // InternalSignalDSL.g:473:1: ruleWatcherWithFileName returns [EObject current=null] : ( () otherlv_1= 'filename' ( (lv_filename_2_0= RULE_STRING ) ) ( (lv_executiontype_3_0= ruleSignalExecutionTypeEnum ) ) otherlv_4= 'from' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_interchanges_7_0= ruleSignalDatainterchange ) )* otherlv_8= '}' ) ;
-    public final EObject ruleWatcherWithFileName() throws RecognitionException {
-        EObject current = null;
-
-        Token otherlv_1=null;
-        Token lv_filename_2_0=null;
-        Token otherlv_4=null;
-        Token otherlv_5=null;
-        Token otherlv_6=null;
-        Token otherlv_8=null;
-        Enumerator lv_executiontype_3_0 = null;
-
-        EObject lv_interchanges_7_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalSignalDSL.g:479:2: ( ( () otherlv_1= 'filename' ( (lv_filename_2_0= RULE_STRING ) ) ( (lv_executiontype_3_0= ruleSignalExecutionTypeEnum ) ) otherlv_4= 'from' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_interchanges_7_0= ruleSignalDatainterchange ) )* otherlv_8= '}' ) )
-            // InternalSignalDSL.g:480:2: ( () otherlv_1= 'filename' ( (lv_filename_2_0= RULE_STRING ) ) ( (lv_executiontype_3_0= ruleSignalExecutionTypeEnum ) ) otherlv_4= 'from' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_interchanges_7_0= ruleSignalDatainterchange ) )* otherlv_8= '}' )
-            {
-            // InternalSignalDSL.g:480:2: ( () otherlv_1= 'filename' ( (lv_filename_2_0= RULE_STRING ) ) ( (lv_executiontype_3_0= ruleSignalExecutionTypeEnum ) ) otherlv_4= 'from' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_interchanges_7_0= ruleSignalDatainterchange ) )* otherlv_8= '}' )
-            // InternalSignalDSL.g:481:3: () otherlv_1= 'filename' ( (lv_filename_2_0= RULE_STRING ) ) ( (lv_executiontype_3_0= ruleSignalExecutionTypeEnum ) ) otherlv_4= 'from' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_interchanges_7_0= ruleSignalDatainterchange ) )* otherlv_8= '}'
-            {
-            // InternalSignalDSL.g:481:3: ()
-            // InternalSignalDSL.g:482:4: 
-            {
-            if ( state.backtracking==0 ) {
-
-              				current = forceCreateModelElement(
-              					grammarAccess.getWatcherWithFileNameAccess().getWatcherWithFileNameAction_0(),
-              					current);
-              			
-            }
-
-            }
-
-            otherlv_1=(Token)match(input,19,FOLLOW_8); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(otherlv_1, grammarAccess.getWatcherWithFileNameAccess().getFilenameKeyword_1());
-              		
-            }
-            // InternalSignalDSL.g:492:3: ( (lv_filename_2_0= RULE_STRING ) )
-            // InternalSignalDSL.g:493:4: (lv_filename_2_0= RULE_STRING )
-            {
-            // InternalSignalDSL.g:493:4: (lv_filename_2_0= RULE_STRING )
-            // InternalSignalDSL.g:494:5: lv_filename_2_0= RULE_STRING
-            {
-            lv_filename_2_0=(Token)match(input,RULE_STRING,FOLLOW_9); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              					newLeafNode(lv_filename_2_0, grammarAccess.getWatcherWithFileNameAccess().getFilenameSTRINGTerminalRuleCall_2_0());
-              				
-            }
-            if ( state.backtracking==0 ) {
-
-              					if (current==null) {
-              						current = createModelElement(grammarAccess.getWatcherWithFileNameRule());
-              					}
-              					setWithLastConsumed(
-              						current,
-              						"filename",
-              						lv_filename_2_0,
-              						"org.eclipse.xtext.xbase.Xtype.STRING");
-              				
-            }
-
-            }
-
-
-            }
-
-            // InternalSignalDSL.g:510:3: ( (lv_executiontype_3_0= ruleSignalExecutionTypeEnum ) )
-            // InternalSignalDSL.g:511:4: (lv_executiontype_3_0= ruleSignalExecutionTypeEnum )
-            {
-            // InternalSignalDSL.g:511:4: (lv_executiontype_3_0= ruleSignalExecutionTypeEnum )
-            // InternalSignalDSL.g:512:5: lv_executiontype_3_0= ruleSignalExecutionTypeEnum
-            {
-            if ( state.backtracking==0 ) {
-
-              					newCompositeNode(grammarAccess.getWatcherWithFileNameAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0());
-              				
-            }
-            pushFollow(FOLLOW_10);
-            lv_executiontype_3_0=ruleSignalExecutionTypeEnum();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              					if (current==null) {
-              						current = createModelElementForParent(grammarAccess.getWatcherWithFileNameRule());
-              					}
-              					set(
-              						current,
-              						"executiontype",
-              						lv_executiontype_3_0,
-              						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalExecutionTypeEnum");
-              					afterParserOrEnumRuleCall();
-              				
-            }
-
-            }
-
-
-            }
-
-            otherlv_4=(Token)match(input,18,FOLLOW_4); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(otherlv_4, grammarAccess.getWatcherWithFileNameAccess().getFromKeyword_4());
-              		
-            }
-            // InternalSignalDSL.g:533:3: ( (otherlv_5= RULE_ID ) )
-            // InternalSignalDSL.g:534:4: (otherlv_5= RULE_ID )
-            {
-            // InternalSignalDSL.g:534:4: (otherlv_5= RULE_ID )
-            // InternalSignalDSL.g:535:5: otherlv_5= RULE_ID
-            {
-            if ( state.backtracking==0 ) {
-
-              					if (current==null) {
-              						current = createModelElement(grammarAccess.getWatcherWithFileNameRule());
-              					}
-              				
-            }
-            otherlv_5=(Token)match(input,RULE_ID,FOLLOW_11); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              					newLeafNode(otherlv_5, grammarAccess.getWatcherWithFileNameAccess().getInterchangegroupDataInterchangeGroupCrossReference_5_0());
-              				
-            }
-
-            }
-
-
-            }
-
-            otherlv_6=(Token)match(input,14,FOLLOW_14); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(otherlv_6, grammarAccess.getWatcherWithFileNameAccess().getLeftCurlyBracketKeyword_6());
-              		
-            }
-            // InternalSignalDSL.g:550:3: ( (lv_interchanges_7_0= ruleSignalDatainterchange ) )*
-            loop6:
-            do {
-                int alt6=2;
-                int LA6_0 = input.LA(1);
-
-                if ( (LA6_0==29||LA6_0==102) ) {
-                    alt6=1;
-                }
-
-
-                switch (alt6) {
-            	case 1 :
-            	    // InternalSignalDSL.g:551:4: (lv_interchanges_7_0= ruleSignalDatainterchange )
-            	    {
-            	    // InternalSignalDSL.g:551:4: (lv_interchanges_7_0= ruleSignalDatainterchange )
-            	    // InternalSignalDSL.g:552:5: lv_interchanges_7_0= ruleSignalDatainterchange
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      					newCompositeNode(grammarAccess.getWatcherWithFileNameAccess().getInterchangesSignalDatainterchangeParserRuleCall_7_0());
-            	      				
-            	    }
-            	    pushFollow(FOLLOW_14);
-            	    lv_interchanges_7_0=ruleSignalDatainterchange();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      					if (current==null) {
-            	      						current = createModelElementForParent(grammarAccess.getWatcherWithFileNameRule());
-            	      					}
-            	      					add(
-            	      						current,
-            	      						"interchanges",
-            	      						lv_interchanges_7_0,
-            	      						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalDatainterchange");
-            	      					afterParserOrEnumRuleCall();
-            	      				
-            	    }
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop6;
-                }
-            } while (true);
-
-            otherlv_8=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(otherlv_8, grammarAccess.getWatcherWithFileNameAccess().getRightCurlyBracketKeyword_8());
-              		
-            }
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleWatcherWithFileName"
-
-
     // $ANTLR start "entryRuleSignalScheduler"
-    // InternalSignalDSL.g:577:1: entryRuleSignalScheduler returns [EObject current=null] : iv_ruleSignalScheduler= ruleSignalScheduler EOF ;
+    // InternalSignalDSL.g:421:1: entryRuleSignalScheduler returns [EObject current=null] : iv_ruleSignalScheduler= ruleSignalScheduler EOF ;
     public final EObject entryRuleSignalScheduler() throws RecognitionException {
         EObject current = null;
 
@@ -1570,8 +1159,8 @@
 
 
         try {
-            // InternalSignalDSL.g:577:56: (iv_ruleSignalScheduler= ruleSignalScheduler EOF )
-            // InternalSignalDSL.g:578:2: iv_ruleSignalScheduler= ruleSignalScheduler EOF
+            // InternalSignalDSL.g:421:56: (iv_ruleSignalScheduler= ruleSignalScheduler EOF )
+            // InternalSignalDSL.g:422:2: iv_ruleSignalScheduler= ruleSignalScheduler EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getSignalSchedulerRule()); 
@@ -1602,7 +1191,7 @@
 
 
     // $ANTLR start "ruleSignalScheduler"
-    // InternalSignalDSL.g:584:1: ruleSignalScheduler returns [EObject current=null] : ( () otherlv_1= 'scheduler' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_schedulertype_3_0= ruleSchedulerType ) ) ( (lv_executiontype_4_0= ruleSignalExecutionTypeEnum ) )? otherlv_5= 'from' ( (otherlv_6= RULE_ID ) ) otherlv_7= '{' ( (lv_interchanges_8_0= ruleSignalDatainterchange ) )* otherlv_9= '}' ) ;
+    // InternalSignalDSL.g:428:1: ruleSignalScheduler returns [EObject current=null] : ( () otherlv_1= 'scheduler' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_schedulertype_3_0= ruleSchedulerType ) ) ( (lv_executiontype_4_0= ruleSignalExecutionTypeEnum ) )? otherlv_5= 'from' ( (otherlv_6= RULE_ID ) ) otherlv_7= '{' ( (lv_tasks_8_0= ruleSignalTask ) )* otherlv_9= '}' ) ;
     public final EObject ruleSignalScheduler() throws RecognitionException {
         EObject current = null;
 
@@ -1617,21 +1206,21 @@
 
         Enumerator lv_executiontype_4_0 = null;
 
-        EObject lv_interchanges_8_0 = null;
+        EObject lv_tasks_8_0 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:590:2: ( ( () otherlv_1= 'scheduler' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_schedulertype_3_0= ruleSchedulerType ) ) ( (lv_executiontype_4_0= ruleSignalExecutionTypeEnum ) )? otherlv_5= 'from' ( (otherlv_6= RULE_ID ) ) otherlv_7= '{' ( (lv_interchanges_8_0= ruleSignalDatainterchange ) )* otherlv_9= '}' ) )
-            // InternalSignalDSL.g:591:2: ( () otherlv_1= 'scheduler' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_schedulertype_3_0= ruleSchedulerType ) ) ( (lv_executiontype_4_0= ruleSignalExecutionTypeEnum ) )? otherlv_5= 'from' ( (otherlv_6= RULE_ID ) ) otherlv_7= '{' ( (lv_interchanges_8_0= ruleSignalDatainterchange ) )* otherlv_9= '}' )
+            // InternalSignalDSL.g:434:2: ( ( () otherlv_1= 'scheduler' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_schedulertype_3_0= ruleSchedulerType ) ) ( (lv_executiontype_4_0= ruleSignalExecutionTypeEnum ) )? otherlv_5= 'from' ( (otherlv_6= RULE_ID ) ) otherlv_7= '{' ( (lv_tasks_8_0= ruleSignalTask ) )* otherlv_9= '}' ) )
+            // InternalSignalDSL.g:435:2: ( () otherlv_1= 'scheduler' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_schedulertype_3_0= ruleSchedulerType ) ) ( (lv_executiontype_4_0= ruleSignalExecutionTypeEnum ) )? otherlv_5= 'from' ( (otherlv_6= RULE_ID ) ) otherlv_7= '{' ( (lv_tasks_8_0= ruleSignalTask ) )* otherlv_9= '}' )
             {
-            // InternalSignalDSL.g:591:2: ( () otherlv_1= 'scheduler' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_schedulertype_3_0= ruleSchedulerType ) ) ( (lv_executiontype_4_0= ruleSignalExecutionTypeEnum ) )? otherlv_5= 'from' ( (otherlv_6= RULE_ID ) ) otherlv_7= '{' ( (lv_interchanges_8_0= ruleSignalDatainterchange ) )* otherlv_9= '}' )
-            // InternalSignalDSL.g:592:3: () otherlv_1= 'scheduler' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_schedulertype_3_0= ruleSchedulerType ) ) ( (lv_executiontype_4_0= ruleSignalExecutionTypeEnum ) )? otherlv_5= 'from' ( (otherlv_6= RULE_ID ) ) otherlv_7= '{' ( (lv_interchanges_8_0= ruleSignalDatainterchange ) )* otherlv_9= '}'
+            // InternalSignalDSL.g:435:2: ( () otherlv_1= 'scheduler' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_schedulertype_3_0= ruleSchedulerType ) ) ( (lv_executiontype_4_0= ruleSignalExecutionTypeEnum ) )? otherlv_5= 'from' ( (otherlv_6= RULE_ID ) ) otherlv_7= '{' ( (lv_tasks_8_0= ruleSignalTask ) )* otherlv_9= '}' )
+            // InternalSignalDSL.g:436:3: () otherlv_1= 'scheduler' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( (lv_schedulertype_3_0= ruleSchedulerType ) ) ( (lv_executiontype_4_0= ruleSignalExecutionTypeEnum ) )? otherlv_5= 'from' ( (otherlv_6= RULE_ID ) ) otherlv_7= '{' ( (lv_tasks_8_0= ruleSignalTask ) )* otherlv_9= '}'
             {
-            // InternalSignalDSL.g:592:3: ()
-            // InternalSignalDSL.g:593:4: 
+            // InternalSignalDSL.g:436:3: ()
+            // InternalSignalDSL.g:437:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -1643,24 +1232,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,20,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,21,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getSignalSchedulerAccess().getSchedulerKeyword_1());
               		
             }
-            // InternalSignalDSL.g:603:3: ( (lv_name_2_0= ruleTRANSLATABLEID ) )
-            // InternalSignalDSL.g:604:4: (lv_name_2_0= ruleTRANSLATABLEID )
+            // InternalSignalDSL.g:447:3: ( (lv_name_2_0= ruleTRANSLATABLEID ) )
+            // InternalSignalDSL.g:448:4: (lv_name_2_0= ruleTRANSLATABLEID )
             {
-            // InternalSignalDSL.g:604:4: (lv_name_2_0= ruleTRANSLATABLEID )
-            // InternalSignalDSL.g:605:5: lv_name_2_0= ruleTRANSLATABLEID
+            // InternalSignalDSL.g:448:4: (lv_name_2_0= ruleTRANSLATABLEID )
+            // InternalSignalDSL.g:449:5: lv_name_2_0= ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getSignalSchedulerAccess().getNameTRANSLATABLEIDParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_15);
+            pushFollow(FOLLOW_14);
             lv_name_2_0=ruleTRANSLATABLEID();
 
             state._fsp--;
@@ -1684,18 +1273,18 @@
 
             }
 
-            // InternalSignalDSL.g:622:3: ( (lv_schedulertype_3_0= ruleSchedulerType ) )
-            // InternalSignalDSL.g:623:4: (lv_schedulertype_3_0= ruleSchedulerType )
+            // InternalSignalDSL.g:466:3: ( (lv_schedulertype_3_0= ruleSchedulerType ) )
+            // InternalSignalDSL.g:467:4: (lv_schedulertype_3_0= ruleSchedulerType )
             {
-            // InternalSignalDSL.g:623:4: (lv_schedulertype_3_0= ruleSchedulerType )
-            // InternalSignalDSL.g:624:5: lv_schedulertype_3_0= ruleSchedulerType
+            // InternalSignalDSL.g:467:4: (lv_schedulertype_3_0= ruleSchedulerType )
+            // InternalSignalDSL.g:468:5: lv_schedulertype_3_0= ruleSchedulerType
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getSignalSchedulerAccess().getSchedulertypeSchedulerTypeParserRuleCall_3_0());
               				
             }
-            pushFollow(FOLLOW_16);
+            pushFollow(FOLLOW_15);
             lv_schedulertype_3_0=ruleSchedulerType();
 
             state._fsp--;
@@ -1719,19 +1308,19 @@
 
             }
 
-            // InternalSignalDSL.g:641:3: ( (lv_executiontype_4_0= ruleSignalExecutionTypeEnum ) )?
-            int alt7=2;
-            int LA7_0 = input.LA(1);
+            // InternalSignalDSL.g:485:3: ( (lv_executiontype_4_0= ruleSignalExecutionTypeEnum ) )?
+            int alt8=2;
+            int LA8_0 = input.LA(1);
 
-            if ( ((LA7_0>=103 && LA7_0<=104)) ) {
-                alt7=1;
+            if ( ((LA8_0>=107 && LA8_0<=108)) ) {
+                alt8=1;
             }
-            switch (alt7) {
+            switch (alt8) {
                 case 1 :
-                    // InternalSignalDSL.g:642:4: (lv_executiontype_4_0= ruleSignalExecutionTypeEnum )
+                    // InternalSignalDSL.g:486:4: (lv_executiontype_4_0= ruleSignalExecutionTypeEnum )
                     {
-                    // InternalSignalDSL.g:642:4: (lv_executiontype_4_0= ruleSignalExecutionTypeEnum )
-                    // InternalSignalDSL.g:643:5: lv_executiontype_4_0= ruleSignalExecutionTypeEnum
+                    // InternalSignalDSL.g:486:4: (lv_executiontype_4_0= ruleSignalExecutionTypeEnum )
+                    // InternalSignalDSL.g:487:5: lv_executiontype_4_0= ruleSignalExecutionTypeEnum
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1765,17 +1354,17 @@
 
             }
 
-            otherlv_5=(Token)match(input,18,FOLLOW_4); if (state.failed) return current;
+            otherlv_5=(Token)match(input,19,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getSignalSchedulerAccess().getFromKeyword_5());
               		
             }
-            // InternalSignalDSL.g:664:3: ( (otherlv_6= RULE_ID ) )
-            // InternalSignalDSL.g:665:4: (otherlv_6= RULE_ID )
+            // InternalSignalDSL.g:508:3: ( (otherlv_6= RULE_ID ) )
+            // InternalSignalDSL.g:509:4: (otherlv_6= RULE_ID )
             {
-            // InternalSignalDSL.g:665:4: (otherlv_6= RULE_ID )
-            // InternalSignalDSL.g:666:5: otherlv_6= RULE_ID
+            // InternalSignalDSL.g:509:4: (otherlv_6= RULE_ID )
+            // InternalSignalDSL.g:510:5: otherlv_6= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -1796,37 +1385,37 @@
 
             }
 
-            otherlv_7=(Token)match(input,14,FOLLOW_14); if (state.failed) return current;
+            otherlv_7=(Token)match(input,14,FOLLOW_13); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_7, grammarAccess.getSignalSchedulerAccess().getLeftCurlyBracketKeyword_7());
               		
             }
-            // InternalSignalDSL.g:681:3: ( (lv_interchanges_8_0= ruleSignalDatainterchange ) )*
-            loop8:
+            // InternalSignalDSL.g:525:3: ( (lv_tasks_8_0= ruleSignalTask ) )*
+            loop9:
             do {
-                int alt8=2;
-                int LA8_0 = input.LA(1);
+                int alt9=2;
+                int LA9_0 = input.LA(1);
 
-                if ( (LA8_0==29||LA8_0==102) ) {
-                    alt8=1;
+                if ( (LA9_0==29||LA9_0==33||LA9_0==106) ) {
+                    alt9=1;
                 }
 
 
-                switch (alt8) {
+                switch (alt9) {
             	case 1 :
-            	    // InternalSignalDSL.g:682:4: (lv_interchanges_8_0= ruleSignalDatainterchange )
+            	    // InternalSignalDSL.g:526:4: (lv_tasks_8_0= ruleSignalTask )
             	    {
-            	    // InternalSignalDSL.g:682:4: (lv_interchanges_8_0= ruleSignalDatainterchange )
-            	    // InternalSignalDSL.g:683:5: lv_interchanges_8_0= ruleSignalDatainterchange
+            	    // InternalSignalDSL.g:526:4: (lv_tasks_8_0= ruleSignalTask )
+            	    // InternalSignalDSL.g:527:5: lv_tasks_8_0= ruleSignalTask
             	    {
             	    if ( state.backtracking==0 ) {
 
-            	      					newCompositeNode(grammarAccess.getSignalSchedulerAccess().getInterchangesSignalDatainterchangeParserRuleCall_8_0());
+            	      					newCompositeNode(grammarAccess.getSignalSchedulerAccess().getTasksSignalTaskParserRuleCall_8_0());
             	      				
             	    }
-            	    pushFollow(FOLLOW_14);
-            	    lv_interchanges_8_0=ruleSignalDatainterchange();
+            	    pushFollow(FOLLOW_13);
+            	    lv_tasks_8_0=ruleSignalTask();
 
             	    state._fsp--;
             	    if (state.failed) return current;
@@ -1837,9 +1426,9 @@
             	      					}
             	      					add(
             	      						current,
-            	      						"interchanges",
-            	      						lv_interchanges_8_0,
-            	      						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalDatainterchange");
+            	      						"tasks",
+            	      						lv_tasks_8_0,
+            	      						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalTask");
             	      					afterParserOrEnumRuleCall();
             	      				
             	    }
@@ -1851,7 +1440,7 @@
             	    break;
 
             	default :
-            	    break loop8;
+            	    break loop9;
                 }
             } while (true);
 
@@ -1886,7 +1475,7 @@
 
 
     // $ANTLR start "entryRuleSchedulerType"
-    // InternalSignalDSL.g:708:1: entryRuleSchedulerType returns [EObject current=null] : iv_ruleSchedulerType= ruleSchedulerType EOF ;
+    // InternalSignalDSL.g:552:1: entryRuleSchedulerType returns [EObject current=null] : iv_ruleSchedulerType= ruleSchedulerType EOF ;
     public final EObject entryRuleSchedulerType() throws RecognitionException {
         EObject current = null;
 
@@ -1894,8 +1483,8 @@
 
 
         try {
-            // InternalSignalDSL.g:708:54: (iv_ruleSchedulerType= ruleSchedulerType EOF )
-            // InternalSignalDSL.g:709:2: iv_ruleSchedulerType= ruleSchedulerType EOF
+            // InternalSignalDSL.g:552:54: (iv_ruleSchedulerType= ruleSchedulerType EOF )
+            // InternalSignalDSL.g:553:2: iv_ruleSchedulerType= ruleSchedulerType EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getSchedulerTypeRule()); 
@@ -1926,7 +1515,7 @@
 
 
     // $ANTLR start "ruleSchedulerType"
-    // InternalSignalDSL.g:715:1: ruleSchedulerType returns [EObject current=null] : (this_CronScheduler_0= ruleCronScheduler | this_HourlyScheduler_1= ruleHourlyScheduler | this_DailyScheduler_2= ruleDailyScheduler | this_WeeklyScheduler_3= ruleWeeklyScheduler | this_MonthlyScheduler_4= ruleMonthlyScheduler ) ;
+    // InternalSignalDSL.g:559:1: ruleSchedulerType returns [EObject current=null] : (this_CronScheduler_0= ruleCronScheduler | this_HourlyScheduler_1= ruleHourlyScheduler | this_DailyScheduler_2= ruleDailyScheduler | this_WeeklyScheduler_3= ruleWeeklyScheduler | this_MonthlyScheduler_4= ruleMonthlyScheduler ) ;
     public final EObject ruleSchedulerType() throws RecognitionException {
         EObject current = null;
 
@@ -1945,48 +1534,48 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:721:2: ( (this_CronScheduler_0= ruleCronScheduler | this_HourlyScheduler_1= ruleHourlyScheduler | this_DailyScheduler_2= ruleDailyScheduler | this_WeeklyScheduler_3= ruleWeeklyScheduler | this_MonthlyScheduler_4= ruleMonthlyScheduler ) )
-            // InternalSignalDSL.g:722:2: (this_CronScheduler_0= ruleCronScheduler | this_HourlyScheduler_1= ruleHourlyScheduler | this_DailyScheduler_2= ruleDailyScheduler | this_WeeklyScheduler_3= ruleWeeklyScheduler | this_MonthlyScheduler_4= ruleMonthlyScheduler )
+            // InternalSignalDSL.g:565:2: ( (this_CronScheduler_0= ruleCronScheduler | this_HourlyScheduler_1= ruleHourlyScheduler | this_DailyScheduler_2= ruleDailyScheduler | this_WeeklyScheduler_3= ruleWeeklyScheduler | this_MonthlyScheduler_4= ruleMonthlyScheduler ) )
+            // InternalSignalDSL.g:566:2: (this_CronScheduler_0= ruleCronScheduler | this_HourlyScheduler_1= ruleHourlyScheduler | this_DailyScheduler_2= ruleDailyScheduler | this_WeeklyScheduler_3= ruleWeeklyScheduler | this_MonthlyScheduler_4= ruleMonthlyScheduler )
             {
-            // InternalSignalDSL.g:722:2: (this_CronScheduler_0= ruleCronScheduler | this_HourlyScheduler_1= ruleHourlyScheduler | this_DailyScheduler_2= ruleDailyScheduler | this_WeeklyScheduler_3= ruleWeeklyScheduler | this_MonthlyScheduler_4= ruleMonthlyScheduler )
-            int alt9=5;
+            // InternalSignalDSL.g:566:2: (this_CronScheduler_0= ruleCronScheduler | this_HourlyScheduler_1= ruleHourlyScheduler | this_DailyScheduler_2= ruleDailyScheduler | this_WeeklyScheduler_3= ruleWeeklyScheduler | this_MonthlyScheduler_4= ruleMonthlyScheduler )
+            int alt10=5;
             switch ( input.LA(1) ) {
-            case 21:
-                {
-                alt9=1;
-                }
-                break;
             case 22:
                 {
-                alt9=2;
+                alt10=1;
                 }
                 break;
             case 23:
                 {
-                alt9=3;
+                alt10=2;
                 }
                 break;
-            case 25:
+            case 24:
                 {
-                alt9=4;
+                alt10=3;
                 }
                 break;
-            case 27:
+            case 26:
                 {
-                alt9=5;
+                alt10=4;
+                }
+                break;
+            case 28:
+                {
+                alt10=5;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 9, 0, input);
+                    new NoViableAltException("", 10, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt9) {
+            switch (alt10) {
                 case 1 :
-                    // InternalSignalDSL.g:723:3: this_CronScheduler_0= ruleCronScheduler
+                    // InternalSignalDSL.g:567:3: this_CronScheduler_0= ruleCronScheduler
                     {
                     if ( state.backtracking==0 ) {
 
@@ -2008,7 +1597,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:732:3: this_HourlyScheduler_1= ruleHourlyScheduler
+                    // InternalSignalDSL.g:576:3: this_HourlyScheduler_1= ruleHourlyScheduler
                     {
                     if ( state.backtracking==0 ) {
 
@@ -2030,7 +1619,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:741:3: this_DailyScheduler_2= ruleDailyScheduler
+                    // InternalSignalDSL.g:585:3: this_DailyScheduler_2= ruleDailyScheduler
                     {
                     if ( state.backtracking==0 ) {
 
@@ -2052,7 +1641,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:750:3: this_WeeklyScheduler_3= ruleWeeklyScheduler
+                    // InternalSignalDSL.g:594:3: this_WeeklyScheduler_3= ruleWeeklyScheduler
                     {
                     if ( state.backtracking==0 ) {
 
@@ -2074,7 +1663,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:759:3: this_MonthlyScheduler_4= ruleMonthlyScheduler
+                    // InternalSignalDSL.g:603:3: this_MonthlyScheduler_4= ruleMonthlyScheduler
                     {
                     if ( state.backtracking==0 ) {
 
@@ -2120,7 +1709,7 @@
 
 
     // $ANTLR start "entryRuleCronScheduler"
-    // InternalSignalDSL.g:771:1: entryRuleCronScheduler returns [EObject current=null] : iv_ruleCronScheduler= ruleCronScheduler EOF ;
+    // InternalSignalDSL.g:615:1: entryRuleCronScheduler returns [EObject current=null] : iv_ruleCronScheduler= ruleCronScheduler EOF ;
     public final EObject entryRuleCronScheduler() throws RecognitionException {
         EObject current = null;
 
@@ -2128,8 +1717,8 @@
 
 
         try {
-            // InternalSignalDSL.g:771:54: (iv_ruleCronScheduler= ruleCronScheduler EOF )
-            // InternalSignalDSL.g:772:2: iv_ruleCronScheduler= ruleCronScheduler EOF
+            // InternalSignalDSL.g:615:54: (iv_ruleCronScheduler= ruleCronScheduler EOF )
+            // InternalSignalDSL.g:616:2: iv_ruleCronScheduler= ruleCronScheduler EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCronSchedulerRule()); 
@@ -2160,7 +1749,7 @@
 
 
     // $ANTLR start "ruleCronScheduler"
-    // InternalSignalDSL.g:778:1: ruleCronScheduler returns [EObject current=null] : (otherlv_0= 'cron' ( (lv_expression_1_0= RULE_STRING ) ) ) ;
+    // InternalSignalDSL.g:622:1: ruleCronScheduler returns [EObject current=null] : (otherlv_0= 'cron' ( (lv_expression_1_0= RULE_STRING ) ) ) ;
     public final EObject ruleCronScheduler() throws RecognitionException {
         EObject current = null;
 
@@ -2171,23 +1760,23 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:784:2: ( (otherlv_0= 'cron' ( (lv_expression_1_0= RULE_STRING ) ) ) )
-            // InternalSignalDSL.g:785:2: (otherlv_0= 'cron' ( (lv_expression_1_0= RULE_STRING ) ) )
+            // InternalSignalDSL.g:628:2: ( (otherlv_0= 'cron' ( (lv_expression_1_0= RULE_STRING ) ) ) )
+            // InternalSignalDSL.g:629:2: (otherlv_0= 'cron' ( (lv_expression_1_0= RULE_STRING ) ) )
             {
-            // InternalSignalDSL.g:785:2: (otherlv_0= 'cron' ( (lv_expression_1_0= RULE_STRING ) ) )
-            // InternalSignalDSL.g:786:3: otherlv_0= 'cron' ( (lv_expression_1_0= RULE_STRING ) )
+            // InternalSignalDSL.g:629:2: (otherlv_0= 'cron' ( (lv_expression_1_0= RULE_STRING ) ) )
+            // InternalSignalDSL.g:630:3: otherlv_0= 'cron' ( (lv_expression_1_0= RULE_STRING ) )
             {
-            otherlv_0=(Token)match(input,21,FOLLOW_8); if (state.failed) return current;
+            otherlv_0=(Token)match(input,22,FOLLOW_8); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getCronSchedulerAccess().getCronKeyword_0());
               		
             }
-            // InternalSignalDSL.g:790:3: ( (lv_expression_1_0= RULE_STRING ) )
-            // InternalSignalDSL.g:791:4: (lv_expression_1_0= RULE_STRING )
+            // InternalSignalDSL.g:634:3: ( (lv_expression_1_0= RULE_STRING ) )
+            // InternalSignalDSL.g:635:4: (lv_expression_1_0= RULE_STRING )
             {
-            // InternalSignalDSL.g:791:4: (lv_expression_1_0= RULE_STRING )
-            // InternalSignalDSL.g:792:5: lv_expression_1_0= RULE_STRING
+            // InternalSignalDSL.g:635:4: (lv_expression_1_0= RULE_STRING )
+            // InternalSignalDSL.g:636:5: lv_expression_1_0= RULE_STRING
             {
             lv_expression_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -2238,7 +1827,7 @@
 
 
     // $ANTLR start "entryRuleHourlyScheduler"
-    // InternalSignalDSL.g:812:1: entryRuleHourlyScheduler returns [EObject current=null] : iv_ruleHourlyScheduler= ruleHourlyScheduler EOF ;
+    // InternalSignalDSL.g:656:1: entryRuleHourlyScheduler returns [EObject current=null] : iv_ruleHourlyScheduler= ruleHourlyScheduler EOF ;
     public final EObject entryRuleHourlyScheduler() throws RecognitionException {
         EObject current = null;
 
@@ -2246,8 +1835,8 @@
 
 
         try {
-            // InternalSignalDSL.g:812:56: (iv_ruleHourlyScheduler= ruleHourlyScheduler EOF )
-            // InternalSignalDSL.g:813:2: iv_ruleHourlyScheduler= ruleHourlyScheduler EOF
+            // InternalSignalDSL.g:656:56: (iv_ruleHourlyScheduler= ruleHourlyScheduler EOF )
+            // InternalSignalDSL.g:657:2: iv_ruleHourlyScheduler= ruleHourlyScheduler EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getHourlySchedulerRule()); 
@@ -2278,7 +1867,7 @@
 
 
     // $ANTLR start "ruleHourlyScheduler"
-    // InternalSignalDSL.g:819:1: ruleHourlyScheduler returns [EObject current=null] : (otherlv_0= 'hourlyat' ( (lv_minute_1_0= RULE_INT ) ) ) ;
+    // InternalSignalDSL.g:663:1: ruleHourlyScheduler returns [EObject current=null] : (otherlv_0= 'hourlyat' ( (lv_minute_1_0= RULE_INT ) ) ) ;
     public final EObject ruleHourlyScheduler() throws RecognitionException {
         EObject current = null;
 
@@ -2289,23 +1878,23 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:825:2: ( (otherlv_0= 'hourlyat' ( (lv_minute_1_0= RULE_INT ) ) ) )
-            // InternalSignalDSL.g:826:2: (otherlv_0= 'hourlyat' ( (lv_minute_1_0= RULE_INT ) ) )
+            // InternalSignalDSL.g:669:2: ( (otherlv_0= 'hourlyat' ( (lv_minute_1_0= RULE_INT ) ) ) )
+            // InternalSignalDSL.g:670:2: (otherlv_0= 'hourlyat' ( (lv_minute_1_0= RULE_INT ) ) )
             {
-            // InternalSignalDSL.g:826:2: (otherlv_0= 'hourlyat' ( (lv_minute_1_0= RULE_INT ) ) )
-            // InternalSignalDSL.g:827:3: otherlv_0= 'hourlyat' ( (lv_minute_1_0= RULE_INT ) )
+            // InternalSignalDSL.g:670:2: (otherlv_0= 'hourlyat' ( (lv_minute_1_0= RULE_INT ) ) )
+            // InternalSignalDSL.g:671:3: otherlv_0= 'hourlyat' ( (lv_minute_1_0= RULE_INT ) )
             {
-            otherlv_0=(Token)match(input,22,FOLLOW_17); if (state.failed) return current;
+            otherlv_0=(Token)match(input,23,FOLLOW_16); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getHourlySchedulerAccess().getHourlyatKeyword_0());
               		
             }
-            // InternalSignalDSL.g:831:3: ( (lv_minute_1_0= RULE_INT ) )
-            // InternalSignalDSL.g:832:4: (lv_minute_1_0= RULE_INT )
+            // InternalSignalDSL.g:675:3: ( (lv_minute_1_0= RULE_INT ) )
+            // InternalSignalDSL.g:676:4: (lv_minute_1_0= RULE_INT )
             {
-            // InternalSignalDSL.g:832:4: (lv_minute_1_0= RULE_INT )
-            // InternalSignalDSL.g:833:5: lv_minute_1_0= RULE_INT
+            // InternalSignalDSL.g:676:4: (lv_minute_1_0= RULE_INT )
+            // InternalSignalDSL.g:677:5: lv_minute_1_0= RULE_INT
             {
             lv_minute_1_0=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -2356,7 +1945,7 @@
 
 
     // $ANTLR start "entryRuleDailyScheduler"
-    // InternalSignalDSL.g:853:1: entryRuleDailyScheduler returns [EObject current=null] : iv_ruleDailyScheduler= ruleDailyScheduler EOF ;
+    // InternalSignalDSL.g:697:1: entryRuleDailyScheduler returns [EObject current=null] : iv_ruleDailyScheduler= ruleDailyScheduler EOF ;
     public final EObject entryRuleDailyScheduler() throws RecognitionException {
         EObject current = null;
 
@@ -2364,8 +1953,8 @@
 
 
         try {
-            // InternalSignalDSL.g:853:55: (iv_ruleDailyScheduler= ruleDailyScheduler EOF )
-            // InternalSignalDSL.g:854:2: iv_ruleDailyScheduler= ruleDailyScheduler EOF
+            // InternalSignalDSL.g:697:55: (iv_ruleDailyScheduler= ruleDailyScheduler EOF )
+            // InternalSignalDSL.g:698:2: iv_ruleDailyScheduler= ruleDailyScheduler EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getDailySchedulerRule()); 
@@ -2396,7 +1985,7 @@
 
 
     // $ANTLR start "ruleDailyScheduler"
-    // InternalSignalDSL.g:860:1: ruleDailyScheduler returns [EObject current=null] : (otherlv_0= 'dailyat' ( (lv_hour_1_0= RULE_INT ) ) otherlv_2= ':' ( (lv_minute_3_0= RULE_INT ) ) ) ;
+    // InternalSignalDSL.g:704:1: ruleDailyScheduler returns [EObject current=null] : (otherlv_0= 'dailyat' ( (lv_hour_1_0= RULE_INT ) ) otherlv_2= ':' ( (lv_minute_3_0= RULE_INT ) ) ) ;
     public final EObject ruleDailyScheduler() throws RecognitionException {
         EObject current = null;
 
@@ -2409,25 +1998,25 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:866:2: ( (otherlv_0= 'dailyat' ( (lv_hour_1_0= RULE_INT ) ) otherlv_2= ':' ( (lv_minute_3_0= RULE_INT ) ) ) )
-            // InternalSignalDSL.g:867:2: (otherlv_0= 'dailyat' ( (lv_hour_1_0= RULE_INT ) ) otherlv_2= ':' ( (lv_minute_3_0= RULE_INT ) ) )
+            // InternalSignalDSL.g:710:2: ( (otherlv_0= 'dailyat' ( (lv_hour_1_0= RULE_INT ) ) otherlv_2= ':' ( (lv_minute_3_0= RULE_INT ) ) ) )
+            // InternalSignalDSL.g:711:2: (otherlv_0= 'dailyat' ( (lv_hour_1_0= RULE_INT ) ) otherlv_2= ':' ( (lv_minute_3_0= RULE_INT ) ) )
             {
-            // InternalSignalDSL.g:867:2: (otherlv_0= 'dailyat' ( (lv_hour_1_0= RULE_INT ) ) otherlv_2= ':' ( (lv_minute_3_0= RULE_INT ) ) )
-            // InternalSignalDSL.g:868:3: otherlv_0= 'dailyat' ( (lv_hour_1_0= RULE_INT ) ) otherlv_2= ':' ( (lv_minute_3_0= RULE_INT ) )
+            // InternalSignalDSL.g:711:2: (otherlv_0= 'dailyat' ( (lv_hour_1_0= RULE_INT ) ) otherlv_2= ':' ( (lv_minute_3_0= RULE_INT ) ) )
+            // InternalSignalDSL.g:712:3: otherlv_0= 'dailyat' ( (lv_hour_1_0= RULE_INT ) ) otherlv_2= ':' ( (lv_minute_3_0= RULE_INT ) )
             {
-            otherlv_0=(Token)match(input,23,FOLLOW_17); if (state.failed) return current;
+            otherlv_0=(Token)match(input,24,FOLLOW_16); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getDailySchedulerAccess().getDailyatKeyword_0());
               		
             }
-            // InternalSignalDSL.g:872:3: ( (lv_hour_1_0= RULE_INT ) )
-            // InternalSignalDSL.g:873:4: (lv_hour_1_0= RULE_INT )
+            // InternalSignalDSL.g:716:3: ( (lv_hour_1_0= RULE_INT ) )
+            // InternalSignalDSL.g:717:4: (lv_hour_1_0= RULE_INT )
             {
-            // InternalSignalDSL.g:873:4: (lv_hour_1_0= RULE_INT )
-            // InternalSignalDSL.g:874:5: lv_hour_1_0= RULE_INT
+            // InternalSignalDSL.g:717:4: (lv_hour_1_0= RULE_INT )
+            // InternalSignalDSL.g:718:5: lv_hour_1_0= RULE_INT
             {
-            lv_hour_1_0=(Token)match(input,RULE_INT,FOLLOW_18); if (state.failed) return current;
+            lv_hour_1_0=(Token)match(input,RULE_INT,FOLLOW_17); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(lv_hour_1_0, grammarAccess.getDailySchedulerAccess().getHourINTTerminalRuleCall_1_0());
@@ -2451,17 +2040,17 @@
 
             }
 
-            otherlv_2=(Token)match(input,24,FOLLOW_17); if (state.failed) return current;
+            otherlv_2=(Token)match(input,25,FOLLOW_16); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getDailySchedulerAccess().getColonKeyword_2());
               		
             }
-            // InternalSignalDSL.g:894:3: ( (lv_minute_3_0= RULE_INT ) )
-            // InternalSignalDSL.g:895:4: (lv_minute_3_0= RULE_INT )
+            // InternalSignalDSL.g:738:3: ( (lv_minute_3_0= RULE_INT ) )
+            // InternalSignalDSL.g:739:4: (lv_minute_3_0= RULE_INT )
             {
-            // InternalSignalDSL.g:895:4: (lv_minute_3_0= RULE_INT )
-            // InternalSignalDSL.g:896:5: lv_minute_3_0= RULE_INT
+            // InternalSignalDSL.g:739:4: (lv_minute_3_0= RULE_INT )
+            // InternalSignalDSL.g:740:5: lv_minute_3_0= RULE_INT
             {
             lv_minute_3_0=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -2512,7 +2101,7 @@
 
 
     // $ANTLR start "entryRuleWeeklyScheduler"
-    // InternalSignalDSL.g:916:1: entryRuleWeeklyScheduler returns [EObject current=null] : iv_ruleWeeklyScheduler= ruleWeeklyScheduler EOF ;
+    // InternalSignalDSL.g:760:1: entryRuleWeeklyScheduler returns [EObject current=null] : iv_ruleWeeklyScheduler= ruleWeeklyScheduler EOF ;
     public final EObject entryRuleWeeklyScheduler() throws RecognitionException {
         EObject current = null;
 
@@ -2520,8 +2109,8 @@
 
 
         try {
-            // InternalSignalDSL.g:916:56: (iv_ruleWeeklyScheduler= ruleWeeklyScheduler EOF )
-            // InternalSignalDSL.g:917:2: iv_ruleWeeklyScheduler= ruleWeeklyScheduler EOF
+            // InternalSignalDSL.g:760:56: (iv_ruleWeeklyScheduler= ruleWeeklyScheduler EOF )
+            // InternalSignalDSL.g:761:2: iv_ruleWeeklyScheduler= ruleWeeklyScheduler EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getWeeklySchedulerRule()); 
@@ -2552,7 +2141,7 @@
 
 
     // $ANTLR start "ruleWeeklyScheduler"
-    // InternalSignalDSL.g:923:1: ruleWeeklyScheduler returns [EObject current=null] : (otherlv_0= 'weeklyon' ( (lv_dayofweek_1_0= ruleDayOfWeekEnum ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) ) ;
+    // InternalSignalDSL.g:767:1: ruleWeeklyScheduler returns [EObject current=null] : (otherlv_0= 'weeklyon' ( (lv_dayofweek_1_0= ruleDayOfWeekEnum ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) ) ;
     public final EObject ruleWeeklyScheduler() throws RecognitionException {
         EObject current = null;
 
@@ -2568,30 +2157,30 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:929:2: ( (otherlv_0= 'weeklyon' ( (lv_dayofweek_1_0= ruleDayOfWeekEnum ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) ) )
-            // InternalSignalDSL.g:930:2: (otherlv_0= 'weeklyon' ( (lv_dayofweek_1_0= ruleDayOfWeekEnum ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) )
+            // InternalSignalDSL.g:773:2: ( (otherlv_0= 'weeklyon' ( (lv_dayofweek_1_0= ruleDayOfWeekEnum ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) ) )
+            // InternalSignalDSL.g:774:2: (otherlv_0= 'weeklyon' ( (lv_dayofweek_1_0= ruleDayOfWeekEnum ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) )
             {
-            // InternalSignalDSL.g:930:2: (otherlv_0= 'weeklyon' ( (lv_dayofweek_1_0= ruleDayOfWeekEnum ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) )
-            // InternalSignalDSL.g:931:3: otherlv_0= 'weeklyon' ( (lv_dayofweek_1_0= ruleDayOfWeekEnum ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) )
+            // InternalSignalDSL.g:774:2: (otherlv_0= 'weeklyon' ( (lv_dayofweek_1_0= ruleDayOfWeekEnum ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) )
+            // InternalSignalDSL.g:775:3: otherlv_0= 'weeklyon' ( (lv_dayofweek_1_0= ruleDayOfWeekEnum ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) )
             {
-            otherlv_0=(Token)match(input,25,FOLLOW_19); if (state.failed) return current;
+            otherlv_0=(Token)match(input,26,FOLLOW_18); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getWeeklySchedulerAccess().getWeeklyonKeyword_0());
               		
             }
-            // InternalSignalDSL.g:935:3: ( (lv_dayofweek_1_0= ruleDayOfWeekEnum ) )
-            // InternalSignalDSL.g:936:4: (lv_dayofweek_1_0= ruleDayOfWeekEnum )
+            // InternalSignalDSL.g:779:3: ( (lv_dayofweek_1_0= ruleDayOfWeekEnum ) )
+            // InternalSignalDSL.g:780:4: (lv_dayofweek_1_0= ruleDayOfWeekEnum )
             {
-            // InternalSignalDSL.g:936:4: (lv_dayofweek_1_0= ruleDayOfWeekEnum )
-            // InternalSignalDSL.g:937:5: lv_dayofweek_1_0= ruleDayOfWeekEnum
+            // InternalSignalDSL.g:780:4: (lv_dayofweek_1_0= ruleDayOfWeekEnum )
+            // InternalSignalDSL.g:781:5: lv_dayofweek_1_0= ruleDayOfWeekEnum
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getWeeklySchedulerAccess().getDayofweekDayOfWeekEnumEnumRuleCall_1_0());
               				
             }
-            pushFollow(FOLLOW_20);
+            pushFollow(FOLLOW_19);
             lv_dayofweek_1_0=ruleDayOfWeekEnum();
 
             state._fsp--;
@@ -2615,19 +2204,19 @@
 
             }
 
-            otherlv_2=(Token)match(input,26,FOLLOW_17); if (state.failed) return current;
+            otherlv_2=(Token)match(input,27,FOLLOW_16); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getWeeklySchedulerAccess().getAtKeyword_2());
               		
             }
-            // InternalSignalDSL.g:958:3: ( (lv_hour_3_0= RULE_INT ) )
-            // InternalSignalDSL.g:959:4: (lv_hour_3_0= RULE_INT )
+            // InternalSignalDSL.g:802:3: ( (lv_hour_3_0= RULE_INT ) )
+            // InternalSignalDSL.g:803:4: (lv_hour_3_0= RULE_INT )
             {
-            // InternalSignalDSL.g:959:4: (lv_hour_3_0= RULE_INT )
-            // InternalSignalDSL.g:960:5: lv_hour_3_0= RULE_INT
+            // InternalSignalDSL.g:803:4: (lv_hour_3_0= RULE_INT )
+            // InternalSignalDSL.g:804:5: lv_hour_3_0= RULE_INT
             {
-            lv_hour_3_0=(Token)match(input,RULE_INT,FOLLOW_18); if (state.failed) return current;
+            lv_hour_3_0=(Token)match(input,RULE_INT,FOLLOW_17); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(lv_hour_3_0, grammarAccess.getWeeklySchedulerAccess().getHourINTTerminalRuleCall_3_0());
@@ -2651,17 +2240,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,24,FOLLOW_17); if (state.failed) return current;
+            otherlv_4=(Token)match(input,25,FOLLOW_16); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getWeeklySchedulerAccess().getColonKeyword_4());
               		
             }
-            // InternalSignalDSL.g:980:3: ( (lv_minute_5_0= RULE_INT ) )
-            // InternalSignalDSL.g:981:4: (lv_minute_5_0= RULE_INT )
+            // InternalSignalDSL.g:824:3: ( (lv_minute_5_0= RULE_INT ) )
+            // InternalSignalDSL.g:825:4: (lv_minute_5_0= RULE_INT )
             {
-            // InternalSignalDSL.g:981:4: (lv_minute_5_0= RULE_INT )
-            // InternalSignalDSL.g:982:5: lv_minute_5_0= RULE_INT
+            // InternalSignalDSL.g:825:4: (lv_minute_5_0= RULE_INT )
+            // InternalSignalDSL.g:826:5: lv_minute_5_0= RULE_INT
             {
             lv_minute_5_0=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -2712,7 +2301,7 @@
 
 
     // $ANTLR start "entryRuleMonthlyScheduler"
-    // InternalSignalDSL.g:1002:1: entryRuleMonthlyScheduler returns [EObject current=null] : iv_ruleMonthlyScheduler= ruleMonthlyScheduler EOF ;
+    // InternalSignalDSL.g:846:1: entryRuleMonthlyScheduler returns [EObject current=null] : iv_ruleMonthlyScheduler= ruleMonthlyScheduler EOF ;
     public final EObject entryRuleMonthlyScheduler() throws RecognitionException {
         EObject current = null;
 
@@ -2720,8 +2309,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1002:57: (iv_ruleMonthlyScheduler= ruleMonthlyScheduler EOF )
-            // InternalSignalDSL.g:1003:2: iv_ruleMonthlyScheduler= ruleMonthlyScheduler EOF
+            // InternalSignalDSL.g:846:57: (iv_ruleMonthlyScheduler= ruleMonthlyScheduler EOF )
+            // InternalSignalDSL.g:847:2: iv_ruleMonthlyScheduler= ruleMonthlyScheduler EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getMonthlySchedulerRule()); 
@@ -2752,7 +2341,7 @@
 
 
     // $ANTLR start "ruleMonthlyScheduler"
-    // InternalSignalDSL.g:1009:1: ruleMonthlyScheduler returns [EObject current=null] : (otherlv_0= 'monthlyon' ( (lv_dayofmonth_1_0= RULE_INT ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) ) ;
+    // InternalSignalDSL.g:853:1: ruleMonthlyScheduler returns [EObject current=null] : (otherlv_0= 'monthlyon' ( (lv_dayofmonth_1_0= RULE_INT ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) ) ;
     public final EObject ruleMonthlyScheduler() throws RecognitionException {
         EObject current = null;
 
@@ -2767,25 +2356,25 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1015:2: ( (otherlv_0= 'monthlyon' ( (lv_dayofmonth_1_0= RULE_INT ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) ) )
-            // InternalSignalDSL.g:1016:2: (otherlv_0= 'monthlyon' ( (lv_dayofmonth_1_0= RULE_INT ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) )
+            // InternalSignalDSL.g:859:2: ( (otherlv_0= 'monthlyon' ( (lv_dayofmonth_1_0= RULE_INT ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) ) )
+            // InternalSignalDSL.g:860:2: (otherlv_0= 'monthlyon' ( (lv_dayofmonth_1_0= RULE_INT ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) )
             {
-            // InternalSignalDSL.g:1016:2: (otherlv_0= 'monthlyon' ( (lv_dayofmonth_1_0= RULE_INT ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) )
-            // InternalSignalDSL.g:1017:3: otherlv_0= 'monthlyon' ( (lv_dayofmonth_1_0= RULE_INT ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) )
+            // InternalSignalDSL.g:860:2: (otherlv_0= 'monthlyon' ( (lv_dayofmonth_1_0= RULE_INT ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) ) )
+            // InternalSignalDSL.g:861:3: otherlv_0= 'monthlyon' ( (lv_dayofmonth_1_0= RULE_INT ) ) otherlv_2= 'at' ( (lv_hour_3_0= RULE_INT ) ) otherlv_4= ':' ( (lv_minute_5_0= RULE_INT ) )
             {
-            otherlv_0=(Token)match(input,27,FOLLOW_17); if (state.failed) return current;
+            otherlv_0=(Token)match(input,28,FOLLOW_16); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getMonthlySchedulerAccess().getMonthlyonKeyword_0());
               		
             }
-            // InternalSignalDSL.g:1021:3: ( (lv_dayofmonth_1_0= RULE_INT ) )
-            // InternalSignalDSL.g:1022:4: (lv_dayofmonth_1_0= RULE_INT )
+            // InternalSignalDSL.g:865:3: ( (lv_dayofmonth_1_0= RULE_INT ) )
+            // InternalSignalDSL.g:866:4: (lv_dayofmonth_1_0= RULE_INT )
             {
-            // InternalSignalDSL.g:1022:4: (lv_dayofmonth_1_0= RULE_INT )
-            // InternalSignalDSL.g:1023:5: lv_dayofmonth_1_0= RULE_INT
+            // InternalSignalDSL.g:866:4: (lv_dayofmonth_1_0= RULE_INT )
+            // InternalSignalDSL.g:867:5: lv_dayofmonth_1_0= RULE_INT
             {
-            lv_dayofmonth_1_0=(Token)match(input,RULE_INT,FOLLOW_20); if (state.failed) return current;
+            lv_dayofmonth_1_0=(Token)match(input,RULE_INT,FOLLOW_19); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(lv_dayofmonth_1_0, grammarAccess.getMonthlySchedulerAccess().getDayofmonthINTTerminalRuleCall_1_0());
@@ -2809,19 +2398,19 @@
 
             }
 
-            otherlv_2=(Token)match(input,26,FOLLOW_17); if (state.failed) return current;
+            otherlv_2=(Token)match(input,27,FOLLOW_16); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getMonthlySchedulerAccess().getAtKeyword_2());
               		
             }
-            // InternalSignalDSL.g:1043:3: ( (lv_hour_3_0= RULE_INT ) )
-            // InternalSignalDSL.g:1044:4: (lv_hour_3_0= RULE_INT )
+            // InternalSignalDSL.g:887:3: ( (lv_hour_3_0= RULE_INT ) )
+            // InternalSignalDSL.g:888:4: (lv_hour_3_0= RULE_INT )
             {
-            // InternalSignalDSL.g:1044:4: (lv_hour_3_0= RULE_INT )
-            // InternalSignalDSL.g:1045:5: lv_hour_3_0= RULE_INT
+            // InternalSignalDSL.g:888:4: (lv_hour_3_0= RULE_INT )
+            // InternalSignalDSL.g:889:5: lv_hour_3_0= RULE_INT
             {
-            lv_hour_3_0=(Token)match(input,RULE_INT,FOLLOW_18); if (state.failed) return current;
+            lv_hour_3_0=(Token)match(input,RULE_INT,FOLLOW_17); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(lv_hour_3_0, grammarAccess.getMonthlySchedulerAccess().getHourINTTerminalRuleCall_3_0());
@@ -2845,17 +2434,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,24,FOLLOW_17); if (state.failed) return current;
+            otherlv_4=(Token)match(input,25,FOLLOW_16); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getMonthlySchedulerAccess().getColonKeyword_4());
               		
             }
-            // InternalSignalDSL.g:1065:3: ( (lv_minute_5_0= RULE_INT ) )
-            // InternalSignalDSL.g:1066:4: (lv_minute_5_0= RULE_INT )
+            // InternalSignalDSL.g:909:3: ( (lv_minute_5_0= RULE_INT ) )
+            // InternalSignalDSL.g:910:4: (lv_minute_5_0= RULE_INT )
             {
-            // InternalSignalDSL.g:1066:4: (lv_minute_5_0= RULE_INT )
-            // InternalSignalDSL.g:1067:5: lv_minute_5_0= RULE_INT
+            // InternalSignalDSL.g:910:4: (lv_minute_5_0= RULE_INT )
+            // InternalSignalDSL.g:911:5: lv_minute_5_0= RULE_INT
             {
             lv_minute_5_0=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -2905,8 +2494,151 @@
     // $ANTLR end "ruleMonthlyScheduler"
 
 
+    // $ANTLR start "entryRuleSignalTask"
+    // InternalSignalDSL.g:931:1: entryRuleSignalTask returns [EObject current=null] : iv_ruleSignalTask= ruleSignalTask EOF ;
+    public final EObject entryRuleSignalTask() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleSignalTask = null;
+
+
+        try {
+            // InternalSignalDSL.g:931:51: (iv_ruleSignalTask= ruleSignalTask EOF )
+            // InternalSignalDSL.g:932:2: iv_ruleSignalTask= ruleSignalTask EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getSignalTaskRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleSignalTask=ruleSignalTask();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleSignalTask; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSignalTask"
+
+
+    // $ANTLR start "ruleSignalTask"
+    // InternalSignalDSL.g:938:1: ruleSignalTask returns [EObject current=null] : (this_SignalDatainterchange_0= ruleSignalDatainterchange | this_SignalFunction_1= ruleSignalFunction ) ;
+    public final EObject ruleSignalTask() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_SignalDatainterchange_0 = null;
+
+        EObject this_SignalFunction_1 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:944:2: ( (this_SignalDatainterchange_0= ruleSignalDatainterchange | this_SignalFunction_1= ruleSignalFunction ) )
+            // InternalSignalDSL.g:945:2: (this_SignalDatainterchange_0= ruleSignalDatainterchange | this_SignalFunction_1= ruleSignalFunction )
+            {
+            // InternalSignalDSL.g:945:2: (this_SignalDatainterchange_0= ruleSignalDatainterchange | this_SignalFunction_1= ruleSignalFunction )
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==33||LA11_0==106) ) {
+                alt11=1;
+            }
+            else if ( (LA11_0==29) ) {
+                alt11=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 11, 0, input);
+
+                throw nvae;
+            }
+            switch (alt11) {
+                case 1 :
+                    // InternalSignalDSL.g:946:3: this_SignalDatainterchange_0= ruleSignalDatainterchange
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getSignalTaskAccess().getSignalDatainterchangeParserRuleCall_0());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_SignalDatainterchange_0=ruleSignalDatainterchange();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_SignalDatainterchange_0;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:955:3: this_SignalFunction_1= ruleSignalFunction
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getSignalTaskAccess().getSignalFunctionParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_SignalFunction_1=ruleSignalFunction();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_SignalFunction_1;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSignalTask"
+
+
     // $ANTLR start "entryRuleSignalDatainterchange"
-    // InternalSignalDSL.g:1087:1: entryRuleSignalDatainterchange returns [EObject current=null] : iv_ruleSignalDatainterchange= ruleSignalDatainterchange EOF ;
+    // InternalSignalDSL.g:967:1: entryRuleSignalDatainterchange returns [EObject current=null] : iv_ruleSignalDatainterchange= ruleSignalDatainterchange EOF ;
     public final EObject entryRuleSignalDatainterchange() throws RecognitionException {
         EObject current = null;
 
@@ -2914,8 +2646,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1087:62: (iv_ruleSignalDatainterchange= ruleSignalDatainterchange EOF )
-            // InternalSignalDSL.g:1088:2: iv_ruleSignalDatainterchange= ruleSignalDatainterchange EOF
+            // InternalSignalDSL.g:967:62: (iv_ruleSignalDatainterchange= ruleSignalDatainterchange EOF )
+            // InternalSignalDSL.g:968:2: iv_ruleSignalDatainterchange= ruleSignalDatainterchange EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getSignalDatainterchangeRule()); 
@@ -2946,38 +2678,38 @@
 
 
     // $ANTLR start "ruleSignalDatainterchange"
-    // InternalSignalDSL.g:1094:1: ruleSignalDatainterchange returns [EObject current=null] : ( ( (lv_dataAction_0_0= ruleSignalActionEnum ) ) ( (otherlv_1= RULE_ID ) ) ( (lv_baseinterchange_2_0= 'applyon' ) )? ) ;
+    // InternalSignalDSL.g:974:1: ruleSignalDatainterchange returns [EObject current=null] : ( ( (lv_actionType_0_0= ruleSignalActionTypeEnum ) ) ( (otherlv_1= RULE_ID ) ) ( (lv_baseinterchange_2_0= 'applyon' ) )? ) ;
     public final EObject ruleSignalDatainterchange() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
         Token lv_baseinterchange_2_0=null;
-        Enumerator lv_dataAction_0_0 = null;
+        Enumerator lv_actionType_0_0 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1100:2: ( ( ( (lv_dataAction_0_0= ruleSignalActionEnum ) ) ( (otherlv_1= RULE_ID ) ) ( (lv_baseinterchange_2_0= 'applyon' ) )? ) )
-            // InternalSignalDSL.g:1101:2: ( ( (lv_dataAction_0_0= ruleSignalActionEnum ) ) ( (otherlv_1= RULE_ID ) ) ( (lv_baseinterchange_2_0= 'applyon' ) )? )
+            // InternalSignalDSL.g:980:2: ( ( ( (lv_actionType_0_0= ruleSignalActionTypeEnum ) ) ( (otherlv_1= RULE_ID ) ) ( (lv_baseinterchange_2_0= 'applyon' ) )? ) )
+            // InternalSignalDSL.g:981:2: ( ( (lv_actionType_0_0= ruleSignalActionTypeEnum ) ) ( (otherlv_1= RULE_ID ) ) ( (lv_baseinterchange_2_0= 'applyon' ) )? )
             {
-            // InternalSignalDSL.g:1101:2: ( ( (lv_dataAction_0_0= ruleSignalActionEnum ) ) ( (otherlv_1= RULE_ID ) ) ( (lv_baseinterchange_2_0= 'applyon' ) )? )
-            // InternalSignalDSL.g:1102:3: ( (lv_dataAction_0_0= ruleSignalActionEnum ) ) ( (otherlv_1= RULE_ID ) ) ( (lv_baseinterchange_2_0= 'applyon' ) )?
+            // InternalSignalDSL.g:981:2: ( ( (lv_actionType_0_0= ruleSignalActionTypeEnum ) ) ( (otherlv_1= RULE_ID ) ) ( (lv_baseinterchange_2_0= 'applyon' ) )? )
+            // InternalSignalDSL.g:982:3: ( (lv_actionType_0_0= ruleSignalActionTypeEnum ) ) ( (otherlv_1= RULE_ID ) ) ( (lv_baseinterchange_2_0= 'applyon' ) )?
             {
-            // InternalSignalDSL.g:1102:3: ( (lv_dataAction_0_0= ruleSignalActionEnum ) )
-            // InternalSignalDSL.g:1103:4: (lv_dataAction_0_0= ruleSignalActionEnum )
+            // InternalSignalDSL.g:982:3: ( (lv_actionType_0_0= ruleSignalActionTypeEnum ) )
+            // InternalSignalDSL.g:983:4: (lv_actionType_0_0= ruleSignalActionTypeEnum )
             {
-            // InternalSignalDSL.g:1103:4: (lv_dataAction_0_0= ruleSignalActionEnum )
-            // InternalSignalDSL.g:1104:5: lv_dataAction_0_0= ruleSignalActionEnum
+            // InternalSignalDSL.g:983:4: (lv_actionType_0_0= ruleSignalActionTypeEnum )
+            // InternalSignalDSL.g:984:5: lv_actionType_0_0= ruleSignalActionTypeEnum
             {
             if ( state.backtracking==0 ) {
 
-              					newCompositeNode(grammarAccess.getSignalDatainterchangeAccess().getDataActionSignalActionEnumEnumRuleCall_0_0());
+              					newCompositeNode(grammarAccess.getSignalDatainterchangeAccess().getActionTypeSignalActionTypeEnumEnumRuleCall_0_0());
               				
             }
             pushFollow(FOLLOW_4);
-            lv_dataAction_0_0=ruleSignalActionEnum();
+            lv_actionType_0_0=ruleSignalActionTypeEnum();
 
             state._fsp--;
             if (state.failed) return current;
@@ -2988,9 +2720,9 @@
               					}
               					set(
               						current,
-              						"dataAction",
-              						lv_dataAction_0_0,
-              						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalActionEnum");
+              						"actionType",
+              						lv_actionType_0_0,
+              						"org.eclipse.osbp.xtext.signal.SignalDSL.SignalActionTypeEnum");
               					afterParserOrEnumRuleCall();
               				
             }
@@ -3000,11 +2732,11 @@
 
             }
 
-            // InternalSignalDSL.g:1121:3: ( (otherlv_1= RULE_ID ) )
-            // InternalSignalDSL.g:1122:4: (otherlv_1= RULE_ID )
+            // InternalSignalDSL.g:1001:3: ( (otherlv_1= RULE_ID ) )
+            // InternalSignalDSL.g:1002:4: (otherlv_1= RULE_ID )
             {
-            // InternalSignalDSL.g:1122:4: (otherlv_1= RULE_ID )
-            // InternalSignalDSL.g:1123:5: otherlv_1= RULE_ID
+            // InternalSignalDSL.g:1002:4: (otherlv_1= RULE_ID )
+            // InternalSignalDSL.g:1003:5: otherlv_1= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -3013,7 +2745,7 @@
               					}
               				
             }
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_21); if (state.failed) return current;
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_20); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getSignalDatainterchangeAccess().getDataRefDataInterchangeCrossReference_1_0());
@@ -3025,21 +2757,21 @@
 
             }
 
-            // InternalSignalDSL.g:1134:3: ( (lv_baseinterchange_2_0= 'applyon' ) )?
-            int alt10=2;
-            int LA10_0 = input.LA(1);
+            // InternalSignalDSL.g:1014:3: ( (lv_baseinterchange_2_0= 'applyon' ) )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
 
-            if ( (LA10_0==28) ) {
-                alt10=1;
+            if ( (LA12_0==20) ) {
+                alt12=1;
             }
-            switch (alt10) {
+            switch (alt12) {
                 case 1 :
-                    // InternalSignalDSL.g:1135:4: (lv_baseinterchange_2_0= 'applyon' )
+                    // InternalSignalDSL.g:1015:4: (lv_baseinterchange_2_0= 'applyon' )
                     {
-                    // InternalSignalDSL.g:1135:4: (lv_baseinterchange_2_0= 'applyon' )
-                    // InternalSignalDSL.g:1136:5: lv_baseinterchange_2_0= 'applyon'
+                    // InternalSignalDSL.g:1015:4: (lv_baseinterchange_2_0= 'applyon' )
+                    // InternalSignalDSL.g:1016:5: lv_baseinterchange_2_0= 'applyon'
                     {
-                    lv_baseinterchange_2_0=(Token)match(input,28,FOLLOW_2); if (state.failed) return current;
+                    lv_baseinterchange_2_0=(Token)match(input,20,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(lv_baseinterchange_2_0, grammarAccess.getSignalDatainterchangeAccess().getBaseinterchangeApplyonKeyword_2_0());
@@ -3086,8 +2818,392 @@
     // $ANTLR end "ruleSignalDatainterchange"
 
 
+    // $ANTLR start "entryRuleSignalFunction"
+    // InternalSignalDSL.g:1032:1: entryRuleSignalFunction returns [EObject current=null] : iv_ruleSignalFunction= ruleSignalFunction EOF ;
+    public final EObject entryRuleSignalFunction() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleSignalFunction = null;
+
+
+        try {
+            // InternalSignalDSL.g:1032:55: (iv_ruleSignalFunction= ruleSignalFunction EOF )
+            // InternalSignalDSL.g:1033:2: iv_ruleSignalFunction= ruleSignalFunction EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getSignalFunctionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleSignalFunction=ruleSignalFunction();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleSignalFunction; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSignalFunction"
+
+
+    // $ANTLR start "ruleSignalFunction"
+    // InternalSignalDSL.g:1039:1: ruleSignalFunction returns [EObject current=null] : (otherlv_0= 'functionGroup' ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= 'execute' ( (otherlv_3= RULE_ID ) ) ) | ( ( (lv_onImportFile_4_0= 'executeOnImportFile' ) ) ( (otherlv_5= RULE_ID ) ) otherlv_6= 'from' ( (otherlv_7= RULE_ID ) ) ) | ( ( (lv_onExportFile_8_0= 'executeOnExportFile' ) ) ( (otherlv_9= RULE_ID ) ) otherlv_10= 'from' ( (otherlv_11= RULE_ID ) ) ) ) ) ;
+    public final EObject ruleSignalFunction() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token lv_onImportFile_4_0=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token lv_onExportFile_8_0=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalSignalDSL.g:1045:2: ( (otherlv_0= 'functionGroup' ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= 'execute' ( (otherlv_3= RULE_ID ) ) ) | ( ( (lv_onImportFile_4_0= 'executeOnImportFile' ) ) ( (otherlv_5= RULE_ID ) ) otherlv_6= 'from' ( (otherlv_7= RULE_ID ) ) ) | ( ( (lv_onExportFile_8_0= 'executeOnExportFile' ) ) ( (otherlv_9= RULE_ID ) ) otherlv_10= 'from' ( (otherlv_11= RULE_ID ) ) ) ) ) )
+            // InternalSignalDSL.g:1046:2: (otherlv_0= 'functionGroup' ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= 'execute' ( (otherlv_3= RULE_ID ) ) ) | ( ( (lv_onImportFile_4_0= 'executeOnImportFile' ) ) ( (otherlv_5= RULE_ID ) ) otherlv_6= 'from' ( (otherlv_7= RULE_ID ) ) ) | ( ( (lv_onExportFile_8_0= 'executeOnExportFile' ) ) ( (otherlv_9= RULE_ID ) ) otherlv_10= 'from' ( (otherlv_11= RULE_ID ) ) ) ) )
+            {
+            // InternalSignalDSL.g:1046:2: (otherlv_0= 'functionGroup' ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= 'execute' ( (otherlv_3= RULE_ID ) ) ) | ( ( (lv_onImportFile_4_0= 'executeOnImportFile' ) ) ( (otherlv_5= RULE_ID ) ) otherlv_6= 'from' ( (otherlv_7= RULE_ID ) ) ) | ( ( (lv_onExportFile_8_0= 'executeOnExportFile' ) ) ( (otherlv_9= RULE_ID ) ) otherlv_10= 'from' ( (otherlv_11= RULE_ID ) ) ) ) )
+            // InternalSignalDSL.g:1047:3: otherlv_0= 'functionGroup' ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= 'execute' ( (otherlv_3= RULE_ID ) ) ) | ( ( (lv_onImportFile_4_0= 'executeOnImportFile' ) ) ( (otherlv_5= RULE_ID ) ) otherlv_6= 'from' ( (otherlv_7= RULE_ID ) ) ) | ( ( (lv_onExportFile_8_0= 'executeOnExportFile' ) ) ( (otherlv_9= RULE_ID ) ) otherlv_10= 'from' ( (otherlv_11= RULE_ID ) ) ) )
+            {
+            otherlv_0=(Token)match(input,29,FOLLOW_4); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_0, grammarAccess.getSignalFunctionAccess().getFunctionGroupKeyword_0());
+              		
+            }
+            // InternalSignalDSL.g:1051:3: ( (otherlv_1= RULE_ID ) )
+            // InternalSignalDSL.g:1052:4: (otherlv_1= RULE_ID )
+            {
+            // InternalSignalDSL.g:1052:4: (otherlv_1= RULE_ID )
+            // InternalSignalDSL.g:1053:5: otherlv_1= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getSignalFunctionRule());
+              					}
+              				
+            }
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_21); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_1, grammarAccess.getSignalFunctionAccess().getGroupFunctionLibraryActionGroupCrossReference_1_0());
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalSignalDSL.g:1064:3: ( (otherlv_2= 'execute' ( (otherlv_3= RULE_ID ) ) ) | ( ( (lv_onImportFile_4_0= 'executeOnImportFile' ) ) ( (otherlv_5= RULE_ID ) ) otherlv_6= 'from' ( (otherlv_7= RULE_ID ) ) ) | ( ( (lv_onExportFile_8_0= 'executeOnExportFile' ) ) ( (otherlv_9= RULE_ID ) ) otherlv_10= 'from' ( (otherlv_11= RULE_ID ) ) ) )
+            int alt13=3;
+            switch ( input.LA(1) ) {
+            case 30:
+                {
+                alt13=1;
+                }
+                break;
+            case 31:
+                {
+                alt13=2;
+                }
+                break;
+            case 32:
+                {
+                alt13=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 13, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt13) {
+                case 1 :
+                    // InternalSignalDSL.g:1065:4: (otherlv_2= 'execute' ( (otherlv_3= RULE_ID ) ) )
+                    {
+                    // InternalSignalDSL.g:1065:4: (otherlv_2= 'execute' ( (otherlv_3= RULE_ID ) ) )
+                    // InternalSignalDSL.g:1066:5: otherlv_2= 'execute' ( (otherlv_3= RULE_ID ) )
+                    {
+                    otherlv_2=(Token)match(input,30,FOLLOW_4); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(otherlv_2, grammarAccess.getSignalFunctionAccess().getExecuteKeyword_2_0_0());
+                      				
+                    }
+                    // InternalSignalDSL.g:1070:5: ( (otherlv_3= RULE_ID ) )
+                    // InternalSignalDSL.g:1071:6: (otherlv_3= RULE_ID )
+                    {
+                    // InternalSignalDSL.g:1071:6: (otherlv_3= RULE_ID )
+                    // InternalSignalDSL.g:1072:7: otherlv_3= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getSignalFunctionRule());
+                      							}
+                      						
+                    }
+                    otherlv_3=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							newLeafNode(otherlv_3, grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_0_1_0());
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalSignalDSL.g:1085:4: ( ( (lv_onImportFile_4_0= 'executeOnImportFile' ) ) ( (otherlv_5= RULE_ID ) ) otherlv_6= 'from' ( (otherlv_7= RULE_ID ) ) )
+                    {
+                    // InternalSignalDSL.g:1085:4: ( ( (lv_onImportFile_4_0= 'executeOnImportFile' ) ) ( (otherlv_5= RULE_ID ) ) otherlv_6= 'from' ( (otherlv_7= RULE_ID ) ) )
+                    // InternalSignalDSL.g:1086:5: ( (lv_onImportFile_4_0= 'executeOnImportFile' ) ) ( (otherlv_5= RULE_ID ) ) otherlv_6= 'from' ( (otherlv_7= RULE_ID ) )
+                    {
+                    // InternalSignalDSL.g:1086:5: ( (lv_onImportFile_4_0= 'executeOnImportFile' ) )
+                    // InternalSignalDSL.g:1087:6: (lv_onImportFile_4_0= 'executeOnImportFile' )
+                    {
+                    // InternalSignalDSL.g:1087:6: (lv_onImportFile_4_0= 'executeOnImportFile' )
+                    // InternalSignalDSL.g:1088:7: lv_onImportFile_4_0= 'executeOnImportFile'
+                    {
+                    lv_onImportFile_4_0=(Token)match(input,31,FOLLOW_4); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							newLeafNode(lv_onImportFile_4_0, grammarAccess.getSignalFunctionAccess().getOnImportFileExecuteOnImportFileKeyword_2_1_0_0());
+                      						
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getSignalFunctionRule());
+                      							}
+                      							setWithLastConsumed(current, "onImportFile", true, "executeOnImportFile");
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalSignalDSL.g:1100:5: ( (otherlv_5= RULE_ID ) )
+                    // InternalSignalDSL.g:1101:6: (otherlv_5= RULE_ID )
+                    {
+                    // InternalSignalDSL.g:1101:6: (otherlv_5= RULE_ID )
+                    // InternalSignalDSL.g:1102:7: otherlv_5= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getSignalFunctionRule());
+                      							}
+                      						
+                    }
+                    otherlv_5=(Token)match(input,RULE_ID,FOLLOW_10); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							newLeafNode(otherlv_5, grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_1_1_0());
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_6=(Token)match(input,19,FOLLOW_4); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(otherlv_6, grammarAccess.getSignalFunctionAccess().getFromKeyword_2_1_2());
+                      				
+                    }
+                    // InternalSignalDSL.g:1117:5: ( (otherlv_7= RULE_ID ) )
+                    // InternalSignalDSL.g:1118:6: (otherlv_7= RULE_ID )
+                    {
+                    // InternalSignalDSL.g:1118:6: (otherlv_7= RULE_ID )
+                    // InternalSignalDSL.g:1119:7: otherlv_7= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getSignalFunctionRule());
+                      							}
+                      						
+                    }
+                    otherlv_7=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							newLeafNode(otherlv_7, grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeCrossReference_2_1_3_0());
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalSignalDSL.g:1132:4: ( ( (lv_onExportFile_8_0= 'executeOnExportFile' ) ) ( (otherlv_9= RULE_ID ) ) otherlv_10= 'from' ( (otherlv_11= RULE_ID ) ) )
+                    {
+                    // InternalSignalDSL.g:1132:4: ( ( (lv_onExportFile_8_0= 'executeOnExportFile' ) ) ( (otherlv_9= RULE_ID ) ) otherlv_10= 'from' ( (otherlv_11= RULE_ID ) ) )
+                    // InternalSignalDSL.g:1133:5: ( (lv_onExportFile_8_0= 'executeOnExportFile' ) ) ( (otherlv_9= RULE_ID ) ) otherlv_10= 'from' ( (otherlv_11= RULE_ID ) )
+                    {
+                    // InternalSignalDSL.g:1133:5: ( (lv_onExportFile_8_0= 'executeOnExportFile' ) )
+                    // InternalSignalDSL.g:1134:6: (lv_onExportFile_8_0= 'executeOnExportFile' )
+                    {
+                    // InternalSignalDSL.g:1134:6: (lv_onExportFile_8_0= 'executeOnExportFile' )
+                    // InternalSignalDSL.g:1135:7: lv_onExportFile_8_0= 'executeOnExportFile'
+                    {
+                    lv_onExportFile_8_0=(Token)match(input,32,FOLLOW_4); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							newLeafNode(lv_onExportFile_8_0, grammarAccess.getSignalFunctionAccess().getOnExportFileExecuteOnExportFileKeyword_2_2_0_0());
+                      						
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getSignalFunctionRule());
+                      							}
+                      							setWithLastConsumed(current, "onExportFile", true, "executeOnExportFile");
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalSignalDSL.g:1147:5: ( (otherlv_9= RULE_ID ) )
+                    // InternalSignalDSL.g:1148:6: (otherlv_9= RULE_ID )
+                    {
+                    // InternalSignalDSL.g:1148:6: (otherlv_9= RULE_ID )
+                    // InternalSignalDSL.g:1149:7: otherlv_9= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getSignalFunctionRule());
+                      							}
+                      						
+                    }
+                    otherlv_9=(Token)match(input,RULE_ID,FOLLOW_10); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							newLeafNode(otherlv_9, grammarAccess.getSignalFunctionAccess().getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_2_1_0());
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_10=(Token)match(input,19,FOLLOW_4); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(otherlv_10, grammarAccess.getSignalFunctionAccess().getFromKeyword_2_2_2());
+                      				
+                    }
+                    // InternalSignalDSL.g:1164:5: ( (otherlv_11= RULE_ID ) )
+                    // InternalSignalDSL.g:1165:6: (otherlv_11= RULE_ID )
+                    {
+                    // InternalSignalDSL.g:1165:6: (otherlv_11= RULE_ID )
+                    // InternalSignalDSL.g:1166:7: otherlv_11= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getSignalFunctionRule());
+                      							}
+                      						
+                    }
+                    otherlv_11=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							newLeafNode(otherlv_11, grammarAccess.getSignalFunctionAccess().getSupportInterchangeDataInterchangeCrossReference_2_2_3_0());
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSignalFunction"
+
+
     // $ANTLR start "entryRuleTRANSLATABLEID"
-    // InternalSignalDSL.g:1152:1: entryRuleTRANSLATABLEID returns [String current=null] : iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF ;
+    // InternalSignalDSL.g:1183:1: entryRuleTRANSLATABLEID returns [String current=null] : iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF ;
     public final String entryRuleTRANSLATABLEID() throws RecognitionException {
         String current = null;
 
@@ -3095,8 +3211,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1152:54: (iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF )
-            // InternalSignalDSL.g:1153:2: iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF
+            // InternalSignalDSL.g:1183:54: (iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF )
+            // InternalSignalDSL.g:1184:2: iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTRANSLATABLEIDRule()); 
@@ -3127,7 +3243,7 @@
 
 
     // $ANTLR start "ruleTRANSLATABLEID"
-    // InternalSignalDSL.g:1159:1: ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    // InternalSignalDSL.g:1190:1: ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
     public final AntlrDatatypeRuleToken ruleTRANSLATABLEID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -3137,8 +3253,8 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1165:2: (this_ID_0= RULE_ID )
-            // InternalSignalDSL.g:1166:2: this_ID_0= RULE_ID
+            // InternalSignalDSL.g:1196:2: (this_ID_0= RULE_ID )
+            // InternalSignalDSL.g:1197:2: this_ID_0= RULE_ID
             {
             this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -3173,7 +3289,7 @@
 
 
     // $ANTLR start "entryRuleXImportDeclaration"
-    // InternalSignalDSL.g:1176:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
+    // InternalSignalDSL.g:1207:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
     public final EObject entryRuleXImportDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -3181,8 +3297,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1176:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
-            // InternalSignalDSL.g:1177:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
+            // InternalSignalDSL.g:1207:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
+            // InternalSignalDSL.g:1208:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXImportDeclarationRule()); 
@@ -3213,7 +3329,7 @@
 
 
     // $ANTLR start "ruleXImportDeclaration"
-    // InternalSignalDSL.g:1183:1: ruleXImportDeclaration returns [EObject current=null] : ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) ;
+    // InternalSignalDSL.g:1214:1: ruleXImportDeclaration returns [EObject current=null] : ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) ;
     public final EObject ruleXImportDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -3234,14 +3350,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1189:2: ( ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) )
-            // InternalSignalDSL.g:1190:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
+            // InternalSignalDSL.g:1220:2: ( ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) )
+            // InternalSignalDSL.g:1221:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
             {
-            // InternalSignalDSL.g:1190:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
-            // InternalSignalDSL.g:1191:3: () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )?
+            // InternalSignalDSL.g:1221:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
+            // InternalSignalDSL.g:1222:3: () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )?
             {
-            // InternalSignalDSL.g:1191:3: ()
-            // InternalSignalDSL.g:1192:4: 
+            // InternalSignalDSL.g:1222:3: ()
+            // InternalSignalDSL.g:1223:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -3253,29 +3369,29 @@
 
             }
 
-            otherlv_1=(Token)match(input,29,FOLLOW_22); if (state.failed) return current;
+            otherlv_1=(Token)match(input,33,FOLLOW_22); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXImportDeclarationAccess().getImportKeyword_1());
               		
             }
-            // InternalSignalDSL.g:1202:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )
-            int alt13=4;
-            alt13 = dfa13.predict(input);
-            switch (alt13) {
+            // InternalSignalDSL.g:1233:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )
+            int alt16=4;
+            alt16 = dfa16.predict(input);
+            switch (alt16) {
                 case 1 :
-                    // InternalSignalDSL.g:1203:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalSignalDSL.g:1234:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
                     {
-                    // InternalSignalDSL.g:1203:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
-                    // InternalSignalDSL.g:1204:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    // InternalSignalDSL.g:1234:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalSignalDSL.g:1235:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
                     {
-                    // InternalSignalDSL.g:1204:5: ( (lv_static_2_0= 'static' ) )
-                    // InternalSignalDSL.g:1205:6: (lv_static_2_0= 'static' )
+                    // InternalSignalDSL.g:1235:5: ( (lv_static_2_0= 'static' ) )
+                    // InternalSignalDSL.g:1236:6: (lv_static_2_0= 'static' )
                     {
-                    // InternalSignalDSL.g:1205:6: (lv_static_2_0= 'static' )
-                    // InternalSignalDSL.g:1206:7: lv_static_2_0= 'static'
+                    // InternalSignalDSL.g:1236:6: (lv_static_2_0= 'static' )
+                    // InternalSignalDSL.g:1237:7: lv_static_2_0= 'static'
                     {
-                    lv_static_2_0=(Token)match(input,30,FOLLOW_23); if (state.failed) return current;
+                    lv_static_2_0=(Token)match(input,34,FOLLOW_23); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_static_2_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0());
@@ -3295,21 +3411,21 @@
 
                     }
 
-                    // InternalSignalDSL.g:1218:5: ( (lv_extension_3_0= 'extension' ) )?
-                    int alt11=2;
-                    int LA11_0 = input.LA(1);
+                    // InternalSignalDSL.g:1249:5: ( (lv_extension_3_0= 'extension' ) )?
+                    int alt14=2;
+                    int LA14_0 = input.LA(1);
 
-                    if ( (LA11_0==31) ) {
-                        alt11=1;
+                    if ( (LA14_0==35) ) {
+                        alt14=1;
                     }
-                    switch (alt11) {
+                    switch (alt14) {
                         case 1 :
-                            // InternalSignalDSL.g:1219:6: (lv_extension_3_0= 'extension' )
+                            // InternalSignalDSL.g:1250:6: (lv_extension_3_0= 'extension' )
                             {
-                            // InternalSignalDSL.g:1219:6: (lv_extension_3_0= 'extension' )
-                            // InternalSignalDSL.g:1220:7: lv_extension_3_0= 'extension'
+                            // InternalSignalDSL.g:1250:6: (lv_extension_3_0= 'extension' )
+                            // InternalSignalDSL.g:1251:7: lv_extension_3_0= 'extension'
                             {
-                            lv_extension_3_0=(Token)match(input,31,FOLLOW_23); if (state.failed) return current;
+                            lv_extension_3_0=(Token)match(input,35,FOLLOW_23); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(lv_extension_3_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0());
@@ -3332,11 +3448,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:1232:5: ( ( ruleQualifiedNameInStaticImport ) )
-                    // InternalSignalDSL.g:1233:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalSignalDSL.g:1263:5: ( ( ruleQualifiedNameInStaticImport ) )
+                    // InternalSignalDSL.g:1264:6: ( ruleQualifiedNameInStaticImport )
                     {
-                    // InternalSignalDSL.g:1233:6: ( ruleQualifiedNameInStaticImport )
-                    // InternalSignalDSL.g:1234:7: ruleQualifiedNameInStaticImport
+                    // InternalSignalDSL.g:1264:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalSignalDSL.g:1265:7: ruleQualifiedNameInStaticImport
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3366,34 +3482,34 @@
 
                     }
 
-                    // InternalSignalDSL.g:1248:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
-                    int alt12=2;
-                    int LA12_0 = input.LA(1);
+                    // InternalSignalDSL.g:1279:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    int alt15=2;
+                    int LA15_0 = input.LA(1);
 
-                    if ( (LA12_0==32) ) {
-                        alt12=1;
+                    if ( (LA15_0==36) ) {
+                        alt15=1;
                     }
-                    else if ( (LA12_0==RULE_ID) ) {
-                        alt12=2;
+                    else if ( (LA15_0==RULE_ID) ) {
+                        alt15=2;
                     }
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 12, 0, input);
+                            new NoViableAltException("", 15, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt12) {
+                    switch (alt15) {
                         case 1 :
-                            // InternalSignalDSL.g:1249:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalSignalDSL.g:1280:6: ( (lv_wildcard_5_0= '*' ) )
                             {
-                            // InternalSignalDSL.g:1249:6: ( (lv_wildcard_5_0= '*' ) )
-                            // InternalSignalDSL.g:1250:7: (lv_wildcard_5_0= '*' )
+                            // InternalSignalDSL.g:1280:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalSignalDSL.g:1281:7: (lv_wildcard_5_0= '*' )
                             {
-                            // InternalSignalDSL.g:1250:7: (lv_wildcard_5_0= '*' )
-                            // InternalSignalDSL.g:1251:8: lv_wildcard_5_0= '*'
+                            // InternalSignalDSL.g:1281:7: (lv_wildcard_5_0= '*' )
+                            // InternalSignalDSL.g:1282:8: lv_wildcard_5_0= '*'
                             {
-                            lv_wildcard_5_0=(Token)match(input,32,FOLLOW_25); if (state.failed) return current;
+                            lv_wildcard_5_0=(Token)match(input,36,FOLLOW_25); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               								newLeafNode(lv_wildcard_5_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0());
@@ -3417,13 +3533,13 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:1264:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalSignalDSL.g:1295:6: ( (lv_memberName_6_0= ruleValidID ) )
                             {
-                            // InternalSignalDSL.g:1264:6: ( (lv_memberName_6_0= ruleValidID ) )
-                            // InternalSignalDSL.g:1265:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalSignalDSL.g:1295:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalSignalDSL.g:1296:7: (lv_memberName_6_0= ruleValidID )
                             {
-                            // InternalSignalDSL.g:1265:7: (lv_memberName_6_0= ruleValidID )
-                            // InternalSignalDSL.g:1266:8: lv_memberName_6_0= ruleValidID
+                            // InternalSignalDSL.g:1296:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalSignalDSL.g:1297:8: lv_memberName_6_0= ruleValidID
                             {
                             if ( state.backtracking==0 ) {
 
@@ -3467,13 +3583,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:1286:4: ( ( ruleQualifiedName ) )
+                    // InternalSignalDSL.g:1317:4: ( ( ruleQualifiedName ) )
                     {
-                    // InternalSignalDSL.g:1286:4: ( ( ruleQualifiedName ) )
-                    // InternalSignalDSL.g:1287:5: ( ruleQualifiedName )
+                    // InternalSignalDSL.g:1317:4: ( ( ruleQualifiedName ) )
+                    // InternalSignalDSL.g:1318:5: ( ruleQualifiedName )
                     {
-                    // InternalSignalDSL.g:1287:5: ( ruleQualifiedName )
-                    // InternalSignalDSL.g:1288:6: ruleQualifiedName
+                    // InternalSignalDSL.g:1318:5: ( ruleQualifiedName )
+                    // InternalSignalDSL.g:1319:6: ruleQualifiedName
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3507,13 +3623,13 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:1303:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalSignalDSL.g:1334:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
                     {
-                    // InternalSignalDSL.g:1303:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
-                    // InternalSignalDSL.g:1304:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalSignalDSL.g:1334:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalSignalDSL.g:1335:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
                     {
-                    // InternalSignalDSL.g:1304:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
-                    // InternalSignalDSL.g:1305:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
+                    // InternalSignalDSL.g:1335:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalSignalDSL.g:1336:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3548,18 +3664,18 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:1323:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalSignalDSL.g:1354:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
                     {
-                    // InternalSignalDSL.g:1323:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
-                    // InternalSignalDSL.g:1324:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalSignalDSL.g:1354:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalSignalDSL.g:1355:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
                     {
-                    // InternalSignalDSL.g:1324:5: ( (lv_fqnImport_9_0= 'ns' ) )
-                    // InternalSignalDSL.g:1325:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalSignalDSL.g:1355:5: ( (lv_fqnImport_9_0= 'ns' ) )
+                    // InternalSignalDSL.g:1356:6: (lv_fqnImport_9_0= 'ns' )
                     {
-                    // InternalSignalDSL.g:1325:6: (lv_fqnImport_9_0= 'ns' )
-                    // InternalSignalDSL.g:1326:7: lv_fqnImport_9_0= 'ns'
+                    // InternalSignalDSL.g:1356:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalSignalDSL.g:1357:7: lv_fqnImport_9_0= 'ns'
                     {
-                    lv_fqnImport_9_0=(Token)match(input,33,FOLLOW_4); if (state.failed) return current;
+                    lv_fqnImport_9_0=(Token)match(input,37,FOLLOW_4); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_fqnImport_9_0, grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0());
@@ -3579,11 +3695,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:1338:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
-                    // InternalSignalDSL.g:1339:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalSignalDSL.g:1369:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalSignalDSL.g:1370:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
                     {
-                    // InternalSignalDSL.g:1339:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
-                    // InternalSignalDSL.g:1340:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
+                    // InternalSignalDSL.g:1370:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalSignalDSL.g:1371:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3623,18 +3739,18 @@
 
             }
 
-            // InternalSignalDSL.g:1359:3: (otherlv_11= ';' )?
-            int alt14=2;
-            int LA14_0 = input.LA(1);
+            // InternalSignalDSL.g:1390:3: (otherlv_11= ';' )?
+            int alt17=2;
+            int LA17_0 = input.LA(1);
 
-            if ( (LA14_0==34) ) {
-                alt14=1;
+            if ( (LA17_0==38) ) {
+                alt17=1;
             }
-            switch (alt14) {
+            switch (alt17) {
                 case 1 :
-                    // InternalSignalDSL.g:1360:4: otherlv_11= ';'
+                    // InternalSignalDSL.g:1391:4: otherlv_11= ';'
                     {
-                    otherlv_11=(Token)match(input,34,FOLLOW_2); if (state.failed) return current;
+                    otherlv_11=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_11, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3());
@@ -3671,7 +3787,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotation"
-    // InternalSignalDSL.g:1369:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
+    // InternalSignalDSL.g:1400:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
     public final EObject entryRuleXAnnotation() throws RecognitionException {
         EObject current = null;
 
@@ -3679,8 +3795,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1369:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
-            // InternalSignalDSL.g:1370:2: iv_ruleXAnnotation= ruleXAnnotation EOF
+            // InternalSignalDSL.g:1400:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
+            // InternalSignalDSL.g:1401:2: iv_ruleXAnnotation= ruleXAnnotation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationRule()); 
@@ -3711,7 +3827,7 @@
 
 
     // $ANTLR start "ruleXAnnotation"
-    // InternalSignalDSL.g:1376:1: ruleXAnnotation returns [EObject current=null] : ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) ;
+    // InternalSignalDSL.g:1407:1: ruleXAnnotation returns [EObject current=null] : ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) ;
     public final EObject ruleXAnnotation() throws RecognitionException {
         EObject current = null;
 
@@ -3730,14 +3846,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1382:2: ( ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) )
-            // InternalSignalDSL.g:1383:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            // InternalSignalDSL.g:1413:2: ( ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) )
+            // InternalSignalDSL.g:1414:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
             {
-            // InternalSignalDSL.g:1383:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
-            // InternalSignalDSL.g:1384:3: () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            // InternalSignalDSL.g:1414:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            // InternalSignalDSL.g:1415:3: () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
             {
-            // InternalSignalDSL.g:1384:3: ()
-            // InternalSignalDSL.g:1385:4: 
+            // InternalSignalDSL.g:1415:3: ()
+            // InternalSignalDSL.g:1416:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -3749,17 +3865,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,35,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,39,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1());
               		
             }
-            // InternalSignalDSL.g:1395:3: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:1396:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:1426:3: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:1427:4: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:1396:4: ( ruleQualifiedName )
-            // InternalSignalDSL.g:1397:5: ruleQualifiedName
+            // InternalSignalDSL.g:1427:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:1428:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -3789,21 +3905,21 @@
 
             }
 
-            // InternalSignalDSL.g:1411:3: ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
-            int alt17=2;
-            int LA17_0 = input.LA(1);
+            // InternalSignalDSL.g:1442:3: ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
 
-            if ( (LA17_0==36) && (synpred1_InternalSignalDSL())) {
-                alt17=1;
+            if ( (LA20_0==40) && (synpred1_InternalSignalDSL())) {
+                alt20=1;
             }
-            switch (alt17) {
+            switch (alt20) {
                 case 1 :
-                    // InternalSignalDSL.g:1412:4: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
+                    // InternalSignalDSL.g:1443:4: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
                     {
-                    // InternalSignalDSL.g:1412:4: ( ( '(' )=>otherlv_3= '(' )
-                    // InternalSignalDSL.g:1413:5: ( '(' )=>otherlv_3= '('
+                    // InternalSignalDSL.g:1443:4: ( ( '(' )=>otherlv_3= '(' )
+                    // InternalSignalDSL.g:1444:5: ( '(' )=>otherlv_3= '('
                     {
-                    otherlv_3=(Token)match(input,36,FOLLOW_27); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,40,FOLLOW_27); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_3, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0());
@@ -3812,21 +3928,21 @@
 
                     }
 
-                    // InternalSignalDSL.g:1419:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
-                    int alt16=3;
-                    alt16 = dfa16.predict(input);
-                    switch (alt16) {
+                    // InternalSignalDSL.g:1450:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
+                    int alt19=3;
+                    alt19 = dfa19.predict(input);
+                    switch (alt19) {
                         case 1 :
-                            // InternalSignalDSL.g:1420:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalSignalDSL.g:1451:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
                             {
-                            // InternalSignalDSL.g:1420:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
-                            // InternalSignalDSL.g:1421:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            // InternalSignalDSL.g:1451:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalSignalDSL.g:1452:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
                             {
-                            // InternalSignalDSL.g:1421:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
-                            // InternalSignalDSL.g:1422:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalSignalDSL.g:1452:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
+                            // InternalSignalDSL.g:1453:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
                             {
-                            // InternalSignalDSL.g:1431:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
-                            // InternalSignalDSL.g:1432:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
+                            // InternalSignalDSL.g:1462:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalSignalDSL.g:1463:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
                             {
                             if ( state.backtracking==0 ) {
 
@@ -3857,32 +3973,32 @@
 
                             }
 
-                            // InternalSignalDSL.g:1449:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
-                            loop15:
+                            // InternalSignalDSL.g:1480:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            loop18:
                             do {
-                                int alt15=2;
-                                int LA15_0 = input.LA(1);
+                                int alt18=2;
+                                int LA18_0 = input.LA(1);
 
-                                if ( (LA15_0==37) ) {
-                                    alt15=1;
+                                if ( (LA18_0==41) ) {
+                                    alt18=1;
                                 }
 
 
-                                switch (alt15) {
+                                switch (alt18) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:1450:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalSignalDSL.g:1481:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
                             	    {
-                            	    otherlv_5=(Token)match(input,37,FOLLOW_4); if (state.failed) return current;
+                            	    otherlv_5=(Token)match(input,41,FOLLOW_4); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_5, grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0());
                             	      						
                             	    }
-                            	    // InternalSignalDSL.g:1454:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
-                            	    // InternalSignalDSL.g:1455:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalSignalDSL.g:1485:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalSignalDSL.g:1486:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
                             	    {
-                            	    // InternalSignalDSL.g:1464:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
-                            	    // InternalSignalDSL.g:1465:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
+                            	    // InternalSignalDSL.g:1495:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalSignalDSL.g:1496:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -3918,7 +4034,7 @@
                             	    break;
 
                             	default :
-                            	    break loop15;
+                            	    break loop18;
                                 }
                             } while (true);
 
@@ -3929,13 +4045,13 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:1485:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalSignalDSL.g:1516:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
                             {
-                            // InternalSignalDSL.g:1485:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
-                            // InternalSignalDSL.g:1486:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalSignalDSL.g:1516:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalSignalDSL.g:1517:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
                             {
-                            // InternalSignalDSL.g:1486:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
-                            // InternalSignalDSL.g:1487:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
+                            // InternalSignalDSL.g:1517:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalSignalDSL.g:1518:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
                             {
                             if ( state.backtracking==0 ) {
 
@@ -3972,7 +4088,7 @@
 
                     }
 
-                    otherlv_8=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
+                    otherlv_8=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_8, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2());
@@ -4009,7 +4125,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValuePair"
-    // InternalSignalDSL.g:1514:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
+    // InternalSignalDSL.g:1545:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
     public final EObject entryRuleXAnnotationElementValuePair() throws RecognitionException {
         EObject current = null;
 
@@ -4017,8 +4133,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1514:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
-            // InternalSignalDSL.g:1515:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
+            // InternalSignalDSL.g:1545:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
+            // InternalSignalDSL.g:1546:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValuePairRule()); 
@@ -4049,7 +4165,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValuePair"
-    // InternalSignalDSL.g:1521:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
+    // InternalSignalDSL.g:1552:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
     public final EObject ruleXAnnotationElementValuePair() throws RecognitionException {
         EObject current = null;
 
@@ -4061,23 +4177,23 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1527:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
-            // InternalSignalDSL.g:1528:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalSignalDSL.g:1558:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
+            // InternalSignalDSL.g:1559:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
             {
-            // InternalSignalDSL.g:1528:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
-            // InternalSignalDSL.g:1529:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalSignalDSL.g:1559:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalSignalDSL.g:1560:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
             {
-            // InternalSignalDSL.g:1529:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
-            // InternalSignalDSL.g:1530:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalSignalDSL.g:1560:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
+            // InternalSignalDSL.g:1561:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
             {
-            // InternalSignalDSL.g:1539:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
-            // InternalSignalDSL.g:1540:5: ( ( ruleValidID ) ) otherlv_1= '='
+            // InternalSignalDSL.g:1570:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalSignalDSL.g:1571:5: ( ( ruleValidID ) ) otherlv_1= '='
             {
-            // InternalSignalDSL.g:1540:5: ( ( ruleValidID ) )
-            // InternalSignalDSL.g:1541:6: ( ruleValidID )
+            // InternalSignalDSL.g:1571:5: ( ( ruleValidID ) )
+            // InternalSignalDSL.g:1572:6: ( ruleValidID )
             {
-            // InternalSignalDSL.g:1541:6: ( ruleValidID )
-            // InternalSignalDSL.g:1542:7: ruleValidID
+            // InternalSignalDSL.g:1572:6: ( ruleValidID )
+            // InternalSignalDSL.g:1573:7: ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -4107,7 +4223,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,39,FOLLOW_31); if (state.failed) return current;
+            otherlv_1=(Token)match(input,43,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1());
@@ -4119,11 +4235,11 @@
 
             }
 
-            // InternalSignalDSL.g:1562:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
-            // InternalSignalDSL.g:1563:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalSignalDSL.g:1593:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalSignalDSL.g:1594:4: (lv_value_2_0= ruleXAnnotationElementValue )
             {
-            // InternalSignalDSL.g:1563:4: (lv_value_2_0= ruleXAnnotationElementValue )
-            // InternalSignalDSL.g:1564:5: lv_value_2_0= ruleXAnnotationElementValue
+            // InternalSignalDSL.g:1594:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalSignalDSL.g:1595:5: lv_value_2_0= ruleXAnnotationElementValue
             {
             if ( state.backtracking==0 ) {
 
@@ -4179,7 +4295,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
-    // InternalSignalDSL.g:1585:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
+    // InternalSignalDSL.g:1616:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
     public final EObject entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
         EObject current = null;
 
@@ -4187,8 +4303,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1585:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
-            // InternalSignalDSL.g:1586:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
+            // InternalSignalDSL.g:1616:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalSignalDSL.g:1617:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
@@ -4219,7 +4335,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
-    // InternalSignalDSL.g:1592:1: ruleXAnnotationElementValueOrCommaList returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) ;
+    // InternalSignalDSL.g:1623:1: ruleXAnnotationElementValueOrCommaList returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) ;
     public final EObject ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
         EObject current = null;
 
@@ -4241,27 +4357,27 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1598:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) )
-            // InternalSignalDSL.g:1599:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            // InternalSignalDSL.g:1629:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) )
+            // InternalSignalDSL.g:1630:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
             {
-            // InternalSignalDSL.g:1599:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
-            int alt22=2;
-            alt22 = dfa22.predict(input);
-            switch (alt22) {
+            // InternalSignalDSL.g:1630:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            int alt25=2;
+            alt25 = dfa25.predict(input);
+            switch (alt25) {
                 case 1 :
-                    // InternalSignalDSL.g:1600:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalSignalDSL.g:1631:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
                     {
-                    // InternalSignalDSL.g:1600:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
-                    // InternalSignalDSL.g:1601:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    // InternalSignalDSL.g:1631:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalSignalDSL.g:1632:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
                     {
-                    // InternalSignalDSL.g:1601:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
-                    // InternalSignalDSL.g:1602:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalSignalDSL.g:1632:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalSignalDSL.g:1633:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
                     {
-                    // InternalSignalDSL.g:1609:5: ( () otherlv_1= '#' otherlv_2= '[' )
-                    // InternalSignalDSL.g:1610:6: () otherlv_1= '#' otherlv_2= '['
+                    // InternalSignalDSL.g:1640:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalSignalDSL.g:1641:6: () otherlv_1= '#' otherlv_2= '['
                     {
-                    // InternalSignalDSL.g:1610:6: ()
-                    // InternalSignalDSL.g:1611:7: 
+                    // InternalSignalDSL.g:1641:6: ()
+                    // InternalSignalDSL.g:1642:7: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4273,13 +4389,13 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,40,FOLLOW_32); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,44,FOLLOW_32); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1());
                       					
                     }
-                    otherlv_2=(Token)match(input,41,FOLLOW_33); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,45,FOLLOW_33); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2());
@@ -4291,22 +4407,22 @@
 
                     }
 
-                    // InternalSignalDSL.g:1627:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
-                    int alt19=2;
-                    int LA19_0 = input.LA(1);
+                    // InternalSignalDSL.g:1658:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt22=2;
+                    int LA22_0 = input.LA(1);
 
-                    if ( ((LA19_0>=RULE_STRING && LA19_0<=RULE_DECIMAL)||LA19_0==14||(LA19_0>=29 && LA19_0<=31)||(LA19_0>=35 && LA19_0<=36)||(LA19_0>=40 && LA19_0<=41)||LA19_0==48||(LA19_0>=64 && LA19_0<=65)||LA19_0==69||LA19_0==77||LA19_0==79||(LA19_0>=82 && LA19_0<=84)||(LA19_0>=87 && LA19_0<=96)||LA19_0==98) ) {
-                        alt19=1;
+                    if ( ((LA22_0>=RULE_STRING && LA22_0<=RULE_DECIMAL)||LA22_0==14||(LA22_0>=33 && LA22_0<=35)||(LA22_0>=39 && LA22_0<=40)||(LA22_0>=44 && LA22_0<=45)||LA22_0==52||(LA22_0>=68 && LA22_0<=69)||LA22_0==73||LA22_0==81||LA22_0==83||(LA22_0>=86 && LA22_0<=88)||(LA22_0>=91 && LA22_0<=100)||LA22_0==102) ) {
+                        alt22=1;
                     }
-                    switch (alt19) {
+                    switch (alt22) {
                         case 1 :
-                            // InternalSignalDSL.g:1628:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalSignalDSL.g:1659:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             {
-                            // InternalSignalDSL.g:1628:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
-                            // InternalSignalDSL.g:1629:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalSignalDSL.g:1659:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalSignalDSL.g:1660:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
                             {
-                            // InternalSignalDSL.g:1629:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
-                            // InternalSignalDSL.g:1630:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            // InternalSignalDSL.g:1660:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalSignalDSL.g:1661:7: lv_elements_3_0= ruleXAnnotationOrExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -4337,32 +4453,32 @@
 
                             }
 
-                            // InternalSignalDSL.g:1647:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
-                            loop18:
+                            // InternalSignalDSL.g:1678:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop21:
                             do {
-                                int alt18=2;
-                                int LA18_0 = input.LA(1);
+                                int alt21=2;
+                                int LA21_0 = input.LA(1);
 
-                                if ( (LA18_0==37) ) {
-                                    alt18=1;
+                                if ( (LA21_0==41) ) {
+                                    alt21=1;
                                 }
 
 
-                                switch (alt18) {
+                                switch (alt21) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:1648:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalSignalDSL.g:1679:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_4=(Token)match(input,37,FOLLOW_31); if (state.failed) return current;
+                            	    otherlv_4=(Token)match(input,41,FOLLOW_31); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalSignalDSL.g:1652:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalSignalDSL.g:1653:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalSignalDSL.g:1683:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalSignalDSL.g:1684:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalSignalDSL.g:1653:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
-                            	    // InternalSignalDSL.g:1654:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    // InternalSignalDSL.g:1684:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalSignalDSL.g:1685:8: lv_elements_5_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -4398,7 +4514,7 @@
                             	    break;
 
                             	default :
-                            	    break loop18;
+                            	    break loop21;
                                 }
                             } while (true);
 
@@ -4408,7 +4524,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,46,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2());
@@ -4421,10 +4537,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:1679:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalSignalDSL.g:1710:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
                     {
-                    // InternalSignalDSL.g:1679:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
-                    // InternalSignalDSL.g:1680:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    // InternalSignalDSL.g:1710:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalSignalDSL.g:1711:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4442,19 +4558,19 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalSignalDSL.g:1688:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
-                    int alt21=2;
-                    int LA21_0 = input.LA(1);
+                    // InternalSignalDSL.g:1719:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    int alt24=2;
+                    int LA24_0 = input.LA(1);
 
-                    if ( (LA21_0==37) ) {
-                        alt21=1;
+                    if ( (LA24_0==41) ) {
+                        alt24=1;
                     }
-                    switch (alt21) {
+                    switch (alt24) {
                         case 1 :
-                            // InternalSignalDSL.g:1689:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            // InternalSignalDSL.g:1720:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
                             {
-                            // InternalSignalDSL.g:1689:5: ()
-                            // InternalSignalDSL.g:1690:6: 
+                            // InternalSignalDSL.g:1720:5: ()
+                            // InternalSignalDSL.g:1721:6: 
                             {
                             if ( state.backtracking==0 ) {
 
@@ -4466,33 +4582,33 @@
 
                             }
 
-                            // InternalSignalDSL.g:1696:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
-                            int cnt20=0;
-                            loop20:
+                            // InternalSignalDSL.g:1727:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            int cnt23=0;
+                            loop23:
                             do {
-                                int alt20=2;
-                                int LA20_0 = input.LA(1);
+                                int alt23=2;
+                                int LA23_0 = input.LA(1);
 
-                                if ( (LA20_0==37) ) {
-                                    alt20=1;
+                                if ( (LA23_0==41) ) {
+                                    alt23=1;
                                 }
 
 
-                                switch (alt20) {
+                                switch (alt23) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:1697:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalSignalDSL.g:1728:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_9=(Token)match(input,37,FOLLOW_31); if (state.failed) return current;
+                            	    otherlv_9=(Token)match(input,41,FOLLOW_31); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_9, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0());
                             	      					
                             	    }
-                            	    // InternalSignalDSL.g:1701:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalSignalDSL.g:1702:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalSignalDSL.g:1732:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalSignalDSL.g:1733:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalSignalDSL.g:1702:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
-                            	    // InternalSignalDSL.g:1703:8: lv_elements_10_0= ruleXAnnotationOrExpression
+                            	    // InternalSignalDSL.g:1733:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalSignalDSL.g:1734:8: lv_elements_10_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -4528,13 +4644,13 @@
                             	    break;
 
                             	default :
-                            	    if ( cnt20 >= 1 ) break loop20;
+                            	    if ( cnt23 >= 1 ) break loop23;
                             	    if (state.backtracking>0) {state.failed=true; return current;}
                                         EarlyExitException eee =
-                                            new EarlyExitException(20, input);
+                                            new EarlyExitException(23, input);
                                         throw eee;
                                 }
-                                cnt20++;
+                                cnt23++;
                             } while (true);
 
 
@@ -4574,7 +4690,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValue"
-    // InternalSignalDSL.g:1727:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
+    // InternalSignalDSL.g:1758:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
     public final EObject entryRuleXAnnotationElementValue() throws RecognitionException {
         EObject current = null;
 
@@ -4582,8 +4698,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1727:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
-            // InternalSignalDSL.g:1728:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
+            // InternalSignalDSL.g:1758:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
+            // InternalSignalDSL.g:1759:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); 
@@ -4614,7 +4730,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValue"
-    // InternalSignalDSL.g:1734:1: ruleXAnnotationElementValue returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) ;
+    // InternalSignalDSL.g:1765:1: ruleXAnnotationElementValue returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) ;
     public final EObject ruleXAnnotationElementValue() throws RecognitionException {
         EObject current = null;
 
@@ -4633,27 +4749,27 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1740:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
-            // InternalSignalDSL.g:1741:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            // InternalSignalDSL.g:1771:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
+            // InternalSignalDSL.g:1772:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
             {
-            // InternalSignalDSL.g:1741:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
-            int alt25=2;
-            alt25 = dfa25.predict(input);
-            switch (alt25) {
+            // InternalSignalDSL.g:1772:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            int alt28=2;
+            alt28 = dfa28.predict(input);
+            switch (alt28) {
                 case 1 :
-                    // InternalSignalDSL.g:1742:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalSignalDSL.g:1773:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
                     {
-                    // InternalSignalDSL.g:1742:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
-                    // InternalSignalDSL.g:1743:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    // InternalSignalDSL.g:1773:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalSignalDSL.g:1774:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
                     {
-                    // InternalSignalDSL.g:1743:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
-                    // InternalSignalDSL.g:1744:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalSignalDSL.g:1774:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalSignalDSL.g:1775:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
                     {
-                    // InternalSignalDSL.g:1751:5: ( () otherlv_1= '#' otherlv_2= '[' )
-                    // InternalSignalDSL.g:1752:6: () otherlv_1= '#' otherlv_2= '['
+                    // InternalSignalDSL.g:1782:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalSignalDSL.g:1783:6: () otherlv_1= '#' otherlv_2= '['
                     {
-                    // InternalSignalDSL.g:1752:6: ()
-                    // InternalSignalDSL.g:1753:7: 
+                    // InternalSignalDSL.g:1783:6: ()
+                    // InternalSignalDSL.g:1784:7: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4665,13 +4781,13 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,40,FOLLOW_32); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,44,FOLLOW_32); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1());
                       					
                     }
-                    otherlv_2=(Token)match(input,41,FOLLOW_33); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,45,FOLLOW_33); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2());
@@ -4683,22 +4799,22 @@
 
                     }
 
-                    // InternalSignalDSL.g:1769:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
-                    int alt24=2;
-                    int LA24_0 = input.LA(1);
+                    // InternalSignalDSL.g:1800:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt27=2;
+                    int LA27_0 = input.LA(1);
 
-                    if ( ((LA24_0>=RULE_STRING && LA24_0<=RULE_DECIMAL)||LA24_0==14||(LA24_0>=29 && LA24_0<=31)||(LA24_0>=35 && LA24_0<=36)||(LA24_0>=40 && LA24_0<=41)||LA24_0==48||(LA24_0>=64 && LA24_0<=65)||LA24_0==69||LA24_0==77||LA24_0==79||(LA24_0>=82 && LA24_0<=84)||(LA24_0>=87 && LA24_0<=96)||LA24_0==98) ) {
-                        alt24=1;
+                    if ( ((LA27_0>=RULE_STRING && LA27_0<=RULE_DECIMAL)||LA27_0==14||(LA27_0>=33 && LA27_0<=35)||(LA27_0>=39 && LA27_0<=40)||(LA27_0>=44 && LA27_0<=45)||LA27_0==52||(LA27_0>=68 && LA27_0<=69)||LA27_0==73||LA27_0==81||LA27_0==83||(LA27_0>=86 && LA27_0<=88)||(LA27_0>=91 && LA27_0<=100)||LA27_0==102) ) {
+                        alt27=1;
                     }
-                    switch (alt24) {
+                    switch (alt27) {
                         case 1 :
-                            // InternalSignalDSL.g:1770:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalSignalDSL.g:1801:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             {
-                            // InternalSignalDSL.g:1770:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
-                            // InternalSignalDSL.g:1771:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalSignalDSL.g:1801:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalSignalDSL.g:1802:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
                             {
-                            // InternalSignalDSL.g:1771:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
-                            // InternalSignalDSL.g:1772:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            // InternalSignalDSL.g:1802:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalSignalDSL.g:1803:7: lv_elements_3_0= ruleXAnnotationOrExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -4729,32 +4845,32 @@
 
                             }
 
-                            // InternalSignalDSL.g:1789:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
-                            loop23:
+                            // InternalSignalDSL.g:1820:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop26:
                             do {
-                                int alt23=2;
-                                int LA23_0 = input.LA(1);
+                                int alt26=2;
+                                int LA26_0 = input.LA(1);
 
-                                if ( (LA23_0==37) ) {
-                                    alt23=1;
+                                if ( (LA26_0==41) ) {
+                                    alt26=1;
                                 }
 
 
-                                switch (alt23) {
+                                switch (alt26) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:1790:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalSignalDSL.g:1821:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_4=(Token)match(input,37,FOLLOW_31); if (state.failed) return current;
+                            	    otherlv_4=(Token)match(input,41,FOLLOW_31); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalSignalDSL.g:1794:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalSignalDSL.g:1795:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalSignalDSL.g:1825:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalSignalDSL.g:1826:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalSignalDSL.g:1795:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
-                            	    // InternalSignalDSL.g:1796:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    // InternalSignalDSL.g:1826:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalSignalDSL.g:1827:8: lv_elements_5_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -4790,7 +4906,7 @@
                             	    break;
 
                             	default :
-                            	    break loop23;
+                            	    break loop26;
                                 }
                             } while (true);
 
@@ -4800,7 +4916,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,46,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2());
@@ -4813,7 +4929,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:1821:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
+                    // InternalSignalDSL.g:1852:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4859,7 +4975,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationOrExpression"
-    // InternalSignalDSL.g:1833:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
+    // InternalSignalDSL.g:1864:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
     public final EObject entryRuleXAnnotationOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -4867,8 +4983,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1833:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
-            // InternalSignalDSL.g:1834:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
+            // InternalSignalDSL.g:1864:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
+            // InternalSignalDSL.g:1865:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationOrExpressionRule()); 
@@ -4899,7 +5015,7 @@
 
 
     // $ANTLR start "ruleXAnnotationOrExpression"
-    // InternalSignalDSL.g:1840:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
+    // InternalSignalDSL.g:1871:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
     public final EObject ruleXAnnotationOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -4912,29 +5028,29 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1846:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
-            // InternalSignalDSL.g:1847:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            // InternalSignalDSL.g:1877:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
+            // InternalSignalDSL.g:1878:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
             {
-            // InternalSignalDSL.g:1847:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
-            int alt26=2;
-            int LA26_0 = input.LA(1);
+            // InternalSignalDSL.g:1878:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            int alt29=2;
+            int LA29_0 = input.LA(1);
 
-            if ( (LA26_0==35) ) {
-                alt26=1;
+            if ( (LA29_0==39) ) {
+                alt29=1;
             }
-            else if ( ((LA26_0>=RULE_STRING && LA26_0<=RULE_DECIMAL)||LA26_0==14||(LA26_0>=29 && LA26_0<=31)||LA26_0==36||(LA26_0>=40 && LA26_0<=41)||LA26_0==48||(LA26_0>=64 && LA26_0<=65)||LA26_0==69||LA26_0==77||LA26_0==79||(LA26_0>=82 && LA26_0<=84)||(LA26_0>=87 && LA26_0<=96)||LA26_0==98) ) {
-                alt26=2;
+            else if ( ((LA29_0>=RULE_STRING && LA29_0<=RULE_DECIMAL)||LA29_0==14||(LA29_0>=33 && LA29_0<=35)||LA29_0==40||(LA29_0>=44 && LA29_0<=45)||LA29_0==52||(LA29_0>=68 && LA29_0<=69)||LA29_0==73||LA29_0==81||LA29_0==83||(LA29_0>=86 && LA29_0<=88)||(LA29_0>=91 && LA29_0<=100)||LA29_0==102) ) {
+                alt29=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 26, 0, input);
+                    new NoViableAltException("", 29, 0, input);
 
                 throw nvae;
             }
-            switch (alt26) {
+            switch (alt29) {
                 case 1 :
-                    // InternalSignalDSL.g:1848:3: this_XAnnotation_0= ruleXAnnotation
+                    // InternalSignalDSL.g:1879:3: this_XAnnotation_0= ruleXAnnotation
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4956,7 +5072,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:1857:3: this_XExpression_1= ruleXExpression
+                    // InternalSignalDSL.g:1888:3: this_XExpression_1= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5002,7 +5118,7 @@
 
 
     // $ANTLR start "entryRuleXExpression"
-    // InternalSignalDSL.g:1869:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
+    // InternalSignalDSL.g:1900:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
     public final EObject entryRuleXExpression() throws RecognitionException {
         EObject current = null;
 
@@ -5010,8 +5126,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1869:52: (iv_ruleXExpression= ruleXExpression EOF )
-            // InternalSignalDSL.g:1870:2: iv_ruleXExpression= ruleXExpression EOF
+            // InternalSignalDSL.g:1900:52: (iv_ruleXExpression= ruleXExpression EOF )
+            // InternalSignalDSL.g:1901:2: iv_ruleXExpression= ruleXExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionRule()); 
@@ -5042,7 +5158,7 @@
 
 
     // $ANTLR start "ruleXExpression"
-    // InternalSignalDSL.g:1876:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
+    // InternalSignalDSL.g:1907:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
     public final EObject ruleXExpression() throws RecognitionException {
         EObject current = null;
 
@@ -5053,8 +5169,8 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1882:2: (this_XAssignment_0= ruleXAssignment )
-            // InternalSignalDSL.g:1883:2: this_XAssignment_0= ruleXAssignment
+            // InternalSignalDSL.g:1913:2: (this_XAssignment_0= ruleXAssignment )
+            // InternalSignalDSL.g:1914:2: this_XAssignment_0= ruleXAssignment
             {
             if ( state.backtracking==0 ) {
 
@@ -5094,7 +5210,7 @@
 
 
     // $ANTLR start "entryRuleXAssignment"
-    // InternalSignalDSL.g:1894:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
+    // InternalSignalDSL.g:1925:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
     public final EObject entryRuleXAssignment() throws RecognitionException {
         EObject current = null;
 
@@ -5102,8 +5218,8 @@
 
 
         try {
-            // InternalSignalDSL.g:1894:52: (iv_ruleXAssignment= ruleXAssignment EOF )
-            // InternalSignalDSL.g:1895:2: iv_ruleXAssignment= ruleXAssignment EOF
+            // InternalSignalDSL.g:1925:52: (iv_ruleXAssignment= ruleXAssignment EOF )
+            // InternalSignalDSL.g:1926:2: iv_ruleXAssignment= ruleXAssignment EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAssignmentRule()); 
@@ -5134,7 +5250,7 @@
 
 
     // $ANTLR start "ruleXAssignment"
-    // InternalSignalDSL.g:1901:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
+    // InternalSignalDSL.g:1932:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
     public final EObject ruleXAssignment() throws RecognitionException {
         EObject current = null;
 
@@ -5149,102 +5265,102 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:1907:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
-            // InternalSignalDSL.g:1908:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            // InternalSignalDSL.g:1938:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
+            // InternalSignalDSL.g:1939:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
             {
-            // InternalSignalDSL.g:1908:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
-            int alt28=2;
+            // InternalSignalDSL.g:1939:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            int alt31=2;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                int LA28_1 = input.LA(2);
+                int LA31_1 = input.LA(2);
 
-                if ( (LA28_1==39) ) {
-                    alt28=1;
+                if ( (LA31_1==EOF||(LA31_1>=RULE_STRING && LA31_1<=RULE_DECIMAL)||(LA31_1>=14 && LA31_1<=15)||LA31_1==25||(LA31_1>=33 && LA31_1<=36)||LA31_1==38||(LA31_1>=40 && LA31_1<=42)||(LA31_1>=44 && LA31_1<=79)||(LA31_1>=81 && LA31_1<=103)) ) {
+                    alt31=2;
                 }
-                else if ( (LA28_1==EOF||(LA28_1>=RULE_STRING && LA28_1<=RULE_DECIMAL)||(LA28_1>=14 && LA28_1<=15)||LA28_1==24||(LA28_1>=29 && LA28_1<=32)||LA28_1==34||(LA28_1>=36 && LA28_1<=38)||(LA28_1>=40 && LA28_1<=75)||(LA28_1>=77 && LA28_1<=99)) ) {
-                    alt28=2;
+                else if ( (LA31_1==43) ) {
+                    alt31=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 28, 1, input);
+                        new NoViableAltException("", 31, 1, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 87:
+            case 91:
                 {
-                int LA28_2 = input.LA(2);
+                int LA31_2 = input.LA(2);
 
-                if ( (LA28_2==39) ) {
-                    alt28=1;
+                if ( (LA31_2==EOF||(LA31_2>=RULE_STRING && LA31_2<=RULE_DECIMAL)||(LA31_2>=14 && LA31_2<=15)||LA31_2==25||(LA31_2>=33 && LA31_2<=36)||LA31_2==38||(LA31_2>=40 && LA31_2<=42)||(LA31_2>=44 && LA31_2<=79)||(LA31_2>=81 && LA31_2<=103)) ) {
+                    alt31=2;
                 }
-                else if ( (LA28_2==EOF||(LA28_2>=RULE_STRING && LA28_2<=RULE_DECIMAL)||(LA28_2>=14 && LA28_2<=15)||LA28_2==24||(LA28_2>=29 && LA28_2<=32)||LA28_2==34||(LA28_2>=36 && LA28_2<=38)||(LA28_2>=40 && LA28_2<=75)||(LA28_2>=77 && LA28_2<=99)) ) {
-                    alt28=2;
+                else if ( (LA31_2==43) ) {
+                    alt31=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 28, 2, input);
+                        new NoViableAltException("", 31, 2, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 30:
+            case 34:
                 {
-                int LA28_3 = input.LA(2);
+                int LA31_3 = input.LA(2);
 
-                if ( (LA28_3==39) ) {
-                    alt28=1;
+                if ( (LA31_3==EOF||(LA31_3>=RULE_STRING && LA31_3<=RULE_DECIMAL)||(LA31_3>=14 && LA31_3<=15)||LA31_3==25||(LA31_3>=33 && LA31_3<=36)||LA31_3==38||(LA31_3>=40 && LA31_3<=42)||(LA31_3>=44 && LA31_3<=79)||(LA31_3>=81 && LA31_3<=103)) ) {
+                    alt31=2;
                 }
-                else if ( (LA28_3==EOF||(LA28_3>=RULE_STRING && LA28_3<=RULE_DECIMAL)||(LA28_3>=14 && LA28_3<=15)||LA28_3==24||(LA28_3>=29 && LA28_3<=32)||LA28_3==34||(LA28_3>=36 && LA28_3<=38)||(LA28_3>=40 && LA28_3<=75)||(LA28_3>=77 && LA28_3<=99)) ) {
-                    alt28=2;
+                else if ( (LA31_3==43) ) {
+                    alt31=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 28, 3, input);
+                        new NoViableAltException("", 31, 3, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 29:
+            case 33:
                 {
-                int LA28_4 = input.LA(2);
+                int LA31_4 = input.LA(2);
 
-                if ( (LA28_4==39) ) {
-                    alt28=1;
+                if ( (LA31_4==EOF||(LA31_4>=RULE_STRING && LA31_4<=RULE_DECIMAL)||(LA31_4>=14 && LA31_4<=15)||LA31_4==25||(LA31_4>=33 && LA31_4<=36)||LA31_4==38||(LA31_4>=40 && LA31_4<=42)||(LA31_4>=44 && LA31_4<=79)||(LA31_4>=81 && LA31_4<=103)) ) {
+                    alt31=2;
                 }
-                else if ( (LA28_4==EOF||(LA28_4>=RULE_STRING && LA28_4<=RULE_DECIMAL)||(LA28_4>=14 && LA28_4<=15)||LA28_4==24||(LA28_4>=29 && LA28_4<=32)||LA28_4==34||(LA28_4>=36 && LA28_4<=38)||(LA28_4>=40 && LA28_4<=75)||(LA28_4>=77 && LA28_4<=99)) ) {
-                    alt28=2;
+                else if ( (LA31_4==43) ) {
+                    alt31=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 28, 4, input);
+                        new NoViableAltException("", 31, 4, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 31:
+            case 35:
                 {
-                int LA28_5 = input.LA(2);
+                int LA31_5 = input.LA(2);
 
-                if ( (LA28_5==39) ) {
-                    alt28=1;
+                if ( (LA31_5==EOF||(LA31_5>=RULE_STRING && LA31_5<=RULE_DECIMAL)||(LA31_5>=14 && LA31_5<=15)||LA31_5==25||(LA31_5>=33 && LA31_5<=36)||LA31_5==38||(LA31_5>=40 && LA31_5<=42)||(LA31_5>=44 && LA31_5<=79)||(LA31_5>=81 && LA31_5<=103)) ) {
+                    alt31=2;
                 }
-                else if ( (LA28_5==EOF||(LA28_5>=RULE_STRING && LA28_5<=RULE_DECIMAL)||(LA28_5>=14 && LA28_5<=15)||LA28_5==24||(LA28_5>=29 && LA28_5<=32)||LA28_5==34||(LA28_5>=36 && LA28_5<=38)||(LA28_5>=40 && LA28_5<=75)||(LA28_5>=77 && LA28_5<=99)) ) {
-                    alt28=2;
+                else if ( (LA31_5==43) ) {
+                    alt31=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 28, 5, input);
+                        new NoViableAltException("", 31, 5, input);
 
                     throw nvae;
                 }
@@ -5255,49 +5371,49 @@
             case RULE_HEX:
             case RULE_DECIMAL:
             case 14:
-            case 36:
             case 40:
-            case 41:
-            case 48:
-            case 64:
-            case 65:
+            case 44:
+            case 45:
+            case 52:
+            case 68:
             case 69:
-            case 77:
-            case 79:
-            case 82:
+            case 73:
+            case 81:
             case 83:
-            case 84:
+            case 86:
+            case 87:
             case 88:
-            case 89:
-            case 90:
-            case 91:
             case 92:
             case 93:
             case 94:
             case 95:
             case 96:
+            case 97:
             case 98:
+            case 99:
+            case 100:
+            case 102:
                 {
-                alt28=2;
+                alt31=2;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 28, 0, input);
+                    new NoViableAltException("", 31, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt28) {
+            switch (alt31) {
                 case 1 :
-                    // InternalSignalDSL.g:1909:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalSignalDSL.g:1940:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
                     {
-                    // InternalSignalDSL.g:1909:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
-                    // InternalSignalDSL.g:1910:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalSignalDSL.g:1940:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalSignalDSL.g:1941:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
                     {
-                    // InternalSignalDSL.g:1910:4: ()
-                    // InternalSignalDSL.g:1911:5: 
+                    // InternalSignalDSL.g:1941:4: ()
+                    // InternalSignalDSL.g:1942:5: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5309,11 +5425,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:1917:4: ( ( ruleFeatureCallID ) )
-                    // InternalSignalDSL.g:1918:5: ( ruleFeatureCallID )
+                    // InternalSignalDSL.g:1948:4: ( ( ruleFeatureCallID ) )
+                    // InternalSignalDSL.g:1949:5: ( ruleFeatureCallID )
                     {
-                    // InternalSignalDSL.g:1918:5: ( ruleFeatureCallID )
-                    // InternalSignalDSL.g:1919:6: ruleFeatureCallID
+                    // InternalSignalDSL.g:1949:5: ( ruleFeatureCallID )
+                    // InternalSignalDSL.g:1950:6: ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5358,11 +5474,11 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalSignalDSL.g:1940:4: ( (lv_value_3_0= ruleXAssignment ) )
-                    // InternalSignalDSL.g:1941:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalSignalDSL.g:1971:4: ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalSignalDSL.g:1972:5: (lv_value_3_0= ruleXAssignment )
                     {
-                    // InternalSignalDSL.g:1941:5: (lv_value_3_0= ruleXAssignment )
-                    // InternalSignalDSL.g:1942:6: lv_value_3_0= ruleXAssignment
+                    // InternalSignalDSL.g:1972:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalSignalDSL.g:1973:6: lv_value_3_0= ruleXAssignment
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5400,10 +5516,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:1961:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalSignalDSL.g:1992:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
                     {
-                    // InternalSignalDSL.g:1961:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
-                    // InternalSignalDSL.g:1962:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    // InternalSignalDSL.g:1992:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalSignalDSL.g:1993:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5421,21 +5537,21 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalSignalDSL.g:1970:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
-                    int alt27=2;
-                    alt27 = dfa27.predict(input);
-                    switch (alt27) {
+                    // InternalSignalDSL.g:2001:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    int alt30=2;
+                    alt30 = dfa30.predict(input);
+                    switch (alt30) {
                         case 1 :
-                            // InternalSignalDSL.g:1971:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalSignalDSL.g:2002:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
                             {
-                            // InternalSignalDSL.g:1971:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
-                            // InternalSignalDSL.g:1972:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalSignalDSL.g:2002:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
+                            // InternalSignalDSL.g:2003:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
                             {
-                            // InternalSignalDSL.g:1982:6: ( () ( ( ruleOpMultiAssign ) ) )
-                            // InternalSignalDSL.g:1983:7: () ( ( ruleOpMultiAssign ) )
+                            // InternalSignalDSL.g:2013:6: ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalSignalDSL.g:2014:7: () ( ( ruleOpMultiAssign ) )
                             {
-                            // InternalSignalDSL.g:1983:7: ()
-                            // InternalSignalDSL.g:1984:8: 
+                            // InternalSignalDSL.g:2014:7: ()
+                            // InternalSignalDSL.g:2015:8: 
                             {
                             if ( state.backtracking==0 ) {
 
@@ -5447,11 +5563,11 @@
 
                             }
 
-                            // InternalSignalDSL.g:1990:7: ( ( ruleOpMultiAssign ) )
-                            // InternalSignalDSL.g:1991:8: ( ruleOpMultiAssign )
+                            // InternalSignalDSL.g:2021:7: ( ( ruleOpMultiAssign ) )
+                            // InternalSignalDSL.g:2022:8: ( ruleOpMultiAssign )
                             {
-                            // InternalSignalDSL.g:1991:8: ( ruleOpMultiAssign )
-                            // InternalSignalDSL.g:1992:9: ruleOpMultiAssign
+                            // InternalSignalDSL.g:2022:8: ( ruleOpMultiAssign )
+                            // InternalSignalDSL.g:2023:9: ruleOpMultiAssign
                             {
                             if ( state.backtracking==0 ) {
 
@@ -5487,11 +5603,11 @@
 
                             }
 
-                            // InternalSignalDSL.g:2008:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
-                            // InternalSignalDSL.g:2009:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalSignalDSL.g:2039:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalSignalDSL.g:2040:6: (lv_rightOperand_7_0= ruleXAssignment )
                             {
-                            // InternalSignalDSL.g:2009:6: (lv_rightOperand_7_0= ruleXAssignment )
-                            // InternalSignalDSL.g:2010:7: lv_rightOperand_7_0= ruleXAssignment
+                            // InternalSignalDSL.g:2040:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalSignalDSL.g:2041:7: lv_rightOperand_7_0= ruleXAssignment
                             {
                             if ( state.backtracking==0 ) {
 
@@ -5559,7 +5675,7 @@
 
 
     // $ANTLR start "entryRuleOpSingleAssign"
-    // InternalSignalDSL.g:2033:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
+    // InternalSignalDSL.g:2064:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
     public final String entryRuleOpSingleAssign() throws RecognitionException {
         String current = null;
 
@@ -5567,8 +5683,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2033:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
-            // InternalSignalDSL.g:2034:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
+            // InternalSignalDSL.g:2064:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
+            // InternalSignalDSL.g:2065:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpSingleAssignRule()); 
@@ -5599,7 +5715,7 @@
 
 
     // $ANTLR start "ruleOpSingleAssign"
-    // InternalSignalDSL.g:2040:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
+    // InternalSignalDSL.g:2071:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
     public final AntlrDatatypeRuleToken ruleOpSingleAssign() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -5609,10 +5725,10 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2046:2: (kw= '=' )
-            // InternalSignalDSL.g:2047:2: kw= '='
+            // InternalSignalDSL.g:2077:2: (kw= '=' )
+            // InternalSignalDSL.g:2078:2: kw= '='
             {
-            kw=(Token)match(input,39,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,43,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               		current.merge(kw);
@@ -5641,7 +5757,7 @@
 
 
     // $ANTLR start "entryRuleOpMultiAssign"
-    // InternalSignalDSL.g:2055:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
+    // InternalSignalDSL.g:2086:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
     public final String entryRuleOpMultiAssign() throws RecognitionException {
         String current = null;
 
@@ -5649,8 +5765,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2055:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
-            // InternalSignalDSL.g:2056:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
+            // InternalSignalDSL.g:2086:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
+            // InternalSignalDSL.g:2087:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpMultiAssignRule()); 
@@ -5681,7 +5797,7 @@
 
 
     // $ANTLR start "ruleOpMultiAssign"
-    // InternalSignalDSL.g:2062:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
+    // InternalSignalDSL.g:2093:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
     public final AntlrDatatypeRuleToken ruleOpMultiAssign() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -5691,60 +5807,60 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2068:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
-            // InternalSignalDSL.g:2069:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            // InternalSignalDSL.g:2099:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
+            // InternalSignalDSL.g:2100:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
             {
-            // InternalSignalDSL.g:2069:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
-            int alt30=7;
+            // InternalSignalDSL.g:2100:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            int alt33=7;
             switch ( input.LA(1) ) {
-            case 43:
-                {
-                alt30=1;
-                }
-                break;
-            case 44:
-                {
-                alt30=2;
-                }
-                break;
-            case 45:
-                {
-                alt30=3;
-                }
-                break;
-            case 46:
-                {
-                alt30=4;
-                }
-                break;
             case 47:
                 {
-                alt30=5;
+                alt33=1;
                 }
                 break;
             case 48:
                 {
-                alt30=6;
+                alt33=2;
                 }
                 break;
             case 49:
                 {
-                alt30=7;
+                alt33=3;
+                }
+                break;
+            case 50:
+                {
+                alt33=4;
+                }
+                break;
+            case 51:
+                {
+                alt33=5;
+                }
+                break;
+            case 52:
+                {
+                alt33=6;
+                }
+                break;
+            case 53:
+                {
+                alt33=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 30, 0, input);
+                    new NoViableAltException("", 33, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt30) {
+            switch (alt33) {
                 case 1 :
-                    // InternalSignalDSL.g:2070:3: kw= '+='
+                    // InternalSignalDSL.g:2101:3: kw= '+='
                     {
-                    kw=(Token)match(input,43,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,47,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -5755,9 +5871,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2076:3: kw= '-='
+                    // InternalSignalDSL.g:2107:3: kw= '-='
                     {
-                    kw=(Token)match(input,44,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,48,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -5768,9 +5884,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2082:3: kw= '*='
+                    // InternalSignalDSL.g:2113:3: kw= '*='
                     {
-                    kw=(Token)match(input,45,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -5781,9 +5897,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2088:3: kw= '/='
+                    // InternalSignalDSL.g:2119:3: kw= '/='
                     {
-                    kw=(Token)match(input,46,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -5794,9 +5910,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:2094:3: kw= '%='
+                    // InternalSignalDSL.g:2125:3: kw= '%='
                     {
-                    kw=(Token)match(input,47,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,51,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -5807,26 +5923,26 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:2100:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalSignalDSL.g:2131:3: (kw= '<' kw= '<' kw= '=' )
                     {
-                    // InternalSignalDSL.g:2100:3: (kw= '<' kw= '<' kw= '=' )
-                    // InternalSignalDSL.g:2101:4: kw= '<' kw= '<' kw= '='
+                    // InternalSignalDSL.g:2131:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalSignalDSL.g:2132:4: kw= '<' kw= '<' kw= '='
                     {
-                    kw=(Token)match(input,48,FOLLOW_37); if (state.failed) return current;
+                    kw=(Token)match(input,52,FOLLOW_37); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0());
                       			
                     }
-                    kw=(Token)match(input,48,FOLLOW_30); if (state.failed) return current;
+                    kw=(Token)match(input,52,FOLLOW_30); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1());
                       			
                     }
-                    kw=(Token)match(input,39,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,43,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -5840,30 +5956,30 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:2118:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalSignalDSL.g:2149:3: (kw= '>' (kw= '>' )? kw= '>=' )
                     {
-                    // InternalSignalDSL.g:2118:3: (kw= '>' (kw= '>' )? kw= '>=' )
-                    // InternalSignalDSL.g:2119:4: kw= '>' (kw= '>' )? kw= '>='
+                    // InternalSignalDSL.g:2149:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalSignalDSL.g:2150:4: kw= '>' (kw= '>' )? kw= '>='
                     {
-                    kw=(Token)match(input,49,FOLLOW_38); if (state.failed) return current;
+                    kw=(Token)match(input,53,FOLLOW_38); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0());
                       			
                     }
-                    // InternalSignalDSL.g:2124:4: (kw= '>' )?
-                    int alt29=2;
-                    int LA29_0 = input.LA(1);
+                    // InternalSignalDSL.g:2155:4: (kw= '>' )?
+                    int alt32=2;
+                    int LA32_0 = input.LA(1);
 
-                    if ( (LA29_0==49) ) {
-                        alt29=1;
+                    if ( (LA32_0==53) ) {
+                        alt32=1;
                     }
-                    switch (alt29) {
+                    switch (alt32) {
                         case 1 :
-                            // InternalSignalDSL.g:2125:5: kw= '>'
+                            // InternalSignalDSL.g:2156:5: kw= '>'
                             {
-                            kw=(Token)match(input,49,FOLLOW_39); if (state.failed) return current;
+                            kw=(Token)match(input,53,FOLLOW_39); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -5876,7 +5992,7 @@
 
                     }
 
-                    kw=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,54,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -5914,7 +6030,7 @@
 
 
     // $ANTLR start "entryRuleXOrExpression"
-    // InternalSignalDSL.g:2141:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
+    // InternalSignalDSL.g:2172:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
     public final EObject entryRuleXOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -5922,8 +6038,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2141:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
-            // InternalSignalDSL.g:2142:2: iv_ruleXOrExpression= ruleXOrExpression EOF
+            // InternalSignalDSL.g:2172:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
+            // InternalSignalDSL.g:2173:2: iv_ruleXOrExpression= ruleXOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXOrExpressionRule()); 
@@ -5954,7 +6070,7 @@
 
 
     // $ANTLR start "ruleXOrExpression"
-    // InternalSignalDSL.g:2148:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
+    // InternalSignalDSL.g:2179:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
     public final EObject ruleXOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -5967,11 +6083,11 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2154:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
-            // InternalSignalDSL.g:2155:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalSignalDSL.g:2185:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
+            // InternalSignalDSL.g:2186:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
             {
-            // InternalSignalDSL.g:2155:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
-            // InternalSignalDSL.g:2156:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            // InternalSignalDSL.g:2186:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalSignalDSL.g:2187:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -5989,35 +6105,35 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:2164:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
-            loop31:
+            // InternalSignalDSL.g:2195:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            loop34:
             do {
-                int alt31=2;
-                int LA31_0 = input.LA(1);
+                int alt34=2;
+                int LA34_0 = input.LA(1);
 
-                if ( (LA31_0==51) ) {
-                    int LA31_2 = input.LA(2);
+                if ( (LA34_0==55) ) {
+                    int LA34_2 = input.LA(2);
 
                     if ( (synpred8_InternalSignalDSL()) ) {
-                        alt31=1;
+                        alt34=1;
                     }
 
 
                 }
 
 
-                switch (alt31) {
+                switch (alt34) {
             	case 1 :
-            	    // InternalSignalDSL.g:2165:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalSignalDSL.g:2196:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
             	    {
-            	    // InternalSignalDSL.g:2165:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
-            	    // InternalSignalDSL.g:2166:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
+            	    // InternalSignalDSL.g:2196:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
+            	    // InternalSignalDSL.g:2197:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
             	    {
-            	    // InternalSignalDSL.g:2176:5: ( () ( ( ruleOpOr ) ) )
-            	    // InternalSignalDSL.g:2177:6: () ( ( ruleOpOr ) )
+            	    // InternalSignalDSL.g:2207:5: ( () ( ( ruleOpOr ) ) )
+            	    // InternalSignalDSL.g:2208:6: () ( ( ruleOpOr ) )
             	    {
-            	    // InternalSignalDSL.g:2177:6: ()
-            	    // InternalSignalDSL.g:2178:7: 
+            	    // InternalSignalDSL.g:2208:6: ()
+            	    // InternalSignalDSL.g:2209:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6029,11 +6145,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2184:6: ( ( ruleOpOr ) )
-            	    // InternalSignalDSL.g:2185:7: ( ruleOpOr )
+            	    // InternalSignalDSL.g:2215:6: ( ( ruleOpOr ) )
+            	    // InternalSignalDSL.g:2216:7: ( ruleOpOr )
             	    {
-            	    // InternalSignalDSL.g:2185:7: ( ruleOpOr )
-            	    // InternalSignalDSL.g:2186:8: ruleOpOr
+            	    // InternalSignalDSL.g:2216:7: ( ruleOpOr )
+            	    // InternalSignalDSL.g:2217:8: ruleOpOr
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6069,11 +6185,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2202:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
-            	    // InternalSignalDSL.g:2203:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalSignalDSL.g:2233:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalSignalDSL.g:2234:5: (lv_rightOperand_3_0= ruleXAndExpression )
             	    {
-            	    // InternalSignalDSL.g:2203:5: (lv_rightOperand_3_0= ruleXAndExpression )
-            	    // InternalSignalDSL.g:2204:6: lv_rightOperand_3_0= ruleXAndExpression
+            	    // InternalSignalDSL.g:2234:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalSignalDSL.g:2235:6: lv_rightOperand_3_0= ruleXAndExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6109,7 +6225,7 @@
             	    break;
 
             	default :
-            	    break loop31;
+            	    break loop34;
                 }
             } while (true);
 
@@ -6138,7 +6254,7 @@
 
 
     // $ANTLR start "entryRuleOpOr"
-    // InternalSignalDSL.g:2226:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
+    // InternalSignalDSL.g:2257:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
     public final String entryRuleOpOr() throws RecognitionException {
         String current = null;
 
@@ -6146,8 +6262,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2226:44: (iv_ruleOpOr= ruleOpOr EOF )
-            // InternalSignalDSL.g:2227:2: iv_ruleOpOr= ruleOpOr EOF
+            // InternalSignalDSL.g:2257:44: (iv_ruleOpOr= ruleOpOr EOF )
+            // InternalSignalDSL.g:2258:2: iv_ruleOpOr= ruleOpOr EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpOrRule()); 
@@ -6178,7 +6294,7 @@
 
 
     // $ANTLR start "ruleOpOr"
-    // InternalSignalDSL.g:2233:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
+    // InternalSignalDSL.g:2264:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
     public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6188,10 +6304,10 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2239:2: (kw= '||' )
-            // InternalSignalDSL.g:2240:2: kw= '||'
+            // InternalSignalDSL.g:2270:2: (kw= '||' )
+            // InternalSignalDSL.g:2271:2: kw= '||'
             {
-            kw=(Token)match(input,51,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,55,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               		current.merge(kw);
@@ -6220,7 +6336,7 @@
 
 
     // $ANTLR start "entryRuleXAndExpression"
-    // InternalSignalDSL.g:2248:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
+    // InternalSignalDSL.g:2279:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
     public final EObject entryRuleXAndExpression() throws RecognitionException {
         EObject current = null;
 
@@ -6228,8 +6344,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2248:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
-            // InternalSignalDSL.g:2249:2: iv_ruleXAndExpression= ruleXAndExpression EOF
+            // InternalSignalDSL.g:2279:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
+            // InternalSignalDSL.g:2280:2: iv_ruleXAndExpression= ruleXAndExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAndExpressionRule()); 
@@ -6260,7 +6376,7 @@
 
 
     // $ANTLR start "ruleXAndExpression"
-    // InternalSignalDSL.g:2255:1: ruleXAndExpression returns [EObject current=null] : (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) ;
+    // InternalSignalDSL.g:2286:1: ruleXAndExpression returns [EObject current=null] : (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) ;
     public final EObject ruleXAndExpression() throws RecognitionException {
         EObject current = null;
 
@@ -6273,11 +6389,11 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2261:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
-            // InternalSignalDSL.g:2262:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            // InternalSignalDSL.g:2292:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
+            // InternalSignalDSL.g:2293:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
             {
-            // InternalSignalDSL.g:2262:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
-            // InternalSignalDSL.g:2263:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            // InternalSignalDSL.g:2293:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            // InternalSignalDSL.g:2294:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -6295,35 +6411,35 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:2271:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
-            loop32:
+            // InternalSignalDSL.g:2302:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            loop35:
             do {
-                int alt32=2;
-                int LA32_0 = input.LA(1);
+                int alt35=2;
+                int LA35_0 = input.LA(1);
 
-                if ( (LA32_0==52) ) {
-                    int LA32_2 = input.LA(2);
+                if ( (LA35_0==56) ) {
+                    int LA35_2 = input.LA(2);
 
                     if ( (synpred9_InternalSignalDSL()) ) {
-                        alt32=1;
+                        alt35=1;
                     }
 
 
                 }
 
 
-                switch (alt32) {
+                switch (alt35) {
             	case 1 :
-            	    // InternalSignalDSL.g:2272:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    // InternalSignalDSL.g:2303:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
             	    {
-            	    // InternalSignalDSL.g:2272:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
-            	    // InternalSignalDSL.g:2273:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
+            	    // InternalSignalDSL.g:2303:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
+            	    // InternalSignalDSL.g:2304:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
             	    {
-            	    // InternalSignalDSL.g:2283:5: ( () ( ( ruleOpAnd ) ) )
-            	    // InternalSignalDSL.g:2284:6: () ( ( ruleOpAnd ) )
+            	    // InternalSignalDSL.g:2314:5: ( () ( ( ruleOpAnd ) ) )
+            	    // InternalSignalDSL.g:2315:6: () ( ( ruleOpAnd ) )
             	    {
-            	    // InternalSignalDSL.g:2284:6: ()
-            	    // InternalSignalDSL.g:2285:7: 
+            	    // InternalSignalDSL.g:2315:6: ()
+            	    // InternalSignalDSL.g:2316:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6335,11 +6451,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2291:6: ( ( ruleOpAnd ) )
-            	    // InternalSignalDSL.g:2292:7: ( ruleOpAnd )
+            	    // InternalSignalDSL.g:2322:6: ( ( ruleOpAnd ) )
+            	    // InternalSignalDSL.g:2323:7: ( ruleOpAnd )
             	    {
-            	    // InternalSignalDSL.g:2292:7: ( ruleOpAnd )
-            	    // InternalSignalDSL.g:2293:8: ruleOpAnd
+            	    // InternalSignalDSL.g:2323:7: ( ruleOpAnd )
+            	    // InternalSignalDSL.g:2324:8: ruleOpAnd
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6375,11 +6491,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2309:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
-            	    // InternalSignalDSL.g:2310:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    // InternalSignalDSL.g:2340:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    // InternalSignalDSL.g:2341:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
             	    {
-            	    // InternalSignalDSL.g:2310:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
-            	    // InternalSignalDSL.g:2311:6: lv_rightOperand_3_0= ruleXEqualityExpression
+            	    // InternalSignalDSL.g:2341:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    // InternalSignalDSL.g:2342:6: lv_rightOperand_3_0= ruleXEqualityExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6415,7 +6531,7 @@
             	    break;
 
             	default :
-            	    break loop32;
+            	    break loop35;
                 }
             } while (true);
 
@@ -6444,7 +6560,7 @@
 
 
     // $ANTLR start "entryRuleOpAnd"
-    // InternalSignalDSL.g:2333:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
+    // InternalSignalDSL.g:2364:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
     public final String entryRuleOpAnd() throws RecognitionException {
         String current = null;
 
@@ -6452,8 +6568,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2333:45: (iv_ruleOpAnd= ruleOpAnd EOF )
-            // InternalSignalDSL.g:2334:2: iv_ruleOpAnd= ruleOpAnd EOF
+            // InternalSignalDSL.g:2364:45: (iv_ruleOpAnd= ruleOpAnd EOF )
+            // InternalSignalDSL.g:2365:2: iv_ruleOpAnd= ruleOpAnd EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpAndRule()); 
@@ -6484,7 +6600,7 @@
 
 
     // $ANTLR start "ruleOpAnd"
-    // InternalSignalDSL.g:2340:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
+    // InternalSignalDSL.g:2371:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
     public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6494,10 +6610,10 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2346:2: (kw= '&&' )
-            // InternalSignalDSL.g:2347:2: kw= '&&'
+            // InternalSignalDSL.g:2377:2: (kw= '&&' )
+            // InternalSignalDSL.g:2378:2: kw= '&&'
             {
-            kw=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,56,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               		current.merge(kw);
@@ -6526,7 +6642,7 @@
 
 
     // $ANTLR start "entryRuleXEqualityExpression"
-    // InternalSignalDSL.g:2355:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
+    // InternalSignalDSL.g:2386:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
     public final EObject entryRuleXEqualityExpression() throws RecognitionException {
         EObject current = null;
 
@@ -6534,8 +6650,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2355:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
-            // InternalSignalDSL.g:2356:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
+            // InternalSignalDSL.g:2386:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
+            // InternalSignalDSL.g:2387:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXEqualityExpressionRule()); 
@@ -6566,7 +6682,7 @@
 
 
     // $ANTLR start "ruleXEqualityExpression"
-    // InternalSignalDSL.g:2362:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
+    // InternalSignalDSL.g:2393:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
     public final EObject ruleXEqualityExpression() throws RecognitionException {
         EObject current = null;
 
@@ -6579,11 +6695,11 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2368:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
-            // InternalSignalDSL.g:2369:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            // InternalSignalDSL.g:2399:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
+            // InternalSignalDSL.g:2400:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
             {
-            // InternalSignalDSL.g:2369:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
-            // InternalSignalDSL.g:2370:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            // InternalSignalDSL.g:2400:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            // InternalSignalDSL.g:2401:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -6601,50 +6717,50 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:2378:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
-            loop33:
+            // InternalSignalDSL.g:2409:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            loop36:
             do {
-                int alt33=2;
+                int alt36=2;
                 switch ( input.LA(1) ) {
-                case 53:
+                case 57:
                     {
-                    int LA33_2 = input.LA(2);
+                    int LA36_2 = input.LA(2);
 
                     if ( (synpred10_InternalSignalDSL()) ) {
-                        alt33=1;
+                        alt36=1;
                     }
 
 
                     }
                     break;
-                case 54:
+                case 58:
                     {
-                    int LA33_3 = input.LA(2);
+                    int LA36_3 = input.LA(2);
 
                     if ( (synpred10_InternalSignalDSL()) ) {
-                        alt33=1;
+                        alt36=1;
                     }
 
 
                     }
                     break;
-                case 55:
+                case 59:
                     {
-                    int LA33_4 = input.LA(2);
+                    int LA36_4 = input.LA(2);
 
                     if ( (synpred10_InternalSignalDSL()) ) {
-                        alt33=1;
+                        alt36=1;
                     }
 
 
                     }
                     break;
-                case 56:
+                case 60:
                     {
-                    int LA33_5 = input.LA(2);
+                    int LA36_5 = input.LA(2);
 
                     if ( (synpred10_InternalSignalDSL()) ) {
-                        alt33=1;
+                        alt36=1;
                     }
 
 
@@ -6653,18 +6769,18 @@
 
                 }
 
-                switch (alt33) {
+                switch (alt36) {
             	case 1 :
-            	    // InternalSignalDSL.g:2379:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    // InternalSignalDSL.g:2410:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
             	    {
-            	    // InternalSignalDSL.g:2379:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
-            	    // InternalSignalDSL.g:2380:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
+            	    // InternalSignalDSL.g:2410:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
+            	    // InternalSignalDSL.g:2411:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
             	    {
-            	    // InternalSignalDSL.g:2390:5: ( () ( ( ruleOpEquality ) ) )
-            	    // InternalSignalDSL.g:2391:6: () ( ( ruleOpEquality ) )
+            	    // InternalSignalDSL.g:2421:5: ( () ( ( ruleOpEquality ) ) )
+            	    // InternalSignalDSL.g:2422:6: () ( ( ruleOpEquality ) )
             	    {
-            	    // InternalSignalDSL.g:2391:6: ()
-            	    // InternalSignalDSL.g:2392:7: 
+            	    // InternalSignalDSL.g:2422:6: ()
+            	    // InternalSignalDSL.g:2423:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6676,11 +6792,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2398:6: ( ( ruleOpEquality ) )
-            	    // InternalSignalDSL.g:2399:7: ( ruleOpEquality )
+            	    // InternalSignalDSL.g:2429:6: ( ( ruleOpEquality ) )
+            	    // InternalSignalDSL.g:2430:7: ( ruleOpEquality )
             	    {
-            	    // InternalSignalDSL.g:2399:7: ( ruleOpEquality )
-            	    // InternalSignalDSL.g:2400:8: ruleOpEquality
+            	    // InternalSignalDSL.g:2430:7: ( ruleOpEquality )
+            	    // InternalSignalDSL.g:2431:8: ruleOpEquality
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6716,11 +6832,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2416:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
-            	    // InternalSignalDSL.g:2417:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    // InternalSignalDSL.g:2447:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    // InternalSignalDSL.g:2448:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
             	    {
-            	    // InternalSignalDSL.g:2417:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
-            	    // InternalSignalDSL.g:2418:6: lv_rightOperand_3_0= ruleXRelationalExpression
+            	    // InternalSignalDSL.g:2448:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    // InternalSignalDSL.g:2449:6: lv_rightOperand_3_0= ruleXRelationalExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6756,7 +6872,7 @@
             	    break;
 
             	default :
-            	    break loop33;
+            	    break loop36;
                 }
             } while (true);
 
@@ -6785,7 +6901,7 @@
 
 
     // $ANTLR start "entryRuleOpEquality"
-    // InternalSignalDSL.g:2440:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
+    // InternalSignalDSL.g:2471:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
     public final String entryRuleOpEquality() throws RecognitionException {
         String current = null;
 
@@ -6793,8 +6909,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2440:50: (iv_ruleOpEquality= ruleOpEquality EOF )
-            // InternalSignalDSL.g:2441:2: iv_ruleOpEquality= ruleOpEquality EOF
+            // InternalSignalDSL.g:2471:50: (iv_ruleOpEquality= ruleOpEquality EOF )
+            // InternalSignalDSL.g:2472:2: iv_ruleOpEquality= ruleOpEquality EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpEqualityRule()); 
@@ -6825,7 +6941,7 @@
 
 
     // $ANTLR start "ruleOpEquality"
-    // InternalSignalDSL.g:2447:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
+    // InternalSignalDSL.g:2478:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
     public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6835,45 +6951,45 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2453:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
-            // InternalSignalDSL.g:2454:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            // InternalSignalDSL.g:2484:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
+            // InternalSignalDSL.g:2485:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
             {
-            // InternalSignalDSL.g:2454:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
-            int alt34=4;
+            // InternalSignalDSL.g:2485:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            int alt37=4;
             switch ( input.LA(1) ) {
-            case 53:
+            case 57:
                 {
-                alt34=1;
+                alt37=1;
                 }
                 break;
-            case 54:
+            case 58:
                 {
-                alt34=2;
+                alt37=2;
                 }
                 break;
-            case 55:
+            case 59:
                 {
-                alt34=3;
+                alt37=3;
                 }
                 break;
-            case 56:
+            case 60:
                 {
-                alt34=4;
+                alt37=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 34, 0, input);
+                    new NoViableAltException("", 37, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt34) {
+            switch (alt37) {
                 case 1 :
-                    // InternalSignalDSL.g:2455:3: kw= '=='
+                    // InternalSignalDSL.g:2486:3: kw= '=='
                     {
-                    kw=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -6884,9 +7000,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2461:3: kw= '!='
+                    // InternalSignalDSL.g:2492:3: kw= '!='
                     {
-                    kw=(Token)match(input,54,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -6897,9 +7013,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2467:3: kw= '==='
+                    // InternalSignalDSL.g:2498:3: kw= '==='
                     {
-                    kw=(Token)match(input,55,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -6910,9 +7026,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2473:3: kw= '!=='
+                    // InternalSignalDSL.g:2504:3: kw= '!=='
                     {
-                    kw=(Token)match(input,56,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -6947,7 +7063,7 @@
 
 
     // $ANTLR start "entryRuleXRelationalExpression"
-    // InternalSignalDSL.g:2482:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
+    // InternalSignalDSL.g:2513:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
     public final EObject entryRuleXRelationalExpression() throws RecognitionException {
         EObject current = null;
 
@@ -6955,8 +7071,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2482:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
-            // InternalSignalDSL.g:2483:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
+            // InternalSignalDSL.g:2513:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
+            // InternalSignalDSL.g:2514:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXRelationalExpressionRule()); 
@@ -6987,7 +7103,7 @@
 
 
     // $ANTLR start "ruleXRelationalExpression"
-    // InternalSignalDSL.g:2489:1: ruleXRelationalExpression returns [EObject current=null] : (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) ;
+    // InternalSignalDSL.g:2520:1: ruleXRelationalExpression returns [EObject current=null] : (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) ;
     public final EObject ruleXRelationalExpression() throws RecognitionException {
         EObject current = null;
 
@@ -7003,11 +7119,11 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2495:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
-            // InternalSignalDSL.g:2496:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // InternalSignalDSL.g:2526:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
+            // InternalSignalDSL.g:2527:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
             {
-            // InternalSignalDSL.g:2496:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
-            // InternalSignalDSL.g:2497:3: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            // InternalSignalDSL.g:2527:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // InternalSignalDSL.g:2528:3: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -7025,50 +7141,50 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:2505:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
-            loop35:
+            // InternalSignalDSL.g:2536:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            loop38:
             do {
-                int alt35=3;
+                int alt38=3;
                 switch ( input.LA(1) ) {
-                case 48:
+                case 52:
                     {
-                    int LA35_2 = input.LA(2);
+                    int LA38_2 = input.LA(2);
 
                     if ( (synpred12_InternalSignalDSL()) ) {
-                        alt35=2;
+                        alt38=2;
                     }
 
 
                     }
                     break;
-                case 49:
+                case 53:
                     {
-                    int LA35_3 = input.LA(2);
+                    int LA38_3 = input.LA(2);
 
                     if ( (synpred12_InternalSignalDSL()) ) {
-                        alt35=2;
+                        alt38=2;
                     }
 
 
                     }
                     break;
-                case 57:
+                case 61:
                     {
-                    int LA35_4 = input.LA(2);
+                    int LA38_4 = input.LA(2);
 
                     if ( (synpred11_InternalSignalDSL()) ) {
-                        alt35=1;
+                        alt38=1;
                     }
 
 
                     }
                     break;
-                case 50:
+                case 54:
                     {
-                    int LA35_5 = input.LA(2);
+                    int LA38_5 = input.LA(2);
 
                     if ( (synpred12_InternalSignalDSL()) ) {
-                        alt35=2;
+                        alt38=2;
                     }
 
 
@@ -7077,21 +7193,21 @@
 
                 }
 
-                switch (alt35) {
+                switch (alt38) {
             	case 1 :
-            	    // InternalSignalDSL.g:2506:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // InternalSignalDSL.g:2537:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
             	    {
-            	    // InternalSignalDSL.g:2506:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
-            	    // InternalSignalDSL.g:2507:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalSignalDSL.g:2537:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // InternalSignalDSL.g:2538:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
             	    {
-            	    // InternalSignalDSL.g:2507:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
-            	    // InternalSignalDSL.g:2508:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
+            	    // InternalSignalDSL.g:2538:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
+            	    // InternalSignalDSL.g:2539:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
             	    {
-            	    // InternalSignalDSL.g:2514:6: ( () otherlv_2= 'instanceof' )
-            	    // InternalSignalDSL.g:2515:7: () otherlv_2= 'instanceof'
+            	    // InternalSignalDSL.g:2545:6: ( () otherlv_2= 'instanceof' )
+            	    // InternalSignalDSL.g:2546:7: () otherlv_2= 'instanceof'
             	    {
-            	    // InternalSignalDSL.g:2515:7: ()
-            	    // InternalSignalDSL.g:2516:8: 
+            	    // InternalSignalDSL.g:2546:7: ()
+            	    // InternalSignalDSL.g:2547:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -7103,7 +7219,7 @@
 
             	    }
 
-            	    otherlv_2=(Token)match(input,57,FOLLOW_44); if (state.failed) return current;
+            	    otherlv_2=(Token)match(input,61,FOLLOW_44); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      							newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
@@ -7115,11 +7231,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2528:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    // InternalSignalDSL.g:2529:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalSignalDSL.g:2559:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalSignalDSL.g:2560:6: (lv_type_3_0= ruleJvmTypeReference )
             	    {
-            	    // InternalSignalDSL.g:2529:6: (lv_type_3_0= ruleJvmTypeReference )
-            	    // InternalSignalDSL.g:2530:7: lv_type_3_0= ruleJvmTypeReference
+            	    // InternalSignalDSL.g:2560:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalSignalDSL.g:2561:7: lv_type_3_0= ruleJvmTypeReference
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -7157,19 +7273,19 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalSignalDSL.g:2549:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    // InternalSignalDSL.g:2580:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
             	    {
-            	    // InternalSignalDSL.g:2549:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
-            	    // InternalSignalDSL.g:2550:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    // InternalSignalDSL.g:2580:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    // InternalSignalDSL.g:2581:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
             	    {
-            	    // InternalSignalDSL.g:2550:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
-            	    // InternalSignalDSL.g:2551:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
+            	    // InternalSignalDSL.g:2581:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
+            	    // InternalSignalDSL.g:2582:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
             	    {
-            	    // InternalSignalDSL.g:2561:6: ( () ( ( ruleOpCompare ) ) )
-            	    // InternalSignalDSL.g:2562:7: () ( ( ruleOpCompare ) )
+            	    // InternalSignalDSL.g:2592:6: ( () ( ( ruleOpCompare ) ) )
+            	    // InternalSignalDSL.g:2593:7: () ( ( ruleOpCompare ) )
             	    {
-            	    // InternalSignalDSL.g:2562:7: ()
-            	    // InternalSignalDSL.g:2563:8: 
+            	    // InternalSignalDSL.g:2593:7: ()
+            	    // InternalSignalDSL.g:2594:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -7181,11 +7297,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2569:7: ( ( ruleOpCompare ) )
-            	    // InternalSignalDSL.g:2570:8: ( ruleOpCompare )
+            	    // InternalSignalDSL.g:2600:7: ( ( ruleOpCompare ) )
+            	    // InternalSignalDSL.g:2601:8: ( ruleOpCompare )
             	    {
-            	    // InternalSignalDSL.g:2570:8: ( ruleOpCompare )
-            	    // InternalSignalDSL.g:2571:9: ruleOpCompare
+            	    // InternalSignalDSL.g:2601:8: ( ruleOpCompare )
+            	    // InternalSignalDSL.g:2602:9: ruleOpCompare
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -7221,11 +7337,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2587:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
-            	    // InternalSignalDSL.g:2588:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    // InternalSignalDSL.g:2618:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    // InternalSignalDSL.g:2619:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
             	    {
-            	    // InternalSignalDSL.g:2588:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
-            	    // InternalSignalDSL.g:2589:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
+            	    // InternalSignalDSL.g:2619:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    // InternalSignalDSL.g:2620:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -7264,7 +7380,7 @@
             	    break;
 
             	default :
-            	    break loop35;
+            	    break loop38;
                 }
             } while (true);
 
@@ -7293,7 +7409,7 @@
 
 
     // $ANTLR start "entryRuleOpCompare"
-    // InternalSignalDSL.g:2612:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
+    // InternalSignalDSL.g:2643:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
     public final String entryRuleOpCompare() throws RecognitionException {
         String current = null;
 
@@ -7301,8 +7417,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2612:49: (iv_ruleOpCompare= ruleOpCompare EOF )
-            // InternalSignalDSL.g:2613:2: iv_ruleOpCompare= ruleOpCompare EOF
+            // InternalSignalDSL.g:2643:49: (iv_ruleOpCompare= ruleOpCompare EOF )
+            // InternalSignalDSL.g:2644:2: iv_ruleOpCompare= ruleOpCompare EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpCompareRule()); 
@@ -7333,7 +7449,7 @@
 
 
     // $ANTLR start "ruleOpCompare"
-    // InternalSignalDSL.g:2619:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
+    // InternalSignalDSL.g:2650:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
     public final AntlrDatatypeRuleToken ruleOpCompare() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -7343,54 +7459,54 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2625:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
-            // InternalSignalDSL.g:2626:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            // InternalSignalDSL.g:2656:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
+            // InternalSignalDSL.g:2657:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
             {
-            // InternalSignalDSL.g:2626:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
-            int alt36=4;
+            // InternalSignalDSL.g:2657:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            int alt39=4;
             switch ( input.LA(1) ) {
-            case 50:
+            case 54:
                 {
-                alt36=1;
+                alt39=1;
                 }
                 break;
-            case 48:
+            case 52:
                 {
-                int LA36_2 = input.LA(2);
+                int LA39_2 = input.LA(2);
 
-                if ( (LA36_2==EOF||(LA36_2>=RULE_STRING && LA36_2<=RULE_DECIMAL)||LA36_2==14||(LA36_2>=29 && LA36_2<=31)||LA36_2==36||(LA36_2>=40 && LA36_2<=41)||LA36_2==48||(LA36_2>=64 && LA36_2<=65)||LA36_2==69||LA36_2==77||LA36_2==79||(LA36_2>=82 && LA36_2<=84)||(LA36_2>=87 && LA36_2<=96)||LA36_2==98) ) {
-                    alt36=4;
+                if ( (LA39_2==EOF||(LA39_2>=RULE_STRING && LA39_2<=RULE_DECIMAL)||LA39_2==14||(LA39_2>=33 && LA39_2<=35)||LA39_2==40||(LA39_2>=44 && LA39_2<=45)||LA39_2==52||(LA39_2>=68 && LA39_2<=69)||LA39_2==73||LA39_2==81||LA39_2==83||(LA39_2>=86 && LA39_2<=88)||(LA39_2>=91 && LA39_2<=100)||LA39_2==102) ) {
+                    alt39=4;
                 }
-                else if ( (LA36_2==39) ) {
-                    alt36=2;
+                else if ( (LA39_2==43) ) {
+                    alt39=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 36, 2, input);
+                        new NoViableAltException("", 39, 2, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 49:
+            case 53:
                 {
-                alt36=3;
+                alt39=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 36, 0, input);
+                    new NoViableAltException("", 39, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt36) {
+            switch (alt39) {
                 case 1 :
-                    // InternalSignalDSL.g:2627:3: kw= '>='
+                    // InternalSignalDSL.g:2658:3: kw= '>='
                     {
-                    kw=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,54,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -7401,19 +7517,19 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2633:3: (kw= '<' kw= '=' )
+                    // InternalSignalDSL.g:2664:3: (kw= '<' kw= '=' )
                     {
-                    // InternalSignalDSL.g:2633:3: (kw= '<' kw= '=' )
-                    // InternalSignalDSL.g:2634:4: kw= '<' kw= '='
+                    // InternalSignalDSL.g:2664:3: (kw= '<' kw= '=' )
+                    // InternalSignalDSL.g:2665:4: kw= '<' kw= '='
                     {
-                    kw=(Token)match(input,48,FOLLOW_30); if (state.failed) return current;
+                    kw=(Token)match(input,52,FOLLOW_30); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0());
                       			
                     }
-                    kw=(Token)match(input,39,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,43,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -7427,9 +7543,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2646:3: kw= '>'
+                    // InternalSignalDSL.g:2677:3: kw= '>'
                     {
-                    kw=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -7440,9 +7556,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2652:3: kw= '<'
+                    // InternalSignalDSL.g:2683:3: kw= '<'
                     {
-                    kw=(Token)match(input,48,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -7477,7 +7593,7 @@
 
 
     // $ANTLR start "entryRuleXOtherOperatorExpression"
-    // InternalSignalDSL.g:2661:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
+    // InternalSignalDSL.g:2692:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
     public final EObject entryRuleXOtherOperatorExpression() throws RecognitionException {
         EObject current = null;
 
@@ -7485,8 +7601,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2661:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
-            // InternalSignalDSL.g:2662:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
+            // InternalSignalDSL.g:2692:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
+            // InternalSignalDSL.g:2693:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); 
@@ -7517,7 +7633,7 @@
 
 
     // $ANTLR start "ruleXOtherOperatorExpression"
-    // InternalSignalDSL.g:2668:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
+    // InternalSignalDSL.g:2699:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
     public final EObject ruleXOtherOperatorExpression() throws RecognitionException {
         EObject current = null;
 
@@ -7530,11 +7646,11 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2674:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
-            // InternalSignalDSL.g:2675:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // InternalSignalDSL.g:2705:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
+            // InternalSignalDSL.g:2706:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
             {
-            // InternalSignalDSL.g:2675:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
-            // InternalSignalDSL.g:2676:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            // InternalSignalDSL.g:2706:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // InternalSignalDSL.g:2707:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -7552,23 +7668,23 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:2684:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
-            loop37:
+            // InternalSignalDSL.g:2715:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            loop40:
             do {
-                int alt37=2;
-                alt37 = dfa37.predict(input);
-                switch (alt37) {
+                int alt40=2;
+                alt40 = dfa40.predict(input);
+                switch (alt40) {
             	case 1 :
-            	    // InternalSignalDSL.g:2685:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // InternalSignalDSL.g:2716:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
             	    {
-            	    // InternalSignalDSL.g:2685:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
-            	    // InternalSignalDSL.g:2686:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
+            	    // InternalSignalDSL.g:2716:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
+            	    // InternalSignalDSL.g:2717:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
             	    {
-            	    // InternalSignalDSL.g:2696:5: ( () ( ( ruleOpOther ) ) )
-            	    // InternalSignalDSL.g:2697:6: () ( ( ruleOpOther ) )
+            	    // InternalSignalDSL.g:2727:5: ( () ( ( ruleOpOther ) ) )
+            	    // InternalSignalDSL.g:2728:6: () ( ( ruleOpOther ) )
             	    {
-            	    // InternalSignalDSL.g:2697:6: ()
-            	    // InternalSignalDSL.g:2698:7: 
+            	    // InternalSignalDSL.g:2728:6: ()
+            	    // InternalSignalDSL.g:2729:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -7580,11 +7696,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2704:6: ( ( ruleOpOther ) )
-            	    // InternalSignalDSL.g:2705:7: ( ruleOpOther )
+            	    // InternalSignalDSL.g:2735:6: ( ( ruleOpOther ) )
+            	    // InternalSignalDSL.g:2736:7: ( ruleOpOther )
             	    {
-            	    // InternalSignalDSL.g:2705:7: ( ruleOpOther )
-            	    // InternalSignalDSL.g:2706:8: ruleOpOther
+            	    // InternalSignalDSL.g:2736:7: ( ruleOpOther )
+            	    // InternalSignalDSL.g:2737:8: ruleOpOther
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -7620,11 +7736,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2722:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
-            	    // InternalSignalDSL.g:2723:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // InternalSignalDSL.g:2753:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // InternalSignalDSL.g:2754:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
             	    {
-            	    // InternalSignalDSL.g:2723:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
-            	    // InternalSignalDSL.g:2724:6: lv_rightOperand_3_0= ruleXAdditiveExpression
+            	    // InternalSignalDSL.g:2754:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // InternalSignalDSL.g:2755:6: lv_rightOperand_3_0= ruleXAdditiveExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -7660,7 +7776,7 @@
             	    break;
 
             	default :
-            	    break loop37;
+            	    break loop40;
                 }
             } while (true);
 
@@ -7689,7 +7805,7 @@
 
 
     // $ANTLR start "entryRuleOpOther"
-    // InternalSignalDSL.g:2746:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
+    // InternalSignalDSL.g:2777:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
     public final String entryRuleOpOther() throws RecognitionException {
         String current = null;
 
@@ -7697,8 +7813,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2746:47: (iv_ruleOpOther= ruleOpOther EOF )
-            // InternalSignalDSL.g:2747:2: iv_ruleOpOther= ruleOpOther EOF
+            // InternalSignalDSL.g:2777:47: (iv_ruleOpOther= ruleOpOther EOF )
+            // InternalSignalDSL.g:2778:2: iv_ruleOpOther= ruleOpOther EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpOtherRule()); 
@@ -7729,7 +7845,7 @@
 
 
     // $ANTLR start "ruleOpOther"
-    // InternalSignalDSL.g:2753:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) ;
+    // InternalSignalDSL.g:2784:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) ;
     public final AntlrDatatypeRuleToken ruleOpOther() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -7739,17 +7855,17 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2759:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
-            // InternalSignalDSL.g:2760:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            // InternalSignalDSL.g:2790:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
+            // InternalSignalDSL.g:2791:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
             {
-            // InternalSignalDSL.g:2760:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
-            int alt40=9;
-            alt40 = dfa40.predict(input);
-            switch (alt40) {
+            // InternalSignalDSL.g:2791:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            int alt43=9;
+            alt43 = dfa43.predict(input);
+            switch (alt43) {
                 case 1 :
-                    // InternalSignalDSL.g:2761:3: kw= '->'
+                    // InternalSignalDSL.g:2792:3: kw= '->'
                     {
-                    kw=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -7760,9 +7876,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2767:3: kw= '..<'
+                    // InternalSignalDSL.g:2798:3: kw= '..<'
                     {
-                    kw=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -7773,19 +7889,19 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:2773:3: (kw= '>' kw= '..' )
+                    // InternalSignalDSL.g:2804:3: (kw= '>' kw= '..' )
                     {
-                    // InternalSignalDSL.g:2773:3: (kw= '>' kw= '..' )
-                    // InternalSignalDSL.g:2774:4: kw= '>' kw= '..'
+                    // InternalSignalDSL.g:2804:3: (kw= '>' kw= '..' )
+                    // InternalSignalDSL.g:2805:4: kw= '>' kw= '..'
                     {
-                    kw=(Token)match(input,49,FOLLOW_46); if (state.failed) return current;
+                    kw=(Token)match(input,53,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
                       			
                     }
-                    kw=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -7799,9 +7915,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:2786:3: kw= '..'
+                    // InternalSignalDSL.g:2817:3: kw= '..'
                     {
-                    kw=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -7812,9 +7928,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:2792:3: kw= '=>'
+                    // InternalSignalDSL.g:2823:3: kw= '=>'
                     {
-                    kw=(Token)match(input,61,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,65,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -7825,35 +7941,35 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:2798:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // InternalSignalDSL.g:2829:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
                     {
-                    // InternalSignalDSL.g:2798:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
-                    // InternalSignalDSL.g:2799:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    // InternalSignalDSL.g:2829:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // InternalSignalDSL.g:2830:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
                     {
-                    kw=(Token)match(input,49,FOLLOW_47); if (state.failed) return current;
+                    kw=(Token)match(input,53,FOLLOW_47); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
                       			
                     }
-                    // InternalSignalDSL.g:2804:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
-                    int alt38=2;
-                    int LA38_0 = input.LA(1);
+                    // InternalSignalDSL.g:2835:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    int alt41=2;
+                    int LA41_0 = input.LA(1);
 
-                    if ( (LA38_0==49) ) {
-                        int LA38_1 = input.LA(2);
+                    if ( (LA41_0==53) ) {
+                        int LA41_1 = input.LA(2);
 
-                        if ( (LA38_1==EOF||(LA38_1>=RULE_STRING && LA38_1<=RULE_DECIMAL)||LA38_1==14||(LA38_1>=29 && LA38_1<=31)||LA38_1==36||(LA38_1>=40 && LA38_1<=41)||LA38_1==48||(LA38_1>=64 && LA38_1<=65)||LA38_1==69||LA38_1==77||LA38_1==79||(LA38_1>=82 && LA38_1<=84)||(LA38_1>=87 && LA38_1<=96)||LA38_1==98) ) {
-                            alt38=2;
+                        if ( (LA41_1==EOF||(LA41_1>=RULE_STRING && LA41_1<=RULE_DECIMAL)||LA41_1==14||(LA41_1>=33 && LA41_1<=35)||LA41_1==40||(LA41_1>=44 && LA41_1<=45)||LA41_1==52||(LA41_1>=68 && LA41_1<=69)||LA41_1==73||LA41_1==81||LA41_1==83||(LA41_1>=86 && LA41_1<=88)||(LA41_1>=91 && LA41_1<=100)||LA41_1==102) ) {
+                            alt41=2;
                         }
-                        else if ( (LA38_1==49) && (synpred14_InternalSignalDSL())) {
-                            alt38=1;
+                        else if ( (LA41_1==53) && (synpred14_InternalSignalDSL())) {
+                            alt41=1;
                         }
                         else {
                             if (state.backtracking>0) {state.failed=true; return current;}
                             NoViableAltException nvae =
-                                new NoViableAltException("", 38, 1, input);
+                                new NoViableAltException("", 41, 1, input);
 
                             throw nvae;
                         }
@@ -7861,28 +7977,28 @@
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 38, 0, input);
+                            new NoViableAltException("", 41, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt38) {
+                    switch (alt41) {
                         case 1 :
-                            // InternalSignalDSL.g:2805:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // InternalSignalDSL.g:2836:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
                             {
-                            // InternalSignalDSL.g:2805:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
-                            // InternalSignalDSL.g:2806:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
+                            // InternalSignalDSL.g:2836:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // InternalSignalDSL.g:2837:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
                             {
-                            // InternalSignalDSL.g:2811:6: (kw= '>' kw= '>' )
-                            // InternalSignalDSL.g:2812:7: kw= '>' kw= '>'
+                            // InternalSignalDSL.g:2842:6: (kw= '>' kw= '>' )
+                            // InternalSignalDSL.g:2843:7: kw= '>' kw= '>'
                             {
-                            kw=(Token)match(input,49,FOLLOW_47); if (state.failed) return current;
+                            kw=(Token)match(input,53,FOLLOW_47); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
                               							newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0());
                               						
                             }
-                            kw=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
@@ -7899,9 +8015,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:2825:5: kw= '>'
+                            // InternalSignalDSL.g:2856:5: kw= '>'
                             {
-                            kw=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -7921,67 +8037,67 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:2833:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // InternalSignalDSL.g:2864:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
                     {
-                    // InternalSignalDSL.g:2833:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
-                    // InternalSignalDSL.g:2834:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    // InternalSignalDSL.g:2864:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // InternalSignalDSL.g:2865:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
                     {
-                    kw=(Token)match(input,48,FOLLOW_48); if (state.failed) return current;
+                    kw=(Token)match(input,52,FOLLOW_48); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
                       			
                     }
-                    // InternalSignalDSL.g:2839:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
-                    int alt39=3;
-                    int LA39_0 = input.LA(1);
+                    // InternalSignalDSL.g:2870:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    int alt42=3;
+                    int LA42_0 = input.LA(1);
 
-                    if ( (LA39_0==48) ) {
-                        int LA39_1 = input.LA(2);
+                    if ( (LA42_0==52) ) {
+                        int LA42_1 = input.LA(2);
 
                         if ( (synpred15_InternalSignalDSL()) ) {
-                            alt39=1;
+                            alt42=1;
                         }
                         else if ( (true) ) {
-                            alt39=2;
+                            alt42=2;
                         }
                         else {
                             if (state.backtracking>0) {state.failed=true; return current;}
                             NoViableAltException nvae =
-                                new NoViableAltException("", 39, 1, input);
+                                new NoViableAltException("", 42, 1, input);
 
                             throw nvae;
                         }
                     }
-                    else if ( (LA39_0==61) ) {
-                        alt39=3;
+                    else if ( (LA42_0==65) ) {
+                        alt42=3;
                     }
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 39, 0, input);
+                            new NoViableAltException("", 42, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt39) {
+                    switch (alt42) {
                         case 1 :
-                            // InternalSignalDSL.g:2840:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // InternalSignalDSL.g:2871:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
                             {
-                            // InternalSignalDSL.g:2840:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
-                            // InternalSignalDSL.g:2841:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
+                            // InternalSignalDSL.g:2871:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // InternalSignalDSL.g:2872:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
                             {
-                            // InternalSignalDSL.g:2846:6: (kw= '<' kw= '<' )
-                            // InternalSignalDSL.g:2847:7: kw= '<' kw= '<'
+                            // InternalSignalDSL.g:2877:6: (kw= '<' kw= '<' )
+                            // InternalSignalDSL.g:2878:7: kw= '<' kw= '<'
                             {
-                            kw=(Token)match(input,48,FOLLOW_37); if (state.failed) return current;
+                            kw=(Token)match(input,52,FOLLOW_37); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
                               							newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0());
                               						
                             }
-                            kw=(Token)match(input,48,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
@@ -7998,9 +8114,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:2860:5: kw= '<'
+                            // InternalSignalDSL.g:2891:5: kw= '<'
                             {
-                            kw=(Token)match(input,48,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -8011,9 +8127,9 @@
                             }
                             break;
                         case 3 :
-                            // InternalSignalDSL.g:2866:5: kw= '=>'
+                            // InternalSignalDSL.g:2897:5: kw= '=>'
                             {
-                            kw=(Token)match(input,61,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,65,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -8033,9 +8149,9 @@
                     }
                     break;
                 case 8 :
-                    // InternalSignalDSL.g:2874:3: kw= '<>'
+                    // InternalSignalDSL.g:2905:3: kw= '<>'
                     {
-                    kw=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8046,9 +8162,9 @@
                     }
                     break;
                 case 9 :
-                    // InternalSignalDSL.g:2880:3: kw= '?:'
+                    // InternalSignalDSL.g:2911:3: kw= '?:'
                     {
-                    kw=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8083,7 +8199,7 @@
 
 
     // $ANTLR start "entryRuleXAdditiveExpression"
-    // InternalSignalDSL.g:2889:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
+    // InternalSignalDSL.g:2920:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
     public final EObject entryRuleXAdditiveExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8091,8 +8207,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2889:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
-            // InternalSignalDSL.g:2890:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
+            // InternalSignalDSL.g:2920:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
+            // InternalSignalDSL.g:2921:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); 
@@ -8123,7 +8239,7 @@
 
 
     // $ANTLR start "ruleXAdditiveExpression"
-    // InternalSignalDSL.g:2896:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
+    // InternalSignalDSL.g:2927:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
     public final EObject ruleXAdditiveExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8136,11 +8252,11 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2902:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
-            // InternalSignalDSL.g:2903:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // InternalSignalDSL.g:2933:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
+            // InternalSignalDSL.g:2934:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
             {
-            // InternalSignalDSL.g:2903:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
-            // InternalSignalDSL.g:2904:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            // InternalSignalDSL.g:2934:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // InternalSignalDSL.g:2935:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -8158,44 +8274,44 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:2912:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
-            loop41:
+            // InternalSignalDSL.g:2943:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            loop44:
             do {
-                int alt41=2;
-                int LA41_0 = input.LA(1);
+                int alt44=2;
+                int LA44_0 = input.LA(1);
 
-                if ( (LA41_0==64) ) {
-                    int LA41_2 = input.LA(2);
+                if ( (LA44_0==68) ) {
+                    int LA44_2 = input.LA(2);
 
                     if ( (synpred16_InternalSignalDSL()) ) {
-                        alt41=1;
+                        alt44=1;
                     }
 
 
                 }
-                else if ( (LA41_0==65) ) {
-                    int LA41_3 = input.LA(2);
+                else if ( (LA44_0==69) ) {
+                    int LA44_3 = input.LA(2);
 
                     if ( (synpred16_InternalSignalDSL()) ) {
-                        alt41=1;
+                        alt44=1;
                     }
 
 
                 }
 
 
-                switch (alt41) {
+                switch (alt44) {
             	case 1 :
-            	    // InternalSignalDSL.g:2913:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // InternalSignalDSL.g:2944:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
             	    {
-            	    // InternalSignalDSL.g:2913:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
-            	    // InternalSignalDSL.g:2914:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
+            	    // InternalSignalDSL.g:2944:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
+            	    // InternalSignalDSL.g:2945:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
             	    {
-            	    // InternalSignalDSL.g:2924:5: ( () ( ( ruleOpAdd ) ) )
-            	    // InternalSignalDSL.g:2925:6: () ( ( ruleOpAdd ) )
+            	    // InternalSignalDSL.g:2955:5: ( () ( ( ruleOpAdd ) ) )
+            	    // InternalSignalDSL.g:2956:6: () ( ( ruleOpAdd ) )
             	    {
-            	    // InternalSignalDSL.g:2925:6: ()
-            	    // InternalSignalDSL.g:2926:7: 
+            	    // InternalSignalDSL.g:2956:6: ()
+            	    // InternalSignalDSL.g:2957:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8207,11 +8323,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2932:6: ( ( ruleOpAdd ) )
-            	    // InternalSignalDSL.g:2933:7: ( ruleOpAdd )
+            	    // InternalSignalDSL.g:2963:6: ( ( ruleOpAdd ) )
+            	    // InternalSignalDSL.g:2964:7: ( ruleOpAdd )
             	    {
-            	    // InternalSignalDSL.g:2933:7: ( ruleOpAdd )
-            	    // InternalSignalDSL.g:2934:8: ruleOpAdd
+            	    // InternalSignalDSL.g:2964:7: ( ruleOpAdd )
+            	    // InternalSignalDSL.g:2965:8: ruleOpAdd
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8247,11 +8363,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:2950:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
-            	    // InternalSignalDSL.g:2951:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // InternalSignalDSL.g:2981:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // InternalSignalDSL.g:2982:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
             	    {
-            	    // InternalSignalDSL.g:2951:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
-            	    // InternalSignalDSL.g:2952:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
+            	    // InternalSignalDSL.g:2982:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // InternalSignalDSL.g:2983:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8287,7 +8403,7 @@
             	    break;
 
             	default :
-            	    break loop41;
+            	    break loop44;
                 }
             } while (true);
 
@@ -8316,7 +8432,7 @@
 
 
     // $ANTLR start "entryRuleOpAdd"
-    // InternalSignalDSL.g:2974:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
+    // InternalSignalDSL.g:3005:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
     public final String entryRuleOpAdd() throws RecognitionException {
         String current = null;
 
@@ -8324,8 +8440,8 @@
 
 
         try {
-            // InternalSignalDSL.g:2974:45: (iv_ruleOpAdd= ruleOpAdd EOF )
-            // InternalSignalDSL.g:2975:2: iv_ruleOpAdd= ruleOpAdd EOF
+            // InternalSignalDSL.g:3005:45: (iv_ruleOpAdd= ruleOpAdd EOF )
+            // InternalSignalDSL.g:3006:2: iv_ruleOpAdd= ruleOpAdd EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpAddRule()); 
@@ -8356,7 +8472,7 @@
 
 
     // $ANTLR start "ruleOpAdd"
-    // InternalSignalDSL.g:2981:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
+    // InternalSignalDSL.g:3012:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
     public final AntlrDatatypeRuleToken ruleOpAdd() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -8366,31 +8482,31 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:2987:2: ( (kw= '+' | kw= '-' ) )
-            // InternalSignalDSL.g:2988:2: (kw= '+' | kw= '-' )
+            // InternalSignalDSL.g:3018:2: ( (kw= '+' | kw= '-' ) )
+            // InternalSignalDSL.g:3019:2: (kw= '+' | kw= '-' )
             {
-            // InternalSignalDSL.g:2988:2: (kw= '+' | kw= '-' )
-            int alt42=2;
-            int LA42_0 = input.LA(1);
+            // InternalSignalDSL.g:3019:2: (kw= '+' | kw= '-' )
+            int alt45=2;
+            int LA45_0 = input.LA(1);
 
-            if ( (LA42_0==64) ) {
-                alt42=1;
+            if ( (LA45_0==68) ) {
+                alt45=1;
             }
-            else if ( (LA42_0==65) ) {
-                alt42=2;
+            else if ( (LA45_0==69) ) {
+                alt45=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 42, 0, input);
+                    new NoViableAltException("", 45, 0, input);
 
                 throw nvae;
             }
-            switch (alt42) {
+            switch (alt45) {
                 case 1 :
-                    // InternalSignalDSL.g:2989:3: kw= '+'
+                    // InternalSignalDSL.g:3020:3: kw= '+'
                     {
-                    kw=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8401,9 +8517,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:2995:3: kw= '-'
+                    // InternalSignalDSL.g:3026:3: kw= '-'
                     {
-                    kw=(Token)match(input,65,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8438,7 +8554,7 @@
 
 
     // $ANTLR start "entryRuleXMultiplicativeExpression"
-    // InternalSignalDSL.g:3004:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
+    // InternalSignalDSL.g:3035:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
     public final EObject entryRuleXMultiplicativeExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8446,8 +8562,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3004:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
-            // InternalSignalDSL.g:3005:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
+            // InternalSignalDSL.g:3035:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
+            // InternalSignalDSL.g:3036:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); 
@@ -8478,7 +8594,7 @@
 
 
     // $ANTLR start "ruleXMultiplicativeExpression"
-    // InternalSignalDSL.g:3011:1: ruleXMultiplicativeExpression returns [EObject current=null] : (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) ;
+    // InternalSignalDSL.g:3042:1: ruleXMultiplicativeExpression returns [EObject current=null] : (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) ;
     public final EObject ruleXMultiplicativeExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8491,11 +8607,11 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3017:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
-            // InternalSignalDSL.g:3018:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            // InternalSignalDSL.g:3048:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
+            // InternalSignalDSL.g:3049:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
             {
-            // InternalSignalDSL.g:3018:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
-            // InternalSignalDSL.g:3019:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            // InternalSignalDSL.g:3049:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            // InternalSignalDSL.g:3050:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -8513,50 +8629,50 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:3027:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
-            loop43:
+            // InternalSignalDSL.g:3058:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            loop46:
             do {
-                int alt43=2;
+                int alt46=2;
                 switch ( input.LA(1) ) {
-                case 32:
+                case 36:
                     {
-                    int LA43_2 = input.LA(2);
+                    int LA46_2 = input.LA(2);
 
                     if ( (synpred17_InternalSignalDSL()) ) {
-                        alt43=1;
+                        alt46=1;
                     }
 
 
                     }
                     break;
-                case 66:
+                case 70:
                     {
-                    int LA43_3 = input.LA(2);
+                    int LA46_3 = input.LA(2);
 
                     if ( (synpred17_InternalSignalDSL()) ) {
-                        alt43=1;
+                        alt46=1;
                     }
 
 
                     }
                     break;
-                case 67:
+                case 71:
                     {
-                    int LA43_4 = input.LA(2);
+                    int LA46_4 = input.LA(2);
 
                     if ( (synpred17_InternalSignalDSL()) ) {
-                        alt43=1;
+                        alt46=1;
                     }
 
 
                     }
                     break;
-                case 68:
+                case 72:
                     {
-                    int LA43_5 = input.LA(2);
+                    int LA46_5 = input.LA(2);
 
                     if ( (synpred17_InternalSignalDSL()) ) {
-                        alt43=1;
+                        alt46=1;
                     }
 
 
@@ -8565,18 +8681,18 @@
 
                 }
 
-                switch (alt43) {
+                switch (alt46) {
             	case 1 :
-            	    // InternalSignalDSL.g:3028:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    // InternalSignalDSL.g:3059:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
             	    {
-            	    // InternalSignalDSL.g:3028:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
-            	    // InternalSignalDSL.g:3029:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
+            	    // InternalSignalDSL.g:3059:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
+            	    // InternalSignalDSL.g:3060:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
             	    {
-            	    // InternalSignalDSL.g:3039:5: ( () ( ( ruleOpMulti ) ) )
-            	    // InternalSignalDSL.g:3040:6: () ( ( ruleOpMulti ) )
+            	    // InternalSignalDSL.g:3070:5: ( () ( ( ruleOpMulti ) ) )
+            	    // InternalSignalDSL.g:3071:6: () ( ( ruleOpMulti ) )
             	    {
-            	    // InternalSignalDSL.g:3040:6: ()
-            	    // InternalSignalDSL.g:3041:7: 
+            	    // InternalSignalDSL.g:3071:6: ()
+            	    // InternalSignalDSL.g:3072:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8588,11 +8704,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3047:6: ( ( ruleOpMulti ) )
-            	    // InternalSignalDSL.g:3048:7: ( ruleOpMulti )
+            	    // InternalSignalDSL.g:3078:6: ( ( ruleOpMulti ) )
+            	    // InternalSignalDSL.g:3079:7: ( ruleOpMulti )
             	    {
-            	    // InternalSignalDSL.g:3048:7: ( ruleOpMulti )
-            	    // InternalSignalDSL.g:3049:8: ruleOpMulti
+            	    // InternalSignalDSL.g:3079:7: ( ruleOpMulti )
+            	    // InternalSignalDSL.g:3080:8: ruleOpMulti
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8628,11 +8744,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3065:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
-            	    // InternalSignalDSL.g:3066:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    // InternalSignalDSL.g:3096:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    // InternalSignalDSL.g:3097:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
             	    {
-            	    // InternalSignalDSL.g:3066:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
-            	    // InternalSignalDSL.g:3067:6: lv_rightOperand_3_0= ruleXUnaryOperation
+            	    // InternalSignalDSL.g:3097:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    // InternalSignalDSL.g:3098:6: lv_rightOperand_3_0= ruleXUnaryOperation
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8668,7 +8784,7 @@
             	    break;
 
             	default :
-            	    break loop43;
+            	    break loop46;
                 }
             } while (true);
 
@@ -8697,7 +8813,7 @@
 
 
     // $ANTLR start "entryRuleOpMulti"
-    // InternalSignalDSL.g:3089:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
+    // InternalSignalDSL.g:3120:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
     public final String entryRuleOpMulti() throws RecognitionException {
         String current = null;
 
@@ -8705,8 +8821,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3089:47: (iv_ruleOpMulti= ruleOpMulti EOF )
-            // InternalSignalDSL.g:3090:2: iv_ruleOpMulti= ruleOpMulti EOF
+            // InternalSignalDSL.g:3120:47: (iv_ruleOpMulti= ruleOpMulti EOF )
+            // InternalSignalDSL.g:3121:2: iv_ruleOpMulti= ruleOpMulti EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpMultiRule()); 
@@ -8737,7 +8853,7 @@
 
 
     // $ANTLR start "ruleOpMulti"
-    // InternalSignalDSL.g:3096:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
+    // InternalSignalDSL.g:3127:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
     public final AntlrDatatypeRuleToken ruleOpMulti() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -8747,45 +8863,45 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3102:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
-            // InternalSignalDSL.g:3103:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            // InternalSignalDSL.g:3133:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
+            // InternalSignalDSL.g:3134:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
             {
-            // InternalSignalDSL.g:3103:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
-            int alt44=4;
+            // InternalSignalDSL.g:3134:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            int alt47=4;
             switch ( input.LA(1) ) {
-            case 32:
+            case 36:
                 {
-                alt44=1;
+                alt47=1;
                 }
                 break;
-            case 66:
+            case 70:
                 {
-                alt44=2;
+                alt47=2;
                 }
                 break;
-            case 67:
+            case 71:
                 {
-                alt44=3;
+                alt47=3;
                 }
                 break;
-            case 68:
+            case 72:
                 {
-                alt44=4;
+                alt47=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 44, 0, input);
+                    new NoViableAltException("", 47, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt44) {
+            switch (alt47) {
                 case 1 :
-                    // InternalSignalDSL.g:3104:3: kw= '*'
+                    // InternalSignalDSL.g:3135:3: kw= '*'
                     {
-                    kw=(Token)match(input,32,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,36,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8796,9 +8912,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3110:3: kw= '**'
+                    // InternalSignalDSL.g:3141:3: kw= '**'
                     {
-                    kw=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8809,9 +8925,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3116:3: kw= '/'
+                    // InternalSignalDSL.g:3147:3: kw= '/'
                     {
-                    kw=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8822,9 +8938,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3122:3: kw= '%'
+                    // InternalSignalDSL.g:3153:3: kw= '%'
                     {
-                    kw=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8859,7 +8975,7 @@
 
 
     // $ANTLR start "entryRuleXUnaryOperation"
-    // InternalSignalDSL.g:3131:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
+    // InternalSignalDSL.g:3162:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
     public final EObject entryRuleXUnaryOperation() throws RecognitionException {
         EObject current = null;
 
@@ -8867,8 +8983,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3131:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
-            // InternalSignalDSL.g:3132:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
+            // InternalSignalDSL.g:3162:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
+            // InternalSignalDSL.g:3163:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXUnaryOperationRule()); 
@@ -8899,7 +9015,7 @@
 
 
     // $ANTLR start "ruleXUnaryOperation"
-    // InternalSignalDSL.g:3138:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
+    // InternalSignalDSL.g:3169:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
     public final EObject ruleXUnaryOperation() throws RecognitionException {
         EObject current = null;
 
@@ -8912,35 +9028,35 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3144:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
-            // InternalSignalDSL.g:3145:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            // InternalSignalDSL.g:3175:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
+            // InternalSignalDSL.g:3176:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
             {
-            // InternalSignalDSL.g:3145:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
-            int alt45=2;
-            int LA45_0 = input.LA(1);
+            // InternalSignalDSL.g:3176:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            int alt48=2;
+            int LA48_0 = input.LA(1);
 
-            if ( ((LA45_0>=64 && LA45_0<=65)||LA45_0==69) ) {
-                alt45=1;
+            if ( ((LA48_0>=68 && LA48_0<=69)||LA48_0==73) ) {
+                alt48=1;
             }
-            else if ( ((LA45_0>=RULE_STRING && LA45_0<=RULE_DECIMAL)||LA45_0==14||(LA45_0>=29 && LA45_0<=31)||LA45_0==36||(LA45_0>=40 && LA45_0<=41)||LA45_0==48||LA45_0==77||LA45_0==79||(LA45_0>=82 && LA45_0<=84)||(LA45_0>=87 && LA45_0<=96)||LA45_0==98) ) {
-                alt45=2;
+            else if ( ((LA48_0>=RULE_STRING && LA48_0<=RULE_DECIMAL)||LA48_0==14||(LA48_0>=33 && LA48_0<=35)||LA48_0==40||(LA48_0>=44 && LA48_0<=45)||LA48_0==52||LA48_0==81||LA48_0==83||(LA48_0>=86 && LA48_0<=88)||(LA48_0>=91 && LA48_0<=100)||LA48_0==102) ) {
+                alt48=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 45, 0, input);
+                    new NoViableAltException("", 48, 0, input);
 
                 throw nvae;
             }
-            switch (alt45) {
+            switch (alt48) {
                 case 1 :
-                    // InternalSignalDSL.g:3146:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalSignalDSL.g:3177:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
                     {
-                    // InternalSignalDSL.g:3146:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
-                    // InternalSignalDSL.g:3147:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalSignalDSL.g:3177:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalSignalDSL.g:3178:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
                     {
-                    // InternalSignalDSL.g:3147:4: ()
-                    // InternalSignalDSL.g:3148:5: 
+                    // InternalSignalDSL.g:3178:4: ()
+                    // InternalSignalDSL.g:3179:5: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8952,11 +9068,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:3154:4: ( ( ruleOpUnary ) )
-                    // InternalSignalDSL.g:3155:5: ( ruleOpUnary )
+                    // InternalSignalDSL.g:3185:4: ( ( ruleOpUnary ) )
+                    // InternalSignalDSL.g:3186:5: ( ruleOpUnary )
                     {
-                    // InternalSignalDSL.g:3155:5: ( ruleOpUnary )
-                    // InternalSignalDSL.g:3156:6: ruleOpUnary
+                    // InternalSignalDSL.g:3186:5: ( ruleOpUnary )
+                    // InternalSignalDSL.g:3187:6: ruleOpUnary
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8986,11 +9102,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:3170:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
-                    // InternalSignalDSL.g:3171:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalSignalDSL.g:3201:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalSignalDSL.g:3202:5: (lv_operand_2_0= ruleXUnaryOperation )
                     {
-                    // InternalSignalDSL.g:3171:5: (lv_operand_2_0= ruleXUnaryOperation )
-                    // InternalSignalDSL.g:3172:6: lv_operand_2_0= ruleXUnaryOperation
+                    // InternalSignalDSL.g:3202:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalSignalDSL.g:3203:6: lv_operand_2_0= ruleXUnaryOperation
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9028,7 +9144,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3191:3: this_XCastedExpression_3= ruleXCastedExpression
+                    // InternalSignalDSL.g:3222:3: this_XCastedExpression_3= ruleXCastedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9074,7 +9190,7 @@
 
 
     // $ANTLR start "entryRuleOpUnary"
-    // InternalSignalDSL.g:3203:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
+    // InternalSignalDSL.g:3234:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
     public final String entryRuleOpUnary() throws RecognitionException {
         String current = null;
 
@@ -9082,8 +9198,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3203:47: (iv_ruleOpUnary= ruleOpUnary EOF )
-            // InternalSignalDSL.g:3204:2: iv_ruleOpUnary= ruleOpUnary EOF
+            // InternalSignalDSL.g:3234:47: (iv_ruleOpUnary= ruleOpUnary EOF )
+            // InternalSignalDSL.g:3235:2: iv_ruleOpUnary= ruleOpUnary EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpUnaryRule()); 
@@ -9114,7 +9230,7 @@
 
 
     // $ANTLR start "ruleOpUnary"
-    // InternalSignalDSL.g:3210:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
+    // InternalSignalDSL.g:3241:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
     public final AntlrDatatypeRuleToken ruleOpUnary() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -9124,40 +9240,40 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3216:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
-            // InternalSignalDSL.g:3217:2: (kw= '!' | kw= '-' | kw= '+' )
+            // InternalSignalDSL.g:3247:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
+            // InternalSignalDSL.g:3248:2: (kw= '!' | kw= '-' | kw= '+' )
             {
-            // InternalSignalDSL.g:3217:2: (kw= '!' | kw= '-' | kw= '+' )
-            int alt46=3;
+            // InternalSignalDSL.g:3248:2: (kw= '!' | kw= '-' | kw= '+' )
+            int alt49=3;
             switch ( input.LA(1) ) {
+            case 73:
+                {
+                alt49=1;
+                }
+                break;
             case 69:
                 {
-                alt46=1;
+                alt49=2;
                 }
                 break;
-            case 65:
+            case 68:
                 {
-                alt46=2;
-                }
-                break;
-            case 64:
-                {
-                alt46=3;
+                alt49=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 46, 0, input);
+                    new NoViableAltException("", 49, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt46) {
+            switch (alt49) {
                 case 1 :
-                    // InternalSignalDSL.g:3218:3: kw= '!'
+                    // InternalSignalDSL.g:3249:3: kw= '!'
                     {
-                    kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9168,9 +9284,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3224:3: kw= '-'
+                    // InternalSignalDSL.g:3255:3: kw= '-'
                     {
-                    kw=(Token)match(input,65,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9181,9 +9297,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3230:3: kw= '+'
+                    // InternalSignalDSL.g:3261:3: kw= '+'
                     {
-                    kw=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9218,7 +9334,7 @@
 
 
     // $ANTLR start "entryRuleXCastedExpression"
-    // InternalSignalDSL.g:3239:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
+    // InternalSignalDSL.g:3270:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
     public final EObject entryRuleXCastedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -9226,8 +9342,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3239:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
-            // InternalSignalDSL.g:3240:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
+            // InternalSignalDSL.g:3270:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
+            // InternalSignalDSL.g:3271:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCastedExpressionRule()); 
@@ -9258,7 +9374,7 @@
 
 
     // $ANTLR start "ruleXCastedExpression"
-    // InternalSignalDSL.g:3246:1: ruleXCastedExpression returns [EObject current=null] : (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
+    // InternalSignalDSL.g:3277:1: ruleXCastedExpression returns [EObject current=null] : (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
     public final EObject ruleXCastedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -9272,11 +9388,11 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3252:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
-            // InternalSignalDSL.g:3253:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalSignalDSL.g:3283:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
+            // InternalSignalDSL.g:3284:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
             {
-            // InternalSignalDSL.g:3253:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
-            // InternalSignalDSL.g:3254:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            // InternalSignalDSL.g:3284:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalSignalDSL.g:3285:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -9294,35 +9410,35 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:3262:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
-            loop47:
+            // InternalSignalDSL.g:3293:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            loop50:
             do {
-                int alt47=2;
-                int LA47_0 = input.LA(1);
+                int alt50=2;
+                int LA50_0 = input.LA(1);
 
-                if ( (LA47_0==70) ) {
-                    int LA47_2 = input.LA(2);
+                if ( (LA50_0==74) ) {
+                    int LA50_2 = input.LA(2);
 
                     if ( (synpred18_InternalSignalDSL()) ) {
-                        alt47=1;
+                        alt50=1;
                     }
 
 
                 }
 
 
-                switch (alt47) {
+                switch (alt50) {
             	case 1 :
-            	    // InternalSignalDSL.g:3263:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalSignalDSL.g:3294:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
             	    {
-            	    // InternalSignalDSL.g:3263:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
-            	    // InternalSignalDSL.g:3264:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
+            	    // InternalSignalDSL.g:3294:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
+            	    // InternalSignalDSL.g:3295:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
             	    {
-            	    // InternalSignalDSL.g:3270:5: ( () otherlv_2= 'as' )
-            	    // InternalSignalDSL.g:3271:6: () otherlv_2= 'as'
+            	    // InternalSignalDSL.g:3301:5: ( () otherlv_2= 'as' )
+            	    // InternalSignalDSL.g:3302:6: () otherlv_2= 'as'
             	    {
-            	    // InternalSignalDSL.g:3271:6: ()
-            	    // InternalSignalDSL.g:3272:7: 
+            	    // InternalSignalDSL.g:3302:6: ()
+            	    // InternalSignalDSL.g:3303:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9334,7 +9450,7 @@
 
             	    }
 
-            	    otherlv_2=(Token)match(input,70,FOLLOW_44); if (state.failed) return current;
+            	    otherlv_2=(Token)match(input,74,FOLLOW_44); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      						newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
@@ -9346,11 +9462,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3284:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    // InternalSignalDSL.g:3285:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalSignalDSL.g:3315:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalSignalDSL.g:3316:5: (lv_type_3_0= ruleJvmTypeReference )
             	    {
-            	    // InternalSignalDSL.g:3285:5: (lv_type_3_0= ruleJvmTypeReference )
-            	    // InternalSignalDSL.g:3286:6: lv_type_3_0= ruleJvmTypeReference
+            	    // InternalSignalDSL.g:3316:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalSignalDSL.g:3317:6: lv_type_3_0= ruleJvmTypeReference
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9386,7 +9502,7 @@
             	    break;
 
             	default :
-            	    break loop47;
+            	    break loop50;
                 }
             } while (true);
 
@@ -9415,7 +9531,7 @@
 
 
     // $ANTLR start "entryRuleXPostfixOperation"
-    // InternalSignalDSL.g:3308:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
+    // InternalSignalDSL.g:3339:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
     public final EObject entryRuleXPostfixOperation() throws RecognitionException {
         EObject current = null;
 
@@ -9423,8 +9539,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3308:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
-            // InternalSignalDSL.g:3309:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
+            // InternalSignalDSL.g:3339:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
+            // InternalSignalDSL.g:3340:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXPostfixOperationRule()); 
@@ -9455,7 +9571,7 @@
 
 
     // $ANTLR start "ruleXPostfixOperation"
-    // InternalSignalDSL.g:3315:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
+    // InternalSignalDSL.g:3346:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
     public final EObject ruleXPostfixOperation() throws RecognitionException {
         EObject current = null;
 
@@ -9466,11 +9582,11 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3321:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
-            // InternalSignalDSL.g:3322:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalSignalDSL.g:3352:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
+            // InternalSignalDSL.g:3353:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
             {
-            // InternalSignalDSL.g:3322:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
-            // InternalSignalDSL.g:3323:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            // InternalSignalDSL.g:3353:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalSignalDSL.g:3354:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
             {
             if ( state.backtracking==0 ) {
 
@@ -9488,33 +9604,33 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:3331:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
-            int alt48=2;
-            int LA48_0 = input.LA(1);
+            // InternalSignalDSL.g:3362:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            int alt51=2;
+            int LA51_0 = input.LA(1);
 
-            if ( (LA48_0==71) ) {
-                int LA48_1 = input.LA(2);
+            if ( (LA51_0==75) ) {
+                int LA51_1 = input.LA(2);
 
                 if ( (synpred19_InternalSignalDSL()) ) {
-                    alt48=1;
+                    alt51=1;
                 }
             }
-            else if ( (LA48_0==72) ) {
-                int LA48_2 = input.LA(2);
+            else if ( (LA51_0==76) ) {
+                int LA51_2 = input.LA(2);
 
                 if ( (synpred19_InternalSignalDSL()) ) {
-                    alt48=1;
+                    alt51=1;
                 }
             }
-            switch (alt48) {
+            switch (alt51) {
                 case 1 :
-                    // InternalSignalDSL.g:3332:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
+                    // InternalSignalDSL.g:3363:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
                     {
-                    // InternalSignalDSL.g:3342:4: ( () ( ( ruleOpPostfix ) ) )
-                    // InternalSignalDSL.g:3343:5: () ( ( ruleOpPostfix ) )
+                    // InternalSignalDSL.g:3373:4: ( () ( ( ruleOpPostfix ) ) )
+                    // InternalSignalDSL.g:3374:5: () ( ( ruleOpPostfix ) )
                     {
-                    // InternalSignalDSL.g:3343:5: ()
-                    // InternalSignalDSL.g:3344:6: 
+                    // InternalSignalDSL.g:3374:5: ()
+                    // InternalSignalDSL.g:3375:6: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9526,11 +9642,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:3350:5: ( ( ruleOpPostfix ) )
-                    // InternalSignalDSL.g:3351:6: ( ruleOpPostfix )
+                    // InternalSignalDSL.g:3381:5: ( ( ruleOpPostfix ) )
+                    // InternalSignalDSL.g:3382:6: ( ruleOpPostfix )
                     {
-                    // InternalSignalDSL.g:3351:6: ( ruleOpPostfix )
-                    // InternalSignalDSL.g:3352:7: ruleOpPostfix
+                    // InternalSignalDSL.g:3382:6: ( ruleOpPostfix )
+                    // InternalSignalDSL.g:3383:7: ruleOpPostfix
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9594,7 +9710,7 @@
 
 
     // $ANTLR start "entryRuleOpPostfix"
-    // InternalSignalDSL.g:3372:1: entryRuleOpPostfix returns [String current=null] : iv_ruleOpPostfix= ruleOpPostfix EOF ;
+    // InternalSignalDSL.g:3403:1: entryRuleOpPostfix returns [String current=null] : iv_ruleOpPostfix= ruleOpPostfix EOF ;
     public final String entryRuleOpPostfix() throws RecognitionException {
         String current = null;
 
@@ -9602,8 +9718,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3372:49: (iv_ruleOpPostfix= ruleOpPostfix EOF )
-            // InternalSignalDSL.g:3373:2: iv_ruleOpPostfix= ruleOpPostfix EOF
+            // InternalSignalDSL.g:3403:49: (iv_ruleOpPostfix= ruleOpPostfix EOF )
+            // InternalSignalDSL.g:3404:2: iv_ruleOpPostfix= ruleOpPostfix EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpPostfixRule()); 
@@ -9634,7 +9750,7 @@
 
 
     // $ANTLR start "ruleOpPostfix"
-    // InternalSignalDSL.g:3379:1: ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '++' | kw= '--' ) ;
+    // InternalSignalDSL.g:3410:1: ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '++' | kw= '--' ) ;
     public final AntlrDatatypeRuleToken ruleOpPostfix() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -9644,31 +9760,31 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3385:2: ( (kw= '++' | kw= '--' ) )
-            // InternalSignalDSL.g:3386:2: (kw= '++' | kw= '--' )
+            // InternalSignalDSL.g:3416:2: ( (kw= '++' | kw= '--' ) )
+            // InternalSignalDSL.g:3417:2: (kw= '++' | kw= '--' )
             {
-            // InternalSignalDSL.g:3386:2: (kw= '++' | kw= '--' )
-            int alt49=2;
-            int LA49_0 = input.LA(1);
+            // InternalSignalDSL.g:3417:2: (kw= '++' | kw= '--' )
+            int alt52=2;
+            int LA52_0 = input.LA(1);
 
-            if ( (LA49_0==71) ) {
-                alt49=1;
+            if ( (LA52_0==75) ) {
+                alt52=1;
             }
-            else if ( (LA49_0==72) ) {
-                alt49=2;
+            else if ( (LA52_0==76) ) {
+                alt52=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 49, 0, input);
+                    new NoViableAltException("", 52, 0, input);
 
                 throw nvae;
             }
-            switch (alt49) {
+            switch (alt52) {
                 case 1 :
-                    // InternalSignalDSL.g:3387:3: kw= '++'
+                    // InternalSignalDSL.g:3418:3: kw= '++'
                     {
-                    kw=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9679,9 +9795,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3393:3: kw= '--'
+                    // InternalSignalDSL.g:3424:3: kw= '--'
                     {
-                    kw=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9716,7 +9832,7 @@
 
 
     // $ANTLR start "entryRuleXMemberFeatureCall"
-    // InternalSignalDSL.g:3402:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
+    // InternalSignalDSL.g:3433:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
     public final EObject entryRuleXMemberFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -9724,8 +9840,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3402:59: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
-            // InternalSignalDSL.g:3403:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
+            // InternalSignalDSL.g:3433:59: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
+            // InternalSignalDSL.g:3434:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXMemberFeatureCallRule()); 
@@ -9756,7 +9872,7 @@
 
 
     // $ANTLR start "ruleXMemberFeatureCall"
-    // InternalSignalDSL.g:3409:1: ruleXMemberFeatureCall returns [EObject current=null] : (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) ;
+    // InternalSignalDSL.g:3440:1: ruleXMemberFeatureCall returns [EObject current=null] : (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) ;
     public final EObject ruleXMemberFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -9792,11 +9908,11 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3415:2: ( (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) )
-            // InternalSignalDSL.g:3416:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+            // InternalSignalDSL.g:3446:2: ( (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) )
+            // InternalSignalDSL.g:3447:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
             {
-            // InternalSignalDSL.g:3416:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
-            // InternalSignalDSL.g:3417:3: this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+            // InternalSignalDSL.g:3447:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+            // InternalSignalDSL.g:3448:3: this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
             {
             if ( state.backtracking==0 ) {
 
@@ -9814,45 +9930,45 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:3425:3: ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
-            loop58:
+            // InternalSignalDSL.g:3456:3: ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+            loop61:
             do {
-                int alt58=3;
+                int alt61=3;
                 switch ( input.LA(1) ) {
-                case 73:
+                case 77:
                     {
-                    int LA58_2 = input.LA(2);
+                    int LA61_2 = input.LA(2);
 
                     if ( (synpred20_InternalSignalDSL()) ) {
-                        alt58=1;
+                        alt61=1;
                     }
                     else if ( (synpred21_InternalSignalDSL()) ) {
-                        alt58=2;
+                        alt61=2;
                     }
 
 
                     }
                     break;
-                case 74:
+                case 78:
                     {
-                    int LA58_3 = input.LA(2);
+                    int LA61_3 = input.LA(2);
 
                     if ( (synpred20_InternalSignalDSL()) ) {
-                        alt58=1;
+                        alt61=1;
                     }
                     else if ( (synpred21_InternalSignalDSL()) ) {
-                        alt58=2;
+                        alt61=2;
                     }
 
 
                     }
                     break;
-                case 75:
+                case 79:
                     {
-                    int LA58_4 = input.LA(2);
+                    int LA61_4 = input.LA(2);
 
                     if ( (synpred21_InternalSignalDSL()) ) {
-                        alt58=2;
+                        alt61=2;
                     }
 
 
@@ -9861,21 +9977,21 @@
 
                 }
 
-                switch (alt58) {
+                switch (alt61) {
             	case 1 :
-            	    // InternalSignalDSL.g:3426:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    // InternalSignalDSL.g:3457:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
             	    {
-            	    // InternalSignalDSL.g:3426:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
-            	    // InternalSignalDSL.g:3427:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
+            	    // InternalSignalDSL.g:3457:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    // InternalSignalDSL.g:3458:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
             	    {
-            	    // InternalSignalDSL.g:3427:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
-            	    // InternalSignalDSL.g:3428:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    // InternalSignalDSL.g:3458:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+            	    // InternalSignalDSL.g:3459:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
             	    {
-            	    // InternalSignalDSL.g:3448:6: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
-            	    // InternalSignalDSL.g:3449:7: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+            	    // InternalSignalDSL.g:3479:6: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    // InternalSignalDSL.g:3480:7: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
             	    {
-            	    // InternalSignalDSL.g:3449:7: ()
-            	    // InternalSignalDSL.g:3450:8: 
+            	    // InternalSignalDSL.g:3480:7: ()
+            	    // InternalSignalDSL.g:3481:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9887,28 +10003,28 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3456:7: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
-            	    int alt50=2;
-            	    int LA50_0 = input.LA(1);
+            	    // InternalSignalDSL.g:3487:7: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
+            	    int alt53=2;
+            	    int LA53_0 = input.LA(1);
 
-            	    if ( (LA50_0==73) ) {
-            	        alt50=1;
+            	    if ( (LA53_0==77) ) {
+            	        alt53=1;
             	    }
-            	    else if ( (LA50_0==74) ) {
-            	        alt50=2;
+            	    else if ( (LA53_0==78) ) {
+            	        alt53=2;
             	    }
             	    else {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        NoViableAltException nvae =
-            	            new NoViableAltException("", 50, 0, input);
+            	            new NoViableAltException("", 53, 0, input);
 
             	        throw nvae;
             	    }
-            	    switch (alt50) {
+            	    switch (alt53) {
             	        case 1 :
-            	            // InternalSignalDSL.g:3457:8: otherlv_2= '.'
+            	            // InternalSignalDSL.g:3488:8: otherlv_2= '.'
             	            {
-            	            otherlv_2=(Token)match(input,73,FOLLOW_54); if (state.failed) return current;
+            	            otherlv_2=(Token)match(input,77,FOLLOW_54); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(otherlv_2, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
@@ -9918,15 +10034,15 @@
             	            }
             	            break;
             	        case 2 :
-            	            // InternalSignalDSL.g:3462:8: ( (lv_explicitStatic_3_0= '::' ) )
+            	            // InternalSignalDSL.g:3493:8: ( (lv_explicitStatic_3_0= '::' ) )
             	            {
-            	            // InternalSignalDSL.g:3462:8: ( (lv_explicitStatic_3_0= '::' ) )
-            	            // InternalSignalDSL.g:3463:9: (lv_explicitStatic_3_0= '::' )
+            	            // InternalSignalDSL.g:3493:8: ( (lv_explicitStatic_3_0= '::' ) )
+            	            // InternalSignalDSL.g:3494:9: (lv_explicitStatic_3_0= '::' )
             	            {
-            	            // InternalSignalDSL.g:3463:9: (lv_explicitStatic_3_0= '::' )
-            	            // InternalSignalDSL.g:3464:10: lv_explicitStatic_3_0= '::'
+            	            // InternalSignalDSL.g:3494:9: (lv_explicitStatic_3_0= '::' )
+            	            // InternalSignalDSL.g:3495:10: lv_explicitStatic_3_0= '::'
             	            {
-            	            lv_explicitStatic_3_0=(Token)match(input,74,FOLLOW_54); if (state.failed) return current;
+            	            lv_explicitStatic_3_0=(Token)match(input,78,FOLLOW_54); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_explicitStatic_3_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
@@ -9952,11 +10068,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3477:7: ( ( ruleFeatureCallID ) )
-            	    // InternalSignalDSL.g:3478:8: ( ruleFeatureCallID )
+            	    // InternalSignalDSL.g:3508:7: ( ( ruleFeatureCallID ) )
+            	    // InternalSignalDSL.g:3509:8: ( ruleFeatureCallID )
             	    {
-            	    // InternalSignalDSL.g:3478:8: ( ruleFeatureCallID )
-            	    // InternalSignalDSL.g:3479:9: ruleFeatureCallID
+            	    // InternalSignalDSL.g:3509:8: ( ruleFeatureCallID )
+            	    // InternalSignalDSL.g:3510:9: ruleFeatureCallID
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10007,11 +10123,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3502:5: ( (lv_value_6_0= ruleXAssignment ) )
-            	    // InternalSignalDSL.g:3503:6: (lv_value_6_0= ruleXAssignment )
+            	    // InternalSignalDSL.g:3533:5: ( (lv_value_6_0= ruleXAssignment ) )
+            	    // InternalSignalDSL.g:3534:6: (lv_value_6_0= ruleXAssignment )
             	    {
-            	    // InternalSignalDSL.g:3503:6: (lv_value_6_0= ruleXAssignment )
-            	    // InternalSignalDSL.g:3504:7: lv_value_6_0= ruleXAssignment
+            	    // InternalSignalDSL.g:3534:6: (lv_value_6_0= ruleXAssignment )
+            	    // InternalSignalDSL.g:3535:7: lv_value_6_0= ruleXAssignment
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10049,19 +10165,19 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalSignalDSL.g:3523:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+            	    // InternalSignalDSL.g:3554:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
             	    {
-            	    // InternalSignalDSL.g:3523:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
-            	    // InternalSignalDSL.g:3524:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+            	    // InternalSignalDSL.g:3554:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+            	    // InternalSignalDSL.g:3555:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
             	    {
-            	    // InternalSignalDSL.g:3524:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
-            	    // InternalSignalDSL.g:3525:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    // InternalSignalDSL.g:3555:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
+            	    // InternalSignalDSL.g:3556:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
             	    {
-            	    // InternalSignalDSL.g:3545:6: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
-            	    // InternalSignalDSL.g:3546:7: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    // InternalSignalDSL.g:3576:6: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    // InternalSignalDSL.g:3577:7: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
             	    {
-            	    // InternalSignalDSL.g:3546:7: ()
-            	    // InternalSignalDSL.g:3547:8: 
+            	    // InternalSignalDSL.g:3577:7: ()
+            	    // InternalSignalDSL.g:3578:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10073,37 +10189,37 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3553:7: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
-            	    int alt51=3;
+            	    // InternalSignalDSL.g:3584:7: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    int alt54=3;
             	    switch ( input.LA(1) ) {
-            	    case 73:
+            	    case 77:
             	        {
-            	        alt51=1;
+            	        alt54=1;
             	        }
             	        break;
-            	    case 75:
+            	    case 79:
             	        {
-            	        alt51=2;
+            	        alt54=2;
             	        }
             	        break;
-            	    case 74:
+            	    case 78:
             	        {
-            	        alt51=3;
+            	        alt54=3;
             	        }
             	        break;
             	    default:
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        NoViableAltException nvae =
-            	            new NoViableAltException("", 51, 0, input);
+            	            new NoViableAltException("", 54, 0, input);
 
             	        throw nvae;
             	    }
 
-            	    switch (alt51) {
+            	    switch (alt54) {
             	        case 1 :
-            	            // InternalSignalDSL.g:3554:8: otherlv_8= '.'
+            	            // InternalSignalDSL.g:3585:8: otherlv_8= '.'
             	            {
-            	            otherlv_8=(Token)match(input,73,FOLLOW_55); if (state.failed) return current;
+            	            otherlv_8=(Token)match(input,77,FOLLOW_55); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
@@ -10113,15 +10229,15 @@
             	            }
             	            break;
             	        case 2 :
-            	            // InternalSignalDSL.g:3559:8: ( (lv_nullSafe_9_0= '?.' ) )
+            	            // InternalSignalDSL.g:3590:8: ( (lv_nullSafe_9_0= '?.' ) )
             	            {
-            	            // InternalSignalDSL.g:3559:8: ( (lv_nullSafe_9_0= '?.' ) )
-            	            // InternalSignalDSL.g:3560:9: (lv_nullSafe_9_0= '?.' )
+            	            // InternalSignalDSL.g:3590:8: ( (lv_nullSafe_9_0= '?.' ) )
+            	            // InternalSignalDSL.g:3591:9: (lv_nullSafe_9_0= '?.' )
             	            {
-            	            // InternalSignalDSL.g:3560:9: (lv_nullSafe_9_0= '?.' )
-            	            // InternalSignalDSL.g:3561:10: lv_nullSafe_9_0= '?.'
+            	            // InternalSignalDSL.g:3591:9: (lv_nullSafe_9_0= '?.' )
+            	            // InternalSignalDSL.g:3592:10: lv_nullSafe_9_0= '?.'
             	            {
-            	            lv_nullSafe_9_0=(Token)match(input,75,FOLLOW_55); if (state.failed) return current;
+            	            lv_nullSafe_9_0=(Token)match(input,79,FOLLOW_55); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
@@ -10145,15 +10261,15 @@
             	            }
             	            break;
             	        case 3 :
-            	            // InternalSignalDSL.g:3574:8: ( (lv_explicitStatic_10_0= '::' ) )
+            	            // InternalSignalDSL.g:3605:8: ( (lv_explicitStatic_10_0= '::' ) )
             	            {
-            	            // InternalSignalDSL.g:3574:8: ( (lv_explicitStatic_10_0= '::' ) )
-            	            // InternalSignalDSL.g:3575:9: (lv_explicitStatic_10_0= '::' )
+            	            // InternalSignalDSL.g:3605:8: ( (lv_explicitStatic_10_0= '::' ) )
+            	            // InternalSignalDSL.g:3606:9: (lv_explicitStatic_10_0= '::' )
             	            {
-            	            // InternalSignalDSL.g:3575:9: (lv_explicitStatic_10_0= '::' )
-            	            // InternalSignalDSL.g:3576:10: lv_explicitStatic_10_0= '::'
+            	            // InternalSignalDSL.g:3606:9: (lv_explicitStatic_10_0= '::' )
+            	            // InternalSignalDSL.g:3607:10: lv_explicitStatic_10_0= '::'
             	            {
-            	            lv_explicitStatic_10_0=(Token)match(input,74,FOLLOW_55); if (state.failed) return current;
+            	            lv_explicitStatic_10_0=(Token)match(input,78,FOLLOW_55); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
@@ -10185,28 +10301,28 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3591:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
-            	    int alt53=2;
-            	    int LA53_0 = input.LA(1);
+            	    // InternalSignalDSL.g:3622:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
+            	    int alt56=2;
+            	    int LA56_0 = input.LA(1);
 
-            	    if ( (LA53_0==48) ) {
-            	        alt53=1;
+            	    if ( (LA56_0==52) ) {
+            	        alt56=1;
             	    }
-            	    switch (alt53) {
+            	    switch (alt56) {
             	        case 1 :
-            	            // InternalSignalDSL.g:3592:6: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
+            	            // InternalSignalDSL.g:3623:6: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
             	            {
-            	            otherlv_11=(Token)match(input,48,FOLLOW_56); if (state.failed) return current;
+            	            otherlv_11=(Token)match(input,52,FOLLOW_56); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
             	              					
             	            }
-            	            // InternalSignalDSL.g:3596:6: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
-            	            // InternalSignalDSL.g:3597:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            // InternalSignalDSL.g:3627:6: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
+            	            // InternalSignalDSL.g:3628:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
             	            {
-            	            // InternalSignalDSL.g:3597:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
-            	            // InternalSignalDSL.g:3598:8: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
+            	            // InternalSignalDSL.g:3628:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            // InternalSignalDSL.g:3629:8: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
             	            {
             	            if ( state.backtracking==0 ) {
 
@@ -10237,32 +10353,32 @@
 
             	            }
 
-            	            // InternalSignalDSL.g:3615:6: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
-            	            loop52:
+            	            // InternalSignalDSL.g:3646:6: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
+            	            loop55:
             	            do {
-            	                int alt52=2;
-            	                int LA52_0 = input.LA(1);
+            	                int alt55=2;
+            	                int LA55_0 = input.LA(1);
 
-            	                if ( (LA52_0==37) ) {
-            	                    alt52=1;
+            	                if ( (LA55_0==41) ) {
+            	                    alt55=1;
             	                }
 
 
-            	                switch (alt52) {
+            	                switch (alt55) {
             	            	case 1 :
-            	            	    // InternalSignalDSL.g:3616:7: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    // InternalSignalDSL.g:3647:7: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
             	            	    {
-            	            	    otherlv_13=(Token)match(input,37,FOLLOW_56); if (state.failed) return current;
+            	            	    otherlv_13=(Token)match(input,41,FOLLOW_56); if (state.failed) return current;
             	            	    if ( state.backtracking==0 ) {
 
             	            	      							newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
             	            	      						
             	            	    }
-            	            	    // InternalSignalDSL.g:3620:7: ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
-            	            	    // InternalSignalDSL.g:3621:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+            	            	    // InternalSignalDSL.g:3651:7: ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    // InternalSignalDSL.g:3652:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
             	            	    {
-            	            	    // InternalSignalDSL.g:3621:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
-            	            	    // InternalSignalDSL.g:3622:9: lv_typeArguments_14_0= ruleJvmArgumentTypeReference
+            	            	    // InternalSignalDSL.g:3652:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+            	            	    // InternalSignalDSL.g:3653:9: lv_typeArguments_14_0= ruleJvmArgumentTypeReference
             	            	    {
             	            	    if ( state.backtracking==0 ) {
 
@@ -10298,11 +10414,11 @@
             	            	    break;
 
             	            	default :
-            	            	    break loop52;
+            	            	    break loop55;
             	                }
             	            } while (true);
 
-            	            otherlv_15=(Token)match(input,49,FOLLOW_55); if (state.failed) return current;
+            	            otherlv_15=(Token)match(input,53,FOLLOW_55); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_15, grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
@@ -10314,11 +10430,11 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3645:5: ( ( ruleIdOrSuper ) )
-            	    // InternalSignalDSL.g:3646:6: ( ruleIdOrSuper )
+            	    // InternalSignalDSL.g:3676:5: ( ( ruleIdOrSuper ) )
+            	    // InternalSignalDSL.g:3677:6: ( ruleIdOrSuper )
             	    {
-            	    // InternalSignalDSL.g:3646:6: ( ruleIdOrSuper )
-            	    // InternalSignalDSL.g:3647:7: ruleIdOrSuper
+            	    // InternalSignalDSL.g:3677:6: ( ruleIdOrSuper )
+            	    // InternalSignalDSL.g:3678:7: ruleIdOrSuper
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10348,20 +10464,20 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3661:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?
-            	    int alt56=2;
-            	    alt56 = dfa56.predict(input);
-            	    switch (alt56) {
+            	    // InternalSignalDSL.g:3692:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?
+            	    int alt59=2;
+            	    alt59 = dfa59.predict(input);
+            	    switch (alt59) {
             	        case 1 :
-            	            // InternalSignalDSL.g:3662:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')'
+            	            // InternalSignalDSL.g:3693:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')'
             	            {
-            	            // InternalSignalDSL.g:3662:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) )
-            	            // InternalSignalDSL.g:3663:7: ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' )
+            	            // InternalSignalDSL.g:3693:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) )
+            	            // InternalSignalDSL.g:3694:7: ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' )
             	            {
-            	            // InternalSignalDSL.g:3667:7: (lv_explicitOperationCall_17_0= '(' )
-            	            // InternalSignalDSL.g:3668:8: lv_explicitOperationCall_17_0= '('
+            	            // InternalSignalDSL.g:3698:7: (lv_explicitOperationCall_17_0= '(' )
+            	            // InternalSignalDSL.g:3699:8: lv_explicitOperationCall_17_0= '('
             	            {
-            	            lv_explicitOperationCall_17_0=(Token)match(input,36,FOLLOW_59); if (state.failed) return current;
+            	            lv_explicitOperationCall_17_0=(Token)match(input,40,FOLLOW_59); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(lv_explicitOperationCall_17_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
@@ -10381,18 +10497,18 @@
 
             	            }
 
-            	            // InternalSignalDSL.g:3680:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?
-            	            int alt55=3;
-            	            alt55 = dfa55.predict(input);
-            	            switch (alt55) {
+            	            // InternalSignalDSL.g:3711:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?
+            	            int alt58=3;
+            	            alt58 = dfa58.predict(input);
+            	            switch (alt58) {
             	                case 1 :
-            	                    // InternalSignalDSL.g:3681:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+            	                    // InternalSignalDSL.g:3712:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
             	                    {
-            	                    // InternalSignalDSL.g:3681:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
-            	                    // InternalSignalDSL.g:3682:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure )
+            	                    // InternalSignalDSL.g:3712:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+            	                    // InternalSignalDSL.g:3713:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure )
             	                    {
-            	                    // InternalSignalDSL.g:3707:8: (lv_memberCallArguments_18_0= ruleXShortClosure )
-            	                    // InternalSignalDSL.g:3708:9: lv_memberCallArguments_18_0= ruleXShortClosure
+            	                    // InternalSignalDSL.g:3738:8: (lv_memberCallArguments_18_0= ruleXShortClosure )
+            	                    // InternalSignalDSL.g:3739:9: lv_memberCallArguments_18_0= ruleXShortClosure
             	                    {
             	                    if ( state.backtracking==0 ) {
 
@@ -10427,16 +10543,16 @@
             	                    }
             	                    break;
             	                case 2 :
-            	                    // InternalSignalDSL.g:3726:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+            	                    // InternalSignalDSL.g:3757:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
             	                    {
-            	                    // InternalSignalDSL.g:3726:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
-            	                    // InternalSignalDSL.g:3727:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+            	                    // InternalSignalDSL.g:3757:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+            	                    // InternalSignalDSL.g:3758:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
             	                    {
-            	                    // InternalSignalDSL.g:3727:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) )
-            	                    // InternalSignalDSL.g:3728:9: (lv_memberCallArguments_19_0= ruleXExpression )
+            	                    // InternalSignalDSL.g:3758:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) )
+            	                    // InternalSignalDSL.g:3759:9: (lv_memberCallArguments_19_0= ruleXExpression )
             	                    {
-            	                    // InternalSignalDSL.g:3728:9: (lv_memberCallArguments_19_0= ruleXExpression )
-            	                    // InternalSignalDSL.g:3729:10: lv_memberCallArguments_19_0= ruleXExpression
+            	                    // InternalSignalDSL.g:3759:9: (lv_memberCallArguments_19_0= ruleXExpression )
+            	                    // InternalSignalDSL.g:3760:10: lv_memberCallArguments_19_0= ruleXExpression
             	                    {
             	                    if ( state.backtracking==0 ) {
 
@@ -10467,32 +10583,32 @@
 
             	                    }
 
-            	                    // InternalSignalDSL.g:3746:8: (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
-            	                    loop54:
+            	                    // InternalSignalDSL.g:3777:8: (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+            	                    loop57:
             	                    do {
-            	                        int alt54=2;
-            	                        int LA54_0 = input.LA(1);
+            	                        int alt57=2;
+            	                        int LA57_0 = input.LA(1);
 
-            	                        if ( (LA54_0==37) ) {
-            	                            alt54=1;
+            	                        if ( (LA57_0==41) ) {
+            	                            alt57=1;
             	                        }
 
 
-            	                        switch (alt54) {
+            	                        switch (alt57) {
             	                    	case 1 :
-            	                    	    // InternalSignalDSL.g:3747:9: otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+            	                    	    // InternalSignalDSL.g:3778:9: otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) )
             	                    	    {
-            	                    	    otherlv_20=(Token)match(input,37,FOLLOW_31); if (state.failed) return current;
+            	                    	    otherlv_20=(Token)match(input,41,FOLLOW_31); if (state.failed) return current;
             	                    	    if ( state.backtracking==0 ) {
 
             	                    	      									newLeafNode(otherlv_20, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
             	                    	      								
             	                    	    }
-            	                    	    // InternalSignalDSL.g:3751:9: ( (lv_memberCallArguments_21_0= ruleXExpression ) )
-            	                    	    // InternalSignalDSL.g:3752:10: (lv_memberCallArguments_21_0= ruleXExpression )
+            	                    	    // InternalSignalDSL.g:3782:9: ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+            	                    	    // InternalSignalDSL.g:3783:10: (lv_memberCallArguments_21_0= ruleXExpression )
             	                    	    {
-            	                    	    // InternalSignalDSL.g:3752:10: (lv_memberCallArguments_21_0= ruleXExpression )
-            	                    	    // InternalSignalDSL.g:3753:11: lv_memberCallArguments_21_0= ruleXExpression
+            	                    	    // InternalSignalDSL.g:3783:10: (lv_memberCallArguments_21_0= ruleXExpression )
+            	                    	    // InternalSignalDSL.g:3784:11: lv_memberCallArguments_21_0= ruleXExpression
             	                    	    {
             	                    	    if ( state.backtracking==0 ) {
 
@@ -10528,7 +10644,7 @@
             	                    	    break;
 
             	                    	default :
-            	                    	    break loop54;
+            	                    	    break loop57;
             	                        }
             	                    } while (true);
 
@@ -10541,7 +10657,7 @@
 
             	            }
 
-            	            otherlv_22=(Token)match(input,38,FOLLOW_60); if (state.failed) return current;
+            	            otherlv_22=(Token)match(input,42,FOLLOW_60); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_22, grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
@@ -10553,15 +10669,15 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:3778:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
-            	    int alt57=2;
-            	    alt57 = dfa57.predict(input);
-            	    switch (alt57) {
+            	    // InternalSignalDSL.g:3809:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+            	    int alt60=2;
+            	    alt60 = dfa60.predict(input);
+            	    switch (alt60) {
             	        case 1 :
-            	            // InternalSignalDSL.g:3779:6: ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure )
+            	            // InternalSignalDSL.g:3810:6: ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure )
             	            {
-            	            // InternalSignalDSL.g:3785:6: (lv_memberCallArguments_23_0= ruleXClosure )
-            	            // InternalSignalDSL.g:3786:7: lv_memberCallArguments_23_0= ruleXClosure
+            	            // InternalSignalDSL.g:3816:6: (lv_memberCallArguments_23_0= ruleXClosure )
+            	            // InternalSignalDSL.g:3817:7: lv_memberCallArguments_23_0= ruleXClosure
             	            {
             	            if ( state.backtracking==0 ) {
 
@@ -10603,7 +10719,7 @@
             	    break;
 
             	default :
-            	    break loop58;
+            	    break loop61;
                 }
             } while (true);
 
@@ -10632,7 +10748,7 @@
 
 
     // $ANTLR start "entryRuleXPrimaryExpression"
-    // InternalSignalDSL.g:3809:1: entryRuleXPrimaryExpression returns [EObject current=null] : iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF ;
+    // InternalSignalDSL.g:3840:1: entryRuleXPrimaryExpression returns [EObject current=null] : iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF ;
     public final EObject entryRuleXPrimaryExpression() throws RecognitionException {
         EObject current = null;
 
@@ -10640,8 +10756,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3809:59: (iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF )
-            // InternalSignalDSL.g:3810:2: iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF
+            // InternalSignalDSL.g:3840:59: (iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF )
+            // InternalSignalDSL.g:3841:2: iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXPrimaryExpressionRule()); 
@@ -10672,7 +10788,7 @@
 
 
     // $ANTLR start "ruleXPrimaryExpression"
-    // InternalSignalDSL.g:3816:1: ruleXPrimaryExpression returns [EObject current=null] : (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) ;
+    // InternalSignalDSL.g:3847:1: ruleXPrimaryExpression returns [EObject current=null] : (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) ;
     public final EObject ruleXPrimaryExpression() throws RecognitionException {
         EObject current = null;
 
@@ -10711,15 +10827,15 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3822:2: ( (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) )
-            // InternalSignalDSL.g:3823:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
+            // InternalSignalDSL.g:3853:2: ( (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) )
+            // InternalSignalDSL.g:3854:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
             {
-            // InternalSignalDSL.g:3823:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
-            int alt59=15;
-            alt59 = dfa59.predict(input);
-            switch (alt59) {
+            // InternalSignalDSL.g:3854:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
+            int alt62=15;
+            alt62 = dfa62.predict(input);
+            switch (alt62) {
                 case 1 :
-                    // InternalSignalDSL.g:3824:3: this_XConstructorCall_0= ruleXConstructorCall
+                    // InternalSignalDSL.g:3855:3: this_XConstructorCall_0= ruleXConstructorCall
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10741,7 +10857,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:3833:3: this_XBlockExpression_1= ruleXBlockExpression
+                    // InternalSignalDSL.g:3864:3: this_XBlockExpression_1= ruleXBlockExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10763,7 +10879,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:3842:3: this_XSwitchExpression_2= ruleXSwitchExpression
+                    // InternalSignalDSL.g:3873:3: this_XSwitchExpression_2= ruleXSwitchExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10785,10 +10901,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:3851:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
+                    // InternalSignalDSL.g:3882:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
                     {
-                    // InternalSignalDSL.g:3851:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
-                    // InternalSignalDSL.g:3852:4: ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression
+                    // InternalSignalDSL.g:3882:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
+                    // InternalSignalDSL.g:3883:4: ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10813,7 +10929,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:3869:3: this_XFeatureCall_4= ruleXFeatureCall
+                    // InternalSignalDSL.g:3900:3: this_XFeatureCall_4= ruleXFeatureCall
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10835,7 +10951,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:3878:3: this_XLiteral_5= ruleXLiteral
+                    // InternalSignalDSL.g:3909:3: this_XLiteral_5= ruleXLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10857,7 +10973,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:3887:3: this_XIfExpression_6= ruleXIfExpression
+                    // InternalSignalDSL.g:3918:3: this_XIfExpression_6= ruleXIfExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10879,10 +10995,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalSignalDSL.g:3896:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
+                    // InternalSignalDSL.g:3927:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
                     {
-                    // InternalSignalDSL.g:3896:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
-                    // InternalSignalDSL.g:3897:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression
+                    // InternalSignalDSL.g:3927:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
+                    // InternalSignalDSL.g:3928:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10907,7 +11023,7 @@
                     }
                     break;
                 case 9 :
-                    // InternalSignalDSL.g:3920:3: this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression
+                    // InternalSignalDSL.g:3951:3: this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10929,7 +11045,7 @@
                     }
                     break;
                 case 10 :
-                    // InternalSignalDSL.g:3929:3: this_XWhileExpression_9= ruleXWhileExpression
+                    // InternalSignalDSL.g:3960:3: this_XWhileExpression_9= ruleXWhileExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10951,7 +11067,7 @@
                     }
                     break;
                 case 11 :
-                    // InternalSignalDSL.g:3938:3: this_XDoWhileExpression_10= ruleXDoWhileExpression
+                    // InternalSignalDSL.g:3969:3: this_XDoWhileExpression_10= ruleXDoWhileExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10973,7 +11089,7 @@
                     }
                     break;
                 case 12 :
-                    // InternalSignalDSL.g:3947:3: this_XThrowExpression_11= ruleXThrowExpression
+                    // InternalSignalDSL.g:3978:3: this_XThrowExpression_11= ruleXThrowExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10995,7 +11111,7 @@
                     }
                     break;
                 case 13 :
-                    // InternalSignalDSL.g:3956:3: this_XReturnExpression_12= ruleXReturnExpression
+                    // InternalSignalDSL.g:3987:3: this_XReturnExpression_12= ruleXReturnExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11017,7 +11133,7 @@
                     }
                     break;
                 case 14 :
-                    // InternalSignalDSL.g:3965:3: this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression
+                    // InternalSignalDSL.g:3996:3: this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11039,7 +11155,7 @@
                     }
                     break;
                 case 15 :
-                    // InternalSignalDSL.g:3974:3: this_XParenthesizedExpression_14= ruleXParenthesizedExpression
+                    // InternalSignalDSL.g:4005:3: this_XParenthesizedExpression_14= ruleXParenthesizedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11085,7 +11201,7 @@
 
 
     // $ANTLR start "entryRuleXLiteral"
-    // InternalSignalDSL.g:3986:1: entryRuleXLiteral returns [EObject current=null] : iv_ruleXLiteral= ruleXLiteral EOF ;
+    // InternalSignalDSL.g:4017:1: entryRuleXLiteral returns [EObject current=null] : iv_ruleXLiteral= ruleXLiteral EOF ;
     public final EObject entryRuleXLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -11093,8 +11209,8 @@
 
 
         try {
-            // InternalSignalDSL.g:3986:49: (iv_ruleXLiteral= ruleXLiteral EOF )
-            // InternalSignalDSL.g:3987:2: iv_ruleXLiteral= ruleXLiteral EOF
+            // InternalSignalDSL.g:4017:49: (iv_ruleXLiteral= ruleXLiteral EOF )
+            // InternalSignalDSL.g:4018:2: iv_ruleXLiteral= ruleXLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXLiteralRule()); 
@@ -11125,7 +11241,7 @@
 
 
     // $ANTLR start "ruleXLiteral"
-    // InternalSignalDSL.g:3993:1: ruleXLiteral returns [EObject current=null] : (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) ;
+    // InternalSignalDSL.g:4024:1: ruleXLiteral returns [EObject current=null] : (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) ;
     public final EObject ruleXLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -11148,44 +11264,44 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:3999:2: ( (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) )
-            // InternalSignalDSL.g:4000:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
+            // InternalSignalDSL.g:4030:2: ( (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) )
+            // InternalSignalDSL.g:4031:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
             {
-            // InternalSignalDSL.g:4000:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
-            int alt60=7;
-            int LA60_0 = input.LA(1);
+            // InternalSignalDSL.g:4031:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
+            int alt63=7;
+            int LA63_0 = input.LA(1);
 
-            if ( (LA60_0==40) ) {
-                alt60=1;
+            if ( (LA63_0==44) ) {
+                alt63=1;
             }
-            else if ( (LA60_0==41) && (synpred27_InternalSignalDSL())) {
-                alt60=2;
+            else if ( (LA63_0==45) && (synpred27_InternalSignalDSL())) {
+                alt63=2;
             }
-            else if ( ((LA60_0>=90 && LA60_0<=91)) ) {
-                alt60=3;
+            else if ( ((LA63_0>=94 && LA63_0<=95)) ) {
+                alt63=3;
             }
-            else if ( ((LA60_0>=RULE_INT && LA60_0<=RULE_DECIMAL)) ) {
-                alt60=4;
+            else if ( ((LA63_0>=RULE_INT && LA63_0<=RULE_DECIMAL)) ) {
+                alt63=4;
             }
-            else if ( (LA60_0==92) ) {
-                alt60=5;
+            else if ( (LA63_0==96) ) {
+                alt63=5;
             }
-            else if ( (LA60_0==RULE_STRING) ) {
-                alt60=6;
+            else if ( (LA63_0==RULE_STRING) ) {
+                alt63=6;
             }
-            else if ( (LA60_0==93) ) {
-                alt60=7;
+            else if ( (LA63_0==97) ) {
+                alt63=7;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 60, 0, input);
+                    new NoViableAltException("", 63, 0, input);
 
                 throw nvae;
             }
-            switch (alt60) {
+            switch (alt63) {
                 case 1 :
-                    // InternalSignalDSL.g:4001:3: this_XCollectionLiteral_0= ruleXCollectionLiteral
+                    // InternalSignalDSL.g:4032:3: this_XCollectionLiteral_0= ruleXCollectionLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11207,10 +11323,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:4010:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+                    // InternalSignalDSL.g:4041:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
                     {
-                    // InternalSignalDSL.g:4010:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
-                    // InternalSignalDSL.g:4011:4: ( ( () '[' ) )=>this_XClosure_1= ruleXClosure
+                    // InternalSignalDSL.g:4041:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+                    // InternalSignalDSL.g:4042:4: ( ( () '[' ) )=>this_XClosure_1= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11235,7 +11351,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:4027:3: this_XBooleanLiteral_2= ruleXBooleanLiteral
+                    // InternalSignalDSL.g:4058:3: this_XBooleanLiteral_2= ruleXBooleanLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11257,7 +11373,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:4036:3: this_XNumberLiteral_3= ruleXNumberLiteral
+                    // InternalSignalDSL.g:4067:3: this_XNumberLiteral_3= ruleXNumberLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11279,7 +11395,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:4045:3: this_XNullLiteral_4= ruleXNullLiteral
+                    // InternalSignalDSL.g:4076:3: this_XNullLiteral_4= ruleXNullLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11301,7 +11417,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:4054:3: this_XStringLiteral_5= ruleXStringLiteral
+                    // InternalSignalDSL.g:4085:3: this_XStringLiteral_5= ruleXStringLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11323,7 +11439,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:4063:3: this_XTypeLiteral_6= ruleXTypeLiteral
+                    // InternalSignalDSL.g:4094:3: this_XTypeLiteral_6= ruleXTypeLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11369,7 +11485,7 @@
 
 
     // $ANTLR start "entryRuleXCollectionLiteral"
-    // InternalSignalDSL.g:4075:1: entryRuleXCollectionLiteral returns [EObject current=null] : iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF ;
+    // InternalSignalDSL.g:4106:1: entryRuleXCollectionLiteral returns [EObject current=null] : iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF ;
     public final EObject entryRuleXCollectionLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -11377,8 +11493,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4075:59: (iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF )
-            // InternalSignalDSL.g:4076:2: iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF
+            // InternalSignalDSL.g:4106:59: (iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF )
+            // InternalSignalDSL.g:4107:2: iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCollectionLiteralRule()); 
@@ -11409,7 +11525,7 @@
 
 
     // $ANTLR start "ruleXCollectionLiteral"
-    // InternalSignalDSL.g:4082:1: ruleXCollectionLiteral returns [EObject current=null] : (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) ;
+    // InternalSignalDSL.g:4113:1: ruleXCollectionLiteral returns [EObject current=null] : (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) ;
     public final EObject ruleXCollectionLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -11422,26 +11538,26 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4088:2: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
-            // InternalSignalDSL.g:4089:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+            // InternalSignalDSL.g:4119:2: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
+            // InternalSignalDSL.g:4120:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
             {
-            // InternalSignalDSL.g:4089:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
-            int alt61=2;
-            int LA61_0 = input.LA(1);
+            // InternalSignalDSL.g:4120:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+            int alt64=2;
+            int LA64_0 = input.LA(1);
 
-            if ( (LA61_0==40) ) {
-                int LA61_1 = input.LA(2);
+            if ( (LA64_0==44) ) {
+                int LA64_1 = input.LA(2);
 
-                if ( (LA61_1==41) ) {
-                    alt61=2;
+                if ( (LA64_1==45) ) {
+                    alt64=2;
                 }
-                else if ( (LA61_1==14) ) {
-                    alt61=1;
+                else if ( (LA64_1==14) ) {
+                    alt64=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 61, 1, input);
+                        new NoViableAltException("", 64, 1, input);
 
                     throw nvae;
                 }
@@ -11449,13 +11565,13 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 61, 0, input);
+                    new NoViableAltException("", 64, 0, input);
 
                 throw nvae;
             }
-            switch (alt61) {
+            switch (alt64) {
                 case 1 :
-                    // InternalSignalDSL.g:4090:3: this_XSetLiteral_0= ruleXSetLiteral
+                    // InternalSignalDSL.g:4121:3: this_XSetLiteral_0= ruleXSetLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11477,7 +11593,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:4099:3: this_XListLiteral_1= ruleXListLiteral
+                    // InternalSignalDSL.g:4130:3: this_XListLiteral_1= ruleXListLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11523,7 +11639,7 @@
 
 
     // $ANTLR start "entryRuleXSetLiteral"
-    // InternalSignalDSL.g:4111:1: entryRuleXSetLiteral returns [EObject current=null] : iv_ruleXSetLiteral= ruleXSetLiteral EOF ;
+    // InternalSignalDSL.g:4142:1: entryRuleXSetLiteral returns [EObject current=null] : iv_ruleXSetLiteral= ruleXSetLiteral EOF ;
     public final EObject entryRuleXSetLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -11531,8 +11647,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4111:52: (iv_ruleXSetLiteral= ruleXSetLiteral EOF )
-            // InternalSignalDSL.g:4112:2: iv_ruleXSetLiteral= ruleXSetLiteral EOF
+            // InternalSignalDSL.g:4142:52: (iv_ruleXSetLiteral= ruleXSetLiteral EOF )
+            // InternalSignalDSL.g:4143:2: iv_ruleXSetLiteral= ruleXSetLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSetLiteralRule()); 
@@ -11563,7 +11679,7 @@
 
 
     // $ANTLR start "ruleXSetLiteral"
-    // InternalSignalDSL.g:4118:1: ruleXSetLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) ;
+    // InternalSignalDSL.g:4149:1: ruleXSetLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) ;
     public final EObject ruleXSetLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -11580,14 +11696,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4124:2: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
-            // InternalSignalDSL.g:4125:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+            // InternalSignalDSL.g:4155:2: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
+            // InternalSignalDSL.g:4156:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
             {
-            // InternalSignalDSL.g:4125:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
-            // InternalSignalDSL.g:4126:3: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
+            // InternalSignalDSL.g:4156:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+            // InternalSignalDSL.g:4157:3: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
             {
-            // InternalSignalDSL.g:4126:3: ()
-            // InternalSignalDSL.g:4127:4: 
+            // InternalSignalDSL.g:4157:3: ()
+            // InternalSignalDSL.g:4158:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -11599,7 +11715,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,40,FOLLOW_11); if (state.failed) return current;
+            otherlv_1=(Token)match(input,44,FOLLOW_11); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
@@ -11611,22 +11727,22 @@
               			newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
               		
             }
-            // InternalSignalDSL.g:4141:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
-            int alt63=2;
-            int LA63_0 = input.LA(1);
+            // InternalSignalDSL.g:4172:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+            int alt66=2;
+            int LA66_0 = input.LA(1);
 
-            if ( ((LA63_0>=RULE_STRING && LA63_0<=RULE_DECIMAL)||LA63_0==14||(LA63_0>=29 && LA63_0<=31)||LA63_0==36||(LA63_0>=40 && LA63_0<=41)||LA63_0==48||(LA63_0>=64 && LA63_0<=65)||LA63_0==69||LA63_0==77||LA63_0==79||(LA63_0>=82 && LA63_0<=84)||(LA63_0>=87 && LA63_0<=96)||LA63_0==98) ) {
-                alt63=1;
+            if ( ((LA66_0>=RULE_STRING && LA66_0<=RULE_DECIMAL)||LA66_0==14||(LA66_0>=33 && LA66_0<=35)||LA66_0==40||(LA66_0>=44 && LA66_0<=45)||LA66_0==52||(LA66_0>=68 && LA66_0<=69)||LA66_0==73||LA66_0==81||LA66_0==83||(LA66_0>=86 && LA66_0<=88)||(LA66_0>=91 && LA66_0<=100)||LA66_0==102) ) {
+                alt66=1;
             }
-            switch (alt63) {
+            switch (alt66) {
                 case 1 :
-                    // InternalSignalDSL.g:4142:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    // InternalSignalDSL.g:4173:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                     {
-                    // InternalSignalDSL.g:4142:4: ( (lv_elements_3_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4143:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalSignalDSL.g:4173:4: ( (lv_elements_3_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4174:5: (lv_elements_3_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4143:5: (lv_elements_3_0= ruleXExpression )
-                    // InternalSignalDSL.g:4144:6: lv_elements_3_0= ruleXExpression
+                    // InternalSignalDSL.g:4174:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalSignalDSL.g:4175:6: lv_elements_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11657,32 +11773,32 @@
 
                     }
 
-                    // InternalSignalDSL.g:4161:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
-                    loop62:
+                    // InternalSignalDSL.g:4192:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    loop65:
                     do {
-                        int alt62=2;
-                        int LA62_0 = input.LA(1);
+                        int alt65=2;
+                        int LA65_0 = input.LA(1);
 
-                        if ( (LA62_0==37) ) {
-                            alt62=1;
+                        if ( (LA65_0==41) ) {
+                            alt65=1;
                         }
 
 
-                        switch (alt62) {
+                        switch (alt65) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:4162:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalSignalDSL.g:4193:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,37,FOLLOW_31); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,41,FOLLOW_31); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:4166:5: ( (lv_elements_5_0= ruleXExpression ) )
-                    	    // InternalSignalDSL.g:4167:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalSignalDSL.g:4197:5: ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalSignalDSL.g:4198:6: (lv_elements_5_0= ruleXExpression )
                     	    {
-                    	    // InternalSignalDSL.g:4167:6: (lv_elements_5_0= ruleXExpression )
-                    	    // InternalSignalDSL.g:4168:7: lv_elements_5_0= ruleXExpression
+                    	    // InternalSignalDSL.g:4198:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalSignalDSL.g:4199:7: lv_elements_5_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -11718,7 +11834,7 @@
                     	    break;
 
                     	default :
-                    	    break loop62;
+                    	    break loop65;
                         }
                     } while (true);
 
@@ -11759,7 +11875,7 @@
 
 
     // $ANTLR start "entryRuleXListLiteral"
-    // InternalSignalDSL.g:4195:1: entryRuleXListLiteral returns [EObject current=null] : iv_ruleXListLiteral= ruleXListLiteral EOF ;
+    // InternalSignalDSL.g:4226:1: entryRuleXListLiteral returns [EObject current=null] : iv_ruleXListLiteral= ruleXListLiteral EOF ;
     public final EObject entryRuleXListLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -11767,8 +11883,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4195:53: (iv_ruleXListLiteral= ruleXListLiteral EOF )
-            // InternalSignalDSL.g:4196:2: iv_ruleXListLiteral= ruleXListLiteral EOF
+            // InternalSignalDSL.g:4226:53: (iv_ruleXListLiteral= ruleXListLiteral EOF )
+            // InternalSignalDSL.g:4227:2: iv_ruleXListLiteral= ruleXListLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXListLiteralRule()); 
@@ -11799,7 +11915,7 @@
 
 
     // $ANTLR start "ruleXListLiteral"
-    // InternalSignalDSL.g:4202:1: ruleXListLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) ;
+    // InternalSignalDSL.g:4233:1: ruleXListLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) ;
     public final EObject ruleXListLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -11816,14 +11932,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4208:2: ( ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) )
-            // InternalSignalDSL.g:4209:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+            // InternalSignalDSL.g:4239:2: ( ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) )
+            // InternalSignalDSL.g:4240:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
             {
-            // InternalSignalDSL.g:4209:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
-            // InternalSignalDSL.g:4210:3: () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']'
+            // InternalSignalDSL.g:4240:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+            // InternalSignalDSL.g:4241:3: () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']'
             {
-            // InternalSignalDSL.g:4210:3: ()
-            // InternalSignalDSL.g:4211:4: 
+            // InternalSignalDSL.g:4241:3: ()
+            // InternalSignalDSL.g:4242:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -11835,34 +11951,34 @@
 
             }
 
-            otherlv_1=(Token)match(input,40,FOLLOW_32); if (state.failed) return current;
+            otherlv_1=(Token)match(input,44,FOLLOW_32); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,41,FOLLOW_33); if (state.failed) return current;
+            otherlv_2=(Token)match(input,45,FOLLOW_33); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
               		
             }
-            // InternalSignalDSL.g:4225:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
-            int alt65=2;
-            int LA65_0 = input.LA(1);
+            // InternalSignalDSL.g:4256:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+            int alt68=2;
+            int LA68_0 = input.LA(1);
 
-            if ( ((LA65_0>=RULE_STRING && LA65_0<=RULE_DECIMAL)||LA65_0==14||(LA65_0>=29 && LA65_0<=31)||LA65_0==36||(LA65_0>=40 && LA65_0<=41)||LA65_0==48||(LA65_0>=64 && LA65_0<=65)||LA65_0==69||LA65_0==77||LA65_0==79||(LA65_0>=82 && LA65_0<=84)||(LA65_0>=87 && LA65_0<=96)||LA65_0==98) ) {
-                alt65=1;
+            if ( ((LA68_0>=RULE_STRING && LA68_0<=RULE_DECIMAL)||LA68_0==14||(LA68_0>=33 && LA68_0<=35)||LA68_0==40||(LA68_0>=44 && LA68_0<=45)||LA68_0==52||(LA68_0>=68 && LA68_0<=69)||LA68_0==73||LA68_0==81||LA68_0==83||(LA68_0>=86 && LA68_0<=88)||(LA68_0>=91 && LA68_0<=100)||LA68_0==102) ) {
+                alt68=1;
             }
-            switch (alt65) {
+            switch (alt68) {
                 case 1 :
-                    // InternalSignalDSL.g:4226:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    // InternalSignalDSL.g:4257:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                     {
-                    // InternalSignalDSL.g:4226:4: ( (lv_elements_3_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4227:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalSignalDSL.g:4257:4: ( (lv_elements_3_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4258:5: (lv_elements_3_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4227:5: (lv_elements_3_0= ruleXExpression )
-                    // InternalSignalDSL.g:4228:6: lv_elements_3_0= ruleXExpression
+                    // InternalSignalDSL.g:4258:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalSignalDSL.g:4259:6: lv_elements_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11893,32 +12009,32 @@
 
                     }
 
-                    // InternalSignalDSL.g:4245:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
-                    loop64:
+                    // InternalSignalDSL.g:4276:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    loop67:
                     do {
-                        int alt64=2;
-                        int LA64_0 = input.LA(1);
+                        int alt67=2;
+                        int LA67_0 = input.LA(1);
 
-                        if ( (LA64_0==37) ) {
-                            alt64=1;
+                        if ( (LA67_0==41) ) {
+                            alt67=1;
                         }
 
 
-                        switch (alt64) {
+                        switch (alt67) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:4246:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalSignalDSL.g:4277:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,37,FOLLOW_31); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,41,FOLLOW_31); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:4250:5: ( (lv_elements_5_0= ruleXExpression ) )
-                    	    // InternalSignalDSL.g:4251:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalSignalDSL.g:4281:5: ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalSignalDSL.g:4282:6: (lv_elements_5_0= ruleXExpression )
                     	    {
-                    	    // InternalSignalDSL.g:4251:6: (lv_elements_5_0= ruleXExpression )
-                    	    // InternalSignalDSL.g:4252:7: lv_elements_5_0= ruleXExpression
+                    	    // InternalSignalDSL.g:4282:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalSignalDSL.g:4283:7: lv_elements_5_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -11954,7 +12070,7 @@
                     	    break;
 
                     	default :
-                    	    break loop64;
+                    	    break loop67;
                         }
                     } while (true);
 
@@ -11964,7 +12080,7 @@
 
             }
 
-            otherlv_6=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
+            otherlv_6=(Token)match(input,46,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
@@ -11995,7 +12111,7 @@
 
 
     // $ANTLR start "entryRuleXClosure"
-    // InternalSignalDSL.g:4279:1: entryRuleXClosure returns [EObject current=null] : iv_ruleXClosure= ruleXClosure EOF ;
+    // InternalSignalDSL.g:4310:1: entryRuleXClosure returns [EObject current=null] : iv_ruleXClosure= ruleXClosure EOF ;
     public final EObject entryRuleXClosure() throws RecognitionException {
         EObject current = null;
 
@@ -12003,8 +12119,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4279:49: (iv_ruleXClosure= ruleXClosure EOF )
-            // InternalSignalDSL.g:4280:2: iv_ruleXClosure= ruleXClosure EOF
+            // InternalSignalDSL.g:4310:49: (iv_ruleXClosure= ruleXClosure EOF )
+            // InternalSignalDSL.g:4311:2: iv_ruleXClosure= ruleXClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXClosureRule()); 
@@ -12035,7 +12151,7 @@
 
 
     // $ANTLR start "ruleXClosure"
-    // InternalSignalDSL.g:4286:1: ruleXClosure returns [EObject current=null] : ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) ;
+    // InternalSignalDSL.g:4317:1: ruleXClosure returns [EObject current=null] : ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) ;
     public final EObject ruleXClosure() throws RecognitionException {
         EObject current = null;
 
@@ -12054,20 +12170,20 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4292:2: ( ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) )
-            // InternalSignalDSL.g:4293:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
+            // InternalSignalDSL.g:4323:2: ( ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) )
+            // InternalSignalDSL.g:4324:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
             {
-            // InternalSignalDSL.g:4293:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
-            // InternalSignalDSL.g:4294:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']'
+            // InternalSignalDSL.g:4324:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
+            // InternalSignalDSL.g:4325:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']'
             {
-            // InternalSignalDSL.g:4294:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) )
-            // InternalSignalDSL.g:4295:4: ( ( () '[' ) )=> ( () otherlv_1= '[' )
+            // InternalSignalDSL.g:4325:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) )
+            // InternalSignalDSL.g:4326:4: ( ( () '[' ) )=> ( () otherlv_1= '[' )
             {
-            // InternalSignalDSL.g:4301:4: ( () otherlv_1= '[' )
-            // InternalSignalDSL.g:4302:5: () otherlv_1= '['
+            // InternalSignalDSL.g:4332:4: ( () otherlv_1= '[' )
+            // InternalSignalDSL.g:4333:5: () otherlv_1= '['
             {
-            // InternalSignalDSL.g:4302:5: ()
-            // InternalSignalDSL.g:4303:6: 
+            // InternalSignalDSL.g:4333:5: ()
+            // InternalSignalDSL.g:4334:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -12079,7 +12195,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,41,FOLLOW_63); if (state.failed) return current;
+            otherlv_1=(Token)match(input,45,FOLLOW_63); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
@@ -12091,32 +12207,32 @@
 
             }
 
-            // InternalSignalDSL.g:4315:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?
-            int alt68=2;
-            alt68 = dfa68.predict(input);
-            switch (alt68) {
+            // InternalSignalDSL.g:4346:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?
+            int alt71=2;
+            alt71 = dfa71.predict(input);
+            switch (alt71) {
                 case 1 :
-                    // InternalSignalDSL.g:4316:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+                    // InternalSignalDSL.g:4347:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
                     {
-                    // InternalSignalDSL.g:4339:4: ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
-                    // InternalSignalDSL.g:4340:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) )
+                    // InternalSignalDSL.g:4370:4: ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+                    // InternalSignalDSL.g:4371:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) )
                     {
-                    // InternalSignalDSL.g:4340:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )?
-                    int alt67=2;
-                    int LA67_0 = input.LA(1);
+                    // InternalSignalDSL.g:4371:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )?
+                    int alt70=2;
+                    int LA70_0 = input.LA(1);
 
-                    if ( (LA67_0==RULE_ID||LA67_0==36||LA67_0==61) ) {
-                        alt67=1;
+                    if ( (LA70_0==RULE_ID||LA70_0==40||LA70_0==65) ) {
+                        alt70=1;
                     }
-                    switch (alt67) {
+                    switch (alt70) {
                         case 1 :
-                            // InternalSignalDSL.g:4341:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+                            // InternalSignalDSL.g:4372:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
                             {
-                            // InternalSignalDSL.g:4341:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) )
-                            // InternalSignalDSL.g:4342:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+                            // InternalSignalDSL.g:4372:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) )
+                            // InternalSignalDSL.g:4373:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
                             {
-                            // InternalSignalDSL.g:4342:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
-                            // InternalSignalDSL.g:4343:8: lv_declaredFormalParameters_2_0= ruleJvmFormalParameter
+                            // InternalSignalDSL.g:4373:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+                            // InternalSignalDSL.g:4374:8: lv_declaredFormalParameters_2_0= ruleJvmFormalParameter
                             {
                             if ( state.backtracking==0 ) {
 
@@ -12147,32 +12263,32 @@
 
                             }
 
-                            // InternalSignalDSL.g:4360:6: (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
-                            loop66:
+                            // InternalSignalDSL.g:4391:6: (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+                            loop69:
                             do {
-                                int alt66=2;
-                                int LA66_0 = input.LA(1);
+                                int alt69=2;
+                                int LA69_0 = input.LA(1);
 
-                                if ( (LA66_0==37) ) {
-                                    alt66=1;
+                                if ( (LA69_0==41) ) {
+                                    alt69=1;
                                 }
 
 
-                                switch (alt66) {
+                                switch (alt69) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:4361:7: otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+                            	    // InternalSignalDSL.g:4392:7: otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
                             	    {
-                            	    otherlv_3=(Token)match(input,37,FOLLOW_44); if (state.failed) return current;
+                            	    otherlv_3=(Token)match(input,41,FOLLOW_44); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_3, grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
                             	      						
                             	    }
-                            	    // InternalSignalDSL.g:4365:7: ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
-                            	    // InternalSignalDSL.g:4366:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+                            	    // InternalSignalDSL.g:4396:7: ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+                            	    // InternalSignalDSL.g:4397:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
                             	    {
-                            	    // InternalSignalDSL.g:4366:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
-                            	    // InternalSignalDSL.g:4367:9: lv_declaredFormalParameters_4_0= ruleJvmFormalParameter
+                            	    // InternalSignalDSL.g:4397:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+                            	    // InternalSignalDSL.g:4398:9: lv_declaredFormalParameters_4_0= ruleJvmFormalParameter
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -12208,7 +12324,7 @@
                             	    break;
 
                             	default :
-                            	    break loop66;
+                            	    break loop69;
                                 }
                             } while (true);
 
@@ -12218,13 +12334,13 @@
 
                     }
 
-                    // InternalSignalDSL.g:4386:5: ( (lv_explicitSyntax_5_0= '|' ) )
-                    // InternalSignalDSL.g:4387:6: (lv_explicitSyntax_5_0= '|' )
+                    // InternalSignalDSL.g:4417:5: ( (lv_explicitSyntax_5_0= '|' ) )
+                    // InternalSignalDSL.g:4418:6: (lv_explicitSyntax_5_0= '|' )
                     {
-                    // InternalSignalDSL.g:4387:6: (lv_explicitSyntax_5_0= '|' )
-                    // InternalSignalDSL.g:4388:7: lv_explicitSyntax_5_0= '|'
+                    // InternalSignalDSL.g:4418:6: (lv_explicitSyntax_5_0= '|' )
+                    // InternalSignalDSL.g:4419:7: lv_explicitSyntax_5_0= '|'
                     {
-                    lv_explicitSyntax_5_0=(Token)match(input,76,FOLLOW_65); if (state.failed) return current;
+                    lv_explicitSyntax_5_0=(Token)match(input,80,FOLLOW_65); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_explicitSyntax_5_0, grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
@@ -12253,11 +12369,11 @@
 
             }
 
-            // InternalSignalDSL.g:4402:3: ( (lv_expression_6_0= ruleXExpressionInClosure ) )
-            // InternalSignalDSL.g:4403:4: (lv_expression_6_0= ruleXExpressionInClosure )
+            // InternalSignalDSL.g:4433:3: ( (lv_expression_6_0= ruleXExpressionInClosure ) )
+            // InternalSignalDSL.g:4434:4: (lv_expression_6_0= ruleXExpressionInClosure )
             {
-            // InternalSignalDSL.g:4403:4: (lv_expression_6_0= ruleXExpressionInClosure )
-            // InternalSignalDSL.g:4404:5: lv_expression_6_0= ruleXExpressionInClosure
+            // InternalSignalDSL.g:4434:4: (lv_expression_6_0= ruleXExpressionInClosure )
+            // InternalSignalDSL.g:4435:5: lv_expression_6_0= ruleXExpressionInClosure
             {
             if ( state.backtracking==0 ) {
 
@@ -12288,7 +12404,7 @@
 
             }
 
-            otherlv_7=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
+            otherlv_7=(Token)match(input,46,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_7, grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
@@ -12319,7 +12435,7 @@
 
 
     // $ANTLR start "entryRuleXExpressionInClosure"
-    // InternalSignalDSL.g:4429:1: entryRuleXExpressionInClosure returns [EObject current=null] : iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF ;
+    // InternalSignalDSL.g:4460:1: entryRuleXExpressionInClosure returns [EObject current=null] : iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF ;
     public final EObject entryRuleXExpressionInClosure() throws RecognitionException {
         EObject current = null;
 
@@ -12327,8 +12443,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4429:61: (iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF )
-            // InternalSignalDSL.g:4430:2: iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF
+            // InternalSignalDSL.g:4460:61: (iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF )
+            // InternalSignalDSL.g:4461:2: iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionInClosureRule()); 
@@ -12359,7 +12475,7 @@
 
 
     // $ANTLR start "ruleXExpressionInClosure"
-    // InternalSignalDSL.g:4436:1: ruleXExpressionInClosure returns [EObject current=null] : ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) ;
+    // InternalSignalDSL.g:4467:1: ruleXExpressionInClosure returns [EObject current=null] : ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) ;
     public final EObject ruleXExpressionInClosure() throws RecognitionException {
         EObject current = null;
 
@@ -12371,14 +12487,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4442:2: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) )
-            // InternalSignalDSL.g:4443:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
+            // InternalSignalDSL.g:4473:2: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) )
+            // InternalSignalDSL.g:4474:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
             {
-            // InternalSignalDSL.g:4443:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
-            // InternalSignalDSL.g:4444:3: () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
+            // InternalSignalDSL.g:4474:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
+            // InternalSignalDSL.g:4475:3: () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
             {
-            // InternalSignalDSL.g:4444:3: ()
-            // InternalSignalDSL.g:4445:4: 
+            // InternalSignalDSL.g:4475:3: ()
+            // InternalSignalDSL.g:4476:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -12390,26 +12506,26 @@
 
             }
 
-            // InternalSignalDSL.g:4451:3: ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
-            loop70:
+            // InternalSignalDSL.g:4482:3: ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
+            loop73:
             do {
-                int alt70=2;
-                int LA70_0 = input.LA(1);
+                int alt73=2;
+                int LA73_0 = input.LA(1);
 
-                if ( ((LA70_0>=RULE_STRING && LA70_0<=RULE_DECIMAL)||LA70_0==14||(LA70_0>=29 && LA70_0<=31)||LA70_0==36||(LA70_0>=40 && LA70_0<=41)||LA70_0==48||(LA70_0>=64 && LA70_0<=65)||LA70_0==69||LA70_0==77||LA70_0==79||(LA70_0>=82 && LA70_0<=96)||LA70_0==98) ) {
-                    alt70=1;
+                if ( ((LA73_0>=RULE_STRING && LA73_0<=RULE_DECIMAL)||LA73_0==14||(LA73_0>=33 && LA73_0<=35)||LA73_0==40||(LA73_0>=44 && LA73_0<=45)||LA73_0==52||(LA73_0>=68 && LA73_0<=69)||LA73_0==73||LA73_0==81||LA73_0==83||(LA73_0>=86 && LA73_0<=100)||LA73_0==102) ) {
+                    alt73=1;
                 }
 
 
-                switch (alt70) {
+                switch (alt73) {
             	case 1 :
-            	    // InternalSignalDSL.g:4452:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )?
+            	    // InternalSignalDSL.g:4483:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )?
             	    {
-            	    // InternalSignalDSL.g:4452:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) )
-            	    // InternalSignalDSL.g:4453:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalSignalDSL.g:4483:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) )
+            	    // InternalSignalDSL.g:4484:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
             	    {
-            	    // InternalSignalDSL.g:4453:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
-            	    // InternalSignalDSL.g:4454:6: lv_expressions_1_0= ruleXExpressionOrVarDeclaration
+            	    // InternalSignalDSL.g:4484:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalSignalDSL.g:4485:6: lv_expressions_1_0= ruleXExpressionOrVarDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -12440,18 +12556,18 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:4471:4: (otherlv_2= ';' )?
-            	    int alt69=2;
-            	    int LA69_0 = input.LA(1);
+            	    // InternalSignalDSL.g:4502:4: (otherlv_2= ';' )?
+            	    int alt72=2;
+            	    int LA72_0 = input.LA(1);
 
-            	    if ( (LA69_0==34) ) {
-            	        alt69=1;
+            	    if ( (LA72_0==38) ) {
+            	        alt72=1;
             	    }
-            	    switch (alt69) {
+            	    switch (alt72) {
             	        case 1 :
-            	            // InternalSignalDSL.g:4472:5: otherlv_2= ';'
+            	            // InternalSignalDSL.g:4503:5: otherlv_2= ';'
             	            {
-            	            otherlv_2=(Token)match(input,34,FOLLOW_68); if (state.failed) return current;
+            	            otherlv_2=(Token)match(input,38,FOLLOW_68); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              					newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
@@ -12468,7 +12584,7 @@
             	    break;
 
             	default :
-            	    break loop70;
+            	    break loop73;
                 }
             } while (true);
 
@@ -12497,7 +12613,7 @@
 
 
     // $ANTLR start "entryRuleXShortClosure"
-    // InternalSignalDSL.g:4482:1: entryRuleXShortClosure returns [EObject current=null] : iv_ruleXShortClosure= ruleXShortClosure EOF ;
+    // InternalSignalDSL.g:4513:1: entryRuleXShortClosure returns [EObject current=null] : iv_ruleXShortClosure= ruleXShortClosure EOF ;
     public final EObject entryRuleXShortClosure() throws RecognitionException {
         EObject current = null;
 
@@ -12505,8 +12621,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4482:54: (iv_ruleXShortClosure= ruleXShortClosure EOF )
-            // InternalSignalDSL.g:4483:2: iv_ruleXShortClosure= ruleXShortClosure EOF
+            // InternalSignalDSL.g:4513:54: (iv_ruleXShortClosure= ruleXShortClosure EOF )
+            // InternalSignalDSL.g:4514:2: iv_ruleXShortClosure= ruleXShortClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXShortClosureRule()); 
@@ -12537,7 +12653,7 @@
 
 
     // $ANTLR start "ruleXShortClosure"
-    // InternalSignalDSL.g:4489:1: ruleXShortClosure returns [EObject current=null] : ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) ;
+    // InternalSignalDSL.g:4520:1: ruleXShortClosure returns [EObject current=null] : ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) ;
     public final EObject ruleXShortClosure() throws RecognitionException {
         EObject current = null;
 
@@ -12554,20 +12670,20 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4495:2: ( ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) )
-            // InternalSignalDSL.g:4496:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:4526:2: ( ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) )
+            // InternalSignalDSL.g:4527:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
             {
-            // InternalSignalDSL.g:4496:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
-            // InternalSignalDSL.g:4497:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4527:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:4528:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) )
             {
-            // InternalSignalDSL.g:4497:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) )
-            // InternalSignalDSL.g:4498:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+            // InternalSignalDSL.g:4528:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) )
+            // InternalSignalDSL.g:4529:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
             {
-            // InternalSignalDSL.g:4523:4: ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
-            // InternalSignalDSL.g:4524:5: () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) )
+            // InternalSignalDSL.g:4554:4: ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+            // InternalSignalDSL.g:4555:5: () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) )
             {
-            // InternalSignalDSL.g:4524:5: ()
-            // InternalSignalDSL.g:4525:6: 
+            // InternalSignalDSL.g:4555:5: ()
+            // InternalSignalDSL.g:4556:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -12579,22 +12695,22 @@
 
             }
 
-            // InternalSignalDSL.g:4531:5: ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )?
-            int alt72=2;
-            int LA72_0 = input.LA(1);
+            // InternalSignalDSL.g:4562:5: ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )?
+            int alt75=2;
+            int LA75_0 = input.LA(1);
 
-            if ( (LA72_0==RULE_ID||LA72_0==36||LA72_0==61) ) {
-                alt72=1;
+            if ( (LA75_0==RULE_ID||LA75_0==40||LA75_0==65) ) {
+                alt75=1;
             }
-            switch (alt72) {
+            switch (alt75) {
                 case 1 :
-                    // InternalSignalDSL.g:4532:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+                    // InternalSignalDSL.g:4563:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
                     {
-                    // InternalSignalDSL.g:4532:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) )
-                    // InternalSignalDSL.g:4533:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+                    // InternalSignalDSL.g:4563:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) )
+                    // InternalSignalDSL.g:4564:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
                     {
-                    // InternalSignalDSL.g:4533:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
-                    // InternalSignalDSL.g:4534:8: lv_declaredFormalParameters_1_0= ruleJvmFormalParameter
+                    // InternalSignalDSL.g:4564:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+                    // InternalSignalDSL.g:4565:8: lv_declaredFormalParameters_1_0= ruleJvmFormalParameter
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12625,32 +12741,32 @@
 
                     }
 
-                    // InternalSignalDSL.g:4551:6: (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
-                    loop71:
+                    // InternalSignalDSL.g:4582:6: (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+                    loop74:
                     do {
-                        int alt71=2;
-                        int LA71_0 = input.LA(1);
+                        int alt74=2;
+                        int LA74_0 = input.LA(1);
 
-                        if ( (LA71_0==37) ) {
-                            alt71=1;
+                        if ( (LA74_0==41) ) {
+                            alt74=1;
                         }
 
 
-                        switch (alt71) {
+                        switch (alt74) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:4552:7: otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+                    	    // InternalSignalDSL.g:4583:7: otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
                     	    {
-                    	    otherlv_2=(Token)match(input,37,FOLLOW_44); if (state.failed) return current;
+                    	    otherlv_2=(Token)match(input,41,FOLLOW_44); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      							newLeafNode(otherlv_2, grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
                     	      						
                     	    }
-                    	    // InternalSignalDSL.g:4556:7: ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
-                    	    // InternalSignalDSL.g:4557:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+                    	    // InternalSignalDSL.g:4587:7: ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+                    	    // InternalSignalDSL.g:4588:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
                     	    {
-                    	    // InternalSignalDSL.g:4557:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
-                    	    // InternalSignalDSL.g:4558:9: lv_declaredFormalParameters_3_0= ruleJvmFormalParameter
+                    	    // InternalSignalDSL.g:4588:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+                    	    // InternalSignalDSL.g:4589:9: lv_declaredFormalParameters_3_0= ruleJvmFormalParameter
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -12686,7 +12802,7 @@
                     	    break;
 
                     	default :
-                    	    break loop71;
+                    	    break loop74;
                         }
                     } while (true);
 
@@ -12696,13 +12812,13 @@
 
             }
 
-            // InternalSignalDSL.g:4577:5: ( (lv_explicitSyntax_4_0= '|' ) )
-            // InternalSignalDSL.g:4578:6: (lv_explicitSyntax_4_0= '|' )
+            // InternalSignalDSL.g:4608:5: ( (lv_explicitSyntax_4_0= '|' ) )
+            // InternalSignalDSL.g:4609:6: (lv_explicitSyntax_4_0= '|' )
             {
-            // InternalSignalDSL.g:4578:6: (lv_explicitSyntax_4_0= '|' )
-            // InternalSignalDSL.g:4579:7: lv_explicitSyntax_4_0= '|'
+            // InternalSignalDSL.g:4609:6: (lv_explicitSyntax_4_0= '|' )
+            // InternalSignalDSL.g:4610:7: lv_explicitSyntax_4_0= '|'
             {
-            lv_explicitSyntax_4_0=(Token)match(input,76,FOLLOW_31); if (state.failed) return current;
+            lv_explicitSyntax_4_0=(Token)match(input,80,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               							newLeafNode(lv_explicitSyntax_4_0, grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
@@ -12728,11 +12844,11 @@
 
             }
 
-            // InternalSignalDSL.g:4593:3: ( (lv_expression_5_0= ruleXExpression ) )
-            // InternalSignalDSL.g:4594:4: (lv_expression_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4624:3: ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4625:4: (lv_expression_5_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:4594:4: (lv_expression_5_0= ruleXExpression )
-            // InternalSignalDSL.g:4595:5: lv_expression_5_0= ruleXExpression
+            // InternalSignalDSL.g:4625:4: (lv_expression_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4626:5: lv_expression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -12788,7 +12904,7 @@
 
 
     // $ANTLR start "entryRuleXParenthesizedExpression"
-    // InternalSignalDSL.g:4616:1: entryRuleXParenthesizedExpression returns [EObject current=null] : iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF ;
+    // InternalSignalDSL.g:4647:1: entryRuleXParenthesizedExpression returns [EObject current=null] : iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF ;
     public final EObject entryRuleXParenthesizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -12796,8 +12912,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4616:65: (iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF )
-            // InternalSignalDSL.g:4617:2: iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF
+            // InternalSignalDSL.g:4647:65: (iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF )
+            // InternalSignalDSL.g:4648:2: iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXParenthesizedExpressionRule()); 
@@ -12828,7 +12944,7 @@
 
 
     // $ANTLR start "ruleXParenthesizedExpression"
-    // InternalSignalDSL.g:4623:1: ruleXParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) ;
+    // InternalSignalDSL.g:4654:1: ruleXParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) ;
     public final EObject ruleXParenthesizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -12841,13 +12957,13 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4629:2: ( (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) )
-            // InternalSignalDSL.g:4630:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+            // InternalSignalDSL.g:4660:2: ( (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) )
+            // InternalSignalDSL.g:4661:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
             {
-            // InternalSignalDSL.g:4630:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
-            // InternalSignalDSL.g:4631:3: otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')'
+            // InternalSignalDSL.g:4661:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+            // InternalSignalDSL.g:4662:3: otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')'
             {
-            otherlv_0=(Token)match(input,36,FOLLOW_31); if (state.failed) return current;
+            otherlv_0=(Token)match(input,40,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
@@ -12869,7 +12985,7 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            otherlv_2=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
+            otherlv_2=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
@@ -12900,7 +13016,7 @@
 
 
     // $ANTLR start "entryRuleXIfExpression"
-    // InternalSignalDSL.g:4651:1: entryRuleXIfExpression returns [EObject current=null] : iv_ruleXIfExpression= ruleXIfExpression EOF ;
+    // InternalSignalDSL.g:4682:1: entryRuleXIfExpression returns [EObject current=null] : iv_ruleXIfExpression= ruleXIfExpression EOF ;
     public final EObject entryRuleXIfExpression() throws RecognitionException {
         EObject current = null;
 
@@ -12908,8 +13024,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4651:54: (iv_ruleXIfExpression= ruleXIfExpression EOF )
-            // InternalSignalDSL.g:4652:2: iv_ruleXIfExpression= ruleXIfExpression EOF
+            // InternalSignalDSL.g:4682:54: (iv_ruleXIfExpression= ruleXIfExpression EOF )
+            // InternalSignalDSL.g:4683:2: iv_ruleXIfExpression= ruleXIfExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXIfExpressionRule()); 
@@ -12940,7 +13056,7 @@
 
 
     // $ANTLR start "ruleXIfExpression"
-    // InternalSignalDSL.g:4658:1: ruleXIfExpression returns [EObject current=null] : ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) ;
+    // InternalSignalDSL.g:4689:1: ruleXIfExpression returns [EObject current=null] : ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) ;
     public final EObject ruleXIfExpression() throws RecognitionException {
         EObject current = null;
 
@@ -12959,14 +13075,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4664:2: ( ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) )
-            // InternalSignalDSL.g:4665:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
+            // InternalSignalDSL.g:4695:2: ( ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) )
+            // InternalSignalDSL.g:4696:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
             {
-            // InternalSignalDSL.g:4665:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
-            // InternalSignalDSL.g:4666:3: () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+            // InternalSignalDSL.g:4696:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
+            // InternalSignalDSL.g:4697:3: () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
             {
-            // InternalSignalDSL.g:4666:3: ()
-            // InternalSignalDSL.g:4667:4: 
+            // InternalSignalDSL.g:4697:3: ()
+            // InternalSignalDSL.g:4698:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -12978,23 +13094,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,77,FOLLOW_69); if (state.failed) return current;
+            otherlv_1=(Token)match(input,81,FOLLOW_69); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,36,FOLLOW_31); if (state.failed) return current;
+            otherlv_2=(Token)match(input,40,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalSignalDSL.g:4681:3: ( (lv_if_3_0= ruleXExpression ) )
-            // InternalSignalDSL.g:4682:4: (lv_if_3_0= ruleXExpression )
+            // InternalSignalDSL.g:4712:3: ( (lv_if_3_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4713:4: (lv_if_3_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:4682:4: (lv_if_3_0= ruleXExpression )
-            // InternalSignalDSL.g:4683:5: lv_if_3_0= ruleXExpression
+            // InternalSignalDSL.g:4713:4: (lv_if_3_0= ruleXExpression )
+            // InternalSignalDSL.g:4714:5: lv_if_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -13025,17 +13141,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,38,FOLLOW_31); if (state.failed) return current;
+            otherlv_4=(Token)match(input,42,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
               		
             }
-            // InternalSignalDSL.g:4704:3: ( (lv_then_5_0= ruleXExpression ) )
-            // InternalSignalDSL.g:4705:4: (lv_then_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4735:3: ( (lv_then_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:4736:4: (lv_then_5_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:4705:4: (lv_then_5_0= ruleXExpression )
-            // InternalSignalDSL.g:4706:5: lv_then_5_0= ruleXExpression
+            // InternalSignalDSL.g:4736:4: (lv_then_5_0= ruleXExpression )
+            // InternalSignalDSL.g:4737:5: lv_then_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -13066,25 +13182,25 @@
 
             }
 
-            // InternalSignalDSL.g:4723:3: ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
-            int alt73=2;
-            int LA73_0 = input.LA(1);
+            // InternalSignalDSL.g:4754:3: ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+            int alt76=2;
+            int LA76_0 = input.LA(1);
 
-            if ( (LA73_0==78) ) {
-                int LA73_1 = input.LA(2);
+            if ( (LA76_0==82) ) {
+                int LA76_1 = input.LA(2);
 
                 if ( (synpred31_InternalSignalDSL()) ) {
-                    alt73=1;
+                    alt76=1;
                 }
             }
-            switch (alt73) {
+            switch (alt76) {
                 case 1 :
-                    // InternalSignalDSL.g:4724:4: ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4755:4: ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) )
                     {
-                    // InternalSignalDSL.g:4724:4: ( ( 'else' )=>otherlv_6= 'else' )
-                    // InternalSignalDSL.g:4725:5: ( 'else' )=>otherlv_6= 'else'
+                    // InternalSignalDSL.g:4755:4: ( ( 'else' )=>otherlv_6= 'else' )
+                    // InternalSignalDSL.g:4756:5: ( 'else' )=>otherlv_6= 'else'
                     {
-                    otherlv_6=(Token)match(input,78,FOLLOW_31); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,82,FOLLOW_31); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
@@ -13093,11 +13209,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:4731:4: ( (lv_else_7_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4732:5: (lv_else_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:4762:4: ( (lv_else_7_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4763:5: (lv_else_7_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4732:5: (lv_else_7_0= ruleXExpression )
-                    // InternalSignalDSL.g:4733:6: lv_else_7_0= ruleXExpression
+                    // InternalSignalDSL.g:4763:5: (lv_else_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:4764:6: lv_else_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13159,7 +13275,7 @@
 
 
     // $ANTLR start "entryRuleXSwitchExpression"
-    // InternalSignalDSL.g:4755:1: entryRuleXSwitchExpression returns [EObject current=null] : iv_ruleXSwitchExpression= ruleXSwitchExpression EOF ;
+    // InternalSignalDSL.g:4786:1: entryRuleXSwitchExpression returns [EObject current=null] : iv_ruleXSwitchExpression= ruleXSwitchExpression EOF ;
     public final EObject entryRuleXSwitchExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13167,8 +13283,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4755:58: (iv_ruleXSwitchExpression= ruleXSwitchExpression EOF )
-            // InternalSignalDSL.g:4756:2: iv_ruleXSwitchExpression= ruleXSwitchExpression EOF
+            // InternalSignalDSL.g:4786:58: (iv_ruleXSwitchExpression= ruleXSwitchExpression EOF )
+            // InternalSignalDSL.g:4787:2: iv_ruleXSwitchExpression= ruleXSwitchExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSwitchExpressionRule()); 
@@ -13199,7 +13315,7 @@
 
 
     // $ANTLR start "ruleXSwitchExpression"
-    // InternalSignalDSL.g:4762:1: ruleXSwitchExpression returns [EObject current=null] : ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) ;
+    // InternalSignalDSL.g:4793:1: ruleXSwitchExpression returns [EObject current=null] : ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) ;
     public final EObject ruleXSwitchExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13229,14 +13345,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4768:2: ( ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) )
-            // InternalSignalDSL.g:4769:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
+            // InternalSignalDSL.g:4799:2: ( ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) )
+            // InternalSignalDSL.g:4800:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
             {
-            // InternalSignalDSL.g:4769:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
-            // InternalSignalDSL.g:4770:3: () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}'
+            // InternalSignalDSL.g:4800:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
+            // InternalSignalDSL.g:4801:3: () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}'
             {
-            // InternalSignalDSL.g:4770:3: ()
-            // InternalSignalDSL.g:4771:4: 
+            // InternalSignalDSL.g:4801:3: ()
+            // InternalSignalDSL.g:4802:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -13248,46 +13364,46 @@
 
             }
 
-            otherlv_1=(Token)match(input,79,FOLLOW_71); if (state.failed) return current;
+            otherlv_1=(Token)match(input,83,FOLLOW_71); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
               		
             }
-            // InternalSignalDSL.g:4781:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )
-            int alt75=2;
-            alt75 = dfa75.predict(input);
-            switch (alt75) {
+            // InternalSignalDSL.g:4812:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )
+            int alt78=2;
+            alt78 = dfa78.predict(input);
+            switch (alt78) {
                 case 1 :
-                    // InternalSignalDSL.g:4782:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
+                    // InternalSignalDSL.g:4813:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
                     {
-                    // InternalSignalDSL.g:4782:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
-                    // InternalSignalDSL.g:4783:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')'
+                    // InternalSignalDSL.g:4813:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
+                    // InternalSignalDSL.g:4814:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')'
                     {
-                    // InternalSignalDSL.g:4783:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
-                    // InternalSignalDSL.g:4784:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+                    // InternalSignalDSL.g:4814:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
+                    // InternalSignalDSL.g:4815:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
                     {
-                    // InternalSignalDSL.g:4794:6: (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
-                    // InternalSignalDSL.g:4795:7: otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
+                    // InternalSignalDSL.g:4825:6: (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+                    // InternalSignalDSL.g:4826:7: otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
                     {
-                    otherlv_2=(Token)match(input,36,FOLLOW_44); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,40,FOLLOW_44); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(otherlv_2, grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0());
                       						
                     }
-                    // InternalSignalDSL.g:4799:7: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
-                    // InternalSignalDSL.g:4800:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+                    // InternalSignalDSL.g:4830:7: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+                    // InternalSignalDSL.g:4831:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
                     {
-                    // InternalSignalDSL.g:4800:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
-                    // InternalSignalDSL.g:4801:9: lv_declaredParam_3_0= ruleJvmFormalParameter
+                    // InternalSignalDSL.g:4831:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+                    // InternalSignalDSL.g:4832:9: lv_declaredParam_3_0= ruleJvmFormalParameter
                     {
                     if ( state.backtracking==0 ) {
 
                       									newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0());
                       								
                     }
-                    pushFollow(FOLLOW_18);
+                    pushFollow(FOLLOW_17);
                     lv_declaredParam_3_0=ruleJvmFormalParameter();
 
                     state._fsp--;
@@ -13311,7 +13427,7 @@
 
                     }
 
-                    otherlv_4=(Token)match(input,24,FOLLOW_31); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,25,FOLLOW_31); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(otherlv_4, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2());
@@ -13323,11 +13439,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:4824:5: ( (lv_switch_5_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4825:6: (lv_switch_5_0= ruleXExpression )
+                    // InternalSignalDSL.g:4855:5: ( (lv_switch_5_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4856:6: (lv_switch_5_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4825:6: (lv_switch_5_0= ruleXExpression )
-                    // InternalSignalDSL.g:4826:7: lv_switch_5_0= ruleXExpression
+                    // InternalSignalDSL.g:4856:6: (lv_switch_5_0= ruleXExpression )
+                    // InternalSignalDSL.g:4857:7: lv_switch_5_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13358,7 +13474,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,38,FOLLOW_11); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,42,FOLLOW_11); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2());
@@ -13371,33 +13487,33 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:4849:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
+                    // InternalSignalDSL.g:4880:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
                     {
-                    // InternalSignalDSL.g:4849:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
-                    // InternalSignalDSL.g:4850:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4880:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
+                    // InternalSignalDSL.g:4881:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) )
                     {
-                    // InternalSignalDSL.g:4850:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?
-                    int alt74=2;
-                    alt74 = dfa74.predict(input);
-                    switch (alt74) {
+                    // InternalSignalDSL.g:4881:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?
+                    int alt77=2;
+                    alt77 = dfa77.predict(input);
+                    switch (alt77) {
                         case 1 :
-                            // InternalSignalDSL.g:4851:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
+                            // InternalSignalDSL.g:4882:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
                             {
-                            // InternalSignalDSL.g:4860:6: ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
-                            // InternalSignalDSL.g:4861:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':'
+                            // InternalSignalDSL.g:4891:6: ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
+                            // InternalSignalDSL.g:4892:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':'
                             {
-                            // InternalSignalDSL.g:4861:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) )
-                            // InternalSignalDSL.g:4862:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
+                            // InternalSignalDSL.g:4892:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) )
+                            // InternalSignalDSL.g:4893:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
                             {
-                            // InternalSignalDSL.g:4862:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
-                            // InternalSignalDSL.g:4863:9: lv_declaredParam_7_0= ruleJvmFormalParameter
+                            // InternalSignalDSL.g:4893:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
+                            // InternalSignalDSL.g:4894:9: lv_declaredParam_7_0= ruleJvmFormalParameter
                             {
                             if ( state.backtracking==0 ) {
 
                               									newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0());
                               								
                             }
-                            pushFollow(FOLLOW_18);
+                            pushFollow(FOLLOW_17);
                             lv_declaredParam_7_0=ruleJvmFormalParameter();
 
                             state._fsp--;
@@ -13421,7 +13537,7 @@
 
                             }
 
-                            otherlv_8=(Token)match(input,24,FOLLOW_31); if (state.failed) return current;
+                            otherlv_8=(Token)match(input,25,FOLLOW_31); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(otherlv_8, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1());
@@ -13436,11 +13552,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:4886:5: ( (lv_switch_9_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4887:6: (lv_switch_9_0= ruleXExpression )
+                    // InternalSignalDSL.g:4917:5: ( (lv_switch_9_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4918:6: (lv_switch_9_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4887:6: (lv_switch_9_0= ruleXExpression )
-                    // InternalSignalDSL.g:4888:7: lv_switch_9_0= ruleXExpression
+                    // InternalSignalDSL.g:4918:6: (lv_switch_9_0= ruleXExpression )
+                    // InternalSignalDSL.g:4919:7: lv_switch_9_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13486,23 +13602,23 @@
               			newLeafNode(otherlv_10, grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
               		
             }
-            // InternalSignalDSL.g:4911:3: ( (lv_cases_11_0= ruleXCasePart ) )*
-            loop76:
+            // InternalSignalDSL.g:4942:3: ( (lv_cases_11_0= ruleXCasePart ) )*
+            loop79:
             do {
-                int alt76=2;
-                int LA76_0 = input.LA(1);
+                int alt79=2;
+                int LA79_0 = input.LA(1);
 
-                if ( (LA76_0==RULE_ID||LA76_0==24||(LA76_0>=36 && LA76_0<=37)||LA76_0==61||LA76_0==81) ) {
-                    alt76=1;
+                if ( (LA79_0==RULE_ID||LA79_0==25||(LA79_0>=40 && LA79_0<=41)||LA79_0==65||LA79_0==85) ) {
+                    alt79=1;
                 }
 
 
-                switch (alt76) {
+                switch (alt79) {
             	case 1 :
-            	    // InternalSignalDSL.g:4912:4: (lv_cases_11_0= ruleXCasePart )
+            	    // InternalSignalDSL.g:4943:4: (lv_cases_11_0= ruleXCasePart )
             	    {
-            	    // InternalSignalDSL.g:4912:4: (lv_cases_11_0= ruleXCasePart )
-            	    // InternalSignalDSL.g:4913:5: lv_cases_11_0= ruleXCasePart
+            	    // InternalSignalDSL.g:4943:4: (lv_cases_11_0= ruleXCasePart )
+            	    // InternalSignalDSL.g:4944:5: lv_cases_11_0= ruleXCasePart
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -13535,45 +13651,45 @@
             	    break;
 
             	default :
-            	    break loop76;
+            	    break loop79;
                 }
             } while (true);
 
-            // InternalSignalDSL.g:4930:3: (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )?
-            int alt77=2;
-            int LA77_0 = input.LA(1);
+            // InternalSignalDSL.g:4961:3: (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )?
+            int alt80=2;
+            int LA80_0 = input.LA(1);
 
-            if ( (LA77_0==80) ) {
-                alt77=1;
+            if ( (LA80_0==84) ) {
+                alt80=1;
             }
-            switch (alt77) {
+            switch (alt80) {
                 case 1 :
-                    // InternalSignalDSL.g:4931:4: otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4962:4: otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) )
                     {
-                    otherlv_12=(Token)match(input,80,FOLLOW_18); if (state.failed) return current;
+                    otherlv_12=(Token)match(input,84,FOLLOW_17); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_12, grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
                       			
                     }
-                    otherlv_13=(Token)match(input,24,FOLLOW_31); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,25,FOLLOW_31); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_13, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
                       			
                     }
-                    // InternalSignalDSL.g:4939:4: ( (lv_default_14_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:4940:5: (lv_default_14_0= ruleXExpression )
+                    // InternalSignalDSL.g:4970:4: ( (lv_default_14_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:4971:5: (lv_default_14_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:4940:5: (lv_default_14_0= ruleXExpression )
-                    // InternalSignalDSL.g:4941:6: lv_default_14_0= ruleXExpression
+                    // InternalSignalDSL.g:4971:5: (lv_default_14_0= ruleXExpression )
+                    // InternalSignalDSL.g:4972:6: lv_default_14_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0());
                       					
                     }
-                    pushFollow(FOLLOW_13);
+                    pushFollow(FOLLOW_73);
                     lv_default_14_0=ruleXExpression();
 
                     state._fsp--;
@@ -13634,7 +13750,7 @@
 
 
     // $ANTLR start "entryRuleXCasePart"
-    // InternalSignalDSL.g:4967:1: entryRuleXCasePart returns [EObject current=null] : iv_ruleXCasePart= ruleXCasePart EOF ;
+    // InternalSignalDSL.g:4998:1: entryRuleXCasePart returns [EObject current=null] : iv_ruleXCasePart= ruleXCasePart EOF ;
     public final EObject entryRuleXCasePart() throws RecognitionException {
         EObject current = null;
 
@@ -13642,8 +13758,8 @@
 
 
         try {
-            // InternalSignalDSL.g:4967:50: (iv_ruleXCasePart= ruleXCasePart EOF )
-            // InternalSignalDSL.g:4968:2: iv_ruleXCasePart= ruleXCasePart EOF
+            // InternalSignalDSL.g:4998:50: (iv_ruleXCasePart= ruleXCasePart EOF )
+            // InternalSignalDSL.g:4999:2: iv_ruleXCasePart= ruleXCasePart EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCasePartRule()); 
@@ -13674,7 +13790,7 @@
 
 
     // $ANTLR start "ruleXCasePart"
-    // InternalSignalDSL.g:4974:1: ruleXCasePart returns [EObject current=null] : ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) ;
+    // InternalSignalDSL.g:5005:1: ruleXCasePart returns [EObject current=null] : ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) ;
     public final EObject ruleXCasePart() throws RecognitionException {
         EObject current = null;
 
@@ -13692,14 +13808,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:4980:2: ( ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) )
-            // InternalSignalDSL.g:4981:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
+            // InternalSignalDSL.g:5011:2: ( ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) )
+            // InternalSignalDSL.g:5012:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
             {
-            // InternalSignalDSL.g:4981:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
-            // InternalSignalDSL.g:4982:3: () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
+            // InternalSignalDSL.g:5012:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
+            // InternalSignalDSL.g:5013:3: () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
             {
-            // InternalSignalDSL.g:4982:3: ()
-            // InternalSignalDSL.g:4983:4: 
+            // InternalSignalDSL.g:5013:3: ()
+            // InternalSignalDSL.g:5014:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -13711,26 +13827,26 @@
 
             }
 
-            // InternalSignalDSL.g:4989:3: ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )?
-            int alt78=2;
-            int LA78_0 = input.LA(1);
+            // InternalSignalDSL.g:5020:3: ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )?
+            int alt81=2;
+            int LA81_0 = input.LA(1);
 
-            if ( (LA78_0==RULE_ID||LA78_0==36||LA78_0==61) ) {
-                alt78=1;
+            if ( (LA81_0==RULE_ID||LA81_0==40||LA81_0==65) ) {
+                alt81=1;
             }
-            switch (alt78) {
+            switch (alt81) {
                 case 1 :
-                    // InternalSignalDSL.g:4990:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
+                    // InternalSignalDSL.g:5021:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
                     {
-                    // InternalSignalDSL.g:4990:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
-                    // InternalSignalDSL.g:4991:5: lv_typeGuard_1_0= ruleJvmTypeReference
+                    // InternalSignalDSL.g:5021:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
+                    // InternalSignalDSL.g:5022:5: lv_typeGuard_1_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       					newCompositeNode(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0());
                       				
                     }
-                    pushFollow(FOLLOW_73);
+                    pushFollow(FOLLOW_74);
                     lv_typeGuard_1_0=ruleJvmTypeReference();
 
                     state._fsp--;
@@ -13757,35 +13873,35 @@
 
             }
 
-            // InternalSignalDSL.g:5008:3: (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )?
-            int alt79=2;
-            int LA79_0 = input.LA(1);
+            // InternalSignalDSL.g:5039:3: (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )?
+            int alt82=2;
+            int LA82_0 = input.LA(1);
 
-            if ( (LA79_0==81) ) {
-                alt79=1;
+            if ( (LA82_0==85) ) {
+                alt82=1;
             }
-            switch (alt79) {
+            switch (alt82) {
                 case 1 :
-                    // InternalSignalDSL.g:5009:4: otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:5040:4: otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) )
                     {
-                    otherlv_2=(Token)match(input,81,FOLLOW_31); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,85,FOLLOW_31); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_2, grammarAccess.getXCasePartAccess().getCaseKeyword_2_0());
                       			
                     }
-                    // InternalSignalDSL.g:5013:4: ( (lv_case_3_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:5014:5: (lv_case_3_0= ruleXExpression )
+                    // InternalSignalDSL.g:5044:4: ( (lv_case_3_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:5045:5: (lv_case_3_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:5014:5: (lv_case_3_0= ruleXExpression )
-                    // InternalSignalDSL.g:5015:6: lv_case_3_0= ruleXExpression
+                    // InternalSignalDSL.g:5045:5: (lv_case_3_0= ruleXExpression )
+                    // InternalSignalDSL.g:5046:6: lv_case_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_74);
+                    pushFollow(FOLLOW_75);
                     lv_case_3_0=ruleXExpression();
 
                     state._fsp--;
@@ -13815,41 +13931,41 @@
 
             }
 
-            // InternalSignalDSL.g:5033:3: ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
-            int alt80=2;
-            int LA80_0 = input.LA(1);
+            // InternalSignalDSL.g:5064:3: ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
+            int alt83=2;
+            int LA83_0 = input.LA(1);
 
-            if ( (LA80_0==24) ) {
-                alt80=1;
+            if ( (LA83_0==25) ) {
+                alt83=1;
             }
-            else if ( (LA80_0==37) ) {
-                alt80=2;
+            else if ( (LA83_0==41) ) {
+                alt83=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 80, 0, input);
+                    new NoViableAltException("", 83, 0, input);
 
                 throw nvae;
             }
-            switch (alt80) {
+            switch (alt83) {
                 case 1 :
-                    // InternalSignalDSL.g:5034:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
+                    // InternalSignalDSL.g:5065:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
                     {
-                    // InternalSignalDSL.g:5034:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
-                    // InternalSignalDSL.g:5035:5: otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:5065:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
+                    // InternalSignalDSL.g:5066:5: otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) )
                     {
-                    otherlv_4=(Token)match(input,24,FOLLOW_31); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,25,FOLLOW_31); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_4, grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0());
                       				
                     }
-                    // InternalSignalDSL.g:5039:5: ( (lv_then_5_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:5040:6: (lv_then_5_0= ruleXExpression )
+                    // InternalSignalDSL.g:5070:5: ( (lv_then_5_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:5071:6: (lv_then_5_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:5040:6: (lv_then_5_0= ruleXExpression )
-                    // InternalSignalDSL.g:5041:7: lv_then_5_0= ruleXExpression
+                    // InternalSignalDSL.g:5071:6: (lv_then_5_0= ruleXExpression )
+                    // InternalSignalDSL.g:5072:7: lv_then_5_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13887,15 +14003,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:5060:4: ( (lv_fallThrough_6_0= ',' ) )
+                    // InternalSignalDSL.g:5091:4: ( (lv_fallThrough_6_0= ',' ) )
                     {
-                    // InternalSignalDSL.g:5060:4: ( (lv_fallThrough_6_0= ',' ) )
-                    // InternalSignalDSL.g:5061:5: (lv_fallThrough_6_0= ',' )
+                    // InternalSignalDSL.g:5091:4: ( (lv_fallThrough_6_0= ',' ) )
+                    // InternalSignalDSL.g:5092:5: (lv_fallThrough_6_0= ',' )
                     {
-                    // InternalSignalDSL.g:5061:5: (lv_fallThrough_6_0= ',' )
-                    // InternalSignalDSL.g:5062:6: lv_fallThrough_6_0= ','
+                    // InternalSignalDSL.g:5092:5: (lv_fallThrough_6_0= ',' )
+                    // InternalSignalDSL.g:5093:6: lv_fallThrough_6_0= ','
                     {
-                    lv_fallThrough_6_0=(Token)match(input,37,FOLLOW_2); if (state.failed) return current;
+                    lv_fallThrough_6_0=(Token)match(input,41,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_fallThrough_6_0, grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0());
@@ -13946,7 +14062,7 @@
 
 
     // $ANTLR start "entryRuleXForLoopExpression"
-    // InternalSignalDSL.g:5079:1: entryRuleXForLoopExpression returns [EObject current=null] : iv_ruleXForLoopExpression= ruleXForLoopExpression EOF ;
+    // InternalSignalDSL.g:5110:1: entryRuleXForLoopExpression returns [EObject current=null] : iv_ruleXForLoopExpression= ruleXForLoopExpression EOF ;
     public final EObject entryRuleXForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13954,8 +14070,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5079:59: (iv_ruleXForLoopExpression= ruleXForLoopExpression EOF )
-            // InternalSignalDSL.g:5080:2: iv_ruleXForLoopExpression= ruleXForLoopExpression EOF
+            // InternalSignalDSL.g:5110:59: (iv_ruleXForLoopExpression= ruleXForLoopExpression EOF )
+            // InternalSignalDSL.g:5111:2: iv_ruleXForLoopExpression= ruleXForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXForLoopExpressionRule()); 
@@ -13986,7 +14102,7 @@
 
 
     // $ANTLR start "ruleXForLoopExpression"
-    // InternalSignalDSL.g:5086:1: ruleXForLoopExpression returns [EObject current=null] : ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) ;
+    // InternalSignalDSL.g:5117:1: ruleXForLoopExpression returns [EObject current=null] : ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) ;
     public final EObject ruleXForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -14005,20 +14121,20 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5092:2: ( ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) )
-            // InternalSignalDSL.g:5093:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:5123:2: ( ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) )
+            // InternalSignalDSL.g:5124:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
             {
-            // InternalSignalDSL.g:5093:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
-            // InternalSignalDSL.g:5094:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) )
+            // InternalSignalDSL.g:5124:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:5125:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) )
             {
-            // InternalSignalDSL.g:5094:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
-            // InternalSignalDSL.g:5095:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+            // InternalSignalDSL.g:5125:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
+            // InternalSignalDSL.g:5126:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
             {
-            // InternalSignalDSL.g:5108:4: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
-            // InternalSignalDSL.g:5109:5: () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
+            // InternalSignalDSL.g:5139:4: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+            // InternalSignalDSL.g:5140:5: () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
             {
-            // InternalSignalDSL.g:5109:5: ()
-            // InternalSignalDSL.g:5110:6: 
+            // InternalSignalDSL.g:5140:5: ()
+            // InternalSignalDSL.g:5141:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14030,30 +14146,30 @@
 
             }
 
-            otherlv_1=(Token)match(input,82,FOLLOW_69); if (state.failed) return current;
+            otherlv_1=(Token)match(input,86,FOLLOW_69); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1());
               				
             }
-            otherlv_2=(Token)match(input,36,FOLLOW_44); if (state.failed) return current;
+            otherlv_2=(Token)match(input,40,FOLLOW_44); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_2, grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2());
               				
             }
-            // InternalSignalDSL.g:5124:5: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
-            // InternalSignalDSL.g:5125:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+            // InternalSignalDSL.g:5155:5: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+            // InternalSignalDSL.g:5156:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
             {
-            // InternalSignalDSL.g:5125:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
-            // InternalSignalDSL.g:5126:7: lv_declaredParam_3_0= ruleJvmFormalParameter
+            // InternalSignalDSL.g:5156:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+            // InternalSignalDSL.g:5157:7: lv_declaredParam_3_0= ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
 
               							newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0());
               						
             }
-            pushFollow(FOLLOW_18);
+            pushFollow(FOLLOW_17);
             lv_declaredParam_3_0=ruleJvmFormalParameter();
 
             state._fsp--;
@@ -14077,7 +14193,7 @@
 
             }
 
-            otherlv_4=(Token)match(input,24,FOLLOW_31); if (state.failed) return current;
+            otherlv_4=(Token)match(input,25,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_4, grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4());
@@ -14089,11 +14205,11 @@
 
             }
 
-            // InternalSignalDSL.g:5149:3: ( (lv_forExpression_5_0= ruleXExpression ) )
-            // InternalSignalDSL.g:5150:4: (lv_forExpression_5_0= ruleXExpression )
+            // InternalSignalDSL.g:5180:3: ( (lv_forExpression_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:5181:4: (lv_forExpression_5_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:5150:4: (lv_forExpression_5_0= ruleXExpression )
-            // InternalSignalDSL.g:5151:5: lv_forExpression_5_0= ruleXExpression
+            // InternalSignalDSL.g:5181:4: (lv_forExpression_5_0= ruleXExpression )
+            // InternalSignalDSL.g:5182:5: lv_forExpression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -14124,17 +14240,17 @@
 
             }
 
-            otherlv_6=(Token)match(input,38,FOLLOW_31); if (state.failed) return current;
+            otherlv_6=(Token)match(input,42,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2());
               		
             }
-            // InternalSignalDSL.g:5172:3: ( (lv_eachExpression_7_0= ruleXExpression ) )
-            // InternalSignalDSL.g:5173:4: (lv_eachExpression_7_0= ruleXExpression )
+            // InternalSignalDSL.g:5203:3: ( (lv_eachExpression_7_0= ruleXExpression ) )
+            // InternalSignalDSL.g:5204:4: (lv_eachExpression_7_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:5173:4: (lv_eachExpression_7_0= ruleXExpression )
-            // InternalSignalDSL.g:5174:5: lv_eachExpression_7_0= ruleXExpression
+            // InternalSignalDSL.g:5204:4: (lv_eachExpression_7_0= ruleXExpression )
+            // InternalSignalDSL.g:5205:5: lv_eachExpression_7_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -14190,7 +14306,7 @@
 
 
     // $ANTLR start "entryRuleXBasicForLoopExpression"
-    // InternalSignalDSL.g:5195:1: entryRuleXBasicForLoopExpression returns [EObject current=null] : iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF ;
+    // InternalSignalDSL.g:5226:1: entryRuleXBasicForLoopExpression returns [EObject current=null] : iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF ;
     public final EObject entryRuleXBasicForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -14198,8 +14314,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5195:64: (iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF )
-            // InternalSignalDSL.g:5196:2: iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF
+            // InternalSignalDSL.g:5226:64: (iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF )
+            // InternalSignalDSL.g:5227:2: iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBasicForLoopExpressionRule()); 
@@ -14230,7 +14346,7 @@
 
 
     // $ANTLR start "ruleXBasicForLoopExpression"
-    // InternalSignalDSL.g:5202:1: ruleXBasicForLoopExpression returns [EObject current=null] : ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) ;
+    // InternalSignalDSL.g:5233:1: ruleXBasicForLoopExpression returns [EObject current=null] : ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) ;
     public final EObject ruleXBasicForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -14258,14 +14374,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5208:2: ( ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) )
-            // InternalSignalDSL.g:5209:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:5239:2: ( ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) )
+            // InternalSignalDSL.g:5240:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
             {
-            // InternalSignalDSL.g:5209:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
-            // InternalSignalDSL.g:5210:3: () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) )
+            // InternalSignalDSL.g:5240:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:5241:3: () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) )
             {
-            // InternalSignalDSL.g:5210:3: ()
-            // InternalSignalDSL.g:5211:4: 
+            // InternalSignalDSL.g:5241:3: ()
+            // InternalSignalDSL.g:5242:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14277,41 +14393,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,82,FOLLOW_69); if (state.failed) return current;
+            otherlv_1=(Token)match(input,86,FOLLOW_69); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,36,FOLLOW_75); if (state.failed) return current;
+            otherlv_2=(Token)match(input,40,FOLLOW_76); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalSignalDSL.g:5225:3: ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )?
-            int alt82=2;
-            int LA82_0 = input.LA(1);
+            // InternalSignalDSL.g:5256:3: ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )?
+            int alt85=2;
+            int LA85_0 = input.LA(1);
 
-            if ( ((LA82_0>=RULE_STRING && LA82_0<=RULE_DECIMAL)||LA82_0==14||(LA82_0>=29 && LA82_0<=31)||LA82_0==36||(LA82_0>=40 && LA82_0<=41)||LA82_0==48||(LA82_0>=64 && LA82_0<=65)||LA82_0==69||LA82_0==77||LA82_0==79||(LA82_0>=82 && LA82_0<=96)||LA82_0==98) ) {
-                alt82=1;
+            if ( ((LA85_0>=RULE_STRING && LA85_0<=RULE_DECIMAL)||LA85_0==14||(LA85_0>=33 && LA85_0<=35)||LA85_0==40||(LA85_0>=44 && LA85_0<=45)||LA85_0==52||(LA85_0>=68 && LA85_0<=69)||LA85_0==73||LA85_0==81||LA85_0==83||(LA85_0>=86 && LA85_0<=100)||LA85_0==102) ) {
+                alt85=1;
             }
-            switch (alt82) {
+            switch (alt85) {
                 case 1 :
-                    // InternalSignalDSL.g:5226:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
+                    // InternalSignalDSL.g:5257:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
                     {
-                    // InternalSignalDSL.g:5226:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) )
-                    // InternalSignalDSL.g:5227:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
+                    // InternalSignalDSL.g:5257:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) )
+                    // InternalSignalDSL.g:5258:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
                     {
-                    // InternalSignalDSL.g:5227:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
-                    // InternalSignalDSL.g:5228:6: lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration
+                    // InternalSignalDSL.g:5258:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
+                    // InternalSignalDSL.g:5259:6: lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_76);
+                    pushFollow(FOLLOW_77);
                     lv_initExpressions_3_0=ruleXExpressionOrVarDeclaration();
 
                     state._fsp--;
@@ -14335,39 +14451,39 @@
 
                     }
 
-                    // InternalSignalDSL.g:5245:4: (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
-                    loop81:
+                    // InternalSignalDSL.g:5276:4: (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
+                    loop84:
                     do {
-                        int alt81=2;
-                        int LA81_0 = input.LA(1);
+                        int alt84=2;
+                        int LA84_0 = input.LA(1);
 
-                        if ( (LA81_0==37) ) {
-                            alt81=1;
+                        if ( (LA84_0==41) ) {
+                            alt84=1;
                         }
 
 
-                        switch (alt81) {
+                        switch (alt84) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:5246:5: otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
+                    	    // InternalSignalDSL.g:5277:5: otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,37,FOLLOW_77); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,41,FOLLOW_78); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:5250:5: ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
-                    	    // InternalSignalDSL.g:5251:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
+                    	    // InternalSignalDSL.g:5281:5: ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
+                    	    // InternalSignalDSL.g:5282:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
                     	    {
-                    	    // InternalSignalDSL.g:5251:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
-                    	    // InternalSignalDSL.g:5252:7: lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration
+                    	    // InternalSignalDSL.g:5282:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
+                    	    // InternalSignalDSL.g:5283:7: lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_76);
+                    	    pushFollow(FOLLOW_77);
                     	    lv_initExpressions_5_0=ruleXExpressionOrVarDeclaration();
 
                     	    state._fsp--;
@@ -14396,7 +14512,7 @@
                     	    break;
 
                     	default :
-                    	    break loop81;
+                    	    break loop84;
                         }
                     } while (true);
 
@@ -14406,32 +14522,32 @@
 
             }
 
-            otherlv_6=(Token)match(input,34,FOLLOW_78); if (state.failed) return current;
+            otherlv_6=(Token)match(input,38,FOLLOW_79); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4());
               		
             }
-            // InternalSignalDSL.g:5275:3: ( (lv_expression_7_0= ruleXExpression ) )?
-            int alt83=2;
-            int LA83_0 = input.LA(1);
+            // InternalSignalDSL.g:5306:3: ( (lv_expression_7_0= ruleXExpression ) )?
+            int alt86=2;
+            int LA86_0 = input.LA(1);
 
-            if ( ((LA83_0>=RULE_STRING && LA83_0<=RULE_DECIMAL)||LA83_0==14||(LA83_0>=29 && LA83_0<=31)||LA83_0==36||(LA83_0>=40 && LA83_0<=41)||LA83_0==48||(LA83_0>=64 && LA83_0<=65)||LA83_0==69||LA83_0==77||LA83_0==79||(LA83_0>=82 && LA83_0<=84)||(LA83_0>=87 && LA83_0<=96)||LA83_0==98) ) {
-                alt83=1;
+            if ( ((LA86_0>=RULE_STRING && LA86_0<=RULE_DECIMAL)||LA86_0==14||(LA86_0>=33 && LA86_0<=35)||LA86_0==40||(LA86_0>=44 && LA86_0<=45)||LA86_0==52||(LA86_0>=68 && LA86_0<=69)||LA86_0==73||LA86_0==81||LA86_0==83||(LA86_0>=86 && LA86_0<=88)||(LA86_0>=91 && LA86_0<=100)||LA86_0==102) ) {
+                alt86=1;
             }
-            switch (alt83) {
+            switch (alt86) {
                 case 1 :
-                    // InternalSignalDSL.g:5276:4: (lv_expression_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:5307:4: (lv_expression_7_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:5276:4: (lv_expression_7_0= ruleXExpression )
-                    // InternalSignalDSL.g:5277:5: lv_expression_7_0= ruleXExpression
+                    // InternalSignalDSL.g:5307:4: (lv_expression_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:5308:5: lv_expression_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       					newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0());
                       				
                     }
-                    pushFollow(FOLLOW_79);
+                    pushFollow(FOLLOW_80);
                     lv_expression_7_0=ruleXExpression();
 
                     state._fsp--;
@@ -14458,28 +14574,28 @@
 
             }
 
-            otherlv_8=(Token)match(input,34,FOLLOW_27); if (state.failed) return current;
+            otherlv_8=(Token)match(input,38,FOLLOW_27); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_8, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6());
               		
             }
-            // InternalSignalDSL.g:5298:3: ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )?
-            int alt85=2;
-            int LA85_0 = input.LA(1);
+            // InternalSignalDSL.g:5329:3: ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )?
+            int alt88=2;
+            int LA88_0 = input.LA(1);
 
-            if ( ((LA85_0>=RULE_STRING && LA85_0<=RULE_DECIMAL)||LA85_0==14||(LA85_0>=29 && LA85_0<=31)||LA85_0==36||(LA85_0>=40 && LA85_0<=41)||LA85_0==48||(LA85_0>=64 && LA85_0<=65)||LA85_0==69||LA85_0==77||LA85_0==79||(LA85_0>=82 && LA85_0<=84)||(LA85_0>=87 && LA85_0<=96)||LA85_0==98) ) {
-                alt85=1;
+            if ( ((LA88_0>=RULE_STRING && LA88_0<=RULE_DECIMAL)||LA88_0==14||(LA88_0>=33 && LA88_0<=35)||LA88_0==40||(LA88_0>=44 && LA88_0<=45)||LA88_0==52||(LA88_0>=68 && LA88_0<=69)||LA88_0==73||LA88_0==81||LA88_0==83||(LA88_0>=86 && LA88_0<=88)||(LA88_0>=91 && LA88_0<=100)||LA88_0==102) ) {
+                alt88=1;
             }
-            switch (alt85) {
+            switch (alt88) {
                 case 1 :
-                    // InternalSignalDSL.g:5299:4: ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
+                    // InternalSignalDSL.g:5330:4: ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
                     {
-                    // InternalSignalDSL.g:5299:4: ( (lv_updateExpressions_9_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:5300:5: (lv_updateExpressions_9_0= ruleXExpression )
+                    // InternalSignalDSL.g:5330:4: ( (lv_updateExpressions_9_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:5331:5: (lv_updateExpressions_9_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:5300:5: (lv_updateExpressions_9_0= ruleXExpression )
-                    // InternalSignalDSL.g:5301:6: lv_updateExpressions_9_0= ruleXExpression
+                    // InternalSignalDSL.g:5331:5: (lv_updateExpressions_9_0= ruleXExpression )
+                    // InternalSignalDSL.g:5332:6: lv_updateExpressions_9_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -14510,32 +14626,32 @@
 
                     }
 
-                    // InternalSignalDSL.g:5318:4: (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
-                    loop84:
+                    // InternalSignalDSL.g:5349:4: (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
+                    loop87:
                     do {
-                        int alt84=2;
-                        int LA84_0 = input.LA(1);
+                        int alt87=2;
+                        int LA87_0 = input.LA(1);
 
-                        if ( (LA84_0==37) ) {
-                            alt84=1;
+                        if ( (LA87_0==41) ) {
+                            alt87=1;
                         }
 
 
-                        switch (alt84) {
+                        switch (alt87) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:5319:5: otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) )
+                    	    // InternalSignalDSL.g:5350:5: otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_10=(Token)match(input,37,FOLLOW_31); if (state.failed) return current;
+                    	    otherlv_10=(Token)match(input,41,FOLLOW_31); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_10, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:5323:5: ( (lv_updateExpressions_11_0= ruleXExpression ) )
-                    	    // InternalSignalDSL.g:5324:6: (lv_updateExpressions_11_0= ruleXExpression )
+                    	    // InternalSignalDSL.g:5354:5: ( (lv_updateExpressions_11_0= ruleXExpression ) )
+                    	    // InternalSignalDSL.g:5355:6: (lv_updateExpressions_11_0= ruleXExpression )
                     	    {
-                    	    // InternalSignalDSL.g:5324:6: (lv_updateExpressions_11_0= ruleXExpression )
-                    	    // InternalSignalDSL.g:5325:7: lv_updateExpressions_11_0= ruleXExpression
+                    	    // InternalSignalDSL.g:5355:6: (lv_updateExpressions_11_0= ruleXExpression )
+                    	    // InternalSignalDSL.g:5356:7: lv_updateExpressions_11_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -14571,7 +14687,7 @@
                     	    break;
 
                     	default :
-                    	    break loop84;
+                    	    break loop87;
                         }
                     } while (true);
 
@@ -14581,17 +14697,17 @@
 
             }
 
-            otherlv_12=(Token)match(input,38,FOLLOW_31); if (state.failed) return current;
+            otherlv_12=(Token)match(input,42,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_12, grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8());
               		
             }
-            // InternalSignalDSL.g:5348:3: ( (lv_eachExpression_13_0= ruleXExpression ) )
-            // InternalSignalDSL.g:5349:4: (lv_eachExpression_13_0= ruleXExpression )
+            // InternalSignalDSL.g:5379:3: ( (lv_eachExpression_13_0= ruleXExpression ) )
+            // InternalSignalDSL.g:5380:4: (lv_eachExpression_13_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:5349:4: (lv_eachExpression_13_0= ruleXExpression )
-            // InternalSignalDSL.g:5350:5: lv_eachExpression_13_0= ruleXExpression
+            // InternalSignalDSL.g:5380:4: (lv_eachExpression_13_0= ruleXExpression )
+            // InternalSignalDSL.g:5381:5: lv_eachExpression_13_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -14647,7 +14763,7 @@
 
 
     // $ANTLR start "entryRuleXWhileExpression"
-    // InternalSignalDSL.g:5371:1: entryRuleXWhileExpression returns [EObject current=null] : iv_ruleXWhileExpression= ruleXWhileExpression EOF ;
+    // InternalSignalDSL.g:5402:1: entryRuleXWhileExpression returns [EObject current=null] : iv_ruleXWhileExpression= ruleXWhileExpression EOF ;
     public final EObject entryRuleXWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -14655,8 +14771,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5371:57: (iv_ruleXWhileExpression= ruleXWhileExpression EOF )
-            // InternalSignalDSL.g:5372:2: iv_ruleXWhileExpression= ruleXWhileExpression EOF
+            // InternalSignalDSL.g:5402:57: (iv_ruleXWhileExpression= ruleXWhileExpression EOF )
+            // InternalSignalDSL.g:5403:2: iv_ruleXWhileExpression= ruleXWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXWhileExpressionRule()); 
@@ -14687,7 +14803,7 @@
 
 
     // $ANTLR start "ruleXWhileExpression"
-    // InternalSignalDSL.g:5378:1: ruleXWhileExpression returns [EObject current=null] : ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) ;
+    // InternalSignalDSL.g:5409:1: ruleXWhileExpression returns [EObject current=null] : ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) ;
     public final EObject ruleXWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -14703,14 +14819,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5384:2: ( ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) )
-            // InternalSignalDSL.g:5385:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:5415:2: ( ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) )
+            // InternalSignalDSL.g:5416:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
             {
-            // InternalSignalDSL.g:5385:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
-            // InternalSignalDSL.g:5386:3: () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:5416:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:5417:3: () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) )
             {
-            // InternalSignalDSL.g:5386:3: ()
-            // InternalSignalDSL.g:5387:4: 
+            // InternalSignalDSL.g:5417:3: ()
+            // InternalSignalDSL.g:5418:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14722,23 +14838,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,83,FOLLOW_69); if (state.failed) return current;
+            otherlv_1=(Token)match(input,87,FOLLOW_69); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,36,FOLLOW_31); if (state.failed) return current;
+            otherlv_2=(Token)match(input,40,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalSignalDSL.g:5401:3: ( (lv_predicate_3_0= ruleXExpression ) )
-            // InternalSignalDSL.g:5402:4: (lv_predicate_3_0= ruleXExpression )
+            // InternalSignalDSL.g:5432:3: ( (lv_predicate_3_0= ruleXExpression ) )
+            // InternalSignalDSL.g:5433:4: (lv_predicate_3_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:5402:4: (lv_predicate_3_0= ruleXExpression )
-            // InternalSignalDSL.g:5403:5: lv_predicate_3_0= ruleXExpression
+            // InternalSignalDSL.g:5433:4: (lv_predicate_3_0= ruleXExpression )
+            // InternalSignalDSL.g:5434:5: lv_predicate_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -14769,17 +14885,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,38,FOLLOW_31); if (state.failed) return current;
+            otherlv_4=(Token)match(input,42,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
               		
             }
-            // InternalSignalDSL.g:5424:3: ( (lv_body_5_0= ruleXExpression ) )
-            // InternalSignalDSL.g:5425:4: (lv_body_5_0= ruleXExpression )
+            // InternalSignalDSL.g:5455:3: ( (lv_body_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:5456:4: (lv_body_5_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:5425:4: (lv_body_5_0= ruleXExpression )
-            // InternalSignalDSL.g:5426:5: lv_body_5_0= ruleXExpression
+            // InternalSignalDSL.g:5456:4: (lv_body_5_0= ruleXExpression )
+            // InternalSignalDSL.g:5457:5: lv_body_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -14835,7 +14951,7 @@
 
 
     // $ANTLR start "entryRuleXDoWhileExpression"
-    // InternalSignalDSL.g:5447:1: entryRuleXDoWhileExpression returns [EObject current=null] : iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF ;
+    // InternalSignalDSL.g:5478:1: entryRuleXDoWhileExpression returns [EObject current=null] : iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF ;
     public final EObject entryRuleXDoWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -14843,8 +14959,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5447:59: (iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF )
-            // InternalSignalDSL.g:5448:2: iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF
+            // InternalSignalDSL.g:5478:59: (iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF )
+            // InternalSignalDSL.g:5479:2: iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXDoWhileExpressionRule()); 
@@ -14875,7 +14991,7 @@
 
 
     // $ANTLR start "ruleXDoWhileExpression"
-    // InternalSignalDSL.g:5454:1: ruleXDoWhileExpression returns [EObject current=null] : ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) ;
+    // InternalSignalDSL.g:5485:1: ruleXDoWhileExpression returns [EObject current=null] : ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) ;
     public final EObject ruleXDoWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -14892,14 +15008,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5460:2: ( ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) )
-            // InternalSignalDSL.g:5461:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+            // InternalSignalDSL.g:5491:2: ( ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) )
+            // InternalSignalDSL.g:5492:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
             {
-            // InternalSignalDSL.g:5461:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
-            // InternalSignalDSL.g:5462:3: () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')'
+            // InternalSignalDSL.g:5492:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+            // InternalSignalDSL.g:5493:3: () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')'
             {
-            // InternalSignalDSL.g:5462:3: ()
-            // InternalSignalDSL.g:5463:4: 
+            // InternalSignalDSL.g:5493:3: ()
+            // InternalSignalDSL.g:5494:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14911,24 +15027,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,84,FOLLOW_31); if (state.failed) return current;
+            otherlv_1=(Token)match(input,88,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
               		
             }
-            // InternalSignalDSL.g:5473:3: ( (lv_body_2_0= ruleXExpression ) )
-            // InternalSignalDSL.g:5474:4: (lv_body_2_0= ruleXExpression )
+            // InternalSignalDSL.g:5504:3: ( (lv_body_2_0= ruleXExpression ) )
+            // InternalSignalDSL.g:5505:4: (lv_body_2_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:5474:4: (lv_body_2_0= ruleXExpression )
-            // InternalSignalDSL.g:5475:5: lv_body_2_0= ruleXExpression
+            // InternalSignalDSL.g:5505:4: (lv_body_2_0= ruleXExpression )
+            // InternalSignalDSL.g:5506:5: lv_body_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_80);
+            pushFollow(FOLLOW_81);
             lv_body_2_0=ruleXExpression();
 
             state._fsp--;
@@ -14952,23 +15068,23 @@
 
             }
 
-            otherlv_3=(Token)match(input,83,FOLLOW_69); if (state.failed) return current;
+            otherlv_3=(Token)match(input,87,FOLLOW_69); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_3, grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
               		
             }
-            otherlv_4=(Token)match(input,36,FOLLOW_31); if (state.failed) return current;
+            otherlv_4=(Token)match(input,40,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
               		
             }
-            // InternalSignalDSL.g:5500:3: ( (lv_predicate_5_0= ruleXExpression ) )
-            // InternalSignalDSL.g:5501:4: (lv_predicate_5_0= ruleXExpression )
+            // InternalSignalDSL.g:5531:3: ( (lv_predicate_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:5532:4: (lv_predicate_5_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:5501:4: (lv_predicate_5_0= ruleXExpression )
-            // InternalSignalDSL.g:5502:5: lv_predicate_5_0= ruleXExpression
+            // InternalSignalDSL.g:5532:4: (lv_predicate_5_0= ruleXExpression )
+            // InternalSignalDSL.g:5533:5: lv_predicate_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -14999,7 +15115,7 @@
 
             }
 
-            otherlv_6=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
+            otherlv_6=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
@@ -15030,7 +15146,7 @@
 
 
     // $ANTLR start "entryRuleXBlockExpression"
-    // InternalSignalDSL.g:5527:1: entryRuleXBlockExpression returns [EObject current=null] : iv_ruleXBlockExpression= ruleXBlockExpression EOF ;
+    // InternalSignalDSL.g:5558:1: entryRuleXBlockExpression returns [EObject current=null] : iv_ruleXBlockExpression= ruleXBlockExpression EOF ;
     public final EObject entryRuleXBlockExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15038,8 +15154,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5527:57: (iv_ruleXBlockExpression= ruleXBlockExpression EOF )
-            // InternalSignalDSL.g:5528:2: iv_ruleXBlockExpression= ruleXBlockExpression EOF
+            // InternalSignalDSL.g:5558:57: (iv_ruleXBlockExpression= ruleXBlockExpression EOF )
+            // InternalSignalDSL.g:5559:2: iv_ruleXBlockExpression= ruleXBlockExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBlockExpressionRule()); 
@@ -15070,7 +15186,7 @@
 
 
     // $ANTLR start "ruleXBlockExpression"
-    // InternalSignalDSL.g:5534:1: ruleXBlockExpression returns [EObject current=null] : ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) ;
+    // InternalSignalDSL.g:5565:1: ruleXBlockExpression returns [EObject current=null] : ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) ;
     public final EObject ruleXBlockExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15084,14 +15200,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5540:2: ( ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) )
-            // InternalSignalDSL.g:5541:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+            // InternalSignalDSL.g:5571:2: ( ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) )
+            // InternalSignalDSL.g:5572:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
             {
-            // InternalSignalDSL.g:5541:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
-            // InternalSignalDSL.g:5542:3: () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}'
+            // InternalSignalDSL.g:5572:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+            // InternalSignalDSL.g:5573:3: () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}'
             {
-            // InternalSignalDSL.g:5542:3: ()
-            // InternalSignalDSL.g:5543:4: 
+            // InternalSignalDSL.g:5573:3: ()
+            // InternalSignalDSL.g:5574:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15103,39 +15219,39 @@
 
             }
 
-            otherlv_1=(Token)match(input,14,FOLLOW_81); if (state.failed) return current;
+            otherlv_1=(Token)match(input,14,FOLLOW_82); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
               		
             }
-            // InternalSignalDSL.g:5553:3: ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )*
-            loop87:
+            // InternalSignalDSL.g:5584:3: ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )*
+            loop90:
             do {
-                int alt87=2;
-                int LA87_0 = input.LA(1);
+                int alt90=2;
+                int LA90_0 = input.LA(1);
 
-                if ( ((LA87_0>=RULE_STRING && LA87_0<=RULE_DECIMAL)||LA87_0==14||(LA87_0>=29 && LA87_0<=31)||LA87_0==36||(LA87_0>=40 && LA87_0<=41)||LA87_0==48||(LA87_0>=64 && LA87_0<=65)||LA87_0==69||LA87_0==77||LA87_0==79||(LA87_0>=82 && LA87_0<=96)||LA87_0==98) ) {
-                    alt87=1;
+                if ( ((LA90_0>=RULE_STRING && LA90_0<=RULE_DECIMAL)||LA90_0==14||(LA90_0>=33 && LA90_0<=35)||LA90_0==40||(LA90_0>=44 && LA90_0<=45)||LA90_0==52||(LA90_0>=68 && LA90_0<=69)||LA90_0==73||LA90_0==81||LA90_0==83||(LA90_0>=86 && LA90_0<=100)||LA90_0==102) ) {
+                    alt90=1;
                 }
 
 
-                switch (alt87) {
+                switch (alt90) {
             	case 1 :
-            	    // InternalSignalDSL.g:5554:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )?
+            	    // InternalSignalDSL.g:5585:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )?
             	    {
-            	    // InternalSignalDSL.g:5554:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) )
-            	    // InternalSignalDSL.g:5555:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalSignalDSL.g:5585:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) )
+            	    // InternalSignalDSL.g:5586:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
             	    {
-            	    // InternalSignalDSL.g:5555:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
-            	    // InternalSignalDSL.g:5556:6: lv_expressions_2_0= ruleXExpressionOrVarDeclaration
+            	    // InternalSignalDSL.g:5586:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalSignalDSL.g:5587:6: lv_expressions_2_0= ruleXExpressionOrVarDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_82);
+            	    pushFollow(FOLLOW_83);
             	    lv_expressions_2_0=ruleXExpressionOrVarDeclaration();
 
             	    state._fsp--;
@@ -15159,18 +15275,18 @@
 
             	    }
 
-            	    // InternalSignalDSL.g:5573:4: (otherlv_3= ';' )?
-            	    int alt86=2;
-            	    int LA86_0 = input.LA(1);
+            	    // InternalSignalDSL.g:5604:4: (otherlv_3= ';' )?
+            	    int alt89=2;
+            	    int LA89_0 = input.LA(1);
 
-            	    if ( (LA86_0==34) ) {
-            	        alt86=1;
+            	    if ( (LA89_0==38) ) {
+            	        alt89=1;
             	    }
-            	    switch (alt86) {
+            	    switch (alt89) {
             	        case 1 :
-            	            // InternalSignalDSL.g:5574:5: otherlv_3= ';'
+            	            // InternalSignalDSL.g:5605:5: otherlv_3= ';'
             	            {
-            	            otherlv_3=(Token)match(input,34,FOLLOW_81); if (state.failed) return current;
+            	            otherlv_3=(Token)match(input,38,FOLLOW_82); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              					newLeafNode(otherlv_3, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
@@ -15187,7 +15303,7 @@
             	    break;
 
             	default :
-            	    break loop87;
+            	    break loop90;
                 }
             } while (true);
 
@@ -15222,7 +15338,7 @@
 
 
     // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
-    // InternalSignalDSL.g:5588:1: entryRuleXExpressionOrVarDeclaration returns [EObject current=null] : iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF ;
+    // InternalSignalDSL.g:5619:1: entryRuleXExpressionOrVarDeclaration returns [EObject current=null] : iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF ;
     public final EObject entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -15230,8 +15346,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5588:68: (iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF )
-            // InternalSignalDSL.g:5589:2: iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF
+            // InternalSignalDSL.g:5619:68: (iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF )
+            // InternalSignalDSL.g:5620:2: iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationRule()); 
@@ -15262,7 +15378,7 @@
 
 
     // $ANTLR start "ruleXExpressionOrVarDeclaration"
-    // InternalSignalDSL.g:5595:1: ruleXExpressionOrVarDeclaration returns [EObject current=null] : (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) ;
+    // InternalSignalDSL.g:5626:1: ruleXExpressionOrVarDeclaration returns [EObject current=null] : (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) ;
     public final EObject ruleXExpressionOrVarDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -15275,29 +15391,29 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5601:2: ( (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) )
-            // InternalSignalDSL.g:5602:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+            // InternalSignalDSL.g:5632:2: ( (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) )
+            // InternalSignalDSL.g:5633:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
             {
-            // InternalSignalDSL.g:5602:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
-            int alt88=2;
-            int LA88_0 = input.LA(1);
+            // InternalSignalDSL.g:5633:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+            int alt91=2;
+            int LA91_0 = input.LA(1);
 
-            if ( ((LA88_0>=85 && LA88_0<=86)) ) {
-                alt88=1;
+            if ( ((LA91_0>=89 && LA91_0<=90)) ) {
+                alt91=1;
             }
-            else if ( ((LA88_0>=RULE_STRING && LA88_0<=RULE_DECIMAL)||LA88_0==14||(LA88_0>=29 && LA88_0<=31)||LA88_0==36||(LA88_0>=40 && LA88_0<=41)||LA88_0==48||(LA88_0>=64 && LA88_0<=65)||LA88_0==69||LA88_0==77||LA88_0==79||(LA88_0>=82 && LA88_0<=84)||(LA88_0>=87 && LA88_0<=96)||LA88_0==98) ) {
-                alt88=2;
+            else if ( ((LA91_0>=RULE_STRING && LA91_0<=RULE_DECIMAL)||LA91_0==14||(LA91_0>=33 && LA91_0<=35)||LA91_0==40||(LA91_0>=44 && LA91_0<=45)||LA91_0==52||(LA91_0>=68 && LA91_0<=69)||LA91_0==73||LA91_0==81||LA91_0==83||(LA91_0>=86 && LA91_0<=88)||(LA91_0>=91 && LA91_0<=100)||LA91_0==102) ) {
+                alt91=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 88, 0, input);
+                    new NoViableAltException("", 91, 0, input);
 
                 throw nvae;
             }
-            switch (alt88) {
+            switch (alt91) {
                 case 1 :
-                    // InternalSignalDSL.g:5603:3: this_XVariableDeclaration_0= ruleXVariableDeclaration
+                    // InternalSignalDSL.g:5634:3: this_XVariableDeclaration_0= ruleXVariableDeclaration
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15319,7 +15435,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:5612:3: this_XExpression_1= ruleXExpression
+                    // InternalSignalDSL.g:5643:3: this_XExpression_1= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15365,7 +15481,7 @@
 
 
     // $ANTLR start "entryRuleXVariableDeclaration"
-    // InternalSignalDSL.g:5624:1: entryRuleXVariableDeclaration returns [EObject current=null] : iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF ;
+    // InternalSignalDSL.g:5655:1: entryRuleXVariableDeclaration returns [EObject current=null] : iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF ;
     public final EObject entryRuleXVariableDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -15373,8 +15489,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5624:61: (iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF )
-            // InternalSignalDSL.g:5625:2: iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF
+            // InternalSignalDSL.g:5655:61: (iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF )
+            // InternalSignalDSL.g:5656:2: iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXVariableDeclarationRule()); 
@@ -15405,7 +15521,7 @@
 
 
     // $ANTLR start "ruleXVariableDeclaration"
-    // InternalSignalDSL.g:5631:1: ruleXVariableDeclaration returns [EObject current=null] : ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) ;
+    // InternalSignalDSL.g:5662:1: ruleXVariableDeclaration returns [EObject current=null] : ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) ;
     public final EObject ruleXVariableDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -15425,14 +15541,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5637:2: ( ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) )
-            // InternalSignalDSL.g:5638:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
+            // InternalSignalDSL.g:5668:2: ( ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) )
+            // InternalSignalDSL.g:5669:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
             {
-            // InternalSignalDSL.g:5638:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
-            // InternalSignalDSL.g:5639:3: () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+            // InternalSignalDSL.g:5669:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
+            // InternalSignalDSL.g:5670:3: () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
             {
-            // InternalSignalDSL.g:5639:3: ()
-            // InternalSignalDSL.g:5640:4: 
+            // InternalSignalDSL.g:5670:3: ()
+            // InternalSignalDSL.g:5671:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15444,34 +15560,34 @@
 
             }
 
-            // InternalSignalDSL.g:5646:3: ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' )
-            int alt89=2;
-            int LA89_0 = input.LA(1);
+            // InternalSignalDSL.g:5677:3: ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' )
+            int alt92=2;
+            int LA92_0 = input.LA(1);
 
-            if ( (LA89_0==85) ) {
-                alt89=1;
+            if ( (LA92_0==89) ) {
+                alt92=1;
             }
-            else if ( (LA89_0==86) ) {
-                alt89=2;
+            else if ( (LA92_0==90) ) {
+                alt92=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 89, 0, input);
+                    new NoViableAltException("", 92, 0, input);
 
                 throw nvae;
             }
-            switch (alt89) {
+            switch (alt92) {
                 case 1 :
-                    // InternalSignalDSL.g:5647:4: ( (lv_writeable_1_0= 'var' ) )
+                    // InternalSignalDSL.g:5678:4: ( (lv_writeable_1_0= 'var' ) )
                     {
-                    // InternalSignalDSL.g:5647:4: ( (lv_writeable_1_0= 'var' ) )
-                    // InternalSignalDSL.g:5648:5: (lv_writeable_1_0= 'var' )
+                    // InternalSignalDSL.g:5678:4: ( (lv_writeable_1_0= 'var' ) )
+                    // InternalSignalDSL.g:5679:5: (lv_writeable_1_0= 'var' )
                     {
-                    // InternalSignalDSL.g:5648:5: (lv_writeable_1_0= 'var' )
-                    // InternalSignalDSL.g:5649:6: lv_writeable_1_0= 'var'
+                    // InternalSignalDSL.g:5679:5: (lv_writeable_1_0= 'var' )
+                    // InternalSignalDSL.g:5680:6: lv_writeable_1_0= 'var'
                     {
-                    lv_writeable_1_0=(Token)match(input,85,FOLLOW_44); if (state.failed) return current;
+                    lv_writeable_1_0=(Token)match(input,89,FOLLOW_44); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_writeable_1_0, grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
@@ -15495,9 +15611,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:5662:4: otherlv_2= 'val'
+                    // InternalSignalDSL.g:5693:4: otherlv_2= 'val'
                     {
-                    otherlv_2=(Token)match(input,86,FOLLOW_44); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,90,FOLLOW_44); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_2, grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
@@ -15509,55 +15625,55 @@
 
             }
 
-            // InternalSignalDSL.g:5667:3: ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) )
-            int alt90=2;
-            int LA90_0 = input.LA(1);
+            // InternalSignalDSL.g:5698:3: ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) )
+            int alt93=2;
+            int LA93_0 = input.LA(1);
 
-            if ( (LA90_0==RULE_ID) ) {
-                int LA90_1 = input.LA(2);
+            if ( (LA93_0==RULE_ID) ) {
+                int LA93_1 = input.LA(2);
 
                 if ( (synpred35_InternalSignalDSL()) ) {
-                    alt90=1;
+                    alt93=1;
                 }
                 else if ( (true) ) {
-                    alt90=2;
+                    alt93=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 90, 1, input);
+                        new NoViableAltException("", 93, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA90_0==36) && (synpred35_InternalSignalDSL())) {
-                alt90=1;
+            else if ( (LA93_0==40) && (synpred35_InternalSignalDSL())) {
+                alt93=1;
             }
-            else if ( (LA90_0==61) && (synpred35_InternalSignalDSL())) {
-                alt90=1;
+            else if ( (LA93_0==65) && (synpred35_InternalSignalDSL())) {
+                alt93=1;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 90, 0, input);
+                    new NoViableAltException("", 93, 0, input);
 
                 throw nvae;
             }
-            switch (alt90) {
+            switch (alt93) {
                 case 1 :
-                    // InternalSignalDSL.g:5668:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+                    // InternalSignalDSL.g:5699:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
                     {
-                    // InternalSignalDSL.g:5668:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
-                    // InternalSignalDSL.g:5669:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+                    // InternalSignalDSL.g:5699:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+                    // InternalSignalDSL.g:5700:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
                     {
-                    // InternalSignalDSL.g:5682:5: ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
-                    // InternalSignalDSL.g:5683:6: ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) )
+                    // InternalSignalDSL.g:5713:5: ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+                    // InternalSignalDSL.g:5714:6: ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) )
                     {
-                    // InternalSignalDSL.g:5683:6: ( (lv_type_3_0= ruleJvmTypeReference ) )
-                    // InternalSignalDSL.g:5684:7: (lv_type_3_0= ruleJvmTypeReference )
+                    // InternalSignalDSL.g:5714:6: ( (lv_type_3_0= ruleJvmTypeReference ) )
+                    // InternalSignalDSL.g:5715:7: (lv_type_3_0= ruleJvmTypeReference )
                     {
-                    // InternalSignalDSL.g:5684:7: (lv_type_3_0= ruleJvmTypeReference )
-                    // InternalSignalDSL.g:5685:8: lv_type_3_0= ruleJvmTypeReference
+                    // InternalSignalDSL.g:5715:7: (lv_type_3_0= ruleJvmTypeReference )
+                    // InternalSignalDSL.g:5716:8: lv_type_3_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15588,18 +15704,18 @@
 
                     }
 
-                    // InternalSignalDSL.g:5702:6: ( (lv_name_4_0= ruleValidID ) )
-                    // InternalSignalDSL.g:5703:7: (lv_name_4_0= ruleValidID )
+                    // InternalSignalDSL.g:5733:6: ( (lv_name_4_0= ruleValidID ) )
+                    // InternalSignalDSL.g:5734:7: (lv_name_4_0= ruleValidID )
                     {
-                    // InternalSignalDSL.g:5703:7: (lv_name_4_0= ruleValidID )
-                    // InternalSignalDSL.g:5704:8: lv_name_4_0= ruleValidID
+                    // InternalSignalDSL.g:5734:7: (lv_name_4_0= ruleValidID )
+                    // InternalSignalDSL.g:5735:8: lv_name_4_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
                       								newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0());
                       							
                     }
-                    pushFollow(FOLLOW_83);
+                    pushFollow(FOLLOW_84);
                     lv_name_4_0=ruleValidID();
 
                     state._fsp--;
@@ -15633,20 +15749,20 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:5724:4: ( (lv_name_5_0= ruleValidID ) )
+                    // InternalSignalDSL.g:5755:4: ( (lv_name_5_0= ruleValidID ) )
                     {
-                    // InternalSignalDSL.g:5724:4: ( (lv_name_5_0= ruleValidID ) )
-                    // InternalSignalDSL.g:5725:5: (lv_name_5_0= ruleValidID )
+                    // InternalSignalDSL.g:5755:4: ( (lv_name_5_0= ruleValidID ) )
+                    // InternalSignalDSL.g:5756:5: (lv_name_5_0= ruleValidID )
                     {
-                    // InternalSignalDSL.g:5725:5: (lv_name_5_0= ruleValidID )
-                    // InternalSignalDSL.g:5726:6: lv_name_5_0= ruleValidID
+                    // InternalSignalDSL.g:5756:5: (lv_name_5_0= ruleValidID )
+                    // InternalSignalDSL.g:5757:6: lv_name_5_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_83);
+                    pushFollow(FOLLOW_84);
                     lv_name_5_0=ruleValidID();
 
                     state._fsp--;
@@ -15676,28 +15792,28 @@
 
             }
 
-            // InternalSignalDSL.g:5744:3: (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
-            int alt91=2;
-            int LA91_0 = input.LA(1);
+            // InternalSignalDSL.g:5775:3: (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+            int alt94=2;
+            int LA94_0 = input.LA(1);
 
-            if ( (LA91_0==39) ) {
-                alt91=1;
+            if ( (LA94_0==43) ) {
+                alt94=1;
             }
-            switch (alt91) {
+            switch (alt94) {
                 case 1 :
-                    // InternalSignalDSL.g:5745:4: otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:5776:4: otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) )
                     {
-                    otherlv_6=(Token)match(input,39,FOLLOW_31); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,43,FOLLOW_31); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
                       			
                     }
-                    // InternalSignalDSL.g:5749:4: ( (lv_right_7_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:5750:5: (lv_right_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:5780:4: ( (lv_right_7_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:5781:5: (lv_right_7_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:5750:5: (lv_right_7_0= ruleXExpression )
-                    // InternalSignalDSL.g:5751:6: lv_right_7_0= ruleXExpression
+                    // InternalSignalDSL.g:5781:5: (lv_right_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:5782:6: lv_right_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15759,7 +15875,7 @@
 
 
     // $ANTLR start "entryRuleJvmFormalParameter"
-    // InternalSignalDSL.g:5773:1: entryRuleJvmFormalParameter returns [EObject current=null] : iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF ;
+    // InternalSignalDSL.g:5804:1: entryRuleJvmFormalParameter returns [EObject current=null] : iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF ;
     public final EObject entryRuleJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -15767,8 +15883,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5773:59: (iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF )
-            // InternalSignalDSL.g:5774:2: iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF
+            // InternalSignalDSL.g:5804:59: (iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF )
+            // InternalSignalDSL.g:5805:2: iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmFormalParameterRule()); 
@@ -15799,7 +15915,7 @@
 
 
     // $ANTLR start "ruleJvmFormalParameter"
-    // InternalSignalDSL.g:5780:1: ruleJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) ;
+    // InternalSignalDSL.g:5811:1: ruleJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) ;
     public final EObject ruleJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -15812,32 +15928,32 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5786:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) )
-            // InternalSignalDSL.g:5787:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalSignalDSL.g:5817:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) )
+            // InternalSignalDSL.g:5818:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
             {
-            // InternalSignalDSL.g:5787:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
-            // InternalSignalDSL.g:5788:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) )
+            // InternalSignalDSL.g:5818:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalSignalDSL.g:5819:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) )
             {
-            // InternalSignalDSL.g:5788:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )?
-            int alt92=2;
-            int LA92_0 = input.LA(1);
+            // InternalSignalDSL.g:5819:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )?
+            int alt95=2;
+            int LA95_0 = input.LA(1);
 
-            if ( (LA92_0==RULE_ID) ) {
-                int LA92_1 = input.LA(2);
+            if ( (LA95_0==RULE_ID) ) {
+                int LA95_1 = input.LA(2);
 
-                if ( (LA92_1==RULE_ID||LA92_1==41||LA92_1==48||LA92_1==73) ) {
-                    alt92=1;
+                if ( (LA95_1==RULE_ID||LA95_1==45||LA95_1==52||LA95_1==77) ) {
+                    alt95=1;
                 }
             }
-            else if ( (LA92_0==36||LA92_0==61) ) {
-                alt92=1;
+            else if ( (LA95_0==40||LA95_0==65) ) {
+                alt95=1;
             }
-            switch (alt92) {
+            switch (alt95) {
                 case 1 :
-                    // InternalSignalDSL.g:5789:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+                    // InternalSignalDSL.g:5820:4: (lv_parameterType_0_0= ruleJvmTypeReference )
                     {
-                    // InternalSignalDSL.g:5789:4: (lv_parameterType_0_0= ruleJvmTypeReference )
-                    // InternalSignalDSL.g:5790:5: lv_parameterType_0_0= ruleJvmTypeReference
+                    // InternalSignalDSL.g:5820:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+                    // InternalSignalDSL.g:5821:5: lv_parameterType_0_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15871,11 +15987,11 @@
 
             }
 
-            // InternalSignalDSL.g:5807:3: ( (lv_name_1_0= ruleValidID ) )
-            // InternalSignalDSL.g:5808:4: (lv_name_1_0= ruleValidID )
+            // InternalSignalDSL.g:5838:3: ( (lv_name_1_0= ruleValidID ) )
+            // InternalSignalDSL.g:5839:4: (lv_name_1_0= ruleValidID )
             {
-            // InternalSignalDSL.g:5808:4: (lv_name_1_0= ruleValidID )
-            // InternalSignalDSL.g:5809:5: lv_name_1_0= ruleValidID
+            // InternalSignalDSL.g:5839:4: (lv_name_1_0= ruleValidID )
+            // InternalSignalDSL.g:5840:5: lv_name_1_0= ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -15931,7 +16047,7 @@
 
 
     // $ANTLR start "entryRuleFullJvmFormalParameter"
-    // InternalSignalDSL.g:5830:1: entryRuleFullJvmFormalParameter returns [EObject current=null] : iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF ;
+    // InternalSignalDSL.g:5861:1: entryRuleFullJvmFormalParameter returns [EObject current=null] : iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF ;
     public final EObject entryRuleFullJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -15939,8 +16055,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5830:63: (iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF )
-            // InternalSignalDSL.g:5831:2: iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF
+            // InternalSignalDSL.g:5861:63: (iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF )
+            // InternalSignalDSL.g:5862:2: iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFullJvmFormalParameterRule()); 
@@ -15971,7 +16087,7 @@
 
 
     // $ANTLR start "ruleFullJvmFormalParameter"
-    // InternalSignalDSL.g:5837:1: ruleFullJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) ;
+    // InternalSignalDSL.g:5868:1: ruleFullJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) ;
     public final EObject ruleFullJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -15984,17 +16100,17 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5843:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) )
-            // InternalSignalDSL.g:5844:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalSignalDSL.g:5874:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) )
+            // InternalSignalDSL.g:5875:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
             {
-            // InternalSignalDSL.g:5844:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
-            // InternalSignalDSL.g:5845:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )
+            // InternalSignalDSL.g:5875:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalSignalDSL.g:5876:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )
             {
-            // InternalSignalDSL.g:5845:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:5846:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:5876:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:5877:4: (lv_parameterType_0_0= ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:5846:4: (lv_parameterType_0_0= ruleJvmTypeReference )
-            // InternalSignalDSL.g:5847:5: lv_parameterType_0_0= ruleJvmTypeReference
+            // InternalSignalDSL.g:5877:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:5878:5: lv_parameterType_0_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -16025,11 +16141,11 @@
 
             }
 
-            // InternalSignalDSL.g:5864:3: ( (lv_name_1_0= ruleValidID ) )
-            // InternalSignalDSL.g:5865:4: (lv_name_1_0= ruleValidID )
+            // InternalSignalDSL.g:5895:3: ( (lv_name_1_0= ruleValidID ) )
+            // InternalSignalDSL.g:5896:4: (lv_name_1_0= ruleValidID )
             {
-            // InternalSignalDSL.g:5865:4: (lv_name_1_0= ruleValidID )
-            // InternalSignalDSL.g:5866:5: lv_name_1_0= ruleValidID
+            // InternalSignalDSL.g:5896:4: (lv_name_1_0= ruleValidID )
+            // InternalSignalDSL.g:5897:5: lv_name_1_0= ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -16085,7 +16201,7 @@
 
 
     // $ANTLR start "entryRuleXFeatureCall"
-    // InternalSignalDSL.g:5887:1: entryRuleXFeatureCall returns [EObject current=null] : iv_ruleXFeatureCall= ruleXFeatureCall EOF ;
+    // InternalSignalDSL.g:5918:1: entryRuleXFeatureCall returns [EObject current=null] : iv_ruleXFeatureCall= ruleXFeatureCall EOF ;
     public final EObject entryRuleXFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -16093,8 +16209,8 @@
 
 
         try {
-            // InternalSignalDSL.g:5887:53: (iv_ruleXFeatureCall= ruleXFeatureCall EOF )
-            // InternalSignalDSL.g:5888:2: iv_ruleXFeatureCall= ruleXFeatureCall EOF
+            // InternalSignalDSL.g:5918:53: (iv_ruleXFeatureCall= ruleXFeatureCall EOF )
+            // InternalSignalDSL.g:5919:2: iv_ruleXFeatureCall= ruleXFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXFeatureCallRule()); 
@@ -16125,7 +16241,7 @@
 
 
     // $ANTLR start "ruleXFeatureCall"
-    // InternalSignalDSL.g:5894:1: ruleXFeatureCall returns [EObject current=null] : ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) ;
+    // InternalSignalDSL.g:5925:1: ruleXFeatureCall returns [EObject current=null] : ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) ;
     public final EObject ruleXFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -16152,14 +16268,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:5900:2: ( ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) )
-            // InternalSignalDSL.g:5901:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
+            // InternalSignalDSL.g:5931:2: ( ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) )
+            // InternalSignalDSL.g:5932:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
             {
-            // InternalSignalDSL.g:5901:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
-            // InternalSignalDSL.g:5902:3: () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+            // InternalSignalDSL.g:5932:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
+            // InternalSignalDSL.g:5933:3: () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
             {
-            // InternalSignalDSL.g:5902:3: ()
-            // InternalSignalDSL.g:5903:4: 
+            // InternalSignalDSL.g:5933:3: ()
+            // InternalSignalDSL.g:5934:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16171,28 +16287,28 @@
 
             }
 
-            // InternalSignalDSL.g:5909:3: (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
-            int alt94=2;
-            int LA94_0 = input.LA(1);
+            // InternalSignalDSL.g:5940:3: (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
+            int alt97=2;
+            int LA97_0 = input.LA(1);
 
-            if ( (LA94_0==48) ) {
-                alt94=1;
+            if ( (LA97_0==52) ) {
+                alt97=1;
             }
-            switch (alt94) {
+            switch (alt97) {
                 case 1 :
-                    // InternalSignalDSL.g:5910:4: otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
+                    // InternalSignalDSL.g:5941:4: otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
                     {
-                    otherlv_1=(Token)match(input,48,FOLLOW_56); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,52,FOLLOW_56); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_1, grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
                       			
                     }
-                    // InternalSignalDSL.g:5914:4: ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) )
-                    // InternalSignalDSL.g:5915:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalSignalDSL.g:5945:4: ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) )
+                    // InternalSignalDSL.g:5946:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalSignalDSL.g:5915:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
-                    // InternalSignalDSL.g:5916:6: lv_typeArguments_2_0= ruleJvmArgumentTypeReference
+                    // InternalSignalDSL.g:5946:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalSignalDSL.g:5947:6: lv_typeArguments_2_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16223,32 +16339,32 @@
 
                     }
 
-                    // InternalSignalDSL.g:5933:4: (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )*
-                    loop93:
+                    // InternalSignalDSL.g:5964:4: (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop96:
                     do {
-                        int alt93=2;
-                        int LA93_0 = input.LA(1);
+                        int alt96=2;
+                        int LA96_0 = input.LA(1);
 
-                        if ( (LA93_0==37) ) {
-                            alt93=1;
+                        if ( (LA96_0==41) ) {
+                            alt96=1;
                         }
 
 
-                        switch (alt93) {
+                        switch (alt96) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:5934:5: otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalSignalDSL.g:5965:5: otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,37,FOLLOW_56); if (state.failed) return current;
+                    	    otherlv_3=(Token)match(input,41,FOLLOW_56); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_3, grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:5938:5: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalSignalDSL.g:5939:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalSignalDSL.g:5969:5: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalSignalDSL.g:5970:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalSignalDSL.g:5939:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
-                    	    // InternalSignalDSL.g:5940:7: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+                    	    // InternalSignalDSL.g:5970:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalSignalDSL.g:5971:7: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -16284,11 +16400,11 @@
                     	    break;
 
                     	default :
-                    	    break loop93;
+                    	    break loop96;
                         }
                     } while (true);
 
-                    otherlv_5=(Token)match(input,49,FOLLOW_55); if (state.failed) return current;
+                    otherlv_5=(Token)match(input,53,FOLLOW_55); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_5, grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
@@ -16300,11 +16416,11 @@
 
             }
 
-            // InternalSignalDSL.g:5963:3: ( ( ruleIdOrSuper ) )
-            // InternalSignalDSL.g:5964:4: ( ruleIdOrSuper )
+            // InternalSignalDSL.g:5994:3: ( ( ruleIdOrSuper ) )
+            // InternalSignalDSL.g:5995:4: ( ruleIdOrSuper )
             {
-            // InternalSignalDSL.g:5964:4: ( ruleIdOrSuper )
-            // InternalSignalDSL.g:5965:5: ruleIdOrSuper
+            // InternalSignalDSL.g:5995:4: ( ruleIdOrSuper )
+            // InternalSignalDSL.g:5996:5: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
 
@@ -16318,7 +16434,7 @@
               					newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_84);
+            pushFollow(FOLLOW_85);
             ruleIdOrSuper();
 
             state._fsp--;
@@ -16334,20 +16450,20 @@
 
             }
 
-            // InternalSignalDSL.g:5979:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?
-            int alt97=2;
-            alt97 = dfa97.predict(input);
-            switch (alt97) {
+            // InternalSignalDSL.g:6010:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?
+            int alt100=2;
+            alt100 = dfa100.predict(input);
+            switch (alt100) {
                 case 1 :
-                    // InternalSignalDSL.g:5980:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')'
+                    // InternalSignalDSL.g:6011:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')'
                     {
-                    // InternalSignalDSL.g:5980:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) )
-                    // InternalSignalDSL.g:5981:5: ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' )
+                    // InternalSignalDSL.g:6011:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) )
+                    // InternalSignalDSL.g:6012:5: ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' )
                     {
-                    // InternalSignalDSL.g:5985:5: (lv_explicitOperationCall_7_0= '(' )
-                    // InternalSignalDSL.g:5986:6: lv_explicitOperationCall_7_0= '('
+                    // InternalSignalDSL.g:6016:5: (lv_explicitOperationCall_7_0= '(' )
+                    // InternalSignalDSL.g:6017:6: lv_explicitOperationCall_7_0= '('
                     {
-                    lv_explicitOperationCall_7_0=(Token)match(input,36,FOLLOW_59); if (state.failed) return current;
+                    lv_explicitOperationCall_7_0=(Token)match(input,40,FOLLOW_59); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_explicitOperationCall_7_0, grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
@@ -16367,18 +16483,18 @@
 
                     }
 
-                    // InternalSignalDSL.g:5998:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?
-                    int alt96=3;
-                    alt96 = dfa96.predict(input);
-                    switch (alt96) {
+                    // InternalSignalDSL.g:6029:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?
+                    int alt99=3;
+                    alt99 = dfa99.predict(input);
+                    switch (alt99) {
                         case 1 :
-                            // InternalSignalDSL.g:5999:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+                            // InternalSignalDSL.g:6030:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
                             {
-                            // InternalSignalDSL.g:5999:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
-                            // InternalSignalDSL.g:6000:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure )
+                            // InternalSignalDSL.g:6030:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+                            // InternalSignalDSL.g:6031:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure )
                             {
-                            // InternalSignalDSL.g:6025:6: (lv_featureCallArguments_8_0= ruleXShortClosure )
-                            // InternalSignalDSL.g:6026:7: lv_featureCallArguments_8_0= ruleXShortClosure
+                            // InternalSignalDSL.g:6056:6: (lv_featureCallArguments_8_0= ruleXShortClosure )
+                            // InternalSignalDSL.g:6057:7: lv_featureCallArguments_8_0= ruleXShortClosure
                             {
                             if ( state.backtracking==0 ) {
 
@@ -16413,16 +16529,16 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:6044:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+                            // InternalSignalDSL.g:6075:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
                             {
-                            // InternalSignalDSL.g:6044:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
-                            // InternalSignalDSL.g:6045:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+                            // InternalSignalDSL.g:6075:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+                            // InternalSignalDSL.g:6076:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
                             {
-                            // InternalSignalDSL.g:6045:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) )
-                            // InternalSignalDSL.g:6046:7: (lv_featureCallArguments_9_0= ruleXExpression )
+                            // InternalSignalDSL.g:6076:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) )
+                            // InternalSignalDSL.g:6077:7: (lv_featureCallArguments_9_0= ruleXExpression )
                             {
-                            // InternalSignalDSL.g:6046:7: (lv_featureCallArguments_9_0= ruleXExpression )
-                            // InternalSignalDSL.g:6047:8: lv_featureCallArguments_9_0= ruleXExpression
+                            // InternalSignalDSL.g:6077:7: (lv_featureCallArguments_9_0= ruleXExpression )
+                            // InternalSignalDSL.g:6078:8: lv_featureCallArguments_9_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -16453,32 +16569,32 @@
 
                             }
 
-                            // InternalSignalDSL.g:6064:6: (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
-                            loop95:
+                            // InternalSignalDSL.g:6095:6: (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+                            loop98:
                             do {
-                                int alt95=2;
-                                int LA95_0 = input.LA(1);
+                                int alt98=2;
+                                int LA98_0 = input.LA(1);
 
-                                if ( (LA95_0==37) ) {
-                                    alt95=1;
+                                if ( (LA98_0==41) ) {
+                                    alt98=1;
                                 }
 
 
-                                switch (alt95) {
+                                switch (alt98) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:6065:7: otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+                            	    // InternalSignalDSL.g:6096:7: otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) )
                             	    {
-                            	    otherlv_10=(Token)match(input,37,FOLLOW_31); if (state.failed) return current;
+                            	    otherlv_10=(Token)match(input,41,FOLLOW_31); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_10, grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
                             	      						
                             	    }
-                            	    // InternalSignalDSL.g:6069:7: ( (lv_featureCallArguments_11_0= ruleXExpression ) )
-                            	    // InternalSignalDSL.g:6070:8: (lv_featureCallArguments_11_0= ruleXExpression )
+                            	    // InternalSignalDSL.g:6100:7: ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+                            	    // InternalSignalDSL.g:6101:8: (lv_featureCallArguments_11_0= ruleXExpression )
                             	    {
-                            	    // InternalSignalDSL.g:6070:8: (lv_featureCallArguments_11_0= ruleXExpression )
-                            	    // InternalSignalDSL.g:6071:9: lv_featureCallArguments_11_0= ruleXExpression
+                            	    // InternalSignalDSL.g:6101:8: (lv_featureCallArguments_11_0= ruleXExpression )
+                            	    // InternalSignalDSL.g:6102:9: lv_featureCallArguments_11_0= ruleXExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -16514,7 +16630,7 @@
                             	    break;
 
                             	default :
-                            	    break loop95;
+                            	    break loop98;
                                 }
                             } while (true);
 
@@ -16527,7 +16643,7 @@
 
                     }
 
-                    otherlv_12=(Token)match(input,38,FOLLOW_85); if (state.failed) return current;
+                    otherlv_12=(Token)match(input,42,FOLLOW_86); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_12, grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
@@ -16539,15 +16655,15 @@
 
             }
 
-            // InternalSignalDSL.g:6096:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
-            int alt98=2;
-            alt98 = dfa98.predict(input);
-            switch (alt98) {
+            // InternalSignalDSL.g:6127:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+            int alt101=2;
+            alt101 = dfa101.predict(input);
+            switch (alt101) {
                 case 1 :
-                    // InternalSignalDSL.g:6097:4: ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure )
+                    // InternalSignalDSL.g:6128:4: ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure )
                     {
-                    // InternalSignalDSL.g:6103:4: (lv_featureCallArguments_13_0= ruleXClosure )
-                    // InternalSignalDSL.g:6104:5: lv_featureCallArguments_13_0= ruleXClosure
+                    // InternalSignalDSL.g:6134:4: (lv_featureCallArguments_13_0= ruleXClosure )
+                    // InternalSignalDSL.g:6135:5: lv_featureCallArguments_13_0= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16606,7 +16722,7 @@
 
 
     // $ANTLR start "entryRuleFeatureCallID"
-    // InternalSignalDSL.g:6125:1: entryRuleFeatureCallID returns [String current=null] : iv_ruleFeatureCallID= ruleFeatureCallID EOF ;
+    // InternalSignalDSL.g:6156:1: entryRuleFeatureCallID returns [String current=null] : iv_ruleFeatureCallID= ruleFeatureCallID EOF ;
     public final String entryRuleFeatureCallID() throws RecognitionException {
         String current = null;
 
@@ -16614,8 +16730,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6125:53: (iv_ruleFeatureCallID= ruleFeatureCallID EOF )
-            // InternalSignalDSL.g:6126:2: iv_ruleFeatureCallID= ruleFeatureCallID EOF
+            // InternalSignalDSL.g:6156:53: (iv_ruleFeatureCallID= ruleFeatureCallID EOF )
+            // InternalSignalDSL.g:6157:2: iv_ruleFeatureCallID= ruleFeatureCallID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFeatureCallIDRule()); 
@@ -16646,7 +16762,7 @@
 
 
     // $ANTLR start "ruleFeatureCallID"
-    // InternalSignalDSL.g:6132:1: ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) ;
+    // InternalSignalDSL.g:6163:1: ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) ;
     public final AntlrDatatypeRuleToken ruleFeatureCallID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -16658,48 +16774,48 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6138:2: ( (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) )
-            // InternalSignalDSL.g:6139:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+            // InternalSignalDSL.g:6169:2: ( (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) )
+            // InternalSignalDSL.g:6170:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
             {
-            // InternalSignalDSL.g:6139:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
-            int alt99=5;
+            // InternalSignalDSL.g:6170:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+            int alt102=5;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                alt99=1;
+                alt102=1;
                 }
                 break;
-            case 87:
+            case 91:
                 {
-                alt99=2;
+                alt102=2;
                 }
                 break;
-            case 30:
+            case 34:
                 {
-                alt99=3;
+                alt102=3;
                 }
                 break;
-            case 29:
+            case 33:
                 {
-                alt99=4;
+                alt102=4;
                 }
                 break;
-            case 31:
+            case 35:
                 {
-                alt99=5;
+                alt102=5;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 99, 0, input);
+                    new NoViableAltException("", 102, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt99) {
+            switch (alt102) {
                 case 1 :
-                    // InternalSignalDSL.g:6140:3: this_ValidID_0= ruleValidID
+                    // InternalSignalDSL.g:6171:3: this_ValidID_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16725,9 +16841,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:6151:3: kw= 'extends'
+                    // InternalSignalDSL.g:6182:3: kw= 'extends'
                     {
-                    kw=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,91,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -16738,9 +16854,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:6157:3: kw= 'static'
+                    // InternalSignalDSL.g:6188:3: kw= 'static'
                     {
-                    kw=(Token)match(input,30,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,34,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -16751,9 +16867,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:6163:3: kw= 'import'
+                    // InternalSignalDSL.g:6194:3: kw= 'import'
                     {
-                    kw=(Token)match(input,29,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,33,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -16764,9 +16880,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:6169:3: kw= 'extension'
+                    // InternalSignalDSL.g:6200:3: kw= 'extension'
                     {
-                    kw=(Token)match(input,31,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -16801,7 +16917,7 @@
 
 
     // $ANTLR start "entryRuleIdOrSuper"
-    // InternalSignalDSL.g:6178:1: entryRuleIdOrSuper returns [String current=null] : iv_ruleIdOrSuper= ruleIdOrSuper EOF ;
+    // InternalSignalDSL.g:6209:1: entryRuleIdOrSuper returns [String current=null] : iv_ruleIdOrSuper= ruleIdOrSuper EOF ;
     public final String entryRuleIdOrSuper() throws RecognitionException {
         String current = null;
 
@@ -16809,8 +16925,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6178:49: (iv_ruleIdOrSuper= ruleIdOrSuper EOF )
-            // InternalSignalDSL.g:6179:2: iv_ruleIdOrSuper= ruleIdOrSuper EOF
+            // InternalSignalDSL.g:6209:49: (iv_ruleIdOrSuper= ruleIdOrSuper EOF )
+            // InternalSignalDSL.g:6210:2: iv_ruleIdOrSuper= ruleIdOrSuper EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getIdOrSuperRule()); 
@@ -16841,7 +16957,7 @@
 
 
     // $ANTLR start "ruleIdOrSuper"
-    // InternalSignalDSL.g:6185:1: ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) ;
+    // InternalSignalDSL.g:6216:1: ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) ;
     public final AntlrDatatypeRuleToken ruleIdOrSuper() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -16853,29 +16969,29 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6191:2: ( (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) )
-            // InternalSignalDSL.g:6192:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+            // InternalSignalDSL.g:6222:2: ( (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) )
+            // InternalSignalDSL.g:6223:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
             {
-            // InternalSignalDSL.g:6192:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
-            int alt100=2;
-            int LA100_0 = input.LA(1);
+            // InternalSignalDSL.g:6223:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+            int alt103=2;
+            int LA103_0 = input.LA(1);
 
-            if ( (LA100_0==RULE_ID||(LA100_0>=29 && LA100_0<=31)||LA100_0==87) ) {
-                alt100=1;
+            if ( (LA103_0==RULE_ID||(LA103_0>=33 && LA103_0<=35)||LA103_0==91) ) {
+                alt103=1;
             }
-            else if ( (LA100_0==88) ) {
-                alt100=2;
+            else if ( (LA103_0==92) ) {
+                alt103=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 100, 0, input);
+                    new NoViableAltException("", 103, 0, input);
 
                 throw nvae;
             }
-            switch (alt100) {
+            switch (alt103) {
                 case 1 :
-                    // InternalSignalDSL.g:6193:3: this_FeatureCallID_0= ruleFeatureCallID
+                    // InternalSignalDSL.g:6224:3: this_FeatureCallID_0= ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16901,9 +17017,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:6204:3: kw= 'super'
+                    // InternalSignalDSL.g:6235:3: kw= 'super'
                     {
-                    kw=(Token)match(input,88,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -16938,7 +17054,7 @@
 
 
     // $ANTLR start "entryRuleXConstructorCall"
-    // InternalSignalDSL.g:6213:1: entryRuleXConstructorCall returns [EObject current=null] : iv_ruleXConstructorCall= ruleXConstructorCall EOF ;
+    // InternalSignalDSL.g:6244:1: entryRuleXConstructorCall returns [EObject current=null] : iv_ruleXConstructorCall= ruleXConstructorCall EOF ;
     public final EObject entryRuleXConstructorCall() throws RecognitionException {
         EObject current = null;
 
@@ -16946,8 +17062,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6213:57: (iv_ruleXConstructorCall= ruleXConstructorCall EOF )
-            // InternalSignalDSL.g:6214:2: iv_ruleXConstructorCall= ruleXConstructorCall EOF
+            // InternalSignalDSL.g:6244:57: (iv_ruleXConstructorCall= ruleXConstructorCall EOF )
+            // InternalSignalDSL.g:6245:2: iv_ruleXConstructorCall= ruleXConstructorCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXConstructorCallRule()); 
@@ -16978,7 +17094,7 @@
 
 
     // $ANTLR start "ruleXConstructorCall"
-    // InternalSignalDSL.g:6220:1: ruleXConstructorCall returns [EObject current=null] : ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) ;
+    // InternalSignalDSL.g:6251:1: ruleXConstructorCall returns [EObject current=null] : ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) ;
     public final EObject ruleXConstructorCall() throws RecognitionException {
         EObject current = null;
 
@@ -17006,14 +17122,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6226:2: ( ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) )
-            // InternalSignalDSL.g:6227:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
+            // InternalSignalDSL.g:6257:2: ( ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) )
+            // InternalSignalDSL.g:6258:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
             {
-            // InternalSignalDSL.g:6227:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
-            // InternalSignalDSL.g:6228:3: () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+            // InternalSignalDSL.g:6258:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
+            // InternalSignalDSL.g:6259:3: () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
             {
-            // InternalSignalDSL.g:6228:3: ()
-            // InternalSignalDSL.g:6229:4: 
+            // InternalSignalDSL.g:6259:3: ()
+            // InternalSignalDSL.g:6260:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17025,17 +17141,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,89,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,93,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
               		
             }
-            // InternalSignalDSL.g:6239:3: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:6240:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:6270:3: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:6271:4: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:6240:4: ( ruleQualifiedName )
-            // InternalSignalDSL.g:6241:5: ruleQualifiedName
+            // InternalSignalDSL.g:6271:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:6272:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -17049,7 +17165,7 @@
               					newCompositeNode(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_86);
+            pushFollow(FOLLOW_87);
             ruleQualifiedName();
 
             state._fsp--;
@@ -17065,17 +17181,17 @@
 
             }
 
-            // InternalSignalDSL.g:6255:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?
-            int alt102=2;
-            alt102 = dfa102.predict(input);
-            switch (alt102) {
+            // InternalSignalDSL.g:6286:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?
+            int alt105=2;
+            alt105 = dfa105.predict(input);
+            switch (alt105) {
                 case 1 :
-                    // InternalSignalDSL.g:6256:4: ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>'
+                    // InternalSignalDSL.g:6287:4: ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>'
                     {
-                    // InternalSignalDSL.g:6256:4: ( ( '<' )=>otherlv_3= '<' )
-                    // InternalSignalDSL.g:6257:5: ( '<' )=>otherlv_3= '<'
+                    // InternalSignalDSL.g:6287:4: ( ( '<' )=>otherlv_3= '<' )
+                    // InternalSignalDSL.g:6288:5: ( '<' )=>otherlv_3= '<'
                     {
-                    otherlv_3=(Token)match(input,48,FOLLOW_56); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,52,FOLLOW_56); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_3, grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
@@ -17084,11 +17200,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:6263:4: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
-                    // InternalSignalDSL.g:6264:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    // InternalSignalDSL.g:6294:4: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    // InternalSignalDSL.g:6295:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalSignalDSL.g:6264:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
-                    // InternalSignalDSL.g:6265:6: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+                    // InternalSignalDSL.g:6295:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    // InternalSignalDSL.g:6296:6: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -17119,32 +17235,32 @@
 
                     }
 
-                    // InternalSignalDSL.g:6282:4: (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )*
-                    loop101:
+                    // InternalSignalDSL.g:6313:4: (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop104:
                     do {
-                        int alt101=2;
-                        int LA101_0 = input.LA(1);
+                        int alt104=2;
+                        int LA104_0 = input.LA(1);
 
-                        if ( (LA101_0==37) ) {
-                            alt101=1;
+                        if ( (LA104_0==41) ) {
+                            alt104=1;
                         }
 
 
-                        switch (alt101) {
+                        switch (alt104) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:6283:5: otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalSignalDSL.g:6314:5: otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_5=(Token)match(input,37,FOLLOW_56); if (state.failed) return current;
+                    	    otherlv_5=(Token)match(input,41,FOLLOW_56); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_5, grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:6287:5: ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalSignalDSL.g:6288:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+                    	    // InternalSignalDSL.g:6318:5: ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalSignalDSL.g:6319:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalSignalDSL.g:6288:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
-                    	    // InternalSignalDSL.g:6289:7: lv_typeArguments_6_0= ruleJvmArgumentTypeReference
+                    	    // InternalSignalDSL.g:6319:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+                    	    // InternalSignalDSL.g:6320:7: lv_typeArguments_6_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -17180,11 +17296,11 @@
                     	    break;
 
                     	default :
-                    	    break loop101;
+                    	    break loop104;
                         }
                     } while (true);
 
-                    otherlv_7=(Token)match(input,49,FOLLOW_84); if (state.failed) return current;
+                    otherlv_7=(Token)match(input,53,FOLLOW_85); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_7, grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
@@ -17196,20 +17312,20 @@
 
             }
 
-            // InternalSignalDSL.g:6312:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?
-            int alt105=2;
-            alt105 = dfa105.predict(input);
-            switch (alt105) {
+            // InternalSignalDSL.g:6343:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?
+            int alt108=2;
+            alt108 = dfa108.predict(input);
+            switch (alt108) {
                 case 1 :
-                    // InternalSignalDSL.g:6313:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')'
+                    // InternalSignalDSL.g:6344:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')'
                     {
-                    // InternalSignalDSL.g:6313:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) )
-                    // InternalSignalDSL.g:6314:5: ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' )
+                    // InternalSignalDSL.g:6344:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) )
+                    // InternalSignalDSL.g:6345:5: ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' )
                     {
-                    // InternalSignalDSL.g:6318:5: (lv_explicitConstructorCall_8_0= '(' )
-                    // InternalSignalDSL.g:6319:6: lv_explicitConstructorCall_8_0= '('
+                    // InternalSignalDSL.g:6349:5: (lv_explicitConstructorCall_8_0= '(' )
+                    // InternalSignalDSL.g:6350:6: lv_explicitConstructorCall_8_0= '('
                     {
-                    lv_explicitConstructorCall_8_0=(Token)match(input,36,FOLLOW_59); if (state.failed) return current;
+                    lv_explicitConstructorCall_8_0=(Token)match(input,40,FOLLOW_59); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_explicitConstructorCall_8_0, grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0());
@@ -17229,18 +17345,18 @@
 
                     }
 
-                    // InternalSignalDSL.g:6331:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?
-                    int alt104=3;
-                    alt104 = dfa104.predict(input);
-                    switch (alt104) {
+                    // InternalSignalDSL.g:6362:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?
+                    int alt107=3;
+                    alt107 = dfa107.predict(input);
+                    switch (alt107) {
                         case 1 :
-                            // InternalSignalDSL.g:6332:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+                            // InternalSignalDSL.g:6363:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
                             {
-                            // InternalSignalDSL.g:6332:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
-                            // InternalSignalDSL.g:6333:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure )
+                            // InternalSignalDSL.g:6363:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+                            // InternalSignalDSL.g:6364:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure )
                             {
-                            // InternalSignalDSL.g:6358:6: (lv_arguments_9_0= ruleXShortClosure )
-                            // InternalSignalDSL.g:6359:7: lv_arguments_9_0= ruleXShortClosure
+                            // InternalSignalDSL.g:6389:6: (lv_arguments_9_0= ruleXShortClosure )
+                            // InternalSignalDSL.g:6390:7: lv_arguments_9_0= ruleXShortClosure
                             {
                             if ( state.backtracking==0 ) {
 
@@ -17275,16 +17391,16 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:6377:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+                            // InternalSignalDSL.g:6408:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
                             {
-                            // InternalSignalDSL.g:6377:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
-                            // InternalSignalDSL.g:6378:6: ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+                            // InternalSignalDSL.g:6408:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+                            // InternalSignalDSL.g:6409:6: ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
                             {
-                            // InternalSignalDSL.g:6378:6: ( (lv_arguments_10_0= ruleXExpression ) )
-                            // InternalSignalDSL.g:6379:7: (lv_arguments_10_0= ruleXExpression )
+                            // InternalSignalDSL.g:6409:6: ( (lv_arguments_10_0= ruleXExpression ) )
+                            // InternalSignalDSL.g:6410:7: (lv_arguments_10_0= ruleXExpression )
                             {
-                            // InternalSignalDSL.g:6379:7: (lv_arguments_10_0= ruleXExpression )
-                            // InternalSignalDSL.g:6380:8: lv_arguments_10_0= ruleXExpression
+                            // InternalSignalDSL.g:6410:7: (lv_arguments_10_0= ruleXExpression )
+                            // InternalSignalDSL.g:6411:8: lv_arguments_10_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -17315,32 +17431,32 @@
 
                             }
 
-                            // InternalSignalDSL.g:6397:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
-                            loop103:
+                            // InternalSignalDSL.g:6428:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+                            loop106:
                             do {
-                                int alt103=2;
-                                int LA103_0 = input.LA(1);
+                                int alt106=2;
+                                int LA106_0 = input.LA(1);
 
-                                if ( (LA103_0==37) ) {
-                                    alt103=1;
+                                if ( (LA106_0==41) ) {
+                                    alt106=1;
                                 }
 
 
-                                switch (alt103) {
+                                switch (alt106) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:6398:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) )
+                            	    // InternalSignalDSL.g:6429:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) )
                             	    {
-                            	    otherlv_11=(Token)match(input,37,FOLLOW_31); if (state.failed) return current;
+                            	    otherlv_11=(Token)match(input,41,FOLLOW_31); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_11, grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
                             	      						
                             	    }
-                            	    // InternalSignalDSL.g:6402:7: ( (lv_arguments_12_0= ruleXExpression ) )
-                            	    // InternalSignalDSL.g:6403:8: (lv_arguments_12_0= ruleXExpression )
+                            	    // InternalSignalDSL.g:6433:7: ( (lv_arguments_12_0= ruleXExpression ) )
+                            	    // InternalSignalDSL.g:6434:8: (lv_arguments_12_0= ruleXExpression )
                             	    {
-                            	    // InternalSignalDSL.g:6403:8: (lv_arguments_12_0= ruleXExpression )
-                            	    // InternalSignalDSL.g:6404:9: lv_arguments_12_0= ruleXExpression
+                            	    // InternalSignalDSL.g:6434:8: (lv_arguments_12_0= ruleXExpression )
+                            	    // InternalSignalDSL.g:6435:9: lv_arguments_12_0= ruleXExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -17376,7 +17492,7 @@
                             	    break;
 
                             	default :
-                            	    break loop103;
+                            	    break loop106;
                                 }
                             } while (true);
 
@@ -17389,7 +17505,7 @@
 
                     }
 
-                    otherlv_13=(Token)match(input,38,FOLLOW_85); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,42,FOLLOW_86); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_13, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
@@ -17401,15 +17517,15 @@
 
             }
 
-            // InternalSignalDSL.g:6429:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
-            int alt106=2;
-            alt106 = dfa106.predict(input);
-            switch (alt106) {
+            // InternalSignalDSL.g:6460:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+            int alt109=2;
+            alt109 = dfa109.predict(input);
+            switch (alt109) {
                 case 1 :
-                    // InternalSignalDSL.g:6430:4: ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure )
+                    // InternalSignalDSL.g:6461:4: ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure )
                     {
-                    // InternalSignalDSL.g:6436:4: (lv_arguments_14_0= ruleXClosure )
-                    // InternalSignalDSL.g:6437:5: lv_arguments_14_0= ruleXClosure
+                    // InternalSignalDSL.g:6467:4: (lv_arguments_14_0= ruleXClosure )
+                    // InternalSignalDSL.g:6468:5: lv_arguments_14_0= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -17468,7 +17584,7 @@
 
 
     // $ANTLR start "entryRuleXBooleanLiteral"
-    // InternalSignalDSL.g:6458:1: entryRuleXBooleanLiteral returns [EObject current=null] : iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF ;
+    // InternalSignalDSL.g:6489:1: entryRuleXBooleanLiteral returns [EObject current=null] : iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF ;
     public final EObject entryRuleXBooleanLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -17476,8 +17592,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6458:56: (iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF )
-            // InternalSignalDSL.g:6459:2: iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF
+            // InternalSignalDSL.g:6489:56: (iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF )
+            // InternalSignalDSL.g:6490:2: iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBooleanLiteralRule()); 
@@ -17508,7 +17624,7 @@
 
 
     // $ANTLR start "ruleXBooleanLiteral"
-    // InternalSignalDSL.g:6465:1: ruleXBooleanLiteral returns [EObject current=null] : ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) ;
+    // InternalSignalDSL.g:6496:1: ruleXBooleanLiteral returns [EObject current=null] : ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) ;
     public final EObject ruleXBooleanLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -17519,14 +17635,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6471:2: ( ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) )
-            // InternalSignalDSL.g:6472:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+            // InternalSignalDSL.g:6502:2: ( ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) )
+            // InternalSignalDSL.g:6503:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
             {
-            // InternalSignalDSL.g:6472:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
-            // InternalSignalDSL.g:6473:3: () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+            // InternalSignalDSL.g:6503:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+            // InternalSignalDSL.g:6504:3: () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
             {
-            // InternalSignalDSL.g:6473:3: ()
-            // InternalSignalDSL.g:6474:4: 
+            // InternalSignalDSL.g:6504:3: ()
+            // InternalSignalDSL.g:6505:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17538,28 +17654,28 @@
 
             }
 
-            // InternalSignalDSL.g:6480:3: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
-            int alt107=2;
-            int LA107_0 = input.LA(1);
+            // InternalSignalDSL.g:6511:3: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+            int alt110=2;
+            int LA110_0 = input.LA(1);
 
-            if ( (LA107_0==90) ) {
-                alt107=1;
+            if ( (LA110_0==94) ) {
+                alt110=1;
             }
-            else if ( (LA107_0==91) ) {
-                alt107=2;
+            else if ( (LA110_0==95) ) {
+                alt110=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 107, 0, input);
+                    new NoViableAltException("", 110, 0, input);
 
                 throw nvae;
             }
-            switch (alt107) {
+            switch (alt110) {
                 case 1 :
-                    // InternalSignalDSL.g:6481:4: otherlv_1= 'false'
+                    // InternalSignalDSL.g:6512:4: otherlv_1= 'false'
                     {
-                    otherlv_1=(Token)match(input,90,FOLLOW_2); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_1, grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
@@ -17569,15 +17685,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:6486:4: ( (lv_isTrue_2_0= 'true' ) )
+                    // InternalSignalDSL.g:6517:4: ( (lv_isTrue_2_0= 'true' ) )
                     {
-                    // InternalSignalDSL.g:6486:4: ( (lv_isTrue_2_0= 'true' ) )
-                    // InternalSignalDSL.g:6487:5: (lv_isTrue_2_0= 'true' )
+                    // InternalSignalDSL.g:6517:4: ( (lv_isTrue_2_0= 'true' ) )
+                    // InternalSignalDSL.g:6518:5: (lv_isTrue_2_0= 'true' )
                     {
-                    // InternalSignalDSL.g:6487:5: (lv_isTrue_2_0= 'true' )
-                    // InternalSignalDSL.g:6488:6: lv_isTrue_2_0= 'true'
+                    // InternalSignalDSL.g:6518:5: (lv_isTrue_2_0= 'true' )
+                    // InternalSignalDSL.g:6519:6: lv_isTrue_2_0= 'true'
                     {
-                    lv_isTrue_2_0=(Token)match(input,91,FOLLOW_2); if (state.failed) return current;
+                    lv_isTrue_2_0=(Token)match(input,95,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_isTrue_2_0, grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
@@ -17628,7 +17744,7 @@
 
 
     // $ANTLR start "entryRuleXNullLiteral"
-    // InternalSignalDSL.g:6505:1: entryRuleXNullLiteral returns [EObject current=null] : iv_ruleXNullLiteral= ruleXNullLiteral EOF ;
+    // InternalSignalDSL.g:6536:1: entryRuleXNullLiteral returns [EObject current=null] : iv_ruleXNullLiteral= ruleXNullLiteral EOF ;
     public final EObject entryRuleXNullLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -17636,8 +17752,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6505:53: (iv_ruleXNullLiteral= ruleXNullLiteral EOF )
-            // InternalSignalDSL.g:6506:2: iv_ruleXNullLiteral= ruleXNullLiteral EOF
+            // InternalSignalDSL.g:6536:53: (iv_ruleXNullLiteral= ruleXNullLiteral EOF )
+            // InternalSignalDSL.g:6537:2: iv_ruleXNullLiteral= ruleXNullLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXNullLiteralRule()); 
@@ -17668,7 +17784,7 @@
 
 
     // $ANTLR start "ruleXNullLiteral"
-    // InternalSignalDSL.g:6512:1: ruleXNullLiteral returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
+    // InternalSignalDSL.g:6543:1: ruleXNullLiteral returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
     public final EObject ruleXNullLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -17678,14 +17794,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6518:2: ( ( () otherlv_1= 'null' ) )
-            // InternalSignalDSL.g:6519:2: ( () otherlv_1= 'null' )
+            // InternalSignalDSL.g:6549:2: ( ( () otherlv_1= 'null' ) )
+            // InternalSignalDSL.g:6550:2: ( () otherlv_1= 'null' )
             {
-            // InternalSignalDSL.g:6519:2: ( () otherlv_1= 'null' )
-            // InternalSignalDSL.g:6520:3: () otherlv_1= 'null'
+            // InternalSignalDSL.g:6550:2: ( () otherlv_1= 'null' )
+            // InternalSignalDSL.g:6551:3: () otherlv_1= 'null'
             {
-            // InternalSignalDSL.g:6520:3: ()
-            // InternalSignalDSL.g:6521:4: 
+            // InternalSignalDSL.g:6551:3: ()
+            // InternalSignalDSL.g:6552:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17697,7 +17813,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,96,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
@@ -17728,7 +17844,7 @@
 
 
     // $ANTLR start "entryRuleXNumberLiteral"
-    // InternalSignalDSL.g:6535:1: entryRuleXNumberLiteral returns [EObject current=null] : iv_ruleXNumberLiteral= ruleXNumberLiteral EOF ;
+    // InternalSignalDSL.g:6566:1: entryRuleXNumberLiteral returns [EObject current=null] : iv_ruleXNumberLiteral= ruleXNumberLiteral EOF ;
     public final EObject entryRuleXNumberLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -17736,8 +17852,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6535:55: (iv_ruleXNumberLiteral= ruleXNumberLiteral EOF )
-            // InternalSignalDSL.g:6536:2: iv_ruleXNumberLiteral= ruleXNumberLiteral EOF
+            // InternalSignalDSL.g:6566:55: (iv_ruleXNumberLiteral= ruleXNumberLiteral EOF )
+            // InternalSignalDSL.g:6567:2: iv_ruleXNumberLiteral= ruleXNumberLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXNumberLiteralRule()); 
@@ -17768,7 +17884,7 @@
 
 
     // $ANTLR start "ruleXNumberLiteral"
-    // InternalSignalDSL.g:6542:1: ruleXNumberLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= ruleNumber ) ) ) ;
+    // InternalSignalDSL.g:6573:1: ruleXNumberLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= ruleNumber ) ) ) ;
     public final EObject ruleXNumberLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -17779,14 +17895,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6548:2: ( ( () ( (lv_value_1_0= ruleNumber ) ) ) )
-            // InternalSignalDSL.g:6549:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
+            // InternalSignalDSL.g:6579:2: ( ( () ( (lv_value_1_0= ruleNumber ) ) ) )
+            // InternalSignalDSL.g:6580:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
             {
-            // InternalSignalDSL.g:6549:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
-            // InternalSignalDSL.g:6550:3: () ( (lv_value_1_0= ruleNumber ) )
+            // InternalSignalDSL.g:6580:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
+            // InternalSignalDSL.g:6581:3: () ( (lv_value_1_0= ruleNumber ) )
             {
-            // InternalSignalDSL.g:6550:3: ()
-            // InternalSignalDSL.g:6551:4: 
+            // InternalSignalDSL.g:6581:3: ()
+            // InternalSignalDSL.g:6582:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17798,11 +17914,11 @@
 
             }
 
-            // InternalSignalDSL.g:6557:3: ( (lv_value_1_0= ruleNumber ) )
-            // InternalSignalDSL.g:6558:4: (lv_value_1_0= ruleNumber )
+            // InternalSignalDSL.g:6588:3: ( (lv_value_1_0= ruleNumber ) )
+            // InternalSignalDSL.g:6589:4: (lv_value_1_0= ruleNumber )
             {
-            // InternalSignalDSL.g:6558:4: (lv_value_1_0= ruleNumber )
-            // InternalSignalDSL.g:6559:5: lv_value_1_0= ruleNumber
+            // InternalSignalDSL.g:6589:4: (lv_value_1_0= ruleNumber )
+            // InternalSignalDSL.g:6590:5: lv_value_1_0= ruleNumber
             {
             if ( state.backtracking==0 ) {
 
@@ -17858,7 +17974,7 @@
 
 
     // $ANTLR start "entryRuleXStringLiteral"
-    // InternalSignalDSL.g:6580:1: entryRuleXStringLiteral returns [EObject current=null] : iv_ruleXStringLiteral= ruleXStringLiteral EOF ;
+    // InternalSignalDSL.g:6611:1: entryRuleXStringLiteral returns [EObject current=null] : iv_ruleXStringLiteral= ruleXStringLiteral EOF ;
     public final EObject entryRuleXStringLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -17866,8 +17982,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6580:55: (iv_ruleXStringLiteral= ruleXStringLiteral EOF )
-            // InternalSignalDSL.g:6581:2: iv_ruleXStringLiteral= ruleXStringLiteral EOF
+            // InternalSignalDSL.g:6611:55: (iv_ruleXStringLiteral= ruleXStringLiteral EOF )
+            // InternalSignalDSL.g:6612:2: iv_ruleXStringLiteral= ruleXStringLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXStringLiteralRule()); 
@@ -17898,7 +18014,7 @@
 
 
     // $ANTLR start "ruleXStringLiteral"
-    // InternalSignalDSL.g:6587:1: ruleXStringLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= RULE_STRING ) ) ) ;
+    // InternalSignalDSL.g:6618:1: ruleXStringLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= RULE_STRING ) ) ) ;
     public final EObject ruleXStringLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -17908,14 +18024,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6593:2: ( ( () ( (lv_value_1_0= RULE_STRING ) ) ) )
-            // InternalSignalDSL.g:6594:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+            // InternalSignalDSL.g:6624:2: ( ( () ( (lv_value_1_0= RULE_STRING ) ) ) )
+            // InternalSignalDSL.g:6625:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
             {
-            // InternalSignalDSL.g:6594:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
-            // InternalSignalDSL.g:6595:3: () ( (lv_value_1_0= RULE_STRING ) )
+            // InternalSignalDSL.g:6625:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+            // InternalSignalDSL.g:6626:3: () ( (lv_value_1_0= RULE_STRING ) )
             {
-            // InternalSignalDSL.g:6595:3: ()
-            // InternalSignalDSL.g:6596:4: 
+            // InternalSignalDSL.g:6626:3: ()
+            // InternalSignalDSL.g:6627:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17927,11 +18043,11 @@
 
             }
 
-            // InternalSignalDSL.g:6602:3: ( (lv_value_1_0= RULE_STRING ) )
-            // InternalSignalDSL.g:6603:4: (lv_value_1_0= RULE_STRING )
+            // InternalSignalDSL.g:6633:3: ( (lv_value_1_0= RULE_STRING ) )
+            // InternalSignalDSL.g:6634:4: (lv_value_1_0= RULE_STRING )
             {
-            // InternalSignalDSL.g:6603:4: (lv_value_1_0= RULE_STRING )
-            // InternalSignalDSL.g:6604:5: lv_value_1_0= RULE_STRING
+            // InternalSignalDSL.g:6634:4: (lv_value_1_0= RULE_STRING )
+            // InternalSignalDSL.g:6635:5: lv_value_1_0= RULE_STRING
             {
             lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -17982,7 +18098,7 @@
 
 
     // $ANTLR start "entryRuleXTypeLiteral"
-    // InternalSignalDSL.g:6624:1: entryRuleXTypeLiteral returns [EObject current=null] : iv_ruleXTypeLiteral= ruleXTypeLiteral EOF ;
+    // InternalSignalDSL.g:6655:1: entryRuleXTypeLiteral returns [EObject current=null] : iv_ruleXTypeLiteral= ruleXTypeLiteral EOF ;
     public final EObject entryRuleXTypeLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -17990,8 +18106,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6624:53: (iv_ruleXTypeLiteral= ruleXTypeLiteral EOF )
-            // InternalSignalDSL.g:6625:2: iv_ruleXTypeLiteral= ruleXTypeLiteral EOF
+            // InternalSignalDSL.g:6655:53: (iv_ruleXTypeLiteral= ruleXTypeLiteral EOF )
+            // InternalSignalDSL.g:6656:2: iv_ruleXTypeLiteral= ruleXTypeLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXTypeLiteralRule()); 
@@ -18022,7 +18138,7 @@
 
 
     // $ANTLR start "ruleXTypeLiteral"
-    // InternalSignalDSL.g:6631:1: ruleXTypeLiteral returns [EObject current=null] : ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) ;
+    // InternalSignalDSL.g:6662:1: ruleXTypeLiteral returns [EObject current=null] : ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) ;
     public final EObject ruleXTypeLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -18036,14 +18152,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6637:2: ( ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) )
-            // InternalSignalDSL.g:6638:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+            // InternalSignalDSL.g:6668:2: ( ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) )
+            // InternalSignalDSL.g:6669:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
             {
-            // InternalSignalDSL.g:6638:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
-            // InternalSignalDSL.g:6639:3: () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')'
+            // InternalSignalDSL.g:6669:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+            // InternalSignalDSL.g:6670:3: () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')'
             {
-            // InternalSignalDSL.g:6639:3: ()
-            // InternalSignalDSL.g:6640:4: 
+            // InternalSignalDSL.g:6670:3: ()
+            // InternalSignalDSL.g:6671:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18055,23 +18171,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,93,FOLLOW_69); if (state.failed) return current;
+            otherlv_1=(Token)match(input,97,FOLLOW_69); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,36,FOLLOW_4); if (state.failed) return current;
+            otherlv_2=(Token)match(input,40,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalSignalDSL.g:6654:3: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:6655:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:6685:3: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:6686:4: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:6655:4: ( ruleQualifiedName )
-            // InternalSignalDSL.g:6656:5: ruleQualifiedName
+            // InternalSignalDSL.g:6686:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:6687:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -18085,7 +18201,7 @@
               					newCompositeNode(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0());
               				
             }
-            pushFollow(FOLLOW_87);
+            pushFollow(FOLLOW_88);
             ruleQualifiedName();
 
             state._fsp--;
@@ -18101,30 +18217,30 @@
 
             }
 
-            // InternalSignalDSL.g:6670:3: ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )*
-            loop108:
+            // InternalSignalDSL.g:6701:3: ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )*
+            loop111:
             do {
-                int alt108=2;
-                int LA108_0 = input.LA(1);
+                int alt111=2;
+                int LA111_0 = input.LA(1);
 
-                if ( (LA108_0==41) ) {
-                    alt108=1;
+                if ( (LA111_0==45) ) {
+                    alt111=1;
                 }
 
 
-                switch (alt108) {
+                switch (alt111) {
             	case 1 :
-            	    // InternalSignalDSL.g:6671:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+            	    // InternalSignalDSL.g:6702:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
             	    {
-            	    // InternalSignalDSL.g:6671:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
-            	    // InternalSignalDSL.g:6672:5: lv_arrayDimensions_4_0= ruleArrayBrackets
+            	    // InternalSignalDSL.g:6702:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+            	    // InternalSignalDSL.g:6703:5: lv_arrayDimensions_4_0= ruleArrayBrackets
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      					newCompositeNode(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0());
             	      				
             	    }
-            	    pushFollow(FOLLOW_87);
+            	    pushFollow(FOLLOW_88);
             	    lv_arrayDimensions_4_0=ruleArrayBrackets();
 
             	    state._fsp--;
@@ -18150,11 +18266,11 @@
             	    break;
 
             	default :
-            	    break loop108;
+            	    break loop111;
                 }
             } while (true);
 
-            otherlv_5=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
+            otherlv_5=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
@@ -18185,7 +18301,7 @@
 
 
     // $ANTLR start "entryRuleXThrowExpression"
-    // InternalSignalDSL.g:6697:1: entryRuleXThrowExpression returns [EObject current=null] : iv_ruleXThrowExpression= ruleXThrowExpression EOF ;
+    // InternalSignalDSL.g:6728:1: entryRuleXThrowExpression returns [EObject current=null] : iv_ruleXThrowExpression= ruleXThrowExpression EOF ;
     public final EObject entryRuleXThrowExpression() throws RecognitionException {
         EObject current = null;
 
@@ -18193,8 +18309,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6697:57: (iv_ruleXThrowExpression= ruleXThrowExpression EOF )
-            // InternalSignalDSL.g:6698:2: iv_ruleXThrowExpression= ruleXThrowExpression EOF
+            // InternalSignalDSL.g:6728:57: (iv_ruleXThrowExpression= ruleXThrowExpression EOF )
+            // InternalSignalDSL.g:6729:2: iv_ruleXThrowExpression= ruleXThrowExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXThrowExpressionRule()); 
@@ -18225,7 +18341,7 @@
 
 
     // $ANTLR start "ruleXThrowExpression"
-    // InternalSignalDSL.g:6704:1: ruleXThrowExpression returns [EObject current=null] : ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) ;
+    // InternalSignalDSL.g:6735:1: ruleXThrowExpression returns [EObject current=null] : ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) ;
     public final EObject ruleXThrowExpression() throws RecognitionException {
         EObject current = null;
 
@@ -18237,14 +18353,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6710:2: ( ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) )
-            // InternalSignalDSL.g:6711:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:6741:2: ( ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) )
+            // InternalSignalDSL.g:6742:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
             {
-            // InternalSignalDSL.g:6711:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
-            // InternalSignalDSL.g:6712:3: () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6742:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:6743:3: () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) )
             {
-            // InternalSignalDSL.g:6712:3: ()
-            // InternalSignalDSL.g:6713:4: 
+            // InternalSignalDSL.g:6743:3: ()
+            // InternalSignalDSL.g:6744:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18256,17 +18372,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,94,FOLLOW_31); if (state.failed) return current;
+            otherlv_1=(Token)match(input,98,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
               		
             }
-            // InternalSignalDSL.g:6723:3: ( (lv_expression_2_0= ruleXExpression ) )
-            // InternalSignalDSL.g:6724:4: (lv_expression_2_0= ruleXExpression )
+            // InternalSignalDSL.g:6754:3: ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6755:4: (lv_expression_2_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:6724:4: (lv_expression_2_0= ruleXExpression )
-            // InternalSignalDSL.g:6725:5: lv_expression_2_0= ruleXExpression
+            // InternalSignalDSL.g:6755:4: (lv_expression_2_0= ruleXExpression )
+            // InternalSignalDSL.g:6756:5: lv_expression_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -18322,7 +18438,7 @@
 
 
     // $ANTLR start "entryRuleXReturnExpression"
-    // InternalSignalDSL.g:6746:1: entryRuleXReturnExpression returns [EObject current=null] : iv_ruleXReturnExpression= ruleXReturnExpression EOF ;
+    // InternalSignalDSL.g:6777:1: entryRuleXReturnExpression returns [EObject current=null] : iv_ruleXReturnExpression= ruleXReturnExpression EOF ;
     public final EObject entryRuleXReturnExpression() throws RecognitionException {
         EObject current = null;
 
@@ -18330,8 +18446,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6746:58: (iv_ruleXReturnExpression= ruleXReturnExpression EOF )
-            // InternalSignalDSL.g:6747:2: iv_ruleXReturnExpression= ruleXReturnExpression EOF
+            // InternalSignalDSL.g:6777:58: (iv_ruleXReturnExpression= ruleXReturnExpression EOF )
+            // InternalSignalDSL.g:6778:2: iv_ruleXReturnExpression= ruleXReturnExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXReturnExpressionRule()); 
@@ -18362,7 +18478,7 @@
 
 
     // $ANTLR start "ruleXReturnExpression"
-    // InternalSignalDSL.g:6753:1: ruleXReturnExpression returns [EObject current=null] : ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) ;
+    // InternalSignalDSL.g:6784:1: ruleXReturnExpression returns [EObject current=null] : ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) ;
     public final EObject ruleXReturnExpression() throws RecognitionException {
         EObject current = null;
 
@@ -18374,14 +18490,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6759:2: ( ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) )
-            // InternalSignalDSL.g:6760:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
+            // InternalSignalDSL.g:6790:2: ( ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) )
+            // InternalSignalDSL.g:6791:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
             {
-            // InternalSignalDSL.g:6760:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
-            // InternalSignalDSL.g:6761:3: () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
+            // InternalSignalDSL.g:6791:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
+            // InternalSignalDSL.g:6792:3: () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
             {
-            // InternalSignalDSL.g:6761:3: ()
-            // InternalSignalDSL.g:6762:4: 
+            // InternalSignalDSL.g:6792:3: ()
+            // InternalSignalDSL.g:6793:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18393,21 +18509,21 @@
 
             }
 
-            otherlv_1=(Token)match(input,95,FOLLOW_88); if (state.failed) return current;
+            otherlv_1=(Token)match(input,99,FOLLOW_89); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
               		
             }
-            // InternalSignalDSL.g:6772:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
-            int alt109=2;
-            alt109 = dfa109.predict(input);
-            switch (alt109) {
+            // InternalSignalDSL.g:6803:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
+            int alt112=2;
+            alt112 = dfa112.predict(input);
+            switch (alt112) {
                 case 1 :
-                    // InternalSignalDSL.g:6773:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression )
+                    // InternalSignalDSL.g:6804:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:6774:4: (lv_expression_2_0= ruleXExpression )
-                    // InternalSignalDSL.g:6775:5: lv_expression_2_0= ruleXExpression
+                    // InternalSignalDSL.g:6805:4: (lv_expression_2_0= ruleXExpression )
+                    // InternalSignalDSL.g:6806:5: lv_expression_2_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -18466,7 +18582,7 @@
 
 
     // $ANTLR start "entryRuleXTryCatchFinallyExpression"
-    // InternalSignalDSL.g:6796:1: entryRuleXTryCatchFinallyExpression returns [EObject current=null] : iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF ;
+    // InternalSignalDSL.g:6827:1: entryRuleXTryCatchFinallyExpression returns [EObject current=null] : iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF ;
     public final EObject entryRuleXTryCatchFinallyExpression() throws RecognitionException {
         EObject current = null;
 
@@ -18474,8 +18590,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6796:67: (iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF )
-            // InternalSignalDSL.g:6797:2: iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF
+            // InternalSignalDSL.g:6827:67: (iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF )
+            // InternalSignalDSL.g:6828:2: iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionRule()); 
@@ -18506,7 +18622,7 @@
 
 
     // $ANTLR start "ruleXTryCatchFinallyExpression"
-    // InternalSignalDSL.g:6803:1: ruleXTryCatchFinallyExpression returns [EObject current=null] : ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) ;
+    // InternalSignalDSL.g:6834:1: ruleXTryCatchFinallyExpression returns [EObject current=null] : ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) ;
     public final EObject ruleXTryCatchFinallyExpression() throws RecognitionException {
         EObject current = null;
 
@@ -18526,14 +18642,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6809:2: ( ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) )
-            // InternalSignalDSL.g:6810:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
+            // InternalSignalDSL.g:6840:2: ( ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) )
+            // InternalSignalDSL.g:6841:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
             {
-            // InternalSignalDSL.g:6810:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
-            // InternalSignalDSL.g:6811:3: () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
+            // InternalSignalDSL.g:6841:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
+            // InternalSignalDSL.g:6842:3: () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
             {
-            // InternalSignalDSL.g:6811:3: ()
-            // InternalSignalDSL.g:6812:4: 
+            // InternalSignalDSL.g:6842:3: ()
+            // InternalSignalDSL.g:6843:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18545,24 +18661,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,96,FOLLOW_31); if (state.failed) return current;
+            otherlv_1=(Token)match(input,100,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
               		
             }
-            // InternalSignalDSL.g:6822:3: ( (lv_expression_2_0= ruleXExpression ) )
-            // InternalSignalDSL.g:6823:4: (lv_expression_2_0= ruleXExpression )
+            // InternalSignalDSL.g:6853:3: ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6854:4: (lv_expression_2_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:6823:4: (lv_expression_2_0= ruleXExpression )
-            // InternalSignalDSL.g:6824:5: lv_expression_2_0= ruleXExpression
+            // InternalSignalDSL.g:6854:4: (lv_expression_2_0= ruleXExpression )
+            // InternalSignalDSL.g:6855:5: lv_expression_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_89);
+            pushFollow(FOLLOW_90);
             lv_expression_2_0=ruleXExpression();
 
             state._fsp--;
@@ -18586,61 +18702,61 @@
 
             }
 
-            // InternalSignalDSL.g:6841:3: ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
-            int alt112=2;
-            int LA112_0 = input.LA(1);
+            // InternalSignalDSL.g:6872:3: ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
+            int alt115=2;
+            int LA115_0 = input.LA(1);
 
-            if ( (LA112_0==99) ) {
-                alt112=1;
+            if ( (LA115_0==103) ) {
+                alt115=1;
             }
-            else if ( (LA112_0==97) ) {
-                alt112=2;
+            else if ( (LA115_0==101) ) {
+                alt115=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 112, 0, input);
+                    new NoViableAltException("", 115, 0, input);
 
                 throw nvae;
             }
-            switch (alt112) {
+            switch (alt115) {
                 case 1 :
-                    // InternalSignalDSL.g:6842:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+                    // InternalSignalDSL.g:6873:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
                     {
-                    // InternalSignalDSL.g:6842:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
-                    // InternalSignalDSL.g:6843:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+                    // InternalSignalDSL.g:6873:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+                    // InternalSignalDSL.g:6874:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
                     {
-                    // InternalSignalDSL.g:6843:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+
-                    int cnt110=0;
-                    loop110:
+                    // InternalSignalDSL.g:6874:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+
+                    int cnt113=0;
+                    loop113:
                     do {
-                        int alt110=2;
-                        int LA110_0 = input.LA(1);
+                        int alt113=2;
+                        int LA113_0 = input.LA(1);
 
-                        if ( (LA110_0==99) ) {
-                            int LA110_2 = input.LA(2);
+                        if ( (LA113_0==103) ) {
+                            int LA113_2 = input.LA(2);
 
                             if ( (synpred44_InternalSignalDSL()) ) {
-                                alt110=1;
+                                alt113=1;
                             }
 
 
                         }
 
 
-                        switch (alt110) {
+                        switch (alt113) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:6844:6: ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause )
+                    	    // InternalSignalDSL.g:6875:6: ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause )
                     	    {
-                    	    // InternalSignalDSL.g:6845:6: (lv_catchClauses_3_0= ruleXCatchClause )
-                    	    // InternalSignalDSL.g:6846:7: lv_catchClauses_3_0= ruleXCatchClause
+                    	    // InternalSignalDSL.g:6876:6: (lv_catchClauses_3_0= ruleXCatchClause )
+                    	    // InternalSignalDSL.g:6877:7: lv_catchClauses_3_0= ruleXCatchClause
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_90);
+                    	    pushFollow(FOLLOW_91);
                     	    lv_catchClauses_3_0=ruleXCatchClause();
 
                     	    state._fsp--;
@@ -18666,34 +18782,34 @@
                     	    break;
 
                     	default :
-                    	    if ( cnt110 >= 1 ) break loop110;
+                    	    if ( cnt113 >= 1 ) break loop113;
                     	    if (state.backtracking>0) {state.failed=true; return current;}
                                 EarlyExitException eee =
-                                    new EarlyExitException(110, input);
+                                    new EarlyExitException(113, input);
                                 throw eee;
                         }
-                        cnt110++;
+                        cnt113++;
                     } while (true);
 
-                    // InternalSignalDSL.g:6863:5: ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
-                    int alt111=2;
-                    int LA111_0 = input.LA(1);
+                    // InternalSignalDSL.g:6894:5: ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+                    int alt114=2;
+                    int LA114_0 = input.LA(1);
 
-                    if ( (LA111_0==97) ) {
-                        int LA111_1 = input.LA(2);
+                    if ( (LA114_0==101) ) {
+                        int LA114_1 = input.LA(2);
 
                         if ( (synpred45_InternalSignalDSL()) ) {
-                            alt111=1;
+                            alt114=1;
                         }
                     }
-                    switch (alt111) {
+                    switch (alt114) {
                         case 1 :
-                            // InternalSignalDSL.g:6864:6: ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) )
+                            // InternalSignalDSL.g:6895:6: ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) )
                             {
-                            // InternalSignalDSL.g:6864:6: ( ( 'finally' )=>otherlv_4= 'finally' )
-                            // InternalSignalDSL.g:6865:7: ( 'finally' )=>otherlv_4= 'finally'
+                            // InternalSignalDSL.g:6895:6: ( ( 'finally' )=>otherlv_4= 'finally' )
+                            // InternalSignalDSL.g:6896:7: ( 'finally' )=>otherlv_4= 'finally'
                             {
-                            otherlv_4=(Token)match(input,97,FOLLOW_31); if (state.failed) return current;
+                            otherlv_4=(Token)match(input,101,FOLLOW_31); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(otherlv_4, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
@@ -18702,11 +18818,11 @@
 
                             }
 
-                            // InternalSignalDSL.g:6871:6: ( (lv_finallyExpression_5_0= ruleXExpression ) )
-                            // InternalSignalDSL.g:6872:7: (lv_finallyExpression_5_0= ruleXExpression )
+                            // InternalSignalDSL.g:6902:6: ( (lv_finallyExpression_5_0= ruleXExpression ) )
+                            // InternalSignalDSL.g:6903:7: (lv_finallyExpression_5_0= ruleXExpression )
                             {
-                            // InternalSignalDSL.g:6872:7: (lv_finallyExpression_5_0= ruleXExpression )
-                            // InternalSignalDSL.g:6873:8: lv_finallyExpression_5_0= ruleXExpression
+                            // InternalSignalDSL.g:6903:7: (lv_finallyExpression_5_0= ruleXExpression )
+                            // InternalSignalDSL.g:6904:8: lv_finallyExpression_5_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -18750,22 +18866,22 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:6893:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+                    // InternalSignalDSL.g:6924:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
                     {
-                    // InternalSignalDSL.g:6893:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
-                    // InternalSignalDSL.g:6894:5: otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:6924:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+                    // InternalSignalDSL.g:6925:5: otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) )
                     {
-                    otherlv_6=(Token)match(input,97,FOLLOW_31); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,101,FOLLOW_31); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
                       				
                     }
-                    // InternalSignalDSL.g:6898:5: ( (lv_finallyExpression_7_0= ruleXExpression ) )
-                    // InternalSignalDSL.g:6899:6: (lv_finallyExpression_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:6929:5: ( (lv_finallyExpression_7_0= ruleXExpression ) )
+                    // InternalSignalDSL.g:6930:6: (lv_finallyExpression_7_0= ruleXExpression )
                     {
-                    // InternalSignalDSL.g:6899:6: (lv_finallyExpression_7_0= ruleXExpression )
-                    // InternalSignalDSL.g:6900:7: lv_finallyExpression_7_0= ruleXExpression
+                    // InternalSignalDSL.g:6930:6: (lv_finallyExpression_7_0= ruleXExpression )
+                    // InternalSignalDSL.g:6931:7: lv_finallyExpression_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -18830,7 +18946,7 @@
 
 
     // $ANTLR start "entryRuleXSynchronizedExpression"
-    // InternalSignalDSL.g:6923:1: entryRuleXSynchronizedExpression returns [EObject current=null] : iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF ;
+    // InternalSignalDSL.g:6954:1: entryRuleXSynchronizedExpression returns [EObject current=null] : iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF ;
     public final EObject entryRuleXSynchronizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -18838,8 +18954,8 @@
 
 
         try {
-            // InternalSignalDSL.g:6923:64: (iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF )
-            // InternalSignalDSL.g:6924:2: iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF
+            // InternalSignalDSL.g:6954:64: (iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF )
+            // InternalSignalDSL.g:6955:2: iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSynchronizedExpressionRule()); 
@@ -18870,7 +18986,7 @@
 
 
     // $ANTLR start "ruleXSynchronizedExpression"
-    // InternalSignalDSL.g:6930:1: ruleXSynchronizedExpression returns [EObject current=null] : ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) ;
+    // InternalSignalDSL.g:6961:1: ruleXSynchronizedExpression returns [EObject current=null] : ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) ;
     public final EObject ruleXSynchronizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -18886,20 +19002,20 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:6936:2: ( ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) )
-            // InternalSignalDSL.g:6937:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:6967:2: ( ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) )
+            // InternalSignalDSL.g:6968:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
             {
-            // InternalSignalDSL.g:6937:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
-            // InternalSignalDSL.g:6938:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6968:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:6969:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) )
             {
-            // InternalSignalDSL.g:6938:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) )
-            // InternalSignalDSL.g:6939:4: ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' )
+            // InternalSignalDSL.g:6969:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) )
+            // InternalSignalDSL.g:6970:4: ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' )
             {
-            // InternalSignalDSL.g:6946:4: ( () otherlv_1= 'synchronized' otherlv_2= '(' )
-            // InternalSignalDSL.g:6947:5: () otherlv_1= 'synchronized' otherlv_2= '('
+            // InternalSignalDSL.g:6977:4: ( () otherlv_1= 'synchronized' otherlv_2= '(' )
+            // InternalSignalDSL.g:6978:5: () otherlv_1= 'synchronized' otherlv_2= '('
             {
-            // InternalSignalDSL.g:6947:5: ()
-            // InternalSignalDSL.g:6948:6: 
+            // InternalSignalDSL.g:6978:5: ()
+            // InternalSignalDSL.g:6979:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18911,13 +19027,13 @@
 
             }
 
-            otherlv_1=(Token)match(input,98,FOLLOW_69); if (state.failed) return current;
+            otherlv_1=(Token)match(input,102,FOLLOW_69); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1());
               				
             }
-            otherlv_2=(Token)match(input,36,FOLLOW_31); if (state.failed) return current;
+            otherlv_2=(Token)match(input,40,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_2, grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2());
@@ -18929,11 +19045,11 @@
 
             }
 
-            // InternalSignalDSL.g:6964:3: ( (lv_param_3_0= ruleXExpression ) )
-            // InternalSignalDSL.g:6965:4: (lv_param_3_0= ruleXExpression )
+            // InternalSignalDSL.g:6995:3: ( (lv_param_3_0= ruleXExpression ) )
+            // InternalSignalDSL.g:6996:4: (lv_param_3_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:6965:4: (lv_param_3_0= ruleXExpression )
-            // InternalSignalDSL.g:6966:5: lv_param_3_0= ruleXExpression
+            // InternalSignalDSL.g:6996:4: (lv_param_3_0= ruleXExpression )
+            // InternalSignalDSL.g:6997:5: lv_param_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -18964,17 +19080,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,38,FOLLOW_31); if (state.failed) return current;
+            otherlv_4=(Token)match(input,42,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2());
               		
             }
-            // InternalSignalDSL.g:6987:3: ( (lv_expression_5_0= ruleXExpression ) )
-            // InternalSignalDSL.g:6988:4: (lv_expression_5_0= ruleXExpression )
+            // InternalSignalDSL.g:7018:3: ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalSignalDSL.g:7019:4: (lv_expression_5_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:6988:4: (lv_expression_5_0= ruleXExpression )
-            // InternalSignalDSL.g:6989:5: lv_expression_5_0= ruleXExpression
+            // InternalSignalDSL.g:7019:4: (lv_expression_5_0= ruleXExpression )
+            // InternalSignalDSL.g:7020:5: lv_expression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -19030,7 +19146,7 @@
 
 
     // $ANTLR start "entryRuleXCatchClause"
-    // InternalSignalDSL.g:7010:1: entryRuleXCatchClause returns [EObject current=null] : iv_ruleXCatchClause= ruleXCatchClause EOF ;
+    // InternalSignalDSL.g:7041:1: entryRuleXCatchClause returns [EObject current=null] : iv_ruleXCatchClause= ruleXCatchClause EOF ;
     public final EObject entryRuleXCatchClause() throws RecognitionException {
         EObject current = null;
 
@@ -19038,8 +19154,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7010:53: (iv_ruleXCatchClause= ruleXCatchClause EOF )
-            // InternalSignalDSL.g:7011:2: iv_ruleXCatchClause= ruleXCatchClause EOF
+            // InternalSignalDSL.g:7041:53: (iv_ruleXCatchClause= ruleXCatchClause EOF )
+            // InternalSignalDSL.g:7042:2: iv_ruleXCatchClause= ruleXCatchClause EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCatchClauseRule()); 
@@ -19070,7 +19186,7 @@
 
 
     // $ANTLR start "ruleXCatchClause"
-    // InternalSignalDSL.g:7017:1: ruleXCatchClause returns [EObject current=null] : ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) ;
+    // InternalSignalDSL.g:7048:1: ruleXCatchClause returns [EObject current=null] : ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) ;
     public final EObject ruleXCatchClause() throws RecognitionException {
         EObject current = null;
 
@@ -19086,16 +19202,16 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7023:2: ( ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) )
-            // InternalSignalDSL.g:7024:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:7054:2: ( ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) )
+            // InternalSignalDSL.g:7055:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
             {
-            // InternalSignalDSL.g:7024:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
-            // InternalSignalDSL.g:7025:3: ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) )
+            // InternalSignalDSL.g:7055:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+            // InternalSignalDSL.g:7056:3: ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) )
             {
-            // InternalSignalDSL.g:7025:3: ( ( 'catch' )=>otherlv_0= 'catch' )
-            // InternalSignalDSL.g:7026:4: ( 'catch' )=>otherlv_0= 'catch'
+            // InternalSignalDSL.g:7056:3: ( ( 'catch' )=>otherlv_0= 'catch' )
+            // InternalSignalDSL.g:7057:4: ( 'catch' )=>otherlv_0= 'catch'
             {
-            otherlv_0=(Token)match(input,99,FOLLOW_69); if (state.failed) return current;
+            otherlv_0=(Token)match(input,103,FOLLOW_69); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               				newLeafNode(otherlv_0, grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
@@ -19104,17 +19220,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,36,FOLLOW_44); if (state.failed) return current;
+            otherlv_1=(Token)match(input,40,FOLLOW_44); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
               		
             }
-            // InternalSignalDSL.g:7036:3: ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) )
-            // InternalSignalDSL.g:7037:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+            // InternalSignalDSL.g:7067:3: ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) )
+            // InternalSignalDSL.g:7068:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
             {
-            // InternalSignalDSL.g:7037:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
-            // InternalSignalDSL.g:7038:5: lv_declaredParam_2_0= ruleFullJvmFormalParameter
+            // InternalSignalDSL.g:7068:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+            // InternalSignalDSL.g:7069:5: lv_declaredParam_2_0= ruleFullJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
 
@@ -19145,17 +19261,17 @@
 
             }
 
-            otherlv_3=(Token)match(input,38,FOLLOW_31); if (state.failed) return current;
+            otherlv_3=(Token)match(input,42,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_3, grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
               		
             }
-            // InternalSignalDSL.g:7059:3: ( (lv_expression_4_0= ruleXExpression ) )
-            // InternalSignalDSL.g:7060:4: (lv_expression_4_0= ruleXExpression )
+            // InternalSignalDSL.g:7090:3: ( (lv_expression_4_0= ruleXExpression ) )
+            // InternalSignalDSL.g:7091:4: (lv_expression_4_0= ruleXExpression )
             {
-            // InternalSignalDSL.g:7060:4: (lv_expression_4_0= ruleXExpression )
-            // InternalSignalDSL.g:7061:5: lv_expression_4_0= ruleXExpression
+            // InternalSignalDSL.g:7091:4: (lv_expression_4_0= ruleXExpression )
+            // InternalSignalDSL.g:7092:5: lv_expression_4_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -19211,7 +19327,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalSignalDSL.g:7082:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    // InternalSignalDSL.g:7113:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
     public final String entryRuleQualifiedName() throws RecognitionException {
         String current = null;
 
@@ -19219,8 +19335,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7082:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
-            // InternalSignalDSL.g:7083:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            // InternalSignalDSL.g:7113:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalSignalDSL.g:7114:2: iv_ruleQualifiedName= ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameRule()); 
@@ -19251,7 +19367,7 @@
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalSignalDSL.g:7089:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
+    // InternalSignalDSL.g:7120:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -19265,18 +19381,18 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7095:2: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
-            // InternalSignalDSL.g:7096:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // InternalSignalDSL.g:7126:2: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
+            // InternalSignalDSL.g:7127:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
             {
-            // InternalSignalDSL.g:7096:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
-            // InternalSignalDSL.g:7097:3: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            // InternalSignalDSL.g:7127:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // InternalSignalDSL.g:7128:3: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_91);
+            pushFollow(FOLLOW_92);
             this_ValidID_0=ruleValidID();
 
             state._fsp--;
@@ -19291,20 +19407,20 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalSignalDSL.g:7107:3: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
-            loop113:
+            // InternalSignalDSL.g:7138:3: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            loop116:
             do {
-                int alt113=2;
-                int LA113_0 = input.LA(1);
+                int alt116=2;
+                int LA116_0 = input.LA(1);
 
-                if ( (LA113_0==73) ) {
-                    int LA113_2 = input.LA(2);
+                if ( (LA116_0==77) ) {
+                    int LA116_2 = input.LA(2);
 
-                    if ( (LA113_2==RULE_ID) ) {
-                        int LA113_3 = input.LA(3);
+                    if ( (LA116_2==RULE_ID) ) {
+                        int LA116_3 = input.LA(3);
 
                         if ( (synpred48_InternalSignalDSL()) ) {
-                            alt113=1;
+                            alt116=1;
                         }
 
 
@@ -19314,14 +19430,14 @@
                 }
 
 
-                switch (alt113) {
+                switch (alt116) {
             	case 1 :
-            	    // InternalSignalDSL.g:7108:4: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
+            	    // InternalSignalDSL.g:7139:4: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
             	    {
-            	    // InternalSignalDSL.g:7108:4: ( ( '.' )=>kw= '.' )
-            	    // InternalSignalDSL.g:7109:5: ( '.' )=>kw= '.'
+            	    // InternalSignalDSL.g:7139:4: ( ( '.' )=>kw= '.' )
+            	    // InternalSignalDSL.g:7140:5: ( '.' )=>kw= '.'
             	    {
-            	    kw=(Token)match(input,73,FOLLOW_4); if (state.failed) return current;
+            	    kw=(Token)match(input,77,FOLLOW_4); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      					current.merge(kw);
@@ -19336,7 +19452,7 @@
             	      				newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1());
             	      			
             	    }
-            	    pushFollow(FOLLOW_91);
+            	    pushFollow(FOLLOW_92);
             	    this_ValidID_2=ruleValidID();
 
             	    state._fsp--;
@@ -19356,7 +19472,7 @@
             	    break;
 
             	default :
-            	    break loop113;
+            	    break loop116;
                 }
             } while (true);
 
@@ -19385,7 +19501,7 @@
 
 
     // $ANTLR start "entryRuleNumber"
-    // InternalSignalDSL.g:7131:1: entryRuleNumber returns [String current=null] : iv_ruleNumber= ruleNumber EOF ;
+    // InternalSignalDSL.g:7162:1: entryRuleNumber returns [String current=null] : iv_ruleNumber= ruleNumber EOF ;
     public final String entryRuleNumber() throws RecognitionException {
         String current = null;
 
@@ -19396,8 +19512,8 @@
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalSignalDSL.g:7133:2: (iv_ruleNumber= ruleNumber EOF )
-            // InternalSignalDSL.g:7134:2: iv_ruleNumber= ruleNumber EOF
+            // InternalSignalDSL.g:7164:2: (iv_ruleNumber= ruleNumber EOF )
+            // InternalSignalDSL.g:7165:2: iv_ruleNumber= ruleNumber EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNumberRule()); 
@@ -19431,7 +19547,7 @@
 
 
     // $ANTLR start "ruleNumber"
-    // InternalSignalDSL.g:7143:1: ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) ;
+    // InternalSignalDSL.g:7174:1: ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) ;
     public final AntlrDatatypeRuleToken ruleNumber() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -19447,29 +19563,29 @@
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalSignalDSL.g:7150:2: ( (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) )
-            // InternalSignalDSL.g:7151:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
+            // InternalSignalDSL.g:7181:2: ( (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) )
+            // InternalSignalDSL.g:7182:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
             {
-            // InternalSignalDSL.g:7151:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
-            int alt117=2;
-            int LA117_0 = input.LA(1);
+            // InternalSignalDSL.g:7182:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
+            int alt120=2;
+            int LA120_0 = input.LA(1);
 
-            if ( (LA117_0==RULE_HEX) ) {
-                alt117=1;
+            if ( (LA120_0==RULE_HEX) ) {
+                alt120=1;
             }
-            else if ( (LA117_0==RULE_INT||LA117_0==RULE_DECIMAL) ) {
-                alt117=2;
+            else if ( (LA120_0==RULE_INT||LA120_0==RULE_DECIMAL) ) {
+                alt120=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 117, 0, input);
+                    new NoViableAltException("", 120, 0, input);
 
                 throw nvae;
             }
-            switch (alt117) {
+            switch (alt120) {
                 case 1 :
-                    // InternalSignalDSL.g:7152:3: this_HEX_0= RULE_HEX
+                    // InternalSignalDSL.g:7183:3: this_HEX_0= RULE_HEX
                     {
                     this_HEX_0=(Token)match(input,RULE_HEX,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -19486,33 +19602,33 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:7160:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+                    // InternalSignalDSL.g:7191:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
                     {
-                    // InternalSignalDSL.g:7160:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
-                    // InternalSignalDSL.g:7161:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+                    // InternalSignalDSL.g:7191:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+                    // InternalSignalDSL.g:7192:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
                     {
-                    // InternalSignalDSL.g:7161:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL )
-                    int alt114=2;
-                    int LA114_0 = input.LA(1);
+                    // InternalSignalDSL.g:7192:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL )
+                    int alt117=2;
+                    int LA117_0 = input.LA(1);
 
-                    if ( (LA114_0==RULE_INT) ) {
-                        alt114=1;
+                    if ( (LA117_0==RULE_INT) ) {
+                        alt117=1;
                     }
-                    else if ( (LA114_0==RULE_DECIMAL) ) {
-                        alt114=2;
+                    else if ( (LA117_0==RULE_DECIMAL) ) {
+                        alt117=2;
                     }
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 114, 0, input);
+                            new NoViableAltException("", 117, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt114) {
+                    switch (alt117) {
                         case 1 :
-                            // InternalSignalDSL.g:7162:5: this_INT_1= RULE_INT
+                            // InternalSignalDSL.g:7193:5: this_INT_1= RULE_INT
                             {
-                            this_INT_1=(Token)match(input,RULE_INT,FOLLOW_91); if (state.failed) return current;
+                            this_INT_1=(Token)match(input,RULE_INT,FOLLOW_92); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(this_INT_1);
@@ -19527,9 +19643,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalSignalDSL.g:7170:5: this_DECIMAL_2= RULE_DECIMAL
+                            // InternalSignalDSL.g:7201:5: this_DECIMAL_2= RULE_DECIMAL
                             {
-                            this_DECIMAL_2=(Token)match(input,RULE_DECIMAL,FOLLOW_91); if (state.failed) return current;
+                            this_DECIMAL_2=(Token)match(input,RULE_DECIMAL,FOLLOW_92); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(this_DECIMAL_2);
@@ -19546,48 +19662,48 @@
 
                     }
 
-                    // InternalSignalDSL.g:7178:4: (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
-                    int alt116=2;
-                    int LA116_0 = input.LA(1);
+                    // InternalSignalDSL.g:7209:4: (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+                    int alt119=2;
+                    int LA119_0 = input.LA(1);
 
-                    if ( (LA116_0==73) ) {
-                        int LA116_1 = input.LA(2);
+                    if ( (LA119_0==77) ) {
+                        int LA119_1 = input.LA(2);
 
-                        if ( (LA116_1==RULE_INT||LA116_1==RULE_DECIMAL) ) {
-                            alt116=1;
+                        if ( (LA119_1==RULE_INT||LA119_1==RULE_DECIMAL) ) {
+                            alt119=1;
                         }
                     }
-                    switch (alt116) {
+                    switch (alt119) {
                         case 1 :
-                            // InternalSignalDSL.g:7179:5: kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+                            // InternalSignalDSL.g:7210:5: kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
                             {
-                            kw=(Token)match(input,73,FOLLOW_92); if (state.failed) return current;
+                            kw=(Token)match(input,77,FOLLOW_93); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
                               					newLeafNode(kw, grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0());
                               				
                             }
-                            // InternalSignalDSL.g:7184:5: (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
-                            int alt115=2;
-                            int LA115_0 = input.LA(1);
+                            // InternalSignalDSL.g:7215:5: (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+                            int alt118=2;
+                            int LA118_0 = input.LA(1);
 
-                            if ( (LA115_0==RULE_INT) ) {
-                                alt115=1;
+                            if ( (LA118_0==RULE_INT) ) {
+                                alt118=1;
                             }
-                            else if ( (LA115_0==RULE_DECIMAL) ) {
-                                alt115=2;
+                            else if ( (LA118_0==RULE_DECIMAL) ) {
+                                alt118=2;
                             }
                             else {
                                 if (state.backtracking>0) {state.failed=true; return current;}
                                 NoViableAltException nvae =
-                                    new NoViableAltException("", 115, 0, input);
+                                    new NoViableAltException("", 118, 0, input);
 
                                 throw nvae;
                             }
-                            switch (alt115) {
+                            switch (alt118) {
                                 case 1 :
-                                    // InternalSignalDSL.g:7185:6: this_INT_4= RULE_INT
+                                    // InternalSignalDSL.g:7216:6: this_INT_4= RULE_INT
                                     {
                                     this_INT_4=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
                                     if ( state.backtracking==0 ) {
@@ -19604,7 +19720,7 @@
                                     }
                                     break;
                                 case 2 :
-                                    // InternalSignalDSL.g:7193:6: this_DECIMAL_5= RULE_DECIMAL
+                                    // InternalSignalDSL.g:7224:6: this_DECIMAL_5= RULE_DECIMAL
                                     {
                                     this_DECIMAL_5=(Token)match(input,RULE_DECIMAL,FOLLOW_2); if (state.failed) return current;
                                     if ( state.backtracking==0 ) {
@@ -19663,7 +19779,7 @@
 
 
     // $ANTLR start "entryRuleJvmTypeReference"
-    // InternalSignalDSL.g:7210:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ;
+    // InternalSignalDSL.g:7241:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ;
     public final EObject entryRuleJvmTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -19671,8 +19787,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7210:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF )
-            // InternalSignalDSL.g:7211:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF
+            // InternalSignalDSL.g:7241:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF )
+            // InternalSignalDSL.g:7242:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); 
@@ -19703,7 +19819,7 @@
 
 
     // $ANTLR start "ruleJvmTypeReference"
-    // InternalSignalDSL.g:7217:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ;
+    // InternalSignalDSL.g:7248:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ;
     public final EObject ruleJvmTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -19716,39 +19832,39 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7223:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) )
-            // InternalSignalDSL.g:7224:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+            // InternalSignalDSL.g:7254:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) )
+            // InternalSignalDSL.g:7255:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
             {
-            // InternalSignalDSL.g:7224:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
-            int alt119=2;
-            int LA119_0 = input.LA(1);
+            // InternalSignalDSL.g:7255:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+            int alt122=2;
+            int LA122_0 = input.LA(1);
 
-            if ( (LA119_0==RULE_ID) ) {
-                alt119=1;
+            if ( (LA122_0==RULE_ID) ) {
+                alt122=1;
             }
-            else if ( (LA119_0==36||LA119_0==61) ) {
-                alt119=2;
+            else if ( (LA122_0==40||LA122_0==65) ) {
+                alt122=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 119, 0, input);
+                    new NoViableAltException("", 122, 0, input);
 
                 throw nvae;
             }
-            switch (alt119) {
+            switch (alt122) {
                 case 1 :
-                    // InternalSignalDSL.g:7225:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+                    // InternalSignalDSL.g:7256:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
                     {
-                    // InternalSignalDSL.g:7225:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
-                    // InternalSignalDSL.g:7226:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+                    // InternalSignalDSL.g:7256:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+                    // InternalSignalDSL.g:7257:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
                     {
                     if ( state.backtracking==0 ) {
 
                       				newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0());
                       			
                     }
-                    pushFollow(FOLLOW_85);
+                    pushFollow(FOLLOW_86);
                     this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference();
 
                     state._fsp--;
@@ -19759,20 +19875,20 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalSignalDSL.g:7234:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
-                    loop118:
+                    // InternalSignalDSL.g:7265:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+                    loop121:
                     do {
-                        int alt118=2;
-                        int LA118_0 = input.LA(1);
+                        int alt121=2;
+                        int LA121_0 = input.LA(1);
 
-                        if ( (LA118_0==41) ) {
-                            int LA118_2 = input.LA(2);
+                        if ( (LA121_0==45) ) {
+                            int LA121_2 = input.LA(2);
 
-                            if ( (LA118_2==42) ) {
-                                int LA118_3 = input.LA(3);
+                            if ( (LA121_2==46) ) {
+                                int LA121_3 = input.LA(3);
 
                                 if ( (synpred49_InternalSignalDSL()) ) {
-                                    alt118=1;
+                                    alt121=1;
                                 }
 
 
@@ -19782,15 +19898,15 @@
                         }
 
 
-                        switch (alt118) {
+                        switch (alt121) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:7235:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets )
+                    	    // InternalSignalDSL.g:7266:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets )
                     	    {
-                    	    // InternalSignalDSL.g:7241:5: ( () ruleArrayBrackets )
-                    	    // InternalSignalDSL.g:7242:6: () ruleArrayBrackets
+                    	    // InternalSignalDSL.g:7272:5: ( () ruleArrayBrackets )
+                    	    // InternalSignalDSL.g:7273:6: () ruleArrayBrackets
                     	    {
-                    	    // InternalSignalDSL.g:7242:6: ()
-                    	    // InternalSignalDSL.g:7243:7: 
+                    	    // InternalSignalDSL.g:7273:6: ()
+                    	    // InternalSignalDSL.g:7274:7: 
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -19807,7 +19923,7 @@
                     	      						newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1());
                     	      					
                     	    }
-                    	    pushFollow(FOLLOW_85);
+                    	    pushFollow(FOLLOW_86);
                     	    ruleArrayBrackets();
 
                     	    state._fsp--;
@@ -19825,7 +19941,7 @@
                     	    break;
 
                     	default :
-                    	    break loop118;
+                    	    break loop121;
                         }
                     } while (true);
 
@@ -19836,7 +19952,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:7260:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef
+                    // InternalSignalDSL.g:7291:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19882,7 +19998,7 @@
 
 
     // $ANTLR start "entryRuleArrayBrackets"
-    // InternalSignalDSL.g:7272:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ;
+    // InternalSignalDSL.g:7303:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ;
     public final String entryRuleArrayBrackets() throws RecognitionException {
         String current = null;
 
@@ -19890,8 +20006,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7272:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF )
-            // InternalSignalDSL.g:7273:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF
+            // InternalSignalDSL.g:7303:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF )
+            // InternalSignalDSL.g:7304:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getArrayBracketsRule()); 
@@ -19922,7 +20038,7 @@
 
 
     // $ANTLR start "ruleArrayBrackets"
-    // InternalSignalDSL.g:7279:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ;
+    // InternalSignalDSL.g:7310:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ;
     public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -19932,20 +20048,20 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7285:2: ( (kw= '[' kw= ']' ) )
-            // InternalSignalDSL.g:7286:2: (kw= '[' kw= ']' )
+            // InternalSignalDSL.g:7316:2: ( (kw= '[' kw= ']' ) )
+            // InternalSignalDSL.g:7317:2: (kw= '[' kw= ']' )
             {
-            // InternalSignalDSL.g:7286:2: (kw= '[' kw= ']' )
-            // InternalSignalDSL.g:7287:3: kw= '[' kw= ']'
+            // InternalSignalDSL.g:7317:2: (kw= '[' kw= ']' )
+            // InternalSignalDSL.g:7318:3: kw= '[' kw= ']'
             {
-            kw=(Token)match(input,41,FOLLOW_66); if (state.failed) return current;
+            kw=(Token)match(input,45,FOLLOW_66); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
               			newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0());
               		
             }
-            kw=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,46,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
@@ -19977,7 +20093,7 @@
 
 
     // $ANTLR start "entryRuleXFunctionTypeRef"
-    // InternalSignalDSL.g:7301:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ;
+    // InternalSignalDSL.g:7332:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ;
     public final EObject entryRuleXFunctionTypeRef() throws RecognitionException {
         EObject current = null;
 
@@ -19985,8 +20101,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7301:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF )
-            // InternalSignalDSL.g:7302:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF
+            // InternalSignalDSL.g:7332:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF )
+            // InternalSignalDSL.g:7333:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); 
@@ -20017,7 +20133,7 @@
 
 
     // $ANTLR start "ruleXFunctionTypeRef"
-    // InternalSignalDSL.g:7308:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ;
+    // InternalSignalDSL.g:7339:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleXFunctionTypeRef() throws RecognitionException {
         EObject current = null;
 
@@ -20036,45 +20152,45 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7314:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) )
-            // InternalSignalDSL.g:7315:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7345:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) )
+            // InternalSignalDSL.g:7346:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
             {
-            // InternalSignalDSL.g:7315:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
-            // InternalSignalDSL.g:7316:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7346:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7347:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) )
             {
-            // InternalSignalDSL.g:7316:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )?
-            int alt122=2;
-            int LA122_0 = input.LA(1);
+            // InternalSignalDSL.g:7347:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )?
+            int alt125=2;
+            int LA125_0 = input.LA(1);
 
-            if ( (LA122_0==36) ) {
-                alt122=1;
+            if ( (LA125_0==40) ) {
+                alt125=1;
             }
-            switch (alt122) {
+            switch (alt125) {
                 case 1 :
-                    // InternalSignalDSL.g:7317:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')'
+                    // InternalSignalDSL.g:7348:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')'
                     {
-                    otherlv_0=(Token)match(input,36,FOLLOW_93); if (state.failed) return current;
+                    otherlv_0=(Token)match(input,40,FOLLOW_94); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
                       			
                     }
-                    // InternalSignalDSL.g:7321:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )?
-                    int alt121=2;
-                    int LA121_0 = input.LA(1);
+                    // InternalSignalDSL.g:7352:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )?
+                    int alt124=2;
+                    int LA124_0 = input.LA(1);
 
-                    if ( (LA121_0==RULE_ID||LA121_0==36||LA121_0==61) ) {
-                        alt121=1;
+                    if ( (LA124_0==RULE_ID||LA124_0==40||LA124_0==65) ) {
+                        alt124=1;
                     }
-                    switch (alt121) {
+                    switch (alt124) {
                         case 1 :
-                            // InternalSignalDSL.g:7322:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+                            // InternalSignalDSL.g:7353:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
                             {
-                            // InternalSignalDSL.g:7322:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) )
-                            // InternalSignalDSL.g:7323:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
+                            // InternalSignalDSL.g:7353:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) )
+                            // InternalSignalDSL.g:7354:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
                             {
-                            // InternalSignalDSL.g:7323:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
-                            // InternalSignalDSL.g:7324:7: lv_paramTypes_1_0= ruleJvmTypeReference
+                            // InternalSignalDSL.g:7354:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
+                            // InternalSignalDSL.g:7355:7: lv_paramTypes_1_0= ruleJvmTypeReference
                             {
                             if ( state.backtracking==0 ) {
 
@@ -20105,32 +20221,32 @@
 
                             }
 
-                            // InternalSignalDSL.g:7341:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
-                            loop120:
+                            // InternalSignalDSL.g:7372:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+                            loop123:
                             do {
-                                int alt120=2;
-                                int LA120_0 = input.LA(1);
+                                int alt123=2;
+                                int LA123_0 = input.LA(1);
 
-                                if ( (LA120_0==37) ) {
-                                    alt120=1;
+                                if ( (LA123_0==41) ) {
+                                    alt123=1;
                                 }
 
 
-                                switch (alt120) {
+                                switch (alt123) {
                             	case 1 :
-                            	    // InternalSignalDSL.g:7342:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+                            	    // InternalSignalDSL.g:7373:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
                             	    {
-                            	    otherlv_2=(Token)match(input,37,FOLLOW_44); if (state.failed) return current;
+                            	    otherlv_2=(Token)match(input,41,FOLLOW_44); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalSignalDSL.g:7346:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
-                            	    // InternalSignalDSL.g:7347:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
+                            	    // InternalSignalDSL.g:7377:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+                            	    // InternalSignalDSL.g:7378:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
                             	    {
-                            	    // InternalSignalDSL.g:7347:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
-                            	    // InternalSignalDSL.g:7348:8: lv_paramTypes_3_0= ruleJvmTypeReference
+                            	    // InternalSignalDSL.g:7378:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
+                            	    // InternalSignalDSL.g:7379:8: lv_paramTypes_3_0= ruleJvmTypeReference
                             	    {
                             	    if ( state.backtracking==0 ) {
 
@@ -20166,7 +20282,7 @@
                             	    break;
 
                             	default :
-                            	    break loop120;
+                            	    break loop123;
                                 }
                             } while (true);
 
@@ -20176,7 +20292,7 @@
 
                     }
 
-                    otherlv_4=(Token)match(input,38,FOLLOW_94); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,42,FOLLOW_95); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
@@ -20188,17 +20304,17 @@
 
             }
 
-            otherlv_5=(Token)match(input,61,FOLLOW_44); if (state.failed) return current;
+            otherlv_5=(Token)match(input,65,FOLLOW_44); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
               		
             }
-            // InternalSignalDSL.g:7376:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:7377:4: (lv_returnType_6_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7407:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7408:4: (lv_returnType_6_0= ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:7377:4: (lv_returnType_6_0= ruleJvmTypeReference )
-            // InternalSignalDSL.g:7378:5: lv_returnType_6_0= ruleJvmTypeReference
+            // InternalSignalDSL.g:7408:4: (lv_returnType_6_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7409:5: lv_returnType_6_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -20254,7 +20370,7 @@
 
 
     // $ANTLR start "entryRuleJvmParameterizedTypeReference"
-    // InternalSignalDSL.g:7399:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ;
+    // InternalSignalDSL.g:7430:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ;
     public final EObject entryRuleJvmParameterizedTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -20262,8 +20378,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7399:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF )
-            // InternalSignalDSL.g:7400:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF
+            // InternalSignalDSL.g:7430:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF )
+            // InternalSignalDSL.g:7431:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
@@ -20294,7 +20410,7 @@
 
 
     // $ANTLR start "ruleJvmParameterizedTypeReference"
-    // InternalSignalDSL.g:7406:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ;
+    // InternalSignalDSL.g:7437:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ;
     public final EObject ruleJvmParameterizedTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -20318,17 +20434,17 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7412:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) )
-            // InternalSignalDSL.g:7413:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
+            // InternalSignalDSL.g:7443:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) )
+            // InternalSignalDSL.g:7444:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
             {
-            // InternalSignalDSL.g:7413:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
-            // InternalSignalDSL.g:7414:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
+            // InternalSignalDSL.g:7444:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
+            // InternalSignalDSL.g:7445:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
             {
-            // InternalSignalDSL.g:7414:3: ( ( ruleQualifiedName ) )
-            // InternalSignalDSL.g:7415:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:7445:3: ( ( ruleQualifiedName ) )
+            // InternalSignalDSL.g:7446:4: ( ruleQualifiedName )
             {
-            // InternalSignalDSL.g:7415:4: ( ruleQualifiedName )
-            // InternalSignalDSL.g:7416:5: ruleQualifiedName
+            // InternalSignalDSL.g:7446:4: ( ruleQualifiedName )
+            // InternalSignalDSL.g:7447:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -20342,7 +20458,7 @@
               					newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0());
               				
             }
-            pushFollow(FOLLOW_95);
+            pushFollow(FOLLOW_96);
             ruleQualifiedName();
 
             state._fsp--;
@@ -20358,17 +20474,17 @@
 
             }
 
-            // InternalSignalDSL.g:7430:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
-            int alt127=2;
-            alt127 = dfa127.predict(input);
-            switch (alt127) {
+            // InternalSignalDSL.g:7461:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
+            int alt130=2;
+            alt130 = dfa130.predict(input);
+            switch (alt130) {
                 case 1 :
-                    // InternalSignalDSL.g:7431:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
+                    // InternalSignalDSL.g:7462:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
                     {
-                    // InternalSignalDSL.g:7431:4: ( ( '<' )=>otherlv_1= '<' )
-                    // InternalSignalDSL.g:7432:5: ( '<' )=>otherlv_1= '<'
+                    // InternalSignalDSL.g:7462:4: ( ( '<' )=>otherlv_1= '<' )
+                    // InternalSignalDSL.g:7463:5: ( '<' )=>otherlv_1= '<'
                     {
-                    otherlv_1=(Token)match(input,48,FOLLOW_56); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,52,FOLLOW_56); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
@@ -20377,11 +20493,11 @@
 
                     }
 
-                    // InternalSignalDSL.g:7438:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) )
-                    // InternalSignalDSL.g:7439:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalSignalDSL.g:7469:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) )
+                    // InternalSignalDSL.g:7470:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalSignalDSL.g:7439:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
-                    // InternalSignalDSL.g:7440:6: lv_arguments_2_0= ruleJvmArgumentTypeReference
+                    // InternalSignalDSL.g:7470:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalSignalDSL.g:7471:6: lv_arguments_2_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -20412,32 +20528,32 @@
 
                     }
 
-                    // InternalSignalDSL.g:7457:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )*
-                    loop123:
+                    // InternalSignalDSL.g:7488:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop126:
                     do {
-                        int alt123=2;
-                        int LA123_0 = input.LA(1);
+                        int alt126=2;
+                        int LA126_0 = input.LA(1);
 
-                        if ( (LA123_0==37) ) {
-                            alt123=1;
+                        if ( (LA126_0==41) ) {
+                            alt126=1;
                         }
 
 
-                        switch (alt123) {
+                        switch (alt126) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:7458:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalSignalDSL.g:7489:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,37,FOLLOW_56); if (state.failed) return current;
+                    	    otherlv_3=(Token)match(input,41,FOLLOW_56); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
                     	      				
                     	    }
-                    	    // InternalSignalDSL.g:7462:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalSignalDSL.g:7463:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalSignalDSL.g:7493:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalSignalDSL.g:7494:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalSignalDSL.g:7463:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
-                    	    // InternalSignalDSL.g:7464:7: lv_arguments_4_0= ruleJvmArgumentTypeReference
+                    	    // InternalSignalDSL.g:7494:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalSignalDSL.g:7495:7: lv_arguments_4_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -20473,30 +20589,30 @@
                     	    break;
 
                     	default :
-                    	    break loop123;
+                    	    break loop126;
                         }
                     } while (true);
 
-                    otherlv_5=(Token)match(input,49,FOLLOW_91); if (state.failed) return current;
+                    otherlv_5=(Token)match(input,53,FOLLOW_92); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
                       			
                     }
-                    // InternalSignalDSL.g:7486:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
-                    loop126:
+                    // InternalSignalDSL.g:7517:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
+                    loop129:
                     do {
-                        int alt126=2;
-                        int LA126_0 = input.LA(1);
+                        int alt129=2;
+                        int LA129_0 = input.LA(1);
 
-                        if ( (LA126_0==73) ) {
-                            int LA126_2 = input.LA(2);
+                        if ( (LA129_0==77) ) {
+                            int LA129_2 = input.LA(2);
 
-                            if ( (LA126_2==RULE_ID) ) {
-                                int LA126_3 = input.LA(3);
+                            if ( (LA129_2==RULE_ID) ) {
+                                int LA129_3 = input.LA(3);
 
                                 if ( (synpred51_InternalSignalDSL()) ) {
-                                    alt126=1;
+                                    alt129=1;
                                 }
 
 
@@ -20506,18 +20622,18 @@
                         }
 
 
-                        switch (alt126) {
+                        switch (alt129) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:7487:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
+                    	    // InternalSignalDSL.g:7518:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
                     	    {
-                    	    // InternalSignalDSL.g:7487:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) )
-                    	    // InternalSignalDSL.g:7488:6: ( ( () '.' ) )=> ( () otherlv_7= '.' )
+                    	    // InternalSignalDSL.g:7518:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) )
+                    	    // InternalSignalDSL.g:7519:6: ( ( () '.' ) )=> ( () otherlv_7= '.' )
                     	    {
-                    	    // InternalSignalDSL.g:7494:6: ( () otherlv_7= '.' )
-                    	    // InternalSignalDSL.g:7495:7: () otherlv_7= '.'
+                    	    // InternalSignalDSL.g:7525:6: ( () otherlv_7= '.' )
+                    	    // InternalSignalDSL.g:7526:7: () otherlv_7= '.'
                     	    {
-                    	    // InternalSignalDSL.g:7495:7: ()
-                    	    // InternalSignalDSL.g:7496:8: 
+                    	    // InternalSignalDSL.g:7526:7: ()
+                    	    // InternalSignalDSL.g:7527:8: 
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -20529,7 +20645,7 @@
 
                     	    }
 
-                    	    otherlv_7=(Token)match(input,73,FOLLOW_4); if (state.failed) return current;
+                    	    otherlv_7=(Token)match(input,77,FOLLOW_4); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      							newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1());
@@ -20541,11 +20657,11 @@
 
                     	    }
 
-                    	    // InternalSignalDSL.g:7508:5: ( ( ruleValidID ) )
-                    	    // InternalSignalDSL.g:7509:6: ( ruleValidID )
+                    	    // InternalSignalDSL.g:7539:5: ( ( ruleValidID ) )
+                    	    // InternalSignalDSL.g:7540:6: ( ruleValidID )
                     	    {
-                    	    // InternalSignalDSL.g:7509:6: ( ruleValidID )
-                    	    // InternalSignalDSL.g:7510:7: ruleValidID
+                    	    // InternalSignalDSL.g:7540:6: ( ruleValidID )
+                    	    // InternalSignalDSL.g:7541:7: ruleValidID
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -20559,7 +20675,7 @@
                     	      							newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_96);
+                    	    pushFollow(FOLLOW_97);
                     	    ruleValidID();
 
                     	    state._fsp--;
@@ -20575,17 +20691,17 @@
 
                     	    }
 
-                    	    // InternalSignalDSL.g:7524:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
-                    	    int alt125=2;
-                    	    alt125 = dfa125.predict(input);
-                    	    switch (alt125) {
+                    	    // InternalSignalDSL.g:7555:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
+                    	    int alt128=2;
+                    	    alt128 = dfa128.predict(input);
+                    	    switch (alt128) {
                     	        case 1 :
-                    	            // InternalSignalDSL.g:7525:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>'
+                    	            // InternalSignalDSL.g:7556:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>'
                     	            {
-                    	            // InternalSignalDSL.g:7525:6: ( ( '<' )=>otherlv_9= '<' )
-                    	            // InternalSignalDSL.g:7526:7: ( '<' )=>otherlv_9= '<'
+                    	            // InternalSignalDSL.g:7556:6: ( ( '<' )=>otherlv_9= '<' )
+                    	            // InternalSignalDSL.g:7557:7: ( '<' )=>otherlv_9= '<'
                     	            {
-                    	            otherlv_9=(Token)match(input,48,FOLLOW_56); if (state.failed) return current;
+                    	            otherlv_9=(Token)match(input,52,FOLLOW_56); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
                     	              							newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0());
@@ -20594,11 +20710,11 @@
 
                     	            }
 
-                    	            // InternalSignalDSL.g:7532:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) )
-                    	            // InternalSignalDSL.g:7533:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
+                    	            // InternalSignalDSL.g:7563:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) )
+                    	            // InternalSignalDSL.g:7564:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
                     	            {
-                    	            // InternalSignalDSL.g:7533:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
-                    	            // InternalSignalDSL.g:7534:8: lv_arguments_10_0= ruleJvmArgumentTypeReference
+                    	            // InternalSignalDSL.g:7564:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
+                    	            // InternalSignalDSL.g:7565:8: lv_arguments_10_0= ruleJvmArgumentTypeReference
                     	            {
                     	            if ( state.backtracking==0 ) {
 
@@ -20629,32 +20745,32 @@
 
                     	            }
 
-                    	            // InternalSignalDSL.g:7551:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )*
-                    	            loop124:
+                    	            // InternalSignalDSL.g:7582:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )*
+                    	            loop127:
                     	            do {
-                    	                int alt124=2;
-                    	                int LA124_0 = input.LA(1);
+                    	                int alt127=2;
+                    	                int LA127_0 = input.LA(1);
 
-                    	                if ( (LA124_0==37) ) {
-                    	                    alt124=1;
+                    	                if ( (LA127_0==41) ) {
+                    	                    alt127=1;
                     	                }
 
 
-                    	                switch (alt124) {
+                    	                switch (alt127) {
                     	            	case 1 :
-                    	            	    // InternalSignalDSL.g:7552:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
+                    	            	    // InternalSignalDSL.g:7583:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
                     	            	    {
-                    	            	    otherlv_11=(Token)match(input,37,FOLLOW_56); if (state.failed) return current;
+                    	            	    otherlv_11=(Token)match(input,41,FOLLOW_56); if (state.failed) return current;
                     	            	    if ( state.backtracking==0 ) {
 
                     	            	      							newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0());
                     	            	      						
                     	            	    }
-                    	            	    // InternalSignalDSL.g:7556:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
-                    	            	    // InternalSignalDSL.g:7557:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
+                    	            	    // InternalSignalDSL.g:7587:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
+                    	            	    // InternalSignalDSL.g:7588:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
                     	            	    {
-                    	            	    // InternalSignalDSL.g:7557:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
-                    	            	    // InternalSignalDSL.g:7558:9: lv_arguments_12_0= ruleJvmArgumentTypeReference
+                    	            	    // InternalSignalDSL.g:7588:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
+                    	            	    // InternalSignalDSL.g:7589:9: lv_arguments_12_0= ruleJvmArgumentTypeReference
                     	            	    {
                     	            	    if ( state.backtracking==0 ) {
 
@@ -20690,11 +20806,11 @@
                     	            	    break;
 
                     	            	default :
-                    	            	    break loop124;
+                    	            	    break loop127;
                     	                }
                     	            } while (true);
 
-                    	            otherlv_13=(Token)match(input,49,FOLLOW_91); if (state.failed) return current;
+                    	            otherlv_13=(Token)match(input,53,FOLLOW_92); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
                     	              						newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3());
@@ -20711,7 +20827,7 @@
                     	    break;
 
                     	default :
-                    	    break loop126;
+                    	    break loop129;
                         }
                     } while (true);
 
@@ -20746,7 +20862,7 @@
 
 
     // $ANTLR start "entryRuleJvmArgumentTypeReference"
-    // InternalSignalDSL.g:7587:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ;
+    // InternalSignalDSL.g:7618:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ;
     public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -20754,8 +20870,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7587:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF )
-            // InternalSignalDSL.g:7588:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF
+            // InternalSignalDSL.g:7618:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF )
+            // InternalSignalDSL.g:7619:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); 
@@ -20786,7 +20902,7 @@
 
 
     // $ANTLR start "ruleJvmArgumentTypeReference"
-    // InternalSignalDSL.g:7594:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ;
+    // InternalSignalDSL.g:7625:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ;
     public final EObject ruleJvmArgumentTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -20799,29 +20915,29 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7600:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) )
-            // InternalSignalDSL.g:7601:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+            // InternalSignalDSL.g:7631:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) )
+            // InternalSignalDSL.g:7632:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
             {
-            // InternalSignalDSL.g:7601:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
-            int alt128=2;
-            int LA128_0 = input.LA(1);
+            // InternalSignalDSL.g:7632:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+            int alt131=2;
+            int LA131_0 = input.LA(1);
 
-            if ( (LA128_0==RULE_ID||LA128_0==36||LA128_0==61) ) {
-                alt128=1;
+            if ( (LA131_0==RULE_ID||LA131_0==40||LA131_0==65) ) {
+                alt131=1;
             }
-            else if ( (LA128_0==100) ) {
-                alt128=2;
+            else if ( (LA131_0==104) ) {
+                alt131=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 128, 0, input);
+                    new NoViableAltException("", 131, 0, input);
 
                 throw nvae;
             }
-            switch (alt128) {
+            switch (alt131) {
                 case 1 :
-                    // InternalSignalDSL.g:7602:3: this_JvmTypeReference_0= ruleJvmTypeReference
+                    // InternalSignalDSL.g:7633:3: this_JvmTypeReference_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -20843,7 +20959,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:7611:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference
+                    // InternalSignalDSL.g:7642:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -20889,7 +21005,7 @@
 
 
     // $ANTLR start "entryRuleJvmWildcardTypeReference"
-    // InternalSignalDSL.g:7623:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ;
+    // InternalSignalDSL.g:7654:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ;
     public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -20897,8 +21013,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7623:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF )
-            // InternalSignalDSL.g:7624:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF
+            // InternalSignalDSL.g:7654:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF )
+            // InternalSignalDSL.g:7655:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); 
@@ -20929,7 +21045,7 @@
 
 
     // $ANTLR start "ruleJvmWildcardTypeReference"
-    // InternalSignalDSL.g:7630:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ;
+    // InternalSignalDSL.g:7661:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ;
     public final EObject ruleJvmWildcardTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -20947,14 +21063,14 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7636:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) )
-            // InternalSignalDSL.g:7637:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
+            // InternalSignalDSL.g:7667:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) )
+            // InternalSignalDSL.g:7668:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
             {
-            // InternalSignalDSL.g:7637:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
-            // InternalSignalDSL.g:7638:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
+            // InternalSignalDSL.g:7668:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
+            // InternalSignalDSL.g:7669:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
             {
-            // InternalSignalDSL.g:7638:3: ()
-            // InternalSignalDSL.g:7639:4: 
+            // InternalSignalDSL.g:7669:3: ()
+            // InternalSignalDSL.g:7670:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -20966,41 +21082,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,100,FOLLOW_97); if (state.failed) return current;
+            otherlv_1=(Token)match(input,104,FOLLOW_98); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
               		
             }
-            // InternalSignalDSL.g:7649:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
-            int alt131=3;
-            int LA131_0 = input.LA(1);
+            // InternalSignalDSL.g:7680:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
+            int alt134=3;
+            int LA134_0 = input.LA(1);
 
-            if ( (LA131_0==87) ) {
-                alt131=1;
+            if ( (LA134_0==91) ) {
+                alt134=1;
             }
-            else if ( (LA131_0==88) ) {
-                alt131=2;
+            else if ( (LA134_0==92) ) {
+                alt134=2;
             }
-            switch (alt131) {
+            switch (alt134) {
                 case 1 :
-                    // InternalSignalDSL.g:7650:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
+                    // InternalSignalDSL.g:7681:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
                     {
-                    // InternalSignalDSL.g:7650:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
-                    // InternalSignalDSL.g:7651:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
+                    // InternalSignalDSL.g:7681:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
+                    // InternalSignalDSL.g:7682:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
                     {
-                    // InternalSignalDSL.g:7651:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
-                    // InternalSignalDSL.g:7652:6: (lv_constraints_2_0= ruleJvmUpperBound )
+                    // InternalSignalDSL.g:7682:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
+                    // InternalSignalDSL.g:7683:6: (lv_constraints_2_0= ruleJvmUpperBound )
                     {
-                    // InternalSignalDSL.g:7652:6: (lv_constraints_2_0= ruleJvmUpperBound )
-                    // InternalSignalDSL.g:7653:7: lv_constraints_2_0= ruleJvmUpperBound
+                    // InternalSignalDSL.g:7683:6: (lv_constraints_2_0= ruleJvmUpperBound )
+                    // InternalSignalDSL.g:7684:7: lv_constraints_2_0= ruleJvmUpperBound
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0());
                       						
                     }
-                    pushFollow(FOLLOW_98);
+                    pushFollow(FOLLOW_99);
                     lv_constraints_2_0=ruleJvmUpperBound();
 
                     state._fsp--;
@@ -21024,30 +21140,30 @@
 
                     }
 
-                    // InternalSignalDSL.g:7670:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
-                    loop129:
+                    // InternalSignalDSL.g:7701:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
+                    loop132:
                     do {
-                        int alt129=2;
-                        int LA129_0 = input.LA(1);
+                        int alt132=2;
+                        int LA132_0 = input.LA(1);
 
-                        if ( (LA129_0==101) ) {
-                            alt129=1;
+                        if ( (LA132_0==105) ) {
+                            alt132=1;
                         }
 
 
-                        switch (alt129) {
+                        switch (alt132) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:7671:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
+                    	    // InternalSignalDSL.g:7702:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
                     	    {
-                    	    // InternalSignalDSL.g:7671:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
-                    	    // InternalSignalDSL.g:7672:7: lv_constraints_3_0= ruleJvmUpperBoundAnded
+                    	    // InternalSignalDSL.g:7702:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
+                    	    // InternalSignalDSL.g:7703:7: lv_constraints_3_0= ruleJvmUpperBoundAnded
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_98);
+                    	    pushFollow(FOLLOW_99);
                     	    lv_constraints_3_0=ruleJvmUpperBoundAnded();
 
                     	    state._fsp--;
@@ -21073,7 +21189,7 @@
                     	    break;
 
                     	default :
-                    	    break loop129;
+                    	    break loop132;
                         }
                     } while (true);
 
@@ -21084,23 +21200,23 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:7691:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
+                    // InternalSignalDSL.g:7722:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
                     {
-                    // InternalSignalDSL.g:7691:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
-                    // InternalSignalDSL.g:7692:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
+                    // InternalSignalDSL.g:7722:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
+                    // InternalSignalDSL.g:7723:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
                     {
-                    // InternalSignalDSL.g:7692:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) )
-                    // InternalSignalDSL.g:7693:6: (lv_constraints_4_0= ruleJvmLowerBound )
+                    // InternalSignalDSL.g:7723:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) )
+                    // InternalSignalDSL.g:7724:6: (lv_constraints_4_0= ruleJvmLowerBound )
                     {
-                    // InternalSignalDSL.g:7693:6: (lv_constraints_4_0= ruleJvmLowerBound )
-                    // InternalSignalDSL.g:7694:7: lv_constraints_4_0= ruleJvmLowerBound
+                    // InternalSignalDSL.g:7724:6: (lv_constraints_4_0= ruleJvmLowerBound )
+                    // InternalSignalDSL.g:7725:7: lv_constraints_4_0= ruleJvmLowerBound
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0());
                       						
                     }
-                    pushFollow(FOLLOW_98);
+                    pushFollow(FOLLOW_99);
                     lv_constraints_4_0=ruleJvmLowerBound();
 
                     state._fsp--;
@@ -21124,30 +21240,30 @@
 
                     }
 
-                    // InternalSignalDSL.g:7711:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
-                    loop130:
+                    // InternalSignalDSL.g:7742:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
+                    loop133:
                     do {
-                        int alt130=2;
-                        int LA130_0 = input.LA(1);
+                        int alt133=2;
+                        int LA133_0 = input.LA(1);
 
-                        if ( (LA130_0==101) ) {
-                            alt130=1;
+                        if ( (LA133_0==105) ) {
+                            alt133=1;
                         }
 
 
-                        switch (alt130) {
+                        switch (alt133) {
                     	case 1 :
-                    	    // InternalSignalDSL.g:7712:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
+                    	    // InternalSignalDSL.g:7743:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
                     	    {
-                    	    // InternalSignalDSL.g:7712:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
-                    	    // InternalSignalDSL.g:7713:7: lv_constraints_5_0= ruleJvmLowerBoundAnded
+                    	    // InternalSignalDSL.g:7743:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
+                    	    // InternalSignalDSL.g:7744:7: lv_constraints_5_0= ruleJvmLowerBoundAnded
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_98);
+                    	    pushFollow(FOLLOW_99);
                     	    lv_constraints_5_0=ruleJvmLowerBoundAnded();
 
                     	    state._fsp--;
@@ -21173,7 +21289,7 @@
                     	    break;
 
                     	default :
-                    	    break loop130;
+                    	    break loop133;
                         }
                     } while (true);
 
@@ -21211,7 +21327,7 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBound"
-    // InternalSignalDSL.g:7736:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ;
+    // InternalSignalDSL.g:7767:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ;
     public final EObject entryRuleJvmUpperBound() throws RecognitionException {
         EObject current = null;
 
@@ -21219,8 +21335,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7736:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF )
-            // InternalSignalDSL.g:7737:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF
+            // InternalSignalDSL.g:7767:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF )
+            // InternalSignalDSL.g:7768:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmUpperBoundRule()); 
@@ -21251,7 +21367,7 @@
 
 
     // $ANTLR start "ruleJvmUpperBound"
-    // InternalSignalDSL.g:7743:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalSignalDSL.g:7774:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmUpperBound() throws RecognitionException {
         EObject current = null;
 
@@ -21263,23 +21379,23 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7749:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalSignalDSL.g:7750:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7780:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalSignalDSL.g:7781:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalSignalDSL.g:7750:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalSignalDSL.g:7751:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7781:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7782:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,87,FOLLOW_44); if (state.failed) return current;
+            otherlv_0=(Token)match(input,91,FOLLOW_44); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
               		
             }
-            // InternalSignalDSL.g:7755:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:7756:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7786:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7787:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:7756:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalSignalDSL.g:7757:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalSignalDSL.g:7787:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7788:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -21335,7 +21451,7 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBoundAnded"
-    // InternalSignalDSL.g:7778:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ;
+    // InternalSignalDSL.g:7809:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ;
     public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -21343,8 +21459,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7778:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF )
-            // InternalSignalDSL.g:7779:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF
+            // InternalSignalDSL.g:7809:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF )
+            // InternalSignalDSL.g:7810:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); 
@@ -21375,7 +21491,7 @@
 
 
     // $ANTLR start "ruleJvmUpperBoundAnded"
-    // InternalSignalDSL.g:7785:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalSignalDSL.g:7816:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmUpperBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -21387,23 +21503,23 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7791:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalSignalDSL.g:7792:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7822:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalSignalDSL.g:7823:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalSignalDSL.g:7792:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalSignalDSL.g:7793:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7823:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7824:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,101,FOLLOW_44); if (state.failed) return current;
+            otherlv_0=(Token)match(input,105,FOLLOW_44); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
               		
             }
-            // InternalSignalDSL.g:7797:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:7798:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7828:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7829:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:7798:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalSignalDSL.g:7799:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalSignalDSL.g:7829:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7830:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -21459,7 +21575,7 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBound"
-    // InternalSignalDSL.g:7820:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ;
+    // InternalSignalDSL.g:7851:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ;
     public final EObject entryRuleJvmLowerBound() throws RecognitionException {
         EObject current = null;
 
@@ -21467,8 +21583,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7820:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF )
-            // InternalSignalDSL.g:7821:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF
+            // InternalSignalDSL.g:7851:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF )
+            // InternalSignalDSL.g:7852:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmLowerBoundRule()); 
@@ -21499,7 +21615,7 @@
 
 
     // $ANTLR start "ruleJvmLowerBound"
-    // InternalSignalDSL.g:7827:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalSignalDSL.g:7858:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmLowerBound() throws RecognitionException {
         EObject current = null;
 
@@ -21511,23 +21627,23 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7833:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalSignalDSL.g:7834:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7864:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalSignalDSL.g:7865:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalSignalDSL.g:7834:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalSignalDSL.g:7835:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7865:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7866:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,88,FOLLOW_44); if (state.failed) return current;
+            otherlv_0=(Token)match(input,92,FOLLOW_44); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
               		
             }
-            // InternalSignalDSL.g:7839:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:7840:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7870:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7871:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:7840:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalSignalDSL.g:7841:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalSignalDSL.g:7871:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7872:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -21583,7 +21699,7 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBoundAnded"
-    // InternalSignalDSL.g:7862:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ;
+    // InternalSignalDSL.g:7893:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ;
     public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -21591,8 +21707,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7862:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF )
-            // InternalSignalDSL.g:7863:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF
+            // InternalSignalDSL.g:7893:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF )
+            // InternalSignalDSL.g:7894:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); 
@@ -21623,7 +21739,7 @@
 
 
     // $ANTLR start "ruleJvmLowerBoundAnded"
-    // InternalSignalDSL.g:7869:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalSignalDSL.g:7900:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmLowerBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -21635,23 +21751,23 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7875:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalSignalDSL.g:7876:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7906:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalSignalDSL.g:7907:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalSignalDSL.g:7876:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalSignalDSL.g:7877:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7907:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalSignalDSL.g:7908:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,101,FOLLOW_44); if (state.failed) return current;
+            otherlv_0=(Token)match(input,105,FOLLOW_44); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0());
               		
             }
-            // InternalSignalDSL.g:7881:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalSignalDSL.g:7882:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7912:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalSignalDSL.g:7913:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalSignalDSL.g:7882:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalSignalDSL.g:7883:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalSignalDSL.g:7913:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalSignalDSL.g:7914:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -21707,7 +21823,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameWithWildcard"
-    // InternalSignalDSL.g:7904:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
+    // InternalSignalDSL.g:7935:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
     public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException {
         String current = null;
 
@@ -21715,8 +21831,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7904:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
-            // InternalSignalDSL.g:7905:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
+            // InternalSignalDSL.g:7935:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
+            // InternalSignalDSL.g:7936:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); 
@@ -21747,7 +21863,7 @@
 
 
     // $ANTLR start "ruleQualifiedNameWithWildcard"
-    // InternalSignalDSL.g:7911:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ;
+    // InternalSignalDSL.g:7942:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -21759,18 +21875,18 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7917:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) )
-            // InternalSignalDSL.g:7918:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+            // InternalSignalDSL.g:7948:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) )
+            // InternalSignalDSL.g:7949:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
             {
-            // InternalSignalDSL.g:7918:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
-            // InternalSignalDSL.g:7919:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*'
+            // InternalSignalDSL.g:7949:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+            // InternalSignalDSL.g:7950:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*'
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_100);
             this_QualifiedName_0=ruleQualifiedName();
 
             state._fsp--;
@@ -21785,14 +21901,14 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            kw=(Token)match(input,73,FOLLOW_100); if (state.failed) return current;
+            kw=(Token)match(input,77,FOLLOW_101); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
               			newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1());
               		
             }
-            kw=(Token)match(input,32,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,36,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
@@ -21824,7 +21940,7 @@
 
 
     // $ANTLR start "entryRuleValidID"
-    // InternalSignalDSL.g:7943:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
+    // InternalSignalDSL.g:7974:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
     public final String entryRuleValidID() throws RecognitionException {
         String current = null;
 
@@ -21832,8 +21948,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7943:47: (iv_ruleValidID= ruleValidID EOF )
-            // InternalSignalDSL.g:7944:2: iv_ruleValidID= ruleValidID EOF
+            // InternalSignalDSL.g:7974:47: (iv_ruleValidID= ruleValidID EOF )
+            // InternalSignalDSL.g:7975:2: iv_ruleValidID= ruleValidID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getValidIDRule()); 
@@ -21864,7 +21980,7 @@
 
 
     // $ANTLR start "ruleValidID"
-    // InternalSignalDSL.g:7950:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    // InternalSignalDSL.g:7981:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
     public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -21874,8 +21990,8 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7956:2: (this_ID_0= RULE_ID )
-            // InternalSignalDSL.g:7957:2: this_ID_0= RULE_ID
+            // InternalSignalDSL.g:7987:2: (this_ID_0= RULE_ID )
+            // InternalSignalDSL.g:7988:2: this_ID_0= RULE_ID
             {
             this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -21910,7 +22026,7 @@
 
 
     // $ANTLR start "entryRuleXImportSection"
-    // InternalSignalDSL.g:7967:1: entryRuleXImportSection returns [EObject current=null] : iv_ruleXImportSection= ruleXImportSection EOF ;
+    // InternalSignalDSL.g:7998:1: entryRuleXImportSection returns [EObject current=null] : iv_ruleXImportSection= ruleXImportSection EOF ;
     public final EObject entryRuleXImportSection() throws RecognitionException {
         EObject current = null;
 
@@ -21918,8 +22034,8 @@
 
 
         try {
-            // InternalSignalDSL.g:7967:55: (iv_ruleXImportSection= ruleXImportSection EOF )
-            // InternalSignalDSL.g:7968:2: iv_ruleXImportSection= ruleXImportSection EOF
+            // InternalSignalDSL.g:7998:55: (iv_ruleXImportSection= ruleXImportSection EOF )
+            // InternalSignalDSL.g:7999:2: iv_ruleXImportSection= ruleXImportSection EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXImportSectionRule()); 
@@ -21950,7 +22066,7 @@
 
 
     // $ANTLR start "ruleXImportSection"
-    // InternalSignalDSL.g:7974:1: ruleXImportSection returns [EObject current=null] : ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ ;
+    // InternalSignalDSL.g:8005:1: ruleXImportSection returns [EObject current=null] : ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ ;
     public final EObject ruleXImportSection() throws RecognitionException {
         EObject current = null;
 
@@ -21961,34 +22077,34 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:7980:2: ( ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ )
-            // InternalSignalDSL.g:7981:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+            // InternalSignalDSL.g:8011:2: ( ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ )
+            // InternalSignalDSL.g:8012:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
             {
-            // InternalSignalDSL.g:7981:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
-            int cnt132=0;
-            loop132:
+            // InternalSignalDSL.g:8012:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+            int cnt135=0;
+            loop135:
             do {
-                int alt132=2;
-                int LA132_0 = input.LA(1);
+                int alt135=2;
+                int LA135_0 = input.LA(1);
 
-                if ( (LA132_0==29) ) {
-                    alt132=1;
+                if ( (LA135_0==33) ) {
+                    alt135=1;
                 }
 
 
-                switch (alt132) {
+                switch (alt135) {
             	case 1 :
-            	    // InternalSignalDSL.g:7982:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+            	    // InternalSignalDSL.g:8013:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
             	    {
-            	    // InternalSignalDSL.g:7982:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
-            	    // InternalSignalDSL.g:7983:4: lv_importDeclarations_0_0= ruleXImportDeclaration
+            	    // InternalSignalDSL.g:8013:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+            	    // InternalSignalDSL.g:8014:4: lv_importDeclarations_0_0= ruleXImportDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      				newCompositeNode(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0());
             	      			
             	    }
-            	    pushFollow(FOLLOW_101);
+            	    pushFollow(FOLLOW_102);
             	    lv_importDeclarations_0_0=ruleXImportDeclaration();
 
             	    state._fsp--;
@@ -22014,13 +22130,13 @@
             	    break;
 
             	default :
-            	    if ( cnt132 >= 1 ) break loop132;
+            	    if ( cnt135 >= 1 ) break loop135;
             	    if (state.backtracking>0) {state.failed=true; return current;}
                         EarlyExitException eee =
-                            new EarlyExitException(132, input);
+                            new EarlyExitException(135, input);
                         throw eee;
                 }
-                cnt132++;
+                cnt135++;
             } while (true);
 
 
@@ -22045,7 +22161,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameInStaticImport"
-    // InternalSignalDSL.g:8003:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ;
+    // InternalSignalDSL.g:8034:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ;
     public final String entryRuleQualifiedNameInStaticImport() throws RecognitionException {
         String current = null;
 
@@ -22053,8 +22169,8 @@
 
 
         try {
-            // InternalSignalDSL.g:8003:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF )
-            // InternalSignalDSL.g:8004:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF
+            // InternalSignalDSL.g:8034:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF )
+            // InternalSignalDSL.g:8035:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); 
@@ -22085,7 +22201,7 @@
 
 
     // $ANTLR start "ruleQualifiedNameInStaticImport"
-    // InternalSignalDSL.g:8010:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ;
+    // InternalSignalDSL.g:8041:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ;
     public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -22097,37 +22213,37 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:8016:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ )
-            // InternalSignalDSL.g:8017:2: (this_ValidID_0= ruleValidID kw= '.' )+
+            // InternalSignalDSL.g:8047:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ )
+            // InternalSignalDSL.g:8048:2: (this_ValidID_0= ruleValidID kw= '.' )+
             {
-            // InternalSignalDSL.g:8017:2: (this_ValidID_0= ruleValidID kw= '.' )+
-            int cnt133=0;
-            loop133:
+            // InternalSignalDSL.g:8048:2: (this_ValidID_0= ruleValidID kw= '.' )+
+            int cnt136=0;
+            loop136:
             do {
-                int alt133=2;
-                int LA133_0 = input.LA(1);
+                int alt136=2;
+                int LA136_0 = input.LA(1);
 
-                if ( (LA133_0==RULE_ID) ) {
-                    int LA133_2 = input.LA(2);
+                if ( (LA136_0==RULE_ID) ) {
+                    int LA136_2 = input.LA(2);
 
-                    if ( (LA133_2==73) ) {
-                        alt133=1;
+                    if ( (LA136_2==77) ) {
+                        alt136=1;
                     }
 
 
                 }
 
 
-                switch (alt133) {
+                switch (alt136) {
             	case 1 :
-            	    // InternalSignalDSL.g:8018:3: this_ValidID_0= ruleValidID kw= '.'
+            	    // InternalSignalDSL.g:8049:3: this_ValidID_0= ruleValidID kw= '.'
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      			newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0());
             	      		
             	    }
-            	    pushFollow(FOLLOW_99);
+            	    pushFollow(FOLLOW_100);
             	    this_ValidID_0=ruleValidID();
 
             	    state._fsp--;
@@ -22142,7 +22258,7 @@
             	      			afterParserOrEnumRuleCall();
             	      		
             	    }
-            	    kw=(Token)match(input,73,FOLLOW_102); if (state.failed) return current;
+            	    kw=(Token)match(input,77,FOLLOW_103); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      			current.merge(kw);
@@ -22154,13 +22270,13 @@
             	    break;
 
             	default :
-            	    if ( cnt133 >= 1 ) break loop133;
+            	    if ( cnt136 >= 1 ) break loop136;
             	    if (state.backtracking>0) {state.failed=true; return current;}
                         EarlyExitException eee =
-                            new EarlyExitException(133, input);
+                            new EarlyExitException(136, input);
                         throw eee;
                 }
-                cnt133++;
+                cnt136++;
             } while (true);
 
 
@@ -22184,9 +22300,9 @@
     // $ANTLR end "ruleQualifiedNameInStaticImport"
 
 
-    // $ANTLR start "ruleSignalActionEnum"
-    // InternalSignalDSL.g:8037:1: ruleSignalActionEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'import' ) | (enumLiteral_1= 'export' ) ) ;
-    public final Enumerator ruleSignalActionEnum() throws RecognitionException {
+    // $ANTLR start "ruleSignalActionTypeEnum"
+    // InternalSignalDSL.g:8068:1: ruleSignalActionTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'import' ) | (enumLiteral_1= 'export' ) ) ;
+    public final Enumerator ruleSignalActionTypeEnum() throws RecognitionException {
         Enumerator current = null;
 
         Token enumLiteral_0=null;
@@ -22196,38 +22312,38 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:8043:2: ( ( (enumLiteral_0= 'import' ) | (enumLiteral_1= 'export' ) ) )
-            // InternalSignalDSL.g:8044:2: ( (enumLiteral_0= 'import' ) | (enumLiteral_1= 'export' ) )
+            // InternalSignalDSL.g:8074:2: ( ( (enumLiteral_0= 'import' ) | (enumLiteral_1= 'export' ) ) )
+            // InternalSignalDSL.g:8075:2: ( (enumLiteral_0= 'import' ) | (enumLiteral_1= 'export' ) )
             {
-            // InternalSignalDSL.g:8044:2: ( (enumLiteral_0= 'import' ) | (enumLiteral_1= 'export' ) )
-            int alt134=2;
-            int LA134_0 = input.LA(1);
+            // InternalSignalDSL.g:8075:2: ( (enumLiteral_0= 'import' ) | (enumLiteral_1= 'export' ) )
+            int alt137=2;
+            int LA137_0 = input.LA(1);
 
-            if ( (LA134_0==29) ) {
-                alt134=1;
+            if ( (LA137_0==33) ) {
+                alt137=1;
             }
-            else if ( (LA134_0==102) ) {
-                alt134=2;
+            else if ( (LA137_0==106) ) {
+                alt137=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 134, 0, input);
+                    new NoViableAltException("", 137, 0, input);
 
                 throw nvae;
             }
-            switch (alt134) {
+            switch (alt137) {
                 case 1 :
-                    // InternalSignalDSL.g:8045:3: (enumLiteral_0= 'import' )
+                    // InternalSignalDSL.g:8076:3: (enumLiteral_0= 'import' )
                     {
-                    // InternalSignalDSL.g:8045:3: (enumLiteral_0= 'import' )
-                    // InternalSignalDSL.g:8046:4: enumLiteral_0= 'import'
+                    // InternalSignalDSL.g:8076:3: (enumLiteral_0= 'import' )
+                    // InternalSignalDSL.g:8077:4: enumLiteral_0= 'import'
                     {
-                    enumLiteral_0=(Token)match(input,29,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,33,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      				current = grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_0, grammarAccess.getSignalActionEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0());
+                      				current = grammarAccess.getSignalActionTypeEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_0, grammarAccess.getSignalActionTypeEnumAccess().getDATAIMPORTEnumLiteralDeclaration_0());
                       			
                     }
 
@@ -22237,16 +22353,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:8053:3: (enumLiteral_1= 'export' )
+                    // InternalSignalDSL.g:8084:3: (enumLiteral_1= 'export' )
                     {
-                    // InternalSignalDSL.g:8053:3: (enumLiteral_1= 'export' )
-                    // InternalSignalDSL.g:8054:4: enumLiteral_1= 'export'
+                    // InternalSignalDSL.g:8084:3: (enumLiteral_1= 'export' )
+                    // InternalSignalDSL.g:8085:4: enumLiteral_1= 'export'
                     {
-                    enumLiteral_1=(Token)match(input,102,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,106,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      				current = grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
-                      				newLeafNode(enumLiteral_1, grammarAccess.getSignalActionEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1());
+                      				current = grammarAccess.getSignalActionTypeEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_1, grammarAccess.getSignalActionTypeEnumAccess().getDATAEXPORTEnumLiteralDeclaration_1());
                       			
                     }
 
@@ -22276,11 +22392,11 @@
         }
         return current;
     }
-    // $ANTLR end "ruleSignalActionEnum"
+    // $ANTLR end "ruleSignalActionTypeEnum"
 
 
     // $ANTLR start "ruleSignalExecutionTypeEnum"
-    // InternalSignalDSL.g:8064:1: ruleSignalExecutionTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'sequential' ) | (enumLiteral_1= 'parallel' ) ) ;
+    // InternalSignalDSL.g:8095:1: ruleSignalExecutionTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'sequential' ) | (enumLiteral_1= 'parallel' ) ) ;
     public final Enumerator ruleSignalExecutionTypeEnum() throws RecognitionException {
         Enumerator current = null;
 
@@ -22291,34 +22407,34 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:8070:2: ( ( (enumLiteral_0= 'sequential' ) | (enumLiteral_1= 'parallel' ) ) )
-            // InternalSignalDSL.g:8071:2: ( (enumLiteral_0= 'sequential' ) | (enumLiteral_1= 'parallel' ) )
+            // InternalSignalDSL.g:8101:2: ( ( (enumLiteral_0= 'sequential' ) | (enumLiteral_1= 'parallel' ) ) )
+            // InternalSignalDSL.g:8102:2: ( (enumLiteral_0= 'sequential' ) | (enumLiteral_1= 'parallel' ) )
             {
-            // InternalSignalDSL.g:8071:2: ( (enumLiteral_0= 'sequential' ) | (enumLiteral_1= 'parallel' ) )
-            int alt135=2;
-            int LA135_0 = input.LA(1);
+            // InternalSignalDSL.g:8102:2: ( (enumLiteral_0= 'sequential' ) | (enumLiteral_1= 'parallel' ) )
+            int alt138=2;
+            int LA138_0 = input.LA(1);
 
-            if ( (LA135_0==103) ) {
-                alt135=1;
+            if ( (LA138_0==107) ) {
+                alt138=1;
             }
-            else if ( (LA135_0==104) ) {
-                alt135=2;
+            else if ( (LA138_0==108) ) {
+                alt138=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 135, 0, input);
+                    new NoViableAltException("", 138, 0, input);
 
                 throw nvae;
             }
-            switch (alt135) {
+            switch (alt138) {
                 case 1 :
-                    // InternalSignalDSL.g:8072:3: (enumLiteral_0= 'sequential' )
+                    // InternalSignalDSL.g:8103:3: (enumLiteral_0= 'sequential' )
                     {
-                    // InternalSignalDSL.g:8072:3: (enumLiteral_0= 'sequential' )
-                    // InternalSignalDSL.g:8073:4: enumLiteral_0= 'sequential'
+                    // InternalSignalDSL.g:8103:3: (enumLiteral_0= 'sequential' )
+                    // InternalSignalDSL.g:8104:4: enumLiteral_0= 'sequential'
                     {
-                    enumLiteral_0=(Token)match(input,103,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,107,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getSignalExecutionTypeEnumAccess().getSEQEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -22332,12 +22448,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:8080:3: (enumLiteral_1= 'parallel' )
+                    // InternalSignalDSL.g:8111:3: (enumLiteral_1= 'parallel' )
                     {
-                    // InternalSignalDSL.g:8080:3: (enumLiteral_1= 'parallel' )
-                    // InternalSignalDSL.g:8081:4: enumLiteral_1= 'parallel'
+                    // InternalSignalDSL.g:8111:3: (enumLiteral_1= 'parallel' )
+                    // InternalSignalDSL.g:8112:4: enumLiteral_1= 'parallel'
                     {
-                    enumLiteral_1=(Token)match(input,104,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,108,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getSignalExecutionTypeEnumAccess().getNOSEQEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -22375,7 +22491,7 @@
 
 
     // $ANTLR start "ruleDayOfWeekEnum"
-    // InternalSignalDSL.g:8091:1: ruleDayOfWeekEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'sunday' ) | (enumLiteral_1= 'monday' ) | (enumLiteral_2= 'tuesday' ) | (enumLiteral_3= 'wednesday' ) | (enumLiteral_4= 'thursday' ) | (enumLiteral_5= 'friday' ) | (enumLiteral_6= 'saturday' ) ) ;
+    // InternalSignalDSL.g:8122:1: ruleDayOfWeekEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'sunday' ) | (enumLiteral_1= 'monday' ) | (enumLiteral_2= 'tuesday' ) | (enumLiteral_3= 'wednesday' ) | (enumLiteral_4= 'thursday' ) | (enumLiteral_5= 'friday' ) | (enumLiteral_6= 'saturday' ) ) ;
     public final Enumerator ruleDayOfWeekEnum() throws RecognitionException {
         Enumerator current = null;
 
@@ -22391,63 +22507,63 @@
         	enterRule();
 
         try {
-            // InternalSignalDSL.g:8097:2: ( ( (enumLiteral_0= 'sunday' ) | (enumLiteral_1= 'monday' ) | (enumLiteral_2= 'tuesday' ) | (enumLiteral_3= 'wednesday' ) | (enumLiteral_4= 'thursday' ) | (enumLiteral_5= 'friday' ) | (enumLiteral_6= 'saturday' ) ) )
-            // InternalSignalDSL.g:8098:2: ( (enumLiteral_0= 'sunday' ) | (enumLiteral_1= 'monday' ) | (enumLiteral_2= 'tuesday' ) | (enumLiteral_3= 'wednesday' ) | (enumLiteral_4= 'thursday' ) | (enumLiteral_5= 'friday' ) | (enumLiteral_6= 'saturday' ) )
+            // InternalSignalDSL.g:8128:2: ( ( (enumLiteral_0= 'sunday' ) | (enumLiteral_1= 'monday' ) | (enumLiteral_2= 'tuesday' ) | (enumLiteral_3= 'wednesday' ) | (enumLiteral_4= 'thursday' ) | (enumLiteral_5= 'friday' ) | (enumLiteral_6= 'saturday' ) ) )
+            // InternalSignalDSL.g:8129:2: ( (enumLiteral_0= 'sunday' ) | (enumLiteral_1= 'monday' ) | (enumLiteral_2= 'tuesday' ) | (enumLiteral_3= 'wednesday' ) | (enumLiteral_4= 'thursday' ) | (enumLiteral_5= 'friday' ) | (enumLiteral_6= 'saturday' ) )
             {
-            // InternalSignalDSL.g:8098:2: ( (enumLiteral_0= 'sunday' ) | (enumLiteral_1= 'monday' ) | (enumLiteral_2= 'tuesday' ) | (enumLiteral_3= 'wednesday' ) | (enumLiteral_4= 'thursday' ) | (enumLiteral_5= 'friday' ) | (enumLiteral_6= 'saturday' ) )
-            int alt136=7;
+            // InternalSignalDSL.g:8129:2: ( (enumLiteral_0= 'sunday' ) | (enumLiteral_1= 'monday' ) | (enumLiteral_2= 'tuesday' ) | (enumLiteral_3= 'wednesday' ) | (enumLiteral_4= 'thursday' ) | (enumLiteral_5= 'friday' ) | (enumLiteral_6= 'saturday' ) )
+            int alt139=7;
             switch ( input.LA(1) ) {
-            case 105:
-                {
-                alt136=1;
-                }
-                break;
-            case 106:
-                {
-                alt136=2;
-                }
-                break;
-            case 107:
-                {
-                alt136=3;
-                }
-                break;
-            case 108:
-                {
-                alt136=4;
-                }
-                break;
             case 109:
                 {
-                alt136=5;
+                alt139=1;
                 }
                 break;
             case 110:
                 {
-                alt136=6;
+                alt139=2;
                 }
                 break;
             case 111:
                 {
-                alt136=7;
+                alt139=3;
+                }
+                break;
+            case 112:
+                {
+                alt139=4;
+                }
+                break;
+            case 113:
+                {
+                alt139=5;
+                }
+                break;
+            case 114:
+                {
+                alt139=6;
+                }
+                break;
+            case 115:
+                {
+                alt139=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 136, 0, input);
+                    new NoViableAltException("", 139, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt136) {
+            switch (alt139) {
                 case 1 :
-                    // InternalSignalDSL.g:8099:3: (enumLiteral_0= 'sunday' )
+                    // InternalSignalDSL.g:8130:3: (enumLiteral_0= 'sunday' )
                     {
-                    // InternalSignalDSL.g:8099:3: (enumLiteral_0= 'sunday' )
-                    // InternalSignalDSL.g:8100:4: enumLiteral_0= 'sunday'
+                    // InternalSignalDSL.g:8130:3: (enumLiteral_0= 'sunday' )
+                    // InternalSignalDSL.g:8131:4: enumLiteral_0= 'sunday'
                     {
-                    enumLiteral_0=(Token)match(input,105,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,109,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getDayOfWeekEnumAccess().getSUNDAYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -22461,12 +22577,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalSignalDSL.g:8107:3: (enumLiteral_1= 'monday' )
+                    // InternalSignalDSL.g:8138:3: (enumLiteral_1= 'monday' )
                     {
-                    // InternalSignalDSL.g:8107:3: (enumLiteral_1= 'monday' )
-                    // InternalSignalDSL.g:8108:4: enumLiteral_1= 'monday'
+                    // InternalSignalDSL.g:8138:3: (enumLiteral_1= 'monday' )
+                    // InternalSignalDSL.g:8139:4: enumLiteral_1= 'monday'
                     {
-                    enumLiteral_1=(Token)match(input,106,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,110,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getDayOfWeekEnumAccess().getMONDAYEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -22480,12 +22596,12 @@
                     }
                     break;
                 case 3 :
-                    // InternalSignalDSL.g:8115:3: (enumLiteral_2= 'tuesday' )
+                    // InternalSignalDSL.g:8146:3: (enumLiteral_2= 'tuesday' )
                     {
-                    // InternalSignalDSL.g:8115:3: (enumLiteral_2= 'tuesday' )
-                    // InternalSignalDSL.g:8116:4: enumLiteral_2= 'tuesday'
+                    // InternalSignalDSL.g:8146:3: (enumLiteral_2= 'tuesday' )
+                    // InternalSignalDSL.g:8147:4: enumLiteral_2= 'tuesday'
                     {
-                    enumLiteral_2=(Token)match(input,107,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,111,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getDayOfWeekEnumAccess().getTUESDAYEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -22499,12 +22615,12 @@
                     }
                     break;
                 case 4 :
-                    // InternalSignalDSL.g:8123:3: (enumLiteral_3= 'wednesday' )
+                    // InternalSignalDSL.g:8154:3: (enumLiteral_3= 'wednesday' )
                     {
-                    // InternalSignalDSL.g:8123:3: (enumLiteral_3= 'wednesday' )
-                    // InternalSignalDSL.g:8124:4: enumLiteral_3= 'wednesday'
+                    // InternalSignalDSL.g:8154:3: (enumLiteral_3= 'wednesday' )
+                    // InternalSignalDSL.g:8155:4: enumLiteral_3= 'wednesday'
                     {
-                    enumLiteral_3=(Token)match(input,108,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,112,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getDayOfWeekEnumAccess().getWEDNESDAYEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -22518,12 +22634,12 @@
                     }
                     break;
                 case 5 :
-                    // InternalSignalDSL.g:8131:3: (enumLiteral_4= 'thursday' )
+                    // InternalSignalDSL.g:8162:3: (enumLiteral_4= 'thursday' )
                     {
-                    // InternalSignalDSL.g:8131:3: (enumLiteral_4= 'thursday' )
-                    // InternalSignalDSL.g:8132:4: enumLiteral_4= 'thursday'
+                    // InternalSignalDSL.g:8162:3: (enumLiteral_4= 'thursday' )
+                    // InternalSignalDSL.g:8163:4: enumLiteral_4= 'thursday'
                     {
-                    enumLiteral_4=(Token)match(input,109,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_4=(Token)match(input,113,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getDayOfWeekEnumAccess().getTHURSDAYEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
@@ -22537,12 +22653,12 @@
                     }
                     break;
                 case 6 :
-                    // InternalSignalDSL.g:8139:3: (enumLiteral_5= 'friday' )
+                    // InternalSignalDSL.g:8170:3: (enumLiteral_5= 'friday' )
                     {
-                    // InternalSignalDSL.g:8139:3: (enumLiteral_5= 'friday' )
-                    // InternalSignalDSL.g:8140:4: enumLiteral_5= 'friday'
+                    // InternalSignalDSL.g:8170:3: (enumLiteral_5= 'friday' )
+                    // InternalSignalDSL.g:8171:4: enumLiteral_5= 'friday'
                     {
-                    enumLiteral_5=(Token)match(input,110,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_5=(Token)match(input,114,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getDayOfWeekEnumAccess().getFRIDAYEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
@@ -22556,12 +22672,12 @@
                     }
                     break;
                 case 7 :
-                    // InternalSignalDSL.g:8147:3: (enumLiteral_6= 'saturday' )
+                    // InternalSignalDSL.g:8178:3: (enumLiteral_6= 'saturday' )
                     {
-                    // InternalSignalDSL.g:8147:3: (enumLiteral_6= 'saturday' )
-                    // InternalSignalDSL.g:8148:4: enumLiteral_6= 'saturday'
+                    // InternalSignalDSL.g:8178:3: (enumLiteral_6= 'saturday' )
+                    // InternalSignalDSL.g:8179:4: enumLiteral_6= 'saturday'
                     {
-                    enumLiteral_6=(Token)match(input,111,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_6=(Token)match(input,115,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getDayOfWeekEnumAccess().getSATURDAYEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
@@ -22599,10 +22715,10 @@
 
     // $ANTLR start synpred1_InternalSignalDSL
     public final void synpred1_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:1413:5: ( '(' )
-        // InternalSignalDSL.g:1413:6: '('
+        // InternalSignalDSL.g:1444:5: ( '(' )
+        // InternalSignalDSL.g:1444:6: '('
         {
-        match(input,36,FOLLOW_2); if (state.failed) return ;
+        match(input,40,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -22610,17 +22726,17 @@
 
     // $ANTLR start synpred2_InternalSignalDSL
     public final void synpred2_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:1422:7: ( ( ( ( ruleValidID ) ) '=' ) )
-        // InternalSignalDSL.g:1422:8: ( ( ( ruleValidID ) ) '=' )
+        // InternalSignalDSL.g:1453:7: ( ( ( ( ruleValidID ) ) '=' ) )
+        // InternalSignalDSL.g:1453:8: ( ( ( ruleValidID ) ) '=' )
         {
-        // InternalSignalDSL.g:1422:8: ( ( ( ruleValidID ) ) '=' )
-        // InternalSignalDSL.g:1423:8: ( ( ruleValidID ) ) '='
+        // InternalSignalDSL.g:1453:8: ( ( ( ruleValidID ) ) '=' )
+        // InternalSignalDSL.g:1454:8: ( ( ruleValidID ) ) '='
         {
-        // InternalSignalDSL.g:1423:8: ( ( ruleValidID ) )
-        // InternalSignalDSL.g:1424:9: ( ruleValidID )
+        // InternalSignalDSL.g:1454:8: ( ( ruleValidID ) )
+        // InternalSignalDSL.g:1455:9: ( ruleValidID )
         {
-        // InternalSignalDSL.g:1424:9: ( ruleValidID )
-        // InternalSignalDSL.g:1425:10: ruleValidID
+        // InternalSignalDSL.g:1455:9: ( ruleValidID )
+        // InternalSignalDSL.g:1456:10: ruleValidID
         {
         pushFollow(FOLLOW_30);
         ruleValidID();
@@ -22633,7 +22749,7 @@
 
         }
 
-        match(input,39,FOLLOW_2); if (state.failed) return ;
+        match(input,43,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22644,19 +22760,19 @@
 
     // $ANTLR start synpred5_InternalSignalDSL
     public final void synpred5_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:1602:5: ( ( () '#' '[' ) )
-        // InternalSignalDSL.g:1602:6: ( () '#' '[' )
+        // InternalSignalDSL.g:1633:5: ( ( () '#' '[' ) )
+        // InternalSignalDSL.g:1633:6: ( () '#' '[' )
         {
-        // InternalSignalDSL.g:1602:6: ( () '#' '[' )
-        // InternalSignalDSL.g:1603:6: () '#' '['
+        // InternalSignalDSL.g:1633:6: ( () '#' '[' )
+        // InternalSignalDSL.g:1634:6: () '#' '['
         {
-        // InternalSignalDSL.g:1603:6: ()
-        // InternalSignalDSL.g:1604:6: 
+        // InternalSignalDSL.g:1634:6: ()
+        // InternalSignalDSL.g:1635:6: 
         {
         }
 
-        match(input,40,FOLLOW_32); if (state.failed) return ;
-        match(input,41,FOLLOW_2); if (state.failed) return ;
+        match(input,44,FOLLOW_32); if (state.failed) return ;
+        match(input,45,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22667,19 +22783,19 @@
 
     // $ANTLR start synpred6_InternalSignalDSL
     public final void synpred6_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:1744:5: ( ( () '#' '[' ) )
-        // InternalSignalDSL.g:1744:6: ( () '#' '[' )
+        // InternalSignalDSL.g:1775:5: ( ( () '#' '[' ) )
+        // InternalSignalDSL.g:1775:6: ( () '#' '[' )
         {
-        // InternalSignalDSL.g:1744:6: ( () '#' '[' )
-        // InternalSignalDSL.g:1745:6: () '#' '['
+        // InternalSignalDSL.g:1775:6: ( () '#' '[' )
+        // InternalSignalDSL.g:1776:6: () '#' '['
         {
-        // InternalSignalDSL.g:1745:6: ()
-        // InternalSignalDSL.g:1746:6: 
+        // InternalSignalDSL.g:1776:6: ()
+        // InternalSignalDSL.g:1777:6: 
         {
         }
 
-        match(input,40,FOLLOW_32); if (state.failed) return ;
-        match(input,41,FOLLOW_2); if (state.failed) return ;
+        match(input,44,FOLLOW_32); if (state.failed) return ;
+        match(input,45,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22690,22 +22806,22 @@
 
     // $ANTLR start synpred7_InternalSignalDSL
     public final void synpred7_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:1972:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )
-        // InternalSignalDSL.g:1972:7: ( () ( ( ruleOpMultiAssign ) ) )
+        // InternalSignalDSL.g:2003:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )
+        // InternalSignalDSL.g:2003:7: ( () ( ( ruleOpMultiAssign ) ) )
         {
-        // InternalSignalDSL.g:1972:7: ( () ( ( ruleOpMultiAssign ) ) )
-        // InternalSignalDSL.g:1973:7: () ( ( ruleOpMultiAssign ) )
+        // InternalSignalDSL.g:2003:7: ( () ( ( ruleOpMultiAssign ) ) )
+        // InternalSignalDSL.g:2004:7: () ( ( ruleOpMultiAssign ) )
         {
-        // InternalSignalDSL.g:1973:7: ()
-        // InternalSignalDSL.g:1974:7: 
+        // InternalSignalDSL.g:2004:7: ()
+        // InternalSignalDSL.g:2005:7: 
         {
         }
 
-        // InternalSignalDSL.g:1975:7: ( ( ruleOpMultiAssign ) )
-        // InternalSignalDSL.g:1976:8: ( ruleOpMultiAssign )
+        // InternalSignalDSL.g:2006:7: ( ( ruleOpMultiAssign ) )
+        // InternalSignalDSL.g:2007:8: ( ruleOpMultiAssign )
         {
-        // InternalSignalDSL.g:1976:8: ( ruleOpMultiAssign )
-        // InternalSignalDSL.g:1977:9: ruleOpMultiAssign
+        // InternalSignalDSL.g:2007:8: ( ruleOpMultiAssign )
+        // InternalSignalDSL.g:2008:9: ruleOpMultiAssign
         {
         pushFollow(FOLLOW_2);
         ruleOpMultiAssign();
@@ -22728,22 +22844,22 @@
 
     // $ANTLR start synpred8_InternalSignalDSL
     public final void synpred8_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2166:5: ( ( () ( ( ruleOpOr ) ) ) )
-        // InternalSignalDSL.g:2166:6: ( () ( ( ruleOpOr ) ) )
+        // InternalSignalDSL.g:2197:5: ( ( () ( ( ruleOpOr ) ) ) )
+        // InternalSignalDSL.g:2197:6: ( () ( ( ruleOpOr ) ) )
         {
-        // InternalSignalDSL.g:2166:6: ( () ( ( ruleOpOr ) ) )
-        // InternalSignalDSL.g:2167:6: () ( ( ruleOpOr ) )
+        // InternalSignalDSL.g:2197:6: ( () ( ( ruleOpOr ) ) )
+        // InternalSignalDSL.g:2198:6: () ( ( ruleOpOr ) )
         {
-        // InternalSignalDSL.g:2167:6: ()
-        // InternalSignalDSL.g:2168:6: 
+        // InternalSignalDSL.g:2198:6: ()
+        // InternalSignalDSL.g:2199:6: 
         {
         }
 
-        // InternalSignalDSL.g:2169:6: ( ( ruleOpOr ) )
-        // InternalSignalDSL.g:2170:7: ( ruleOpOr )
+        // InternalSignalDSL.g:2200:6: ( ( ruleOpOr ) )
+        // InternalSignalDSL.g:2201:7: ( ruleOpOr )
         {
-        // InternalSignalDSL.g:2170:7: ( ruleOpOr )
-        // InternalSignalDSL.g:2171:8: ruleOpOr
+        // InternalSignalDSL.g:2201:7: ( ruleOpOr )
+        // InternalSignalDSL.g:2202:8: ruleOpOr
         {
         pushFollow(FOLLOW_2);
         ruleOpOr();
@@ -22766,22 +22882,22 @@
 
     // $ANTLR start synpred9_InternalSignalDSL
     public final void synpred9_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2273:5: ( ( () ( ( ruleOpAnd ) ) ) )
-        // InternalSignalDSL.g:2273:6: ( () ( ( ruleOpAnd ) ) )
+        // InternalSignalDSL.g:2304:5: ( ( () ( ( ruleOpAnd ) ) ) )
+        // InternalSignalDSL.g:2304:6: ( () ( ( ruleOpAnd ) ) )
         {
-        // InternalSignalDSL.g:2273:6: ( () ( ( ruleOpAnd ) ) )
-        // InternalSignalDSL.g:2274:6: () ( ( ruleOpAnd ) )
+        // InternalSignalDSL.g:2304:6: ( () ( ( ruleOpAnd ) ) )
+        // InternalSignalDSL.g:2305:6: () ( ( ruleOpAnd ) )
         {
-        // InternalSignalDSL.g:2274:6: ()
-        // InternalSignalDSL.g:2275:6: 
+        // InternalSignalDSL.g:2305:6: ()
+        // InternalSignalDSL.g:2306:6: 
         {
         }
 
-        // InternalSignalDSL.g:2276:6: ( ( ruleOpAnd ) )
-        // InternalSignalDSL.g:2277:7: ( ruleOpAnd )
+        // InternalSignalDSL.g:2307:6: ( ( ruleOpAnd ) )
+        // InternalSignalDSL.g:2308:7: ( ruleOpAnd )
         {
-        // InternalSignalDSL.g:2277:7: ( ruleOpAnd )
-        // InternalSignalDSL.g:2278:8: ruleOpAnd
+        // InternalSignalDSL.g:2308:7: ( ruleOpAnd )
+        // InternalSignalDSL.g:2309:8: ruleOpAnd
         {
         pushFollow(FOLLOW_2);
         ruleOpAnd();
@@ -22804,22 +22920,22 @@
 
     // $ANTLR start synpred10_InternalSignalDSL
     public final void synpred10_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2380:5: ( ( () ( ( ruleOpEquality ) ) ) )
-        // InternalSignalDSL.g:2380:6: ( () ( ( ruleOpEquality ) ) )
+        // InternalSignalDSL.g:2411:5: ( ( () ( ( ruleOpEquality ) ) ) )
+        // InternalSignalDSL.g:2411:6: ( () ( ( ruleOpEquality ) ) )
         {
-        // InternalSignalDSL.g:2380:6: ( () ( ( ruleOpEquality ) ) )
-        // InternalSignalDSL.g:2381:6: () ( ( ruleOpEquality ) )
+        // InternalSignalDSL.g:2411:6: ( () ( ( ruleOpEquality ) ) )
+        // InternalSignalDSL.g:2412:6: () ( ( ruleOpEquality ) )
         {
-        // InternalSignalDSL.g:2381:6: ()
-        // InternalSignalDSL.g:2382:6: 
+        // InternalSignalDSL.g:2412:6: ()
+        // InternalSignalDSL.g:2413:6: 
         {
         }
 
-        // InternalSignalDSL.g:2383:6: ( ( ruleOpEquality ) )
-        // InternalSignalDSL.g:2384:7: ( ruleOpEquality )
+        // InternalSignalDSL.g:2414:6: ( ( ruleOpEquality ) )
+        // InternalSignalDSL.g:2415:7: ( ruleOpEquality )
         {
-        // InternalSignalDSL.g:2384:7: ( ruleOpEquality )
-        // InternalSignalDSL.g:2385:8: ruleOpEquality
+        // InternalSignalDSL.g:2415:7: ( ruleOpEquality )
+        // InternalSignalDSL.g:2416:8: ruleOpEquality
         {
         pushFollow(FOLLOW_2);
         ruleOpEquality();
@@ -22842,18 +22958,18 @@
 
     // $ANTLR start synpred11_InternalSignalDSL
     public final void synpred11_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2508:6: ( ( () 'instanceof' ) )
-        // InternalSignalDSL.g:2508:7: ( () 'instanceof' )
+        // InternalSignalDSL.g:2539:6: ( ( () 'instanceof' ) )
+        // InternalSignalDSL.g:2539:7: ( () 'instanceof' )
         {
-        // InternalSignalDSL.g:2508:7: ( () 'instanceof' )
-        // InternalSignalDSL.g:2509:7: () 'instanceof'
+        // InternalSignalDSL.g:2539:7: ( () 'instanceof' )
+        // InternalSignalDSL.g:2540:7: () 'instanceof'
         {
-        // InternalSignalDSL.g:2509:7: ()
-        // InternalSignalDSL.g:2510:7: 
+        // InternalSignalDSL.g:2540:7: ()
+        // InternalSignalDSL.g:2541:7: 
         {
         }
 
-        match(input,57,FOLLOW_2); if (state.failed) return ;
+        match(input,61,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22864,22 +22980,22 @@
 
     // $ANTLR start synpred12_InternalSignalDSL
     public final void synpred12_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2551:6: ( ( () ( ( ruleOpCompare ) ) ) )
-        // InternalSignalDSL.g:2551:7: ( () ( ( ruleOpCompare ) ) )
+        // InternalSignalDSL.g:2582:6: ( ( () ( ( ruleOpCompare ) ) ) )
+        // InternalSignalDSL.g:2582:7: ( () ( ( ruleOpCompare ) ) )
         {
-        // InternalSignalDSL.g:2551:7: ( () ( ( ruleOpCompare ) ) )
-        // InternalSignalDSL.g:2552:7: () ( ( ruleOpCompare ) )
+        // InternalSignalDSL.g:2582:7: ( () ( ( ruleOpCompare ) ) )
+        // InternalSignalDSL.g:2583:7: () ( ( ruleOpCompare ) )
         {
-        // InternalSignalDSL.g:2552:7: ()
-        // InternalSignalDSL.g:2553:7: 
+        // InternalSignalDSL.g:2583:7: ()
+        // InternalSignalDSL.g:2584:7: 
         {
         }
 
-        // InternalSignalDSL.g:2554:7: ( ( ruleOpCompare ) )
-        // InternalSignalDSL.g:2555:8: ( ruleOpCompare )
+        // InternalSignalDSL.g:2585:7: ( ( ruleOpCompare ) )
+        // InternalSignalDSL.g:2586:8: ( ruleOpCompare )
         {
-        // InternalSignalDSL.g:2555:8: ( ruleOpCompare )
-        // InternalSignalDSL.g:2556:9: ruleOpCompare
+        // InternalSignalDSL.g:2586:8: ( ruleOpCompare )
+        // InternalSignalDSL.g:2587:9: ruleOpCompare
         {
         pushFollow(FOLLOW_2);
         ruleOpCompare();
@@ -22902,22 +23018,22 @@
 
     // $ANTLR start synpred13_InternalSignalDSL
     public final void synpred13_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2686:5: ( ( () ( ( ruleOpOther ) ) ) )
-        // InternalSignalDSL.g:2686:6: ( () ( ( ruleOpOther ) ) )
+        // InternalSignalDSL.g:2717:5: ( ( () ( ( ruleOpOther ) ) ) )
+        // InternalSignalDSL.g:2717:6: ( () ( ( ruleOpOther ) ) )
         {
-        // InternalSignalDSL.g:2686:6: ( () ( ( ruleOpOther ) ) )
-        // InternalSignalDSL.g:2687:6: () ( ( ruleOpOther ) )
+        // InternalSignalDSL.g:2717:6: ( () ( ( ruleOpOther ) ) )
+        // InternalSignalDSL.g:2718:6: () ( ( ruleOpOther ) )
         {
-        // InternalSignalDSL.g:2687:6: ()
-        // InternalSignalDSL.g:2688:6: 
+        // InternalSignalDSL.g:2718:6: ()
+        // InternalSignalDSL.g:2719:6: 
         {
         }
 
-        // InternalSignalDSL.g:2689:6: ( ( ruleOpOther ) )
-        // InternalSignalDSL.g:2690:7: ( ruleOpOther )
+        // InternalSignalDSL.g:2720:6: ( ( ruleOpOther ) )
+        // InternalSignalDSL.g:2721:7: ( ruleOpOther )
         {
-        // InternalSignalDSL.g:2690:7: ( ruleOpOther )
-        // InternalSignalDSL.g:2691:8: ruleOpOther
+        // InternalSignalDSL.g:2721:7: ( ruleOpOther )
+        // InternalSignalDSL.g:2722:8: ruleOpOther
         {
         pushFollow(FOLLOW_2);
         ruleOpOther();
@@ -22940,14 +23056,14 @@
 
     // $ANTLR start synpred14_InternalSignalDSL
     public final void synpred14_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2806:6: ( ( '>' '>' ) )
-        // InternalSignalDSL.g:2806:7: ( '>' '>' )
+        // InternalSignalDSL.g:2837:6: ( ( '>' '>' ) )
+        // InternalSignalDSL.g:2837:7: ( '>' '>' )
         {
-        // InternalSignalDSL.g:2806:7: ( '>' '>' )
-        // InternalSignalDSL.g:2807:7: '>' '>'
+        // InternalSignalDSL.g:2837:7: ( '>' '>' )
+        // InternalSignalDSL.g:2838:7: '>' '>'
         {
-        match(input,49,FOLLOW_47); if (state.failed) return ;
-        match(input,49,FOLLOW_2); if (state.failed) return ;
+        match(input,53,FOLLOW_47); if (state.failed) return ;
+        match(input,53,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22958,14 +23074,14 @@
 
     // $ANTLR start synpred15_InternalSignalDSL
     public final void synpred15_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2841:6: ( ( '<' '<' ) )
-        // InternalSignalDSL.g:2841:7: ( '<' '<' )
+        // InternalSignalDSL.g:2872:6: ( ( '<' '<' ) )
+        // InternalSignalDSL.g:2872:7: ( '<' '<' )
         {
-        // InternalSignalDSL.g:2841:7: ( '<' '<' )
-        // InternalSignalDSL.g:2842:7: '<' '<'
+        // InternalSignalDSL.g:2872:7: ( '<' '<' )
+        // InternalSignalDSL.g:2873:7: '<' '<'
         {
-        match(input,48,FOLLOW_37); if (state.failed) return ;
-        match(input,48,FOLLOW_2); if (state.failed) return ;
+        match(input,52,FOLLOW_37); if (state.failed) return ;
+        match(input,52,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -22976,22 +23092,22 @@
 
     // $ANTLR start synpred16_InternalSignalDSL
     public final void synpred16_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:2914:5: ( ( () ( ( ruleOpAdd ) ) ) )
-        // InternalSignalDSL.g:2914:6: ( () ( ( ruleOpAdd ) ) )
+        // InternalSignalDSL.g:2945:5: ( ( () ( ( ruleOpAdd ) ) ) )
+        // InternalSignalDSL.g:2945:6: ( () ( ( ruleOpAdd ) ) )
         {
-        // InternalSignalDSL.g:2914:6: ( () ( ( ruleOpAdd ) ) )
-        // InternalSignalDSL.g:2915:6: () ( ( ruleOpAdd ) )
+        // InternalSignalDSL.g:2945:6: ( () ( ( ruleOpAdd ) ) )
+        // InternalSignalDSL.g:2946:6: () ( ( ruleOpAdd ) )
         {
-        // InternalSignalDSL.g:2915:6: ()
-        // InternalSignalDSL.g:2916:6: 
+        // InternalSignalDSL.g:2946:6: ()
+        // InternalSignalDSL.g:2947:6: 
         {
         }
 
-        // InternalSignalDSL.g:2917:6: ( ( ruleOpAdd ) )
-        // InternalSignalDSL.g:2918:7: ( ruleOpAdd )
+        // InternalSignalDSL.g:2948:6: ( ( ruleOpAdd ) )
+        // InternalSignalDSL.g:2949:7: ( ruleOpAdd )
         {
-        // InternalSignalDSL.g:2918:7: ( ruleOpAdd )
-        // InternalSignalDSL.g:2919:8: ruleOpAdd
+        // InternalSignalDSL.g:2949:7: ( ruleOpAdd )
+        // InternalSignalDSL.g:2950:8: ruleOpAdd
         {
         pushFollow(FOLLOW_2);
         ruleOpAdd();
@@ -23014,22 +23130,22 @@
 
     // $ANTLR start synpred17_InternalSignalDSL
     public final void synpred17_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3029:5: ( ( () ( ( ruleOpMulti ) ) ) )
-        // InternalSignalDSL.g:3029:6: ( () ( ( ruleOpMulti ) ) )
+        // InternalSignalDSL.g:3060:5: ( ( () ( ( ruleOpMulti ) ) ) )
+        // InternalSignalDSL.g:3060:6: ( () ( ( ruleOpMulti ) ) )
         {
-        // InternalSignalDSL.g:3029:6: ( () ( ( ruleOpMulti ) ) )
-        // InternalSignalDSL.g:3030:6: () ( ( ruleOpMulti ) )
+        // InternalSignalDSL.g:3060:6: ( () ( ( ruleOpMulti ) ) )
+        // InternalSignalDSL.g:3061:6: () ( ( ruleOpMulti ) )
         {
-        // InternalSignalDSL.g:3030:6: ()
-        // InternalSignalDSL.g:3031:6: 
+        // InternalSignalDSL.g:3061:6: ()
+        // InternalSignalDSL.g:3062:6: 
         {
         }
 
-        // InternalSignalDSL.g:3032:6: ( ( ruleOpMulti ) )
-        // InternalSignalDSL.g:3033:7: ( ruleOpMulti )
+        // InternalSignalDSL.g:3063:6: ( ( ruleOpMulti ) )
+        // InternalSignalDSL.g:3064:7: ( ruleOpMulti )
         {
-        // InternalSignalDSL.g:3033:7: ( ruleOpMulti )
-        // InternalSignalDSL.g:3034:8: ruleOpMulti
+        // InternalSignalDSL.g:3064:7: ( ruleOpMulti )
+        // InternalSignalDSL.g:3065:8: ruleOpMulti
         {
         pushFollow(FOLLOW_2);
         ruleOpMulti();
@@ -23052,18 +23168,18 @@
 
     // $ANTLR start synpred18_InternalSignalDSL
     public final void synpred18_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3264:5: ( ( () 'as' ) )
-        // InternalSignalDSL.g:3264:6: ( () 'as' )
+        // InternalSignalDSL.g:3295:5: ( ( () 'as' ) )
+        // InternalSignalDSL.g:3295:6: ( () 'as' )
         {
-        // InternalSignalDSL.g:3264:6: ( () 'as' )
-        // InternalSignalDSL.g:3265:6: () 'as'
+        // InternalSignalDSL.g:3295:6: ( () 'as' )
+        // InternalSignalDSL.g:3296:6: () 'as'
         {
-        // InternalSignalDSL.g:3265:6: ()
-        // InternalSignalDSL.g:3266:6: 
+        // InternalSignalDSL.g:3296:6: ()
+        // InternalSignalDSL.g:3297:6: 
         {
         }
 
-        match(input,70,FOLLOW_2); if (state.failed) return ;
+        match(input,74,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23074,22 +23190,22 @@
 
     // $ANTLR start synpred19_InternalSignalDSL
     public final void synpred19_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3332:4: ( ( () ( ( ruleOpPostfix ) ) ) )
-        // InternalSignalDSL.g:3332:5: ( () ( ( ruleOpPostfix ) ) )
+        // InternalSignalDSL.g:3363:4: ( ( () ( ( ruleOpPostfix ) ) ) )
+        // InternalSignalDSL.g:3363:5: ( () ( ( ruleOpPostfix ) ) )
         {
-        // InternalSignalDSL.g:3332:5: ( () ( ( ruleOpPostfix ) ) )
-        // InternalSignalDSL.g:3333:5: () ( ( ruleOpPostfix ) )
+        // InternalSignalDSL.g:3363:5: ( () ( ( ruleOpPostfix ) ) )
+        // InternalSignalDSL.g:3364:5: () ( ( ruleOpPostfix ) )
         {
-        // InternalSignalDSL.g:3333:5: ()
-        // InternalSignalDSL.g:3334:5: 
+        // InternalSignalDSL.g:3364:5: ()
+        // InternalSignalDSL.g:3365:5: 
         {
         }
 
-        // InternalSignalDSL.g:3335:5: ( ( ruleOpPostfix ) )
-        // InternalSignalDSL.g:3336:6: ( ruleOpPostfix )
+        // InternalSignalDSL.g:3366:5: ( ( ruleOpPostfix ) )
+        // InternalSignalDSL.g:3367:6: ( ruleOpPostfix )
         {
-        // InternalSignalDSL.g:3336:6: ( ruleOpPostfix )
-        // InternalSignalDSL.g:3337:7: ruleOpPostfix
+        // InternalSignalDSL.g:3367:6: ( ruleOpPostfix )
+        // InternalSignalDSL.g:3368:7: ruleOpPostfix
         {
         pushFollow(FOLLOW_2);
         ruleOpPostfix();
@@ -23112,52 +23228,52 @@
 
     // $ANTLR start synpred20_InternalSignalDSL
     public final void synpred20_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3428:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
-        // InternalSignalDSL.g:3428:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+        // InternalSignalDSL.g:3459:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+        // InternalSignalDSL.g:3459:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
         {
-        // InternalSignalDSL.g:3428:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
-        // InternalSignalDSL.g:3429:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+        // InternalSignalDSL.g:3459:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+        // InternalSignalDSL.g:3460:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
         {
-        // InternalSignalDSL.g:3429:7: ()
-        // InternalSignalDSL.g:3430:7: 
+        // InternalSignalDSL.g:3460:7: ()
+        // InternalSignalDSL.g:3461:7: 
         {
         }
 
-        // InternalSignalDSL.g:3431:7: ( '.' | ( ( '::' ) ) )
-        int alt137=2;
-        int LA137_0 = input.LA(1);
+        // InternalSignalDSL.g:3462:7: ( '.' | ( ( '::' ) ) )
+        int alt140=2;
+        int LA140_0 = input.LA(1);
 
-        if ( (LA137_0==73) ) {
-            alt137=1;
+        if ( (LA140_0==77) ) {
+            alt140=1;
         }
-        else if ( (LA137_0==74) ) {
-            alt137=2;
+        else if ( (LA140_0==78) ) {
+            alt140=2;
         }
         else {
             if (state.backtracking>0) {state.failed=true; return ;}
             NoViableAltException nvae =
-                new NoViableAltException("", 137, 0, input);
+                new NoViableAltException("", 140, 0, input);
 
             throw nvae;
         }
-        switch (alt137) {
+        switch (alt140) {
             case 1 :
-                // InternalSignalDSL.g:3432:8: '.'
+                // InternalSignalDSL.g:3463:8: '.'
                 {
-                match(input,73,FOLLOW_54); if (state.failed) return ;
+                match(input,77,FOLLOW_54); if (state.failed) return ;
 
                 }
                 break;
             case 2 :
-                // InternalSignalDSL.g:3434:8: ( ( '::' ) )
+                // InternalSignalDSL.g:3465:8: ( ( '::' ) )
                 {
-                // InternalSignalDSL.g:3434:8: ( ( '::' ) )
-                // InternalSignalDSL.g:3435:9: ( '::' )
+                // InternalSignalDSL.g:3465:8: ( ( '::' ) )
+                // InternalSignalDSL.g:3466:9: ( '::' )
                 {
-                // InternalSignalDSL.g:3435:9: ( '::' )
-                // InternalSignalDSL.g:3436:10: '::'
+                // InternalSignalDSL.g:3466:9: ( '::' )
+                // InternalSignalDSL.g:3467:10: '::'
                 {
-                match(input,74,FOLLOW_54); if (state.failed) return ;
+                match(input,78,FOLLOW_54); if (state.failed) return ;
 
                 }
 
@@ -23170,11 +23286,11 @@
 
         }
 
-        // InternalSignalDSL.g:3440:7: ( ( ruleFeatureCallID ) )
-        // InternalSignalDSL.g:3441:8: ( ruleFeatureCallID )
+        // InternalSignalDSL.g:3471:7: ( ( ruleFeatureCallID ) )
+        // InternalSignalDSL.g:3472:8: ( ruleFeatureCallID )
         {
-        // InternalSignalDSL.g:3441:8: ( ruleFeatureCallID )
-        // InternalSignalDSL.g:3442:9: ruleFeatureCallID
+        // InternalSignalDSL.g:3472:8: ( ruleFeatureCallID )
+        // InternalSignalDSL.g:3473:9: ruleFeatureCallID
         {
         pushFollow(FOLLOW_30);
         ruleFeatureCallID();
@@ -23202,61 +23318,61 @@
 
     // $ANTLR start synpred21_InternalSignalDSL
     public final void synpred21_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3525:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
-        // InternalSignalDSL.g:3525:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+        // InternalSignalDSL.g:3556:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
+        // InternalSignalDSL.g:3556:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
         {
-        // InternalSignalDSL.g:3525:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
-        // InternalSignalDSL.g:3526:7: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+        // InternalSignalDSL.g:3556:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+        // InternalSignalDSL.g:3557:7: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
         {
-        // InternalSignalDSL.g:3526:7: ()
-        // InternalSignalDSL.g:3527:7: 
+        // InternalSignalDSL.g:3557:7: ()
+        // InternalSignalDSL.g:3558:7: 
         {
         }
 
-        // InternalSignalDSL.g:3528:7: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
-        int alt138=3;
+        // InternalSignalDSL.g:3559:7: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+        int alt141=3;
         switch ( input.LA(1) ) {
-        case 73:
+        case 77:
             {
-            alt138=1;
+            alt141=1;
             }
             break;
-        case 75:
+        case 79:
             {
-            alt138=2;
+            alt141=2;
             }
             break;
-        case 74:
+        case 78:
             {
-            alt138=3;
+            alt141=3;
             }
             break;
         default:
             if (state.backtracking>0) {state.failed=true; return ;}
             NoViableAltException nvae =
-                new NoViableAltException("", 138, 0, input);
+                new NoViableAltException("", 141, 0, input);
 
             throw nvae;
         }
 
-        switch (alt138) {
+        switch (alt141) {
             case 1 :
-                // InternalSignalDSL.g:3529:8: '.'
+                // InternalSignalDSL.g:3560:8: '.'
                 {
-                match(input,73,FOLLOW_2); if (state.failed) return ;
+                match(input,77,FOLLOW_2); if (state.failed) return ;
 
                 }
                 break;
             case 2 :
-                // InternalSignalDSL.g:3531:8: ( ( '?.' ) )
+                // InternalSignalDSL.g:3562:8: ( ( '?.' ) )
                 {
-                // InternalSignalDSL.g:3531:8: ( ( '?.' ) )
-                // InternalSignalDSL.g:3532:9: ( '?.' )
+                // InternalSignalDSL.g:3562:8: ( ( '?.' ) )
+                // InternalSignalDSL.g:3563:9: ( '?.' )
                 {
-                // InternalSignalDSL.g:3532:9: ( '?.' )
-                // InternalSignalDSL.g:3533:10: '?.'
+                // InternalSignalDSL.g:3563:9: ( '?.' )
+                // InternalSignalDSL.g:3564:10: '?.'
                 {
-                match(input,75,FOLLOW_2); if (state.failed) return ;
+                match(input,79,FOLLOW_2); if (state.failed) return ;
 
                 }
 
@@ -23267,15 +23383,15 @@
                 }
                 break;
             case 3 :
-                // InternalSignalDSL.g:3537:8: ( ( '::' ) )
+                // InternalSignalDSL.g:3568:8: ( ( '::' ) )
                 {
-                // InternalSignalDSL.g:3537:8: ( ( '::' ) )
-                // InternalSignalDSL.g:3538:9: ( '::' )
+                // InternalSignalDSL.g:3568:8: ( ( '::' ) )
+                // InternalSignalDSL.g:3569:9: ( '::' )
                 {
-                // InternalSignalDSL.g:3538:9: ( '::' )
-                // InternalSignalDSL.g:3539:10: '::'
+                // InternalSignalDSL.g:3569:9: ( '::' )
+                // InternalSignalDSL.g:3570:10: '::'
                 {
-                match(input,74,FOLLOW_2); if (state.failed) return ;
+                match(input,78,FOLLOW_2); if (state.failed) return ;
 
                 }
 
@@ -23298,13 +23414,13 @@
 
     // $ANTLR start synpred22_InternalSignalDSL
     public final void synpred22_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3663:7: ( ( '(' ) )
-        // InternalSignalDSL.g:3663:8: ( '(' )
+        // InternalSignalDSL.g:3694:7: ( ( '(' ) )
+        // InternalSignalDSL.g:3694:8: ( '(' )
         {
-        // InternalSignalDSL.g:3663:8: ( '(' )
-        // InternalSignalDSL.g:3664:8: '('
+        // InternalSignalDSL.g:3694:8: ( '(' )
+        // InternalSignalDSL.g:3695:8: '('
         {
-        match(input,36,FOLLOW_2); if (state.failed) return ;
+        match(input,40,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23315,33 +23431,33 @@
 
     // $ANTLR start synpred23_InternalSignalDSL
     public final void synpred23_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3682:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalSignalDSL.g:3682:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:3713:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalSignalDSL.g:3713:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalSignalDSL.g:3682:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalSignalDSL.g:3683:9: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalSignalDSL.g:3713:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:3714:9: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalSignalDSL.g:3683:9: ()
-        // InternalSignalDSL.g:3684:9: 
+        // InternalSignalDSL.g:3714:9: ()
+        // InternalSignalDSL.g:3715:9: 
         {
         }
 
-        // InternalSignalDSL.g:3685:9: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt140=2;
-        int LA140_0 = input.LA(1);
+        // InternalSignalDSL.g:3716:9: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt143=2;
+        int LA143_0 = input.LA(1);
 
-        if ( (LA140_0==RULE_ID||LA140_0==36||LA140_0==61) ) {
-            alt140=1;
+        if ( (LA143_0==RULE_ID||LA143_0==40||LA143_0==65) ) {
+            alt143=1;
         }
-        switch (alt140) {
+        switch (alt143) {
             case 1 :
-                // InternalSignalDSL.g:3686:10: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalSignalDSL.g:3717:10: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalSignalDSL.g:3686:10: ( ( ruleJvmFormalParameter ) )
-                // InternalSignalDSL.g:3687:11: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:3717:10: ( ( ruleJvmFormalParameter ) )
+                // InternalSignalDSL.g:3718:11: ( ruleJvmFormalParameter )
                 {
-                // InternalSignalDSL.g:3687:11: ( ruleJvmFormalParameter )
-                // InternalSignalDSL.g:3688:12: ruleJvmFormalParameter
+                // InternalSignalDSL.g:3718:11: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:3719:12: ruleJvmFormalParameter
                 {
                 pushFollow(FOLLOW_64);
                 ruleJvmFormalParameter();
@@ -23354,27 +23470,27 @@
 
                 }
 
-                // InternalSignalDSL.g:3691:10: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop139:
+                // InternalSignalDSL.g:3722:10: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop142:
                 do {
-                    int alt139=2;
-                    int LA139_0 = input.LA(1);
+                    int alt142=2;
+                    int LA142_0 = input.LA(1);
 
-                    if ( (LA139_0==37) ) {
-                        alt139=1;
+                    if ( (LA142_0==41) ) {
+                        alt142=1;
                     }
 
 
-                    switch (alt139) {
+                    switch (alt142) {
                 	case 1 :
-                	    // InternalSignalDSL.g:3692:11: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:3723:11: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,37,FOLLOW_44); if (state.failed) return ;
-                	    // InternalSignalDSL.g:3693:11: ( ( ruleJvmFormalParameter ) )
-                	    // InternalSignalDSL.g:3694:12: ( ruleJvmFormalParameter )
+                	    match(input,41,FOLLOW_44); if (state.failed) return ;
+                	    // InternalSignalDSL.g:3724:11: ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:3725:12: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalSignalDSL.g:3694:12: ( ruleJvmFormalParameter )
-                	    // InternalSignalDSL.g:3695:13: ruleJvmFormalParameter
+                	    // InternalSignalDSL.g:3725:12: ( ruleJvmFormalParameter )
+                	    // InternalSignalDSL.g:3726:13: ruleJvmFormalParameter
                 	    {
                 	    pushFollow(FOLLOW_64);
                 	    ruleJvmFormalParameter();
@@ -23392,7 +23508,7 @@
                 	    break;
 
                 	default :
-                	    break loop139;
+                	    break loop142;
                     }
                 } while (true);
 
@@ -23402,13 +23518,13 @@
 
         }
 
-        // InternalSignalDSL.g:3700:9: ( ( '|' ) )
-        // InternalSignalDSL.g:3701:10: ( '|' )
+        // InternalSignalDSL.g:3731:9: ( ( '|' ) )
+        // InternalSignalDSL.g:3732:10: ( '|' )
         {
-        // InternalSignalDSL.g:3701:10: ( '|' )
-        // InternalSignalDSL.g:3702:11: '|'
+        // InternalSignalDSL.g:3732:10: ( '|' )
+        // InternalSignalDSL.g:3733:11: '|'
         {
-        match(input,76,FOLLOW_2); if (state.failed) return ;
+        match(input,80,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23425,18 +23541,18 @@
 
     // $ANTLR start synpred24_InternalSignalDSL
     public final void synpred24_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3779:6: ( ( () '[' ) )
-        // InternalSignalDSL.g:3779:7: ( () '[' )
+        // InternalSignalDSL.g:3810:6: ( ( () '[' ) )
+        // InternalSignalDSL.g:3810:7: ( () '[' )
         {
-        // InternalSignalDSL.g:3779:7: ( () '[' )
-        // InternalSignalDSL.g:3780:7: () '['
+        // InternalSignalDSL.g:3810:7: ( () '[' )
+        // InternalSignalDSL.g:3811:7: () '['
         {
-        // InternalSignalDSL.g:3780:7: ()
-        // InternalSignalDSL.g:3781:7: 
+        // InternalSignalDSL.g:3811:7: ()
+        // InternalSignalDSL.g:3812:7: 
         {
         }
 
-        match(input,41,FOLLOW_2); if (state.failed) return ;
+        match(input,45,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23447,19 +23563,19 @@
 
     // $ANTLR start synpred25_InternalSignalDSL
     public final void synpred25_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3852:4: ( ( () 'synchronized' '(' ) )
-        // InternalSignalDSL.g:3852:5: ( () 'synchronized' '(' )
+        // InternalSignalDSL.g:3883:4: ( ( () 'synchronized' '(' ) )
+        // InternalSignalDSL.g:3883:5: ( () 'synchronized' '(' )
         {
-        // InternalSignalDSL.g:3852:5: ( () 'synchronized' '(' )
-        // InternalSignalDSL.g:3853:5: () 'synchronized' '('
+        // InternalSignalDSL.g:3883:5: ( () 'synchronized' '(' )
+        // InternalSignalDSL.g:3884:5: () 'synchronized' '('
         {
-        // InternalSignalDSL.g:3853:5: ()
-        // InternalSignalDSL.g:3854:5: 
+        // InternalSignalDSL.g:3884:5: ()
+        // InternalSignalDSL.g:3885:5: 
         {
         }
 
-        match(input,98,FOLLOW_69); if (state.failed) return ;
-        match(input,36,FOLLOW_2); if (state.failed) return ;
+        match(input,102,FOLLOW_69); if (state.failed) return ;
+        match(input,40,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23470,26 +23586,26 @@
 
     // $ANTLR start synpred26_InternalSignalDSL
     public final void synpred26_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:3897:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalSignalDSL.g:3897:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalSignalDSL.g:3928:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalSignalDSL.g:3928:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalSignalDSL.g:3897:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalSignalDSL.g:3898:5: () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalSignalDSL.g:3928:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalSignalDSL.g:3929:5: () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':'
         {
-        // InternalSignalDSL.g:3898:5: ()
-        // InternalSignalDSL.g:3899:5: 
+        // InternalSignalDSL.g:3929:5: ()
+        // InternalSignalDSL.g:3930:5: 
         {
         }
 
-        match(input,82,FOLLOW_69); if (state.failed) return ;
-        match(input,36,FOLLOW_44); if (state.failed) return ;
-        // InternalSignalDSL.g:3902:5: ( ( ruleJvmFormalParameter ) )
-        // InternalSignalDSL.g:3903:6: ( ruleJvmFormalParameter )
+        match(input,86,FOLLOW_69); if (state.failed) return ;
+        match(input,40,FOLLOW_44); if (state.failed) return ;
+        // InternalSignalDSL.g:3933:5: ( ( ruleJvmFormalParameter ) )
+        // InternalSignalDSL.g:3934:6: ( ruleJvmFormalParameter )
         {
-        // InternalSignalDSL.g:3903:6: ( ruleJvmFormalParameter )
-        // InternalSignalDSL.g:3904:7: ruleJvmFormalParameter
+        // InternalSignalDSL.g:3934:6: ( ruleJvmFormalParameter )
+        // InternalSignalDSL.g:3935:7: ruleJvmFormalParameter
         {
-        pushFollow(FOLLOW_18);
+        pushFollow(FOLLOW_17);
         ruleJvmFormalParameter();
 
         state._fsp--;
@@ -23500,7 +23616,7 @@
 
         }
 
-        match(input,24,FOLLOW_2); if (state.failed) return ;
+        match(input,25,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23511,18 +23627,18 @@
 
     // $ANTLR start synpred27_InternalSignalDSL
     public final void synpred27_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:4011:4: ( ( () '[' ) )
-        // InternalSignalDSL.g:4011:5: ( () '[' )
+        // InternalSignalDSL.g:4042:4: ( ( () '[' ) )
+        // InternalSignalDSL.g:4042:5: ( () '[' )
         {
-        // InternalSignalDSL.g:4011:5: ( () '[' )
-        // InternalSignalDSL.g:4012:5: () '['
+        // InternalSignalDSL.g:4042:5: ( () '[' )
+        // InternalSignalDSL.g:4043:5: () '['
         {
-        // InternalSignalDSL.g:4012:5: ()
-        // InternalSignalDSL.g:4013:5: 
+        // InternalSignalDSL.g:4043:5: ()
+        // InternalSignalDSL.g:4044:5: 
         {
         }
 
-        match(input,41,FOLLOW_2); if (state.failed) return ;
+        match(input,45,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23533,28 +23649,28 @@
 
     // $ANTLR start synpred29_InternalSignalDSL
     public final void synpred29_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:4316:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalSignalDSL.g:4316:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:4347:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalSignalDSL.g:4347:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalSignalDSL.g:4316:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalSignalDSL.g:4317:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalSignalDSL.g:4347:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:4348:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalSignalDSL.g:4317:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt142=2;
-        int LA142_0 = input.LA(1);
+        // InternalSignalDSL.g:4348:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt145=2;
+        int LA145_0 = input.LA(1);
 
-        if ( (LA142_0==RULE_ID||LA142_0==36||LA142_0==61) ) {
-            alt142=1;
+        if ( (LA145_0==RULE_ID||LA145_0==40||LA145_0==65) ) {
+            alt145=1;
         }
-        switch (alt142) {
+        switch (alt145) {
             case 1 :
-                // InternalSignalDSL.g:4318:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalSignalDSL.g:4349:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalSignalDSL.g:4318:6: ( ( ruleJvmFormalParameter ) )
-                // InternalSignalDSL.g:4319:7: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:4349:6: ( ( ruleJvmFormalParameter ) )
+                // InternalSignalDSL.g:4350:7: ( ruleJvmFormalParameter )
                 {
-                // InternalSignalDSL.g:4319:7: ( ruleJvmFormalParameter )
-                // InternalSignalDSL.g:4320:8: ruleJvmFormalParameter
+                // InternalSignalDSL.g:4350:7: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:4351:8: ruleJvmFormalParameter
                 {
                 pushFollow(FOLLOW_64);
                 ruleJvmFormalParameter();
@@ -23567,27 +23683,27 @@
 
                 }
 
-                // InternalSignalDSL.g:4323:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop141:
+                // InternalSignalDSL.g:4354:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop144:
                 do {
-                    int alt141=2;
-                    int LA141_0 = input.LA(1);
+                    int alt144=2;
+                    int LA144_0 = input.LA(1);
 
-                    if ( (LA141_0==37) ) {
-                        alt141=1;
+                    if ( (LA144_0==41) ) {
+                        alt144=1;
                     }
 
 
-                    switch (alt141) {
+                    switch (alt144) {
                 	case 1 :
-                	    // InternalSignalDSL.g:4324:7: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:4355:7: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,37,FOLLOW_44); if (state.failed) return ;
-                	    // InternalSignalDSL.g:4325:7: ( ( ruleJvmFormalParameter ) )
-                	    // InternalSignalDSL.g:4326:8: ( ruleJvmFormalParameter )
+                	    match(input,41,FOLLOW_44); if (state.failed) return ;
+                	    // InternalSignalDSL.g:4356:7: ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:4357:8: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalSignalDSL.g:4326:8: ( ruleJvmFormalParameter )
-                	    // InternalSignalDSL.g:4327:9: ruleJvmFormalParameter
+                	    // InternalSignalDSL.g:4357:8: ( ruleJvmFormalParameter )
+                	    // InternalSignalDSL.g:4358:9: ruleJvmFormalParameter
                 	    {
                 	    pushFollow(FOLLOW_64);
                 	    ruleJvmFormalParameter();
@@ -23605,7 +23721,7 @@
                 	    break;
 
                 	default :
-                	    break loop141;
+                	    break loop144;
                     }
                 } while (true);
 
@@ -23615,13 +23731,13 @@
 
         }
 
-        // InternalSignalDSL.g:4332:5: ( ( '|' ) )
-        // InternalSignalDSL.g:4333:6: ( '|' )
+        // InternalSignalDSL.g:4363:5: ( ( '|' ) )
+        // InternalSignalDSL.g:4364:6: ( '|' )
         {
-        // InternalSignalDSL.g:4333:6: ( '|' )
-        // InternalSignalDSL.g:4334:7: '|'
+        // InternalSignalDSL.g:4364:6: ( '|' )
+        // InternalSignalDSL.g:4365:7: '|'
         {
-        match(input,76,FOLLOW_2); if (state.failed) return ;
+        match(input,80,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23638,10 +23754,10 @@
 
     // $ANTLR start synpred31_InternalSignalDSL
     public final void synpred31_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:4725:5: ( 'else' )
-        // InternalSignalDSL.g:4725:6: 'else'
+        // InternalSignalDSL.g:4756:5: ( 'else' )
+        // InternalSignalDSL.g:4756:6: 'else'
         {
-        match(input,78,FOLLOW_2); if (state.failed) return ;
+        match(input,82,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -23649,20 +23765,20 @@
 
     // $ANTLR start synpred32_InternalSignalDSL
     public final void synpred32_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:4784:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalSignalDSL.g:4784:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalSignalDSL.g:4815:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalSignalDSL.g:4815:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalSignalDSL.g:4784:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalSignalDSL.g:4785:7: '(' ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalSignalDSL.g:4815:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalSignalDSL.g:4816:7: '(' ( ( ruleJvmFormalParameter ) ) ':'
         {
-        match(input,36,FOLLOW_44); if (state.failed) return ;
-        // InternalSignalDSL.g:4786:7: ( ( ruleJvmFormalParameter ) )
-        // InternalSignalDSL.g:4787:8: ( ruleJvmFormalParameter )
+        match(input,40,FOLLOW_44); if (state.failed) return ;
+        // InternalSignalDSL.g:4817:7: ( ( ruleJvmFormalParameter ) )
+        // InternalSignalDSL.g:4818:8: ( ruleJvmFormalParameter )
         {
-        // InternalSignalDSL.g:4787:8: ( ruleJvmFormalParameter )
-        // InternalSignalDSL.g:4788:9: ruleJvmFormalParameter
+        // InternalSignalDSL.g:4818:8: ( ruleJvmFormalParameter )
+        // InternalSignalDSL.g:4819:9: ruleJvmFormalParameter
         {
-        pushFollow(FOLLOW_18);
+        pushFollow(FOLLOW_17);
         ruleJvmFormalParameter();
 
         state._fsp--;
@@ -23673,7 +23789,7 @@
 
         }
 
-        match(input,24,FOLLOW_2); if (state.failed) return ;
+        match(input,25,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23684,19 +23800,19 @@
 
     // $ANTLR start synpred33_InternalSignalDSL
     public final void synpred33_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:4851:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalSignalDSL.g:4851:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalSignalDSL.g:4882:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalSignalDSL.g:4882:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalSignalDSL.g:4851:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalSignalDSL.g:4852:7: ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalSignalDSL.g:4882:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalSignalDSL.g:4883:7: ( ( ruleJvmFormalParameter ) ) ':'
         {
-        // InternalSignalDSL.g:4852:7: ( ( ruleJvmFormalParameter ) )
-        // InternalSignalDSL.g:4853:8: ( ruleJvmFormalParameter )
+        // InternalSignalDSL.g:4883:7: ( ( ruleJvmFormalParameter ) )
+        // InternalSignalDSL.g:4884:8: ( ruleJvmFormalParameter )
         {
-        // InternalSignalDSL.g:4853:8: ( ruleJvmFormalParameter )
-        // InternalSignalDSL.g:4854:9: ruleJvmFormalParameter
+        // InternalSignalDSL.g:4884:8: ( ruleJvmFormalParameter )
+        // InternalSignalDSL.g:4885:9: ruleJvmFormalParameter
         {
-        pushFollow(FOLLOW_18);
+        pushFollow(FOLLOW_17);
         ruleJvmFormalParameter();
 
         state._fsp--;
@@ -23707,7 +23823,7 @@
 
         }
 
-        match(input,24,FOLLOW_2); if (state.failed) return ;
+        match(input,25,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23718,17 +23834,17 @@
 
     // $ANTLR start synpred35_InternalSignalDSL
     public final void synpred35_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:5669:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
-        // InternalSignalDSL.g:5669:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+        // InternalSignalDSL.g:5700:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
+        // InternalSignalDSL.g:5700:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
         {
-        // InternalSignalDSL.g:5669:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
-        // InternalSignalDSL.g:5670:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
+        // InternalSignalDSL.g:5700:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+        // InternalSignalDSL.g:5701:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
         {
-        // InternalSignalDSL.g:5670:6: ( ( ruleJvmTypeReference ) )
-        // InternalSignalDSL.g:5671:7: ( ruleJvmTypeReference )
+        // InternalSignalDSL.g:5701:6: ( ( ruleJvmTypeReference ) )
+        // InternalSignalDSL.g:5702:7: ( ruleJvmTypeReference )
         {
-        // InternalSignalDSL.g:5671:7: ( ruleJvmTypeReference )
-        // InternalSignalDSL.g:5672:8: ruleJvmTypeReference
+        // InternalSignalDSL.g:5702:7: ( ruleJvmTypeReference )
+        // InternalSignalDSL.g:5703:8: ruleJvmTypeReference
         {
         pushFollow(FOLLOW_4);
         ruleJvmTypeReference();
@@ -23741,11 +23857,11 @@
 
         }
 
-        // InternalSignalDSL.g:5675:6: ( ( ruleValidID ) )
-        // InternalSignalDSL.g:5676:7: ( ruleValidID )
+        // InternalSignalDSL.g:5706:6: ( ( ruleValidID ) )
+        // InternalSignalDSL.g:5707:7: ( ruleValidID )
         {
-        // InternalSignalDSL.g:5676:7: ( ruleValidID )
-        // InternalSignalDSL.g:5677:8: ruleValidID
+        // InternalSignalDSL.g:5707:7: ( ruleValidID )
+        // InternalSignalDSL.g:5708:8: ruleValidID
         {
         pushFollow(FOLLOW_2);
         ruleValidID();
@@ -23768,13 +23884,13 @@
 
     // $ANTLR start synpred36_InternalSignalDSL
     public final void synpred36_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:5981:5: ( ( '(' ) )
-        // InternalSignalDSL.g:5981:6: ( '(' )
+        // InternalSignalDSL.g:6012:5: ( ( '(' ) )
+        // InternalSignalDSL.g:6012:6: ( '(' )
         {
-        // InternalSignalDSL.g:5981:6: ( '(' )
-        // InternalSignalDSL.g:5982:6: '('
+        // InternalSignalDSL.g:6012:6: ( '(' )
+        // InternalSignalDSL.g:6013:6: '('
         {
-        match(input,36,FOLLOW_2); if (state.failed) return ;
+        match(input,40,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23785,33 +23901,33 @@
 
     // $ANTLR start synpred37_InternalSignalDSL
     public final void synpred37_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6000:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalSignalDSL.g:6000:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:6031:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalSignalDSL.g:6031:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalSignalDSL.g:6000:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalSignalDSL.g:6001:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalSignalDSL.g:6031:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:6032:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalSignalDSL.g:6001:7: ()
-        // InternalSignalDSL.g:6002:7: 
+        // InternalSignalDSL.g:6032:7: ()
+        // InternalSignalDSL.g:6033:7: 
         {
         }
 
-        // InternalSignalDSL.g:6003:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt146=2;
-        int LA146_0 = input.LA(1);
+        // InternalSignalDSL.g:6034:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt149=2;
+        int LA149_0 = input.LA(1);
 
-        if ( (LA146_0==RULE_ID||LA146_0==36||LA146_0==61) ) {
-            alt146=1;
+        if ( (LA149_0==RULE_ID||LA149_0==40||LA149_0==65) ) {
+            alt149=1;
         }
-        switch (alt146) {
+        switch (alt149) {
             case 1 :
-                // InternalSignalDSL.g:6004:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalSignalDSL.g:6035:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalSignalDSL.g:6004:8: ( ( ruleJvmFormalParameter ) )
-                // InternalSignalDSL.g:6005:9: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:6035:8: ( ( ruleJvmFormalParameter ) )
+                // InternalSignalDSL.g:6036:9: ( ruleJvmFormalParameter )
                 {
-                // InternalSignalDSL.g:6005:9: ( ruleJvmFormalParameter )
-                // InternalSignalDSL.g:6006:10: ruleJvmFormalParameter
+                // InternalSignalDSL.g:6036:9: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:6037:10: ruleJvmFormalParameter
                 {
                 pushFollow(FOLLOW_64);
                 ruleJvmFormalParameter();
@@ -23824,27 +23940,27 @@
 
                 }
 
-                // InternalSignalDSL.g:6009:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop145:
+                // InternalSignalDSL.g:6040:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop148:
                 do {
-                    int alt145=2;
-                    int LA145_0 = input.LA(1);
+                    int alt148=2;
+                    int LA148_0 = input.LA(1);
 
-                    if ( (LA145_0==37) ) {
-                        alt145=1;
+                    if ( (LA148_0==41) ) {
+                        alt148=1;
                     }
 
 
-                    switch (alt145) {
+                    switch (alt148) {
                 	case 1 :
-                	    // InternalSignalDSL.g:6010:9: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:6041:9: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,37,FOLLOW_44); if (state.failed) return ;
-                	    // InternalSignalDSL.g:6011:9: ( ( ruleJvmFormalParameter ) )
-                	    // InternalSignalDSL.g:6012:10: ( ruleJvmFormalParameter )
+                	    match(input,41,FOLLOW_44); if (state.failed) return ;
+                	    // InternalSignalDSL.g:6042:9: ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:6043:10: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalSignalDSL.g:6012:10: ( ruleJvmFormalParameter )
-                	    // InternalSignalDSL.g:6013:11: ruleJvmFormalParameter
+                	    // InternalSignalDSL.g:6043:10: ( ruleJvmFormalParameter )
+                	    // InternalSignalDSL.g:6044:11: ruleJvmFormalParameter
                 	    {
                 	    pushFollow(FOLLOW_64);
                 	    ruleJvmFormalParameter();
@@ -23862,7 +23978,7 @@
                 	    break;
 
                 	default :
-                	    break loop145;
+                	    break loop148;
                     }
                 } while (true);
 
@@ -23872,13 +23988,13 @@
 
         }
 
-        // InternalSignalDSL.g:6018:7: ( ( '|' ) )
-        // InternalSignalDSL.g:6019:8: ( '|' )
+        // InternalSignalDSL.g:6049:7: ( ( '|' ) )
+        // InternalSignalDSL.g:6050:8: ( '|' )
         {
-        // InternalSignalDSL.g:6019:8: ( '|' )
-        // InternalSignalDSL.g:6020:9: '|'
+        // InternalSignalDSL.g:6050:8: ( '|' )
+        // InternalSignalDSL.g:6051:9: '|'
         {
-        match(input,76,FOLLOW_2); if (state.failed) return ;
+        match(input,80,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23895,18 +24011,18 @@
 
     // $ANTLR start synpred38_InternalSignalDSL
     public final void synpred38_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6097:4: ( ( () '[' ) )
-        // InternalSignalDSL.g:6097:5: ( () '[' )
+        // InternalSignalDSL.g:6128:4: ( ( () '[' ) )
+        // InternalSignalDSL.g:6128:5: ( () '[' )
         {
-        // InternalSignalDSL.g:6097:5: ( () '[' )
-        // InternalSignalDSL.g:6098:5: () '['
+        // InternalSignalDSL.g:6128:5: ( () '[' )
+        // InternalSignalDSL.g:6129:5: () '['
         {
-        // InternalSignalDSL.g:6098:5: ()
-        // InternalSignalDSL.g:6099:5: 
+        // InternalSignalDSL.g:6129:5: ()
+        // InternalSignalDSL.g:6130:5: 
         {
         }
 
-        match(input,41,FOLLOW_2); if (state.failed) return ;
+        match(input,45,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23917,10 +24033,10 @@
 
     // $ANTLR start synpred39_InternalSignalDSL
     public final void synpred39_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6257:5: ( '<' )
-        // InternalSignalDSL.g:6257:6: '<'
+        // InternalSignalDSL.g:6288:5: ( '<' )
+        // InternalSignalDSL.g:6288:6: '<'
         {
-        match(input,48,FOLLOW_2); if (state.failed) return ;
+        match(input,52,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -23928,13 +24044,13 @@
 
     // $ANTLR start synpred40_InternalSignalDSL
     public final void synpred40_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6314:5: ( ( '(' ) )
-        // InternalSignalDSL.g:6314:6: ( '(' )
+        // InternalSignalDSL.g:6345:5: ( ( '(' ) )
+        // InternalSignalDSL.g:6345:6: ( '(' )
         {
-        // InternalSignalDSL.g:6314:6: ( '(' )
-        // InternalSignalDSL.g:6315:6: '('
+        // InternalSignalDSL.g:6345:6: ( '(' )
+        // InternalSignalDSL.g:6346:6: '('
         {
-        match(input,36,FOLLOW_2); if (state.failed) return ;
+        match(input,40,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23945,33 +24061,33 @@
 
     // $ANTLR start synpred41_InternalSignalDSL
     public final void synpred41_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6333:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalSignalDSL.g:6333:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:6364:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalSignalDSL.g:6364:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalSignalDSL.g:6333:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalSignalDSL.g:6334:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalSignalDSL.g:6364:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalSignalDSL.g:6365:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalSignalDSL.g:6334:7: ()
-        // InternalSignalDSL.g:6335:7: 
+        // InternalSignalDSL.g:6365:7: ()
+        // InternalSignalDSL.g:6366:7: 
         {
         }
 
-        // InternalSignalDSL.g:6336:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt148=2;
-        int LA148_0 = input.LA(1);
+        // InternalSignalDSL.g:6367:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt151=2;
+        int LA151_0 = input.LA(1);
 
-        if ( (LA148_0==RULE_ID||LA148_0==36||LA148_0==61) ) {
-            alt148=1;
+        if ( (LA151_0==RULE_ID||LA151_0==40||LA151_0==65) ) {
+            alt151=1;
         }
-        switch (alt148) {
+        switch (alt151) {
             case 1 :
-                // InternalSignalDSL.g:6337:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalSignalDSL.g:6368:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalSignalDSL.g:6337:8: ( ( ruleJvmFormalParameter ) )
-                // InternalSignalDSL.g:6338:9: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:6368:8: ( ( ruleJvmFormalParameter ) )
+                // InternalSignalDSL.g:6369:9: ( ruleJvmFormalParameter )
                 {
-                // InternalSignalDSL.g:6338:9: ( ruleJvmFormalParameter )
-                // InternalSignalDSL.g:6339:10: ruleJvmFormalParameter
+                // InternalSignalDSL.g:6369:9: ( ruleJvmFormalParameter )
+                // InternalSignalDSL.g:6370:10: ruleJvmFormalParameter
                 {
                 pushFollow(FOLLOW_64);
                 ruleJvmFormalParameter();
@@ -23984,27 +24100,27 @@
 
                 }
 
-                // InternalSignalDSL.g:6342:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop147:
+                // InternalSignalDSL.g:6373:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop150:
                 do {
-                    int alt147=2;
-                    int LA147_0 = input.LA(1);
+                    int alt150=2;
+                    int LA150_0 = input.LA(1);
 
-                    if ( (LA147_0==37) ) {
-                        alt147=1;
+                    if ( (LA150_0==41) ) {
+                        alt150=1;
                     }
 
 
-                    switch (alt147) {
+                    switch (alt150) {
                 	case 1 :
-                	    // InternalSignalDSL.g:6343:9: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:6374:9: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,37,FOLLOW_44); if (state.failed) return ;
-                	    // InternalSignalDSL.g:6344:9: ( ( ruleJvmFormalParameter ) )
-                	    // InternalSignalDSL.g:6345:10: ( ruleJvmFormalParameter )
+                	    match(input,41,FOLLOW_44); if (state.failed) return ;
+                	    // InternalSignalDSL.g:6375:9: ( ( ruleJvmFormalParameter ) )
+                	    // InternalSignalDSL.g:6376:10: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalSignalDSL.g:6345:10: ( ruleJvmFormalParameter )
-                	    // InternalSignalDSL.g:6346:11: ruleJvmFormalParameter
+                	    // InternalSignalDSL.g:6376:10: ( ruleJvmFormalParameter )
+                	    // InternalSignalDSL.g:6377:11: ruleJvmFormalParameter
                 	    {
                 	    pushFollow(FOLLOW_64);
                 	    ruleJvmFormalParameter();
@@ -24022,7 +24138,7 @@
                 	    break;
 
                 	default :
-                	    break loop147;
+                	    break loop150;
                     }
                 } while (true);
 
@@ -24032,13 +24148,13 @@
 
         }
 
-        // InternalSignalDSL.g:6351:7: ( ( '|' ) )
-        // InternalSignalDSL.g:6352:8: ( '|' )
+        // InternalSignalDSL.g:6382:7: ( ( '|' ) )
+        // InternalSignalDSL.g:6383:8: ( '|' )
         {
-        // InternalSignalDSL.g:6352:8: ( '|' )
-        // InternalSignalDSL.g:6353:9: '|'
+        // InternalSignalDSL.g:6383:8: ( '|' )
+        // InternalSignalDSL.g:6384:9: '|'
         {
-        match(input,76,FOLLOW_2); if (state.failed) return ;
+        match(input,80,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24055,18 +24171,18 @@
 
     // $ANTLR start synpred42_InternalSignalDSL
     public final void synpred42_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6430:4: ( ( () '[' ) )
-        // InternalSignalDSL.g:6430:5: ( () '[' )
+        // InternalSignalDSL.g:6461:4: ( ( () '[' ) )
+        // InternalSignalDSL.g:6461:5: ( () '[' )
         {
-        // InternalSignalDSL.g:6430:5: ( () '[' )
-        // InternalSignalDSL.g:6431:5: () '['
+        // InternalSignalDSL.g:6461:5: ( () '[' )
+        // InternalSignalDSL.g:6462:5: () '['
         {
-        // InternalSignalDSL.g:6431:5: ()
-        // InternalSignalDSL.g:6432:5: 
+        // InternalSignalDSL.g:6462:5: ()
+        // InternalSignalDSL.g:6463:5: 
         {
         }
 
-        match(input,41,FOLLOW_2); if (state.failed) return ;
+        match(input,45,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24077,10 +24193,10 @@
 
     // $ANTLR start synpred43_InternalSignalDSL
     public final void synpred43_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6773:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )
+        // InternalSignalDSL.g:6804:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )
         // InternalSignalDSL.g:
         {
-        if ( (input.LA(1)>=RULE_STRING && input.LA(1)<=RULE_DECIMAL)||input.LA(1)==14||(input.LA(1)>=29 && input.LA(1)<=31)||input.LA(1)==36||(input.LA(1)>=40 && input.LA(1)<=41)||input.LA(1)==48||(input.LA(1)>=64 && input.LA(1)<=65)||input.LA(1)==69||input.LA(1)==77||input.LA(1)==79||(input.LA(1)>=82 && input.LA(1)<=84)||(input.LA(1)>=87 && input.LA(1)<=96)||input.LA(1)==98 ) {
+        if ( (input.LA(1)>=RULE_STRING && input.LA(1)<=RULE_DECIMAL)||input.LA(1)==14||(input.LA(1)>=33 && input.LA(1)<=35)||input.LA(1)==40||(input.LA(1)>=44 && input.LA(1)<=45)||input.LA(1)==52||(input.LA(1)>=68 && input.LA(1)<=69)||input.LA(1)==73||input.LA(1)==81||input.LA(1)==83||(input.LA(1)>=86 && input.LA(1)<=88)||(input.LA(1)>=91 && input.LA(1)<=100)||input.LA(1)==102 ) {
             input.consume();
             state.errorRecovery=false;state.failed=false;
         }
@@ -24097,10 +24213,10 @@
 
     // $ANTLR start synpred44_InternalSignalDSL
     public final void synpred44_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6844:6: ( 'catch' )
-        // InternalSignalDSL.g:6844:7: 'catch'
+        // InternalSignalDSL.g:6875:6: ( 'catch' )
+        // InternalSignalDSL.g:6875:7: 'catch'
         {
-        match(input,99,FOLLOW_2); if (state.failed) return ;
+        match(input,103,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -24108,10 +24224,10 @@
 
     // $ANTLR start synpred45_InternalSignalDSL
     public final void synpred45_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:6865:7: ( 'finally' )
-        // InternalSignalDSL.g:6865:8: 'finally'
+        // InternalSignalDSL.g:6896:7: ( 'finally' )
+        // InternalSignalDSL.g:6896:8: 'finally'
         {
-        match(input,97,FOLLOW_2); if (state.failed) return ;
+        match(input,101,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -24119,10 +24235,10 @@
 
     // $ANTLR start synpred48_InternalSignalDSL
     public final void synpred48_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:7109:5: ( '.' )
-        // InternalSignalDSL.g:7109:6: '.'
+        // InternalSignalDSL.g:7140:5: ( '.' )
+        // InternalSignalDSL.g:7140:6: '.'
         {
-        match(input,73,FOLLOW_2); if (state.failed) return ;
+        match(input,77,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -24130,14 +24246,14 @@
 
     // $ANTLR start synpred49_InternalSignalDSL
     public final void synpred49_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:7235:5: ( ( () ruleArrayBrackets ) )
-        // InternalSignalDSL.g:7235:6: ( () ruleArrayBrackets )
+        // InternalSignalDSL.g:7266:5: ( ( () ruleArrayBrackets ) )
+        // InternalSignalDSL.g:7266:6: ( () ruleArrayBrackets )
         {
-        // InternalSignalDSL.g:7235:6: ( () ruleArrayBrackets )
-        // InternalSignalDSL.g:7236:6: () ruleArrayBrackets
+        // InternalSignalDSL.g:7266:6: ( () ruleArrayBrackets )
+        // InternalSignalDSL.g:7267:6: () ruleArrayBrackets
         {
-        // InternalSignalDSL.g:7236:6: ()
-        // InternalSignalDSL.g:7237:6: 
+        // InternalSignalDSL.g:7267:6: ()
+        // InternalSignalDSL.g:7268:6: 
         {
         }
 
@@ -24156,10 +24272,10 @@
 
     // $ANTLR start synpred50_InternalSignalDSL
     public final void synpred50_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:7432:5: ( '<' )
-        // InternalSignalDSL.g:7432:6: '<'
+        // InternalSignalDSL.g:7463:5: ( '<' )
+        // InternalSignalDSL.g:7463:6: '<'
         {
-        match(input,48,FOLLOW_2); if (state.failed) return ;
+        match(input,52,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -24167,18 +24283,18 @@
 
     // $ANTLR start synpred51_InternalSignalDSL
     public final void synpred51_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:7488:6: ( ( () '.' ) )
-        // InternalSignalDSL.g:7488:7: ( () '.' )
+        // InternalSignalDSL.g:7519:6: ( ( () '.' ) )
+        // InternalSignalDSL.g:7519:7: ( () '.' )
         {
-        // InternalSignalDSL.g:7488:7: ( () '.' )
-        // InternalSignalDSL.g:7489:7: () '.'
+        // InternalSignalDSL.g:7519:7: ( () '.' )
+        // InternalSignalDSL.g:7520:7: () '.'
         {
-        // InternalSignalDSL.g:7489:7: ()
-        // InternalSignalDSL.g:7490:7: 
+        // InternalSignalDSL.g:7520:7: ()
+        // InternalSignalDSL.g:7521:7: 
         {
         }
 
-        match(input,73,FOLLOW_2); if (state.failed) return ;
+        match(input,77,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24189,10 +24305,10 @@
 
     // $ANTLR start synpred52_InternalSignalDSL
     public final void synpred52_InternalSignalDSL_fragment() throws RecognitionException {   
-        // InternalSignalDSL.g:7526:7: ( '<' )
-        // InternalSignalDSL.g:7526:8: '<'
+        // InternalSignalDSL.g:7557:7: ( '<' )
+        // InternalSignalDSL.g:7557:8: '<'
         {
-        match(input,48,FOLLOW_2); if (state.failed) return ;
+        match(input,52,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -24832,45 +24948,45 @@
     }
 
 
-    protected DFA13 dfa13 = new DFA13(this);
     protected DFA16 dfa16 = new DFA16(this);
-    protected DFA22 dfa22 = new DFA22(this);
+    protected DFA19 dfa19 = new DFA19(this);
     protected DFA25 dfa25 = new DFA25(this);
-    protected DFA27 dfa27 = new DFA27(this);
-    protected DFA37 dfa37 = new DFA37(this);
+    protected DFA28 dfa28 = new DFA28(this);
+    protected DFA30 dfa30 = new DFA30(this);
     protected DFA40 dfa40 = new DFA40(this);
-    protected DFA56 dfa56 = new DFA56(this);
-    protected DFA55 dfa55 = new DFA55(this);
-    protected DFA57 dfa57 = new DFA57(this);
+    protected DFA43 dfa43 = new DFA43(this);
     protected DFA59 dfa59 = new DFA59(this);
-    protected DFA68 dfa68 = new DFA68(this);
-    protected DFA75 dfa75 = new DFA75(this);
-    protected DFA74 dfa74 = new DFA74(this);
-    protected DFA97 dfa97 = new DFA97(this);
-    protected DFA96 dfa96 = new DFA96(this);
-    protected DFA98 dfa98 = new DFA98(this);
-    protected DFA102 dfa102 = new DFA102(this);
+    protected DFA58 dfa58 = new DFA58(this);
+    protected DFA60 dfa60 = new DFA60(this);
+    protected DFA62 dfa62 = new DFA62(this);
+    protected DFA71 dfa71 = new DFA71(this);
+    protected DFA78 dfa78 = new DFA78(this);
+    protected DFA77 dfa77 = new DFA77(this);
+    protected DFA100 dfa100 = new DFA100(this);
+    protected DFA99 dfa99 = new DFA99(this);
+    protected DFA101 dfa101 = new DFA101(this);
     protected DFA105 dfa105 = new DFA105(this);
-    protected DFA104 dfa104 = new DFA104(this);
-    protected DFA106 dfa106 = new DFA106(this);
+    protected DFA108 dfa108 = new DFA108(this);
+    protected DFA107 dfa107 = new DFA107(this);
     protected DFA109 dfa109 = new DFA109(this);
-    protected DFA127 dfa127 = new DFA127(this);
-    protected DFA125 dfa125 = new DFA125(this);
+    protected DFA112 dfa112 = new DFA112(this);
+    protected DFA130 dfa130 = new DFA130(this);
+    protected DFA128 dfa128 = new DFA128(this);
     static final String dfa_1s = "\10\uffff";
     static final String dfa_2s = "\2\uffff\1\5\4\uffff\1\5";
     static final String dfa_3s = "\1\5\1\uffff\1\15\1\uffff\1\5\2\uffff\1\15";
-    static final String dfa_4s = "\1\41\1\uffff\1\111\1\uffff\1\40\2\uffff\1\111";
+    static final String dfa_4s = "\1\45\1\uffff\1\115\1\uffff\1\44\2\uffff\1\115";
     static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\3\1\uffff";
     static final String dfa_6s = "\10\uffff}>";
     static final String[] dfa_7s = {
-            "\1\2\30\uffff\1\1\2\uffff\1\3",
+            "\1\2\34\uffff\1\1\2\uffff\1\3",
             "",
-            "\1\5\17\uffff\1\5\4\uffff\1\5\46\uffff\1\4",
+            "\1\5\23\uffff\1\5\4\uffff\1\5\46\uffff\1\4",
             "",
-            "\1\7\32\uffff\1\6",
+            "\1\7\36\uffff\1\6",
             "",
             "",
-            "\1\5\17\uffff\1\5\4\uffff\1\5\46\uffff\1\4"
+            "\1\5\23\uffff\1\5\4\uffff\1\5\46\uffff\1\4"
     };
 
     static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
@@ -24881,11 +24997,11 @@
     static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
     static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
 
-    class DFA13 extends DFA {
+    class DFA16 extends DFA {
 
-        public DFA13(BaseRecognizer recognizer) {
+        public DFA16(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 13;
+            this.decisionNumber = 16;
             this.eot = dfa_1;
             this.eof = dfa_2;
             this.min = dfa_3;
@@ -24895,16 +25011,16 @@
             this.transition = dfa_7;
         }
         public String getDescription() {
-            return "1202:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )";
+            return "1233:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )";
         }
     }
     static final String dfa_8s = "\44\uffff";
     static final String dfa_9s = "\1\4\1\0\42\uffff";
-    static final String dfa_10s = "\1\142\1\0\42\uffff";
+    static final String dfa_10s = "\1\146\1\0\42\uffff";
     static final String dfa_11s = "\2\uffff\1\2\37\uffff\1\3\1\1";
     static final String dfa_12s = "\1\uffff\1\0\42\uffff}>";
     static final String[] dfa_13s = {
-            "\1\2\1\1\3\2\5\uffff\1\2\16\uffff\3\2\3\uffff\2\2\1\uffff\1\42\1\uffff\2\2\6\uffff\1\2\17\uffff\2\2\3\uffff\1\2\7\uffff\1\2\1\uffff\1\2\2\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\1\2\1\1\3\2\5\uffff\1\2\22\uffff\3\2\3\uffff\2\2\1\uffff\1\42\1\uffff\2\2\6\uffff\1\2\17\uffff\2\2\3\uffff\1\2\7\uffff\1\2\1\uffff\1\2\2\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -24949,11 +25065,11 @@
     static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s);
     static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s);
 
-    class DFA16 extends DFA {
+    class DFA19 extends DFA {
 
-        public DFA16(BaseRecognizer recognizer) {
+        public DFA19(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 16;
+            this.decisionNumber = 19;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_9;
@@ -24963,17 +25079,17 @@
             this.transition = dfa_13;
         }
         public String getDescription() {
-            return "1419:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?";
+            return "1450:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA16_1 = input.LA(1);
+                        int LA19_1 = input.LA(1);
 
                          
-                        int index16_1 = input.index();
+                        int index19_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred2_InternalSignalDSL()) ) {s = 35;}
@@ -24981,24 +25097,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index16_1);
+                        input.seek(index19_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 16, _s, input);
+                new NoViableAltException(getDescription(), 19, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_14s = "\43\uffff";
     static final String dfa_15s = "\1\4\1\0\41\uffff";
-    static final String dfa_16s = "\1\142\1\0\41\uffff";
+    static final String dfa_16s = "\1\146\1\0\41\uffff";
     static final String dfa_17s = "\2\uffff\1\2\37\uffff\1\1";
     static final String dfa_18s = "\1\uffff\1\0\41\uffff}>";
     static final String[] dfa_19s = {
-            "\5\2\5\uffff\1\2\16\uffff\3\2\3\uffff\2\2\3\uffff\1\1\1\2\6\uffff\1\2\17\uffff\2\2\3\uffff\1\2\7\uffff\1\2\1\uffff\1\2\2\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\5\2\5\uffff\1\2\22\uffff\3\2\3\uffff\2\2\3\uffff\1\1\1\2\6\uffff\1\2\17\uffff\2\2\3\uffff\1\2\7\uffff\1\2\1\uffff\1\2\2\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -25042,50 +25158,6 @@
     static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s);
     static final short[][] dfa_19 = unpackEncodedStringArray(dfa_19s);
 
-    class DFA22 extends DFA {
-
-        public DFA22(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 22;
-            this.eot = dfa_14;
-            this.eof = dfa_14;
-            this.min = dfa_15;
-            this.max = dfa_16;
-            this.accept = dfa_17;
-            this.special = dfa_18;
-            this.transition = dfa_19;
-        }
-        public String getDescription() {
-            return "1599:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )";
-        }
-        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
-            TokenStream input = (TokenStream)_input;
-        	int _s = s;
-            switch ( s ) {
-                    case 0 : 
-                        int LA22_1 = input.LA(1);
-
-                         
-                        int index22_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred5_InternalSignalDSL()) ) {s = 34;}
-
-                        else if ( (true) ) {s = 2;}
-
-                         
-                        input.seek(index22_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 22, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
     class DFA25 extends DFA {
 
         public DFA25(BaseRecognizer recognizer) {
@@ -25100,7 +25172,7 @@
             this.transition = dfa_19;
         }
         public String getDescription() {
-            return "1741:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )";
+            return "1630:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -25113,7 +25185,7 @@
                         int index25_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred6_InternalSignalDSL()) ) {s = 34;}
+                        if ( (synpred5_InternalSignalDSL()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -25129,14 +25201,58 @@
             throw nvae;
         }
     }
+
+    class DFA28 extends DFA {
+
+        public DFA28(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 28;
+            this.eot = dfa_14;
+            this.eof = dfa_14;
+            this.min = dfa_15;
+            this.max = dfa_16;
+            this.accept = dfa_17;
+            this.special = dfa_18;
+            this.transition = dfa_19;
+        }
+        public String getDescription() {
+            return "1772:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA28_1 = input.LA(1);
+
+                         
+                        int index28_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred6_InternalSignalDSL()) ) {s = 34;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index28_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 28, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
     static final String dfa_20s = "\12\uffff";
     static final String dfa_21s = "\1\10\11\uffff";
     static final String dfa_22s = "\1\4\7\0\2\uffff";
-    static final String dfa_23s = "\1\143\7\0\2\uffff";
+    static final String dfa_23s = "\1\147\7\0\2\uffff";
     static final String dfa_24s = "\10\uffff\1\2\1\1";
-    static final String dfa_25s = "\1\uffff\1\2\1\3\1\4\1\5\1\6\1\0\1\1\2\uffff}>";
+    static final String dfa_25s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\2\uffff}>";
     static final String[] dfa_26s = {
-            "\5\10\5\uffff\2\10\10\uffff\1\10\4\uffff\4\10\1\uffff\1\10\1\uffff\3\10\1\uffff\3\10\1\1\1\2\1\3\1\4\1\5\1\6\1\7\32\10\1\uffff\27\10",
+            "\5\10\5\uffff\2\10\11\uffff\1\10\7\uffff\4\10\1\uffff\1\10\1\uffff\3\10\1\uffff\3\10\1\1\1\2\1\3\1\4\1\5\1\6\1\7\32\10\1\uffff\27\10",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -25156,11 +25272,11 @@
     static final short[] dfa_25 = DFA.unpackEncodedString(dfa_25s);
     static final short[][] dfa_26 = unpackEncodedStringArray(dfa_26s);
 
-    class DFA27 extends DFA {
+    class DFA30 extends DFA {
 
-        public DFA27(BaseRecognizer recognizer) {
+        public DFA30(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 27;
+            this.decisionNumber = 30;
             this.eot = dfa_20;
             this.eof = dfa_21;
             this.min = dfa_22;
@@ -25170,17 +25286,17 @@
             this.transition = dfa_26;
         }
         public String getDescription() {
-            return "1970:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?";
+            return "2001:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA27_6 = input.LA(1);
+                        int LA30_1 = input.LA(1);
 
                          
-                        int index27_6 = input.index();
+                        int index30_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -25188,14 +25304,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index27_6);
+                        input.seek(index30_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA27_7 = input.LA(1);
+                        int LA30_2 = input.LA(1);
 
                          
-                        int index27_7 = input.index();
+                        int index30_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -25203,14 +25319,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index27_7);
+                        input.seek(index30_2);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA27_1 = input.LA(1);
+                        int LA30_3 = input.LA(1);
 
                          
-                        int index27_1 = input.index();
+                        int index30_3 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -25218,14 +25334,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index27_1);
+                        input.seek(index30_3);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA27_2 = input.LA(1);
+                        int LA30_4 = input.LA(1);
 
                          
-                        int index27_2 = input.index();
+                        int index30_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -25233,14 +25349,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index27_2);
+                        input.seek(index30_4);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA27_3 = input.LA(1);
+                        int LA30_5 = input.LA(1);
 
                          
-                        int index27_3 = input.index();
+                        int index30_5 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -25248,14 +25364,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index27_3);
+                        input.seek(index30_5);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA27_4 = input.LA(1);
+                        int LA30_6 = input.LA(1);
 
                          
-                        int index27_4 = input.index();
+                        int index30_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -25263,14 +25379,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index27_4);
+                        input.seek(index30_6);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA27_5 = input.LA(1);
+                        int LA30_7 = input.LA(1);
 
                          
-                        int index27_5 = input.index();
+                        int index30_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalSignalDSL()) ) {s = 9;}
@@ -25278,13 +25394,13 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index27_5);
+                        input.seek(index30_7);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 27, _s, input);
+                new NoViableAltException(getDescription(), 30, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -25292,11 +25408,11 @@
     static final String dfa_27s = "\13\uffff";
     static final String dfa_28s = "\1\1\12\uffff";
     static final String dfa_29s = "\1\4\1\uffff\10\0\1\uffff";
-    static final String dfa_30s = "\1\143\1\uffff\10\0\1\uffff";
+    static final String dfa_30s = "\1\147\1\uffff\10\0\1\uffff";
     static final String dfa_31s = "\1\uffff\1\2\10\uffff\1\1";
-    static final String dfa_32s = "\2\uffff\1\7\1\4\1\1\1\2\1\0\1\3\1\5\1\6\1\uffff}>";
+    static final String dfa_32s = "\2\uffff\1\7\1\0\1\5\1\6\1\4\1\3\1\1\1\2\1\uffff}>";
     static final String[] dfa_33s = {
-            "\5\1\5\uffff\2\1\10\uffff\1\1\4\uffff\4\1\1\uffff\1\1\1\uffff\3\1\1\uffff\10\1\1\2\1\3\10\1\1\4\1\5\1\6\1\7\1\10\1\11\14\1\1\uffff\27\1",
+            "\5\1\5\uffff\2\1\11\uffff\1\1\7\uffff\4\1\1\uffff\1\1\1\uffff\3\1\1\uffff\10\1\1\2\1\3\10\1\1\4\1\5\1\6\1\7\1\10\1\11\14\1\1\uffff\27\1",
             "",
             "\1\uffff",
             "\1\uffff",
@@ -25317,11 +25433,11 @@
     static final short[] dfa_32 = DFA.unpackEncodedString(dfa_32s);
     static final short[][] dfa_33 = unpackEncodedStringArray(dfa_33s);
 
-    class DFA37 extends DFA {
+    class DFA40 extends DFA {
 
-        public DFA37(BaseRecognizer recognizer) {
+        public DFA40(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 37;
+            this.decisionNumber = 40;
             this.eot = dfa_27;
             this.eof = dfa_28;
             this.min = dfa_29;
@@ -25331,17 +25447,17 @@
             this.transition = dfa_33;
         }
         public String getDescription() {
-            return "()* loopback of 2684:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*";
+            return "()* loopback of 2715:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA37_6 = input.LA(1);
+                        int LA40_3 = input.LA(1);
 
                          
-                        int index37_6 = input.index();
+                        int index40_3 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -25349,14 +25465,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index37_6);
+                        input.seek(index40_3);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA37_4 = input.LA(1);
+                        int LA40_8 = input.LA(1);
 
                          
-                        int index37_4 = input.index();
+                        int index40_8 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -25364,14 +25480,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index37_4);
+                        input.seek(index40_8);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA37_5 = input.LA(1);
+                        int LA40_9 = input.LA(1);
 
                          
-                        int index37_5 = input.index();
+                        int index40_9 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -25379,14 +25495,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index37_5);
+                        input.seek(index40_9);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA37_7 = input.LA(1);
+                        int LA40_7 = input.LA(1);
 
                          
-                        int index37_7 = input.index();
+                        int index40_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -25394,14 +25510,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index37_7);
+                        input.seek(index40_7);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA37_3 = input.LA(1);
+                        int LA40_6 = input.LA(1);
 
                          
-                        int index37_3 = input.index();
+                        int index40_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -25409,14 +25525,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index37_3);
+                        input.seek(index40_6);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA37_8 = input.LA(1);
+                        int LA40_4 = input.LA(1);
 
                          
-                        int index37_8 = input.index();
+                        int index40_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -25424,14 +25540,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index37_8);
+                        input.seek(index40_4);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA37_9 = input.LA(1);
+                        int LA40_5 = input.LA(1);
 
                          
-                        int index37_9 = input.index();
+                        int index40_5 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -25439,14 +25555,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index37_9);
+                        input.seek(index40_5);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA37_2 = input.LA(1);
+                        int LA40_2 = input.LA(1);
 
                          
-                        int index37_2 = input.index();
+                        int index40_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalSignalDSL()) ) {s = 10;}
@@ -25454,19 +25570,19 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index37_2);
+                        input.seek(index40_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 37, _s, input);
+                new NoViableAltException(getDescription(), 40, _s, input);
             error(nvae);
             throw nvae;
         }
     }
-    static final String dfa_34s = "\1\60\2\uffff\1\61\7\uffff";
-    static final String dfa_35s = "\1\77\2\uffff\1\74\7\uffff";
+    static final String dfa_34s = "\1\64\2\uffff\1\65\7\uffff";
+    static final String dfa_35s = "\1\103\2\uffff\1\100\7\uffff";
     static final String dfa_36s = "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\3\1\6";
     static final String dfa_37s = "\13\uffff}>";
     static final String[] dfa_38s = {
@@ -25488,11 +25604,11 @@
     static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s);
     static final short[][] dfa_38 = unpackEncodedStringArray(dfa_38s);
 
-    class DFA40 extends DFA {
+    class DFA43 extends DFA {
 
-        public DFA40(BaseRecognizer recognizer) {
+        public DFA43(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 40;
+            this.decisionNumber = 43;
             this.eot = dfa_27;
             this.eof = dfa_27;
             this.min = dfa_34;
@@ -25502,17 +25618,17 @@
             this.transition = dfa_38;
         }
         public String getDescription() {
-            return "2760:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )";
+            return "2791:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )";
         }
     }
     static final String dfa_39s = "\116\uffff";
     static final String dfa_40s = "\1\2\115\uffff";
     static final String dfa_41s = "\1\4\1\0\114\uffff";
-    static final String dfa_42s = "\1\143\1\0\114\uffff";
+    static final String dfa_42s = "\1\147\1\0\114\uffff";
     static final String dfa_43s = "\2\uffff\1\2\112\uffff\1\1";
     static final String dfa_44s = "\1\uffff\1\0\114\uffff}>";
     static final String[] dfa_45s = {
-            "\5\2\5\uffff\2\2\10\uffff\1\2\4\uffff\4\2\1\uffff\1\2\1\uffff\1\1\2\2\1\uffff\44\2\1\uffff\27\2",
+            "\5\2\5\uffff\2\2\11\uffff\1\2\7\uffff\4\2\1\uffff\1\2\1\uffff\1\1\2\2\1\uffff\44\2\1\uffff\27\2",
             "\1\uffff",
             "",
             "",
@@ -25600,11 +25716,11 @@
     static final short[] dfa_44 = DFA.unpackEncodedString(dfa_44s);
     static final short[][] dfa_45 = unpackEncodedStringArray(dfa_45s);
 
-    class DFA56 extends DFA {
+    class DFA59 extends DFA {
 
-        public DFA56(BaseRecognizer recognizer) {
+        public DFA59(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 56;
+            this.decisionNumber = 59;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -25614,17 +25730,17 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "3661:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?";
+            return "3692:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA56_1 = input.LA(1);
+                        int LA59_1 = input.LA(1);
 
                          
-                        int index56_1 = input.index();
+                        int index59_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred22_InternalSignalDSL()) ) {s = 77;}
@@ -25632,23 +25748,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index56_1);
+                        input.seek(index59_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 56, _s, input);
+                new NoViableAltException(getDescription(), 59, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_46s = "\1\4\2\0\41\uffff";
-    static final String dfa_47s = "\1\142\2\0\41\uffff";
+    static final String dfa_47s = "\1\146\2\0\41\uffff";
     static final String dfa_48s = "\3\uffff\2\1\1\2\35\uffff\1\3";
     static final String dfa_49s = "\1\0\1\1\1\2\41\uffff}>";
     static final String[] dfa_50s = {
-            "\1\5\1\1\3\5\5\uffff\1\5\16\uffff\3\5\4\uffff\1\2\1\uffff\1\43\1\uffff\2\5\6\uffff\1\5\14\uffff\1\3\2\uffff\2\5\3\uffff\1\5\6\uffff\1\4\1\5\1\uffff\1\5\2\uffff\3\5\2\uffff\12\5\1\uffff\1\5",
+            "\1\5\1\1\3\5\5\uffff\1\5\22\uffff\3\5\4\uffff\1\2\1\uffff\1\43\1\uffff\2\5\6\uffff\1\5\14\uffff\1\3\2\uffff\2\5\3\uffff\1\5\6\uffff\1\4\1\5\1\uffff\1\5\2\uffff\3\5\2\uffff\12\5\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -25691,11 +25807,11 @@
     static final short[] dfa_49 = DFA.unpackEncodedString(dfa_49s);
     static final short[][] dfa_50 = unpackEncodedStringArray(dfa_50s);
 
-    class DFA55 extends DFA {
+    class DFA58 extends DFA {
 
-        public DFA55(BaseRecognizer recognizer) {
+        public DFA58(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 55;
+            this.decisionNumber = 58;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_46;
@@ -25705,40 +25821,40 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "3680:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?";
+            return "3711:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA55_0 = input.LA(1);
+                        int LA58_0 = input.LA(1);
 
                          
-                        int index55_0 = input.index();
+                        int index58_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA55_0==RULE_ID) ) {s = 1;}
+                        if ( (LA58_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA55_0==36) ) {s = 2;}
+                        else if ( (LA58_0==40) ) {s = 2;}
 
-                        else if ( (LA55_0==61) && (synpred23_InternalSignalDSL())) {s = 3;}
+                        else if ( (LA58_0==65) && (synpred23_InternalSignalDSL())) {s = 3;}
 
-                        else if ( (LA55_0==76) && (synpred23_InternalSignalDSL())) {s = 4;}
+                        else if ( (LA58_0==80) && (synpred23_InternalSignalDSL())) {s = 4;}
 
-                        else if ( (LA55_0==RULE_STRING||(LA55_0>=RULE_INT && LA55_0<=RULE_DECIMAL)||LA55_0==14||(LA55_0>=29 && LA55_0<=31)||(LA55_0>=40 && LA55_0<=41)||LA55_0==48||(LA55_0>=64 && LA55_0<=65)||LA55_0==69||LA55_0==77||LA55_0==79||(LA55_0>=82 && LA55_0<=84)||(LA55_0>=87 && LA55_0<=96)||LA55_0==98) ) {s = 5;}
+                        else if ( (LA58_0==RULE_STRING||(LA58_0>=RULE_INT && LA58_0<=RULE_DECIMAL)||LA58_0==14||(LA58_0>=33 && LA58_0<=35)||(LA58_0>=44 && LA58_0<=45)||LA58_0==52||(LA58_0>=68 && LA58_0<=69)||LA58_0==73||LA58_0==81||LA58_0==83||(LA58_0>=86 && LA58_0<=88)||(LA58_0>=91 && LA58_0<=100)||LA58_0==102) ) {s = 5;}
 
-                        else if ( (LA55_0==38) ) {s = 35;}
+                        else if ( (LA58_0==42) ) {s = 35;}
 
                          
-                        input.seek(index55_0);
+                        input.seek(index58_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA55_1 = input.LA(1);
+                        int LA58_1 = input.LA(1);
 
                          
-                        int index55_1 = input.index();
+                        int index58_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred23_InternalSignalDSL()) ) {s = 4;}
@@ -25746,14 +25862,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index55_1);
+                        input.seek(index58_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA55_2 = input.LA(1);
+                        int LA58_2 = input.LA(1);
 
                          
-                        int index55_2 = input.index();
+                        int index58_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred23_InternalSignalDSL()) ) {s = 4;}
@@ -25761,19 +25877,19 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index55_2);
+                        input.seek(index58_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 55, _s, input);
+                new NoViableAltException(getDescription(), 58, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_51s = {
-            "\5\2\5\uffff\2\2\10\uffff\1\2\4\uffff\4\2\1\uffff\1\2\1\uffff\3\2\1\uffff\1\2\1\1\42\2\1\uffff\27\2",
+            "\5\2\5\uffff\2\2\11\uffff\1\2\7\uffff\4\2\1\uffff\1\2\1\uffff\3\2\1\uffff\1\2\1\1\42\2\1\uffff\27\2",
             "\1\uffff",
             "",
             "",
@@ -25854,11 +25970,11 @@
     };
     static final short[][] dfa_51 = unpackEncodedStringArray(dfa_51s);
 
-    class DFA57 extends DFA {
+    class DFA60 extends DFA {
 
-        public DFA57(BaseRecognizer recognizer) {
+        public DFA60(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 57;
+            this.decisionNumber = 60;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -25868,17 +25984,17 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "3778:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?";
+            return "3809:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA57_1 = input.LA(1);
+                        int LA60_1 = input.LA(1);
 
                          
-                        int index57_1 = input.index();
+                        int index60_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred24_InternalSignalDSL()) ) {s = 77;}
@@ -25886,24 +26002,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index57_1);
+                        input.seek(index60_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 57, _s, input);
+                new NoViableAltException(getDescription(), 60, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_52s = "\40\uffff";
     static final String dfa_53s = "\1\4\26\uffff\1\0\10\uffff";
-    static final String dfa_54s = "\1\142\26\uffff\1\0\10\uffff";
+    static final String dfa_54s = "\1\146\26\uffff\1\0\10\uffff";
     static final String dfa_55s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\6\uffff\1\6\11\uffff\1\7\1\uffff\1\12\1\13\1\14\1\15\1\16\1\17\1\10\1\11";
     static final String dfa_56s = "\1\0\26\uffff\1\1\10\uffff}>";
     static final String[] dfa_57s = {
-            "\1\14\1\5\3\14\5\uffff\1\2\16\uffff\3\5\4\uffff\1\35\3\uffff\2\14\6\uffff\1\5\34\uffff\1\26\1\uffff\1\3\2\uffff\1\27\1\30\1\31\2\uffff\2\5\1\1\4\14\1\32\1\33\1\34\1\uffff\1\4",
+            "\1\14\1\5\3\14\5\uffff\1\2\22\uffff\3\5\4\uffff\1\35\3\uffff\2\14\6\uffff\1\5\34\uffff\1\26\1\uffff\1\3\2\uffff\1\27\1\30\1\31\2\uffff\2\5\1\1\4\14\1\32\1\33\1\34\1\uffff\1\4",
             "",
             "",
             "",
@@ -25944,11 +26060,11 @@
     static final short[] dfa_56 = DFA.unpackEncodedString(dfa_56s);
     static final short[][] dfa_57 = unpackEncodedStringArray(dfa_57s);
 
-    class DFA59 extends DFA {
+    class DFA62 extends DFA {
 
-        public DFA59(BaseRecognizer recognizer) {
+        public DFA62(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 59;
+            this.decisionNumber = 62;
             this.eot = dfa_52;
             this.eof = dfa_52;
             this.min = dfa_53;
@@ -25958,56 +26074,56 @@
             this.transition = dfa_57;
         }
         public String getDescription() {
-            return "3823:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )";
+            return "3854:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA59_0 = input.LA(1);
+                        int LA62_0 = input.LA(1);
 
                          
-                        int index59_0 = input.index();
+                        int index62_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA59_0==89) ) {s = 1;}
+                        if ( (LA62_0==93) ) {s = 1;}
 
-                        else if ( (LA59_0==14) ) {s = 2;}
+                        else if ( (LA62_0==14) ) {s = 2;}
 
-                        else if ( (LA59_0==79) ) {s = 3;}
+                        else if ( (LA62_0==83) ) {s = 3;}
 
-                        else if ( (LA59_0==98) && (synpred25_InternalSignalDSL())) {s = 4;}
+                        else if ( (LA62_0==102) && (synpred25_InternalSignalDSL())) {s = 4;}
 
-                        else if ( (LA59_0==RULE_ID||(LA59_0>=29 && LA59_0<=31)||LA59_0==48||(LA59_0>=87 && LA59_0<=88)) ) {s = 5;}
+                        else if ( (LA62_0==RULE_ID||(LA62_0>=33 && LA62_0<=35)||LA62_0==52||(LA62_0>=91 && LA62_0<=92)) ) {s = 5;}
 
-                        else if ( (LA59_0==RULE_STRING||(LA59_0>=RULE_INT && LA59_0<=RULE_DECIMAL)||(LA59_0>=40 && LA59_0<=41)||(LA59_0>=90 && LA59_0<=93)) ) {s = 12;}
+                        else if ( (LA62_0==RULE_STRING||(LA62_0>=RULE_INT && LA62_0<=RULE_DECIMAL)||(LA62_0>=44 && LA62_0<=45)||(LA62_0>=94 && LA62_0<=97)) ) {s = 12;}
 
-                        else if ( (LA59_0==77) ) {s = 22;}
+                        else if ( (LA62_0==81) ) {s = 22;}
 
-                        else if ( (LA59_0==82) ) {s = 23;}
+                        else if ( (LA62_0==86) ) {s = 23;}
 
-                        else if ( (LA59_0==83) ) {s = 24;}
+                        else if ( (LA62_0==87) ) {s = 24;}
 
-                        else if ( (LA59_0==84) ) {s = 25;}
+                        else if ( (LA62_0==88) ) {s = 25;}
 
-                        else if ( (LA59_0==94) ) {s = 26;}
+                        else if ( (LA62_0==98) ) {s = 26;}
 
-                        else if ( (LA59_0==95) ) {s = 27;}
+                        else if ( (LA62_0==99) ) {s = 27;}
 
-                        else if ( (LA59_0==96) ) {s = 28;}
+                        else if ( (LA62_0==100) ) {s = 28;}
 
-                        else if ( (LA59_0==36) ) {s = 29;}
+                        else if ( (LA62_0==40) ) {s = 29;}
 
                          
-                        input.seek(index59_0);
+                        input.seek(index62_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA59_23 = input.LA(1);
+                        int LA62_23 = input.LA(1);
 
                          
-                        int index59_23 = input.index();
+                        int index62_23 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred26_InternalSignalDSL()) ) {s = 30;}
@@ -26015,24 +26131,24 @@
                         else if ( (true) ) {s = 31;}
 
                          
-                        input.seek(index59_23);
+                        input.seek(index62_23);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 59, _s, input);
+                new NoViableAltException(getDescription(), 62, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_58s = "\46\uffff";
     static final String dfa_59s = "\1\4\2\0\43\uffff";
-    static final String dfa_60s = "\1\142\2\0\43\uffff";
+    static final String dfa_60s = "\1\146\2\0\43\uffff";
     static final String dfa_61s = "\3\uffff\2\1\1\2\40\uffff";
     static final String dfa_62s = "\1\0\1\1\1\2\43\uffff}>";
     static final String[] dfa_63s = {
-            "\1\5\1\1\3\5\5\uffff\1\5\16\uffff\3\5\4\uffff\1\2\3\uffff\3\5\5\uffff\1\5\14\uffff\1\3\2\uffff\2\5\3\uffff\1\5\6\uffff\1\4\1\5\1\uffff\1\5\2\uffff\17\5\1\uffff\1\5",
+            "\1\5\1\1\3\5\5\uffff\1\5\22\uffff\3\5\4\uffff\1\2\3\uffff\3\5\5\uffff\1\5\14\uffff\1\3\2\uffff\2\5\3\uffff\1\5\6\uffff\1\4\1\5\1\uffff\1\5\2\uffff\17\5\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -26079,11 +26195,11 @@
     static final short[] dfa_62 = DFA.unpackEncodedString(dfa_62s);
     static final short[][] dfa_63 = unpackEncodedStringArray(dfa_63s);
 
-    class DFA68 extends DFA {
+    class DFA71 extends DFA {
 
-        public DFA68(BaseRecognizer recognizer) {
+        public DFA71(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 68;
+            this.decisionNumber = 71;
             this.eot = dfa_58;
             this.eof = dfa_58;
             this.min = dfa_59;
@@ -26093,38 +26209,38 @@
             this.transition = dfa_63;
         }
         public String getDescription() {
-            return "4315:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?";
+            return "4346:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA68_0 = input.LA(1);
+                        int LA71_0 = input.LA(1);
 
                          
-                        int index68_0 = input.index();
+                        int index71_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA68_0==RULE_ID) ) {s = 1;}
+                        if ( (LA71_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA68_0==36) ) {s = 2;}
+                        else if ( (LA71_0==40) ) {s = 2;}
 
-                        else if ( (LA68_0==61) && (synpred29_InternalSignalDSL())) {s = 3;}
+                        else if ( (LA71_0==65) && (synpred29_InternalSignalDSL())) {s = 3;}
 
-                        else if ( (LA68_0==76) && (synpred29_InternalSignalDSL())) {s = 4;}
+                        else if ( (LA71_0==80) && (synpred29_InternalSignalDSL())) {s = 4;}
 
-                        else if ( (LA68_0==RULE_STRING||(LA68_0>=RULE_INT && LA68_0<=RULE_DECIMAL)||LA68_0==14||(LA68_0>=29 && LA68_0<=31)||(LA68_0>=40 && LA68_0<=42)||LA68_0==48||(LA68_0>=64 && LA68_0<=65)||LA68_0==69||LA68_0==77||LA68_0==79||(LA68_0>=82 && LA68_0<=96)||LA68_0==98) ) {s = 5;}
+                        else if ( (LA71_0==RULE_STRING||(LA71_0>=RULE_INT && LA71_0<=RULE_DECIMAL)||LA71_0==14||(LA71_0>=33 && LA71_0<=35)||(LA71_0>=44 && LA71_0<=46)||LA71_0==52||(LA71_0>=68 && LA71_0<=69)||LA71_0==73||LA71_0==81||LA71_0==83||(LA71_0>=86 && LA71_0<=100)||LA71_0==102) ) {s = 5;}
 
                          
-                        input.seek(index68_0);
+                        input.seek(index71_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA68_1 = input.LA(1);
+                        int LA71_1 = input.LA(1);
 
                          
-                        int index68_1 = input.index();
+                        int index71_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred29_InternalSignalDSL()) ) {s = 4;}
@@ -26132,14 +26248,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index68_1);
+                        input.seek(index71_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA68_2 = input.LA(1);
+                        int LA71_2 = input.LA(1);
 
                          
-                        int index68_2 = input.index();
+                        int index71_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred29_InternalSignalDSL()) ) {s = 4;}
@@ -26147,19 +26263,19 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index68_2);
+                        input.seek(index71_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 68, _s, input);
+                new NoViableAltException(getDescription(), 71, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_64s = {
-            "\5\2\5\uffff\1\2\16\uffff\3\2\4\uffff\1\1\3\uffff\2\2\6\uffff\1\2\14\uffff\1\2\2\uffff\2\2\3\uffff\1\2\7\uffff\1\2\1\uffff\1\2\2\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\5\2\5\uffff\1\2\22\uffff\3\2\4\uffff\1\1\3\uffff\2\2\6\uffff\1\2\14\uffff\1\2\2\uffff\2\2\3\uffff\1\2\7\uffff\1\2\1\uffff\1\2\2\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -26197,11 +26313,11 @@
     };
     static final short[][] dfa_64 = unpackEncodedStringArray(dfa_64s);
 
-    class DFA75 extends DFA {
+    class DFA78 extends DFA {
 
-        public DFA75(BaseRecognizer recognizer) {
+        public DFA78(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 75;
+            this.decisionNumber = 78;
             this.eot = dfa_14;
             this.eof = dfa_14;
             this.min = dfa_15;
@@ -26211,17 +26327,17 @@
             this.transition = dfa_64;
         }
         public String getDescription() {
-            return "4781:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )";
+            return "4812:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA75_1 = input.LA(1);
+                        int LA78_1 = input.LA(1);
 
                          
-                        int index75_1 = input.index();
+                        int index78_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred32_InternalSignalDSL()) ) {s = 34;}
@@ -26229,24 +26345,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index75_1);
+                        input.seek(index78_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 75, _s, input);
+                new NoViableAltException(getDescription(), 78, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_65s = "\42\uffff";
     static final String dfa_66s = "\1\4\2\0\37\uffff";
-    static final String dfa_67s = "\1\142\2\0\37\uffff";
+    static final String dfa_67s = "\1\146\2\0\37\uffff";
     static final String dfa_68s = "\3\uffff\1\1\1\2\35\uffff";
     static final String dfa_69s = "\1\0\1\1\1\2\37\uffff}>";
     static final String[] dfa_70s = {
-            "\1\4\1\1\3\4\5\uffff\1\4\16\uffff\3\4\4\uffff\1\2\3\uffff\2\4\6\uffff\1\4\14\uffff\1\3\2\uffff\2\4\3\uffff\1\4\7\uffff\1\4\1\uffff\1\4\2\uffff\3\4\2\uffff\12\4\1\uffff\1\4",
+            "\1\4\1\1\3\4\5\uffff\1\4\22\uffff\3\4\4\uffff\1\2\3\uffff\2\4\6\uffff\1\4\14\uffff\1\3\2\uffff\2\4\3\uffff\1\4\7\uffff\1\4\1\uffff\1\4\2\uffff\3\4\2\uffff\12\4\1\uffff\1\4",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -26289,11 +26405,11 @@
     static final short[] dfa_69 = DFA.unpackEncodedString(dfa_69s);
     static final short[][] dfa_70 = unpackEncodedStringArray(dfa_70s);
 
-    class DFA74 extends DFA {
+    class DFA77 extends DFA {
 
-        public DFA74(BaseRecognizer recognizer) {
+        public DFA77(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 74;
+            this.decisionNumber = 77;
             this.eot = dfa_65;
             this.eof = dfa_65;
             this.min = dfa_66;
@@ -26303,36 +26419,36 @@
             this.transition = dfa_70;
         }
         public String getDescription() {
-            return "4850:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?";
+            return "4881:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA74_0 = input.LA(1);
+                        int LA77_0 = input.LA(1);
 
                          
-                        int index74_0 = input.index();
+                        int index77_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA74_0==RULE_ID) ) {s = 1;}
+                        if ( (LA77_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA74_0==36) ) {s = 2;}
+                        else if ( (LA77_0==40) ) {s = 2;}
 
-                        else if ( (LA74_0==61) && (synpred33_InternalSignalDSL())) {s = 3;}
+                        else if ( (LA77_0==65) && (synpred33_InternalSignalDSL())) {s = 3;}
 
-                        else if ( (LA74_0==RULE_STRING||(LA74_0>=RULE_INT && LA74_0<=RULE_DECIMAL)||LA74_0==14||(LA74_0>=29 && LA74_0<=31)||(LA74_0>=40 && LA74_0<=41)||LA74_0==48||(LA74_0>=64 && LA74_0<=65)||LA74_0==69||LA74_0==77||LA74_0==79||(LA74_0>=82 && LA74_0<=84)||(LA74_0>=87 && LA74_0<=96)||LA74_0==98) ) {s = 4;}
+                        else if ( (LA77_0==RULE_STRING||(LA77_0>=RULE_INT && LA77_0<=RULE_DECIMAL)||LA77_0==14||(LA77_0>=33 && LA77_0<=35)||(LA77_0>=44 && LA77_0<=45)||LA77_0==52||(LA77_0>=68 && LA77_0<=69)||LA77_0==73||LA77_0==81||LA77_0==83||(LA77_0>=86 && LA77_0<=88)||(LA77_0>=91 && LA77_0<=100)||LA77_0==102) ) {s = 4;}
 
                          
-                        input.seek(index74_0);
+                        input.seek(index77_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA74_1 = input.LA(1);
+                        int LA77_1 = input.LA(1);
 
                          
-                        int index74_1 = input.index();
+                        int index77_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred33_InternalSignalDSL()) ) {s = 3;}
@@ -26340,14 +26456,14 @@
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index74_1);
+                        input.seek(index77_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA74_2 = input.LA(1);
+                        int LA77_2 = input.LA(1);
 
                          
-                        int index74_2 = input.index();
+                        int index77_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred33_InternalSignalDSL()) ) {s = 3;}
@@ -26355,23 +26471,23 @@
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index74_2);
+                        input.seek(index77_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 74, _s, input);
+                new NoViableAltException(getDescription(), 77, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA97 extends DFA {
+    class DFA100 extends DFA {
 
-        public DFA97(BaseRecognizer recognizer) {
+        public DFA100(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 97;
+            this.decisionNumber = 100;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -26381,17 +26497,17 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "5979:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?";
+            return "6010:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA97_1 = input.LA(1);
+                        int LA100_1 = input.LA(1);
 
                          
-                        int index97_1 = input.index();
+                        int index100_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred36_InternalSignalDSL()) ) {s = 77;}
@@ -26399,23 +26515,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index97_1);
+                        input.seek(index100_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 97, _s, input);
+                new NoViableAltException(getDescription(), 100, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA96 extends DFA {
+    class DFA99 extends DFA {
 
-        public DFA96(BaseRecognizer recognizer) {
+        public DFA99(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 96;
+            this.decisionNumber = 99;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_46;
@@ -26425,40 +26541,40 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "5998:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?";
+            return "6029:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA96_0 = input.LA(1);
+                        int LA99_0 = input.LA(1);
 
                          
-                        int index96_0 = input.index();
+                        int index99_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA96_0==RULE_ID) ) {s = 1;}
+                        if ( (LA99_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA96_0==36) ) {s = 2;}
+                        else if ( (LA99_0==40) ) {s = 2;}
 
-                        else if ( (LA96_0==61) && (synpred37_InternalSignalDSL())) {s = 3;}
+                        else if ( (LA99_0==65) && (synpred37_InternalSignalDSL())) {s = 3;}
 
-                        else if ( (LA96_0==76) && (synpred37_InternalSignalDSL())) {s = 4;}
+                        else if ( (LA99_0==80) && (synpred37_InternalSignalDSL())) {s = 4;}
 
-                        else if ( (LA96_0==RULE_STRING||(LA96_0>=RULE_INT && LA96_0<=RULE_DECIMAL)||LA96_0==14||(LA96_0>=29 && LA96_0<=31)||(LA96_0>=40 && LA96_0<=41)||LA96_0==48||(LA96_0>=64 && LA96_0<=65)||LA96_0==69||LA96_0==77||LA96_0==79||(LA96_0>=82 && LA96_0<=84)||(LA96_0>=87 && LA96_0<=96)||LA96_0==98) ) {s = 5;}
+                        else if ( (LA99_0==RULE_STRING||(LA99_0>=RULE_INT && LA99_0<=RULE_DECIMAL)||LA99_0==14||(LA99_0>=33 && LA99_0<=35)||(LA99_0>=44 && LA99_0<=45)||LA99_0==52||(LA99_0>=68 && LA99_0<=69)||LA99_0==73||LA99_0==81||LA99_0==83||(LA99_0>=86 && LA99_0<=88)||(LA99_0>=91 && LA99_0<=100)||LA99_0==102) ) {s = 5;}
 
-                        else if ( (LA96_0==38) ) {s = 35;}
+                        else if ( (LA99_0==42) ) {s = 35;}
 
                          
-                        input.seek(index96_0);
+                        input.seek(index99_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA96_1 = input.LA(1);
+                        int LA99_1 = input.LA(1);
 
                          
-                        int index96_1 = input.index();
+                        int index99_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred37_InternalSignalDSL()) ) {s = 4;}
@@ -26466,14 +26582,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index96_1);
+                        input.seek(index99_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA96_2 = input.LA(1);
+                        int LA99_2 = input.LA(1);
 
                          
-                        int index96_2 = input.index();
+                        int index99_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred37_InternalSignalDSL()) ) {s = 4;}
@@ -26481,23 +26597,23 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index96_2);
+                        input.seek(index99_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 96, _s, input);
+                new NoViableAltException(getDescription(), 99, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA98 extends DFA {
+    class DFA101 extends DFA {
 
-        public DFA98(BaseRecognizer recognizer) {
+        public DFA101(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 98;
+            this.decisionNumber = 101;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -26507,17 +26623,17 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "6096:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?";
+            return "6127:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA98_1 = input.LA(1);
+                        int LA101_1 = input.LA(1);
 
                          
-                        int index98_1 = input.index();
+                        int index101_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred38_InternalSignalDSL()) ) {s = 77;}
@@ -26525,19 +26641,19 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index98_1);
+                        input.seek(index101_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 98, _s, input);
+                new NoViableAltException(getDescription(), 101, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_71s = {
-            "\5\2\5\uffff\2\2\10\uffff\1\2\4\uffff\4\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\33\2\1\uffff\27\2",
+            "\5\2\5\uffff\2\2\11\uffff\1\2\7\uffff\4\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\33\2\1\uffff\27\2",
             "\1\uffff",
             "",
             "",
@@ -26618,50 +26734,6 @@
     };
     static final short[][] dfa_71 = unpackEncodedStringArray(dfa_71s);
 
-    class DFA102 extends DFA {
-
-        public DFA102(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 102;
-            this.eot = dfa_39;
-            this.eof = dfa_40;
-            this.min = dfa_41;
-            this.max = dfa_42;
-            this.accept = dfa_43;
-            this.special = dfa_44;
-            this.transition = dfa_71;
-        }
-        public String getDescription() {
-            return "6255:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?";
-        }
-        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
-            TokenStream input = (TokenStream)_input;
-        	int _s = s;
-            switch ( s ) {
-                    case 0 : 
-                        int LA102_1 = input.LA(1);
-
-                         
-                        int index102_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred39_InternalSignalDSL()) ) {s = 77;}
-
-                        else if ( (true) ) {s = 2;}
-
-                         
-                        input.seek(index102_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 102, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
     class DFA105 extends DFA {
 
         public DFA105(BaseRecognizer recognizer) {
@@ -26673,10 +26745,10 @@
             this.max = dfa_42;
             this.accept = dfa_43;
             this.special = dfa_44;
-            this.transition = dfa_45;
+            this.transition = dfa_71;
         }
         public String getDescription() {
-            return "6312:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?";
+            return "6286:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -26689,7 +26761,7 @@
                         int index105_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred40_InternalSignalDSL()) ) {s = 77;}
+                        if ( (synpred39_InternalSignalDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -26706,11 +26778,55 @@
         }
     }
 
-    class DFA104 extends DFA {
+    class DFA108 extends DFA {
 
-        public DFA104(BaseRecognizer recognizer) {
+        public DFA108(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 104;
+            this.decisionNumber = 108;
+            this.eot = dfa_39;
+            this.eof = dfa_40;
+            this.min = dfa_41;
+            this.max = dfa_42;
+            this.accept = dfa_43;
+            this.special = dfa_44;
+            this.transition = dfa_45;
+        }
+        public String getDescription() {
+            return "6343:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA108_1 = input.LA(1);
+
+                         
+                        int index108_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred40_InternalSignalDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index108_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 108, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA107 extends DFA {
+
+        public DFA107(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 107;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_46;
@@ -26720,40 +26836,40 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "6331:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?";
+            return "6362:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA104_0 = input.LA(1);
+                        int LA107_0 = input.LA(1);
 
                          
-                        int index104_0 = input.index();
+                        int index107_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA104_0==RULE_ID) ) {s = 1;}
+                        if ( (LA107_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA104_0==36) ) {s = 2;}
+                        else if ( (LA107_0==40) ) {s = 2;}
 
-                        else if ( (LA104_0==61) && (synpred41_InternalSignalDSL())) {s = 3;}
+                        else if ( (LA107_0==65) && (synpred41_InternalSignalDSL())) {s = 3;}
 
-                        else if ( (LA104_0==76) && (synpred41_InternalSignalDSL())) {s = 4;}
+                        else if ( (LA107_0==80) && (synpred41_InternalSignalDSL())) {s = 4;}
 
-                        else if ( (LA104_0==RULE_STRING||(LA104_0>=RULE_INT && LA104_0<=RULE_DECIMAL)||LA104_0==14||(LA104_0>=29 && LA104_0<=31)||(LA104_0>=40 && LA104_0<=41)||LA104_0==48||(LA104_0>=64 && LA104_0<=65)||LA104_0==69||LA104_0==77||LA104_0==79||(LA104_0>=82 && LA104_0<=84)||(LA104_0>=87 && LA104_0<=96)||LA104_0==98) ) {s = 5;}
+                        else if ( (LA107_0==RULE_STRING||(LA107_0>=RULE_INT && LA107_0<=RULE_DECIMAL)||LA107_0==14||(LA107_0>=33 && LA107_0<=35)||(LA107_0>=44 && LA107_0<=45)||LA107_0==52||(LA107_0>=68 && LA107_0<=69)||LA107_0==73||LA107_0==81||LA107_0==83||(LA107_0>=86 && LA107_0<=88)||(LA107_0>=91 && LA107_0<=100)||LA107_0==102) ) {s = 5;}
 
-                        else if ( (LA104_0==38) ) {s = 35;}
+                        else if ( (LA107_0==42) ) {s = 35;}
 
                          
-                        input.seek(index104_0);
+                        input.seek(index107_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA104_1 = input.LA(1);
+                        int LA107_1 = input.LA(1);
 
                          
-                        int index104_1 = input.index();
+                        int index107_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred41_InternalSignalDSL()) ) {s = 4;}
@@ -26761,14 +26877,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index104_1);
+                        input.seek(index107_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA104_2 = input.LA(1);
+                        int LA107_2 = input.LA(1);
 
                          
-                        int index104_2 = input.index();
+                        int index107_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred41_InternalSignalDSL()) ) {s = 4;}
@@ -26776,23 +26892,23 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index104_2);
+                        input.seek(index107_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 104, _s, input);
+                new NoViableAltException(getDescription(), 107, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA106 extends DFA {
+    class DFA109 extends DFA {
 
-        public DFA106(BaseRecognizer recognizer) {
+        public DFA109(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 106;
+            this.decisionNumber = 109;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -26802,17 +26918,17 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "6429:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?";
+            return "6460:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA106_1 = input.LA(1);
+                        int LA109_1 = input.LA(1);
 
                          
-                        int index106_1 = input.index();
+                        int index109_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred42_InternalSignalDSL()) ) {s = 77;}
@@ -26820,24 +26936,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index106_1);
+                        input.seek(index109_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 106, _s, input);
+                new NoViableAltException(getDescription(), 109, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_72s = "\1\41\115\uffff";
     static final String dfa_73s = "\1\4\40\0\55\uffff";
-    static final String dfa_74s = "\1\143\40\0\55\uffff";
+    static final String dfa_74s = "\1\147\40\0\55\uffff";
     static final String dfa_75s = "\41\uffff\1\2\53\uffff\1\1";
     static final String dfa_76s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\55\uffff}>";
     static final String[] dfa_77s = {
-            "\1\27\1\1\1\24\1\23\1\25\5\uffff\1\12\1\41\10\uffff\1\41\4\uffff\1\4\1\3\1\5\1\41\1\uffff\1\41\1\uffff\1\40\2\41\1\uffff\1\17\1\20\6\41\1\15\17\41\1\10\1\7\3\41\1\6\6\41\1\uffff\1\31\1\41\1\13\2\41\1\32\1\33\1\34\2\41\1\2\1\16\1\11\1\21\1\22\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41",
+            "\1\27\1\1\1\24\1\23\1\25\5\uffff\1\12\1\41\11\uffff\1\41\7\uffff\1\4\1\3\1\5\1\41\1\uffff\1\41\1\uffff\1\40\2\41\1\uffff\1\17\1\20\6\41\1\15\17\41\1\10\1\7\3\41\1\6\6\41\1\uffff\1\31\1\41\1\13\2\41\1\32\1\33\1\34\2\41\1\2\1\16\1\11\1\21\1\22\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -26923,11 +27039,11 @@
     static final short[] dfa_76 = DFA.unpackEncodedString(dfa_76s);
     static final short[][] dfa_77 = unpackEncodedStringArray(dfa_77s);
 
-    class DFA109 extends DFA {
+    class DFA112 extends DFA {
 
-        public DFA109(BaseRecognizer recognizer) {
+        public DFA112(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 109;
+            this.decisionNumber = 112;
             this.eot = dfa_39;
             this.eof = dfa_72;
             this.min = dfa_73;
@@ -26937,17 +27053,17 @@
             this.transition = dfa_77;
         }
         public String getDescription() {
-            return "6772:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?";
+            return "6803:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA109_1 = input.LA(1);
+                        int LA112_1 = input.LA(1);
 
                          
-                        int index109_1 = input.index();
+                        int index112_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -26955,14 +27071,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_1);
+                        input.seek(index112_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA109_2 = input.LA(1);
+                        int LA112_2 = input.LA(1);
 
                          
-                        int index109_2 = input.index();
+                        int index112_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -26970,14 +27086,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_2);
+                        input.seek(index112_2);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA109_3 = input.LA(1);
+                        int LA112_3 = input.LA(1);
 
                          
-                        int index109_3 = input.index();
+                        int index112_3 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -26985,14 +27101,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_3);
+                        input.seek(index112_3);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA109_4 = input.LA(1);
+                        int LA112_4 = input.LA(1);
 
                          
-                        int index109_4 = input.index();
+                        int index112_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27000,14 +27116,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_4);
+                        input.seek(index112_4);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA109_5 = input.LA(1);
+                        int LA112_5 = input.LA(1);
 
                          
-                        int index109_5 = input.index();
+                        int index112_5 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27015,14 +27131,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_5);
+                        input.seek(index112_5);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA109_6 = input.LA(1);
+                        int LA112_6 = input.LA(1);
 
                          
-                        int index109_6 = input.index();
+                        int index112_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27030,14 +27146,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_6);
+                        input.seek(index112_6);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA109_7 = input.LA(1);
+                        int LA112_7 = input.LA(1);
 
                          
-                        int index109_7 = input.index();
+                        int index112_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27045,14 +27161,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_7);
+                        input.seek(index112_7);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA109_8 = input.LA(1);
+                        int LA112_8 = input.LA(1);
 
                          
-                        int index109_8 = input.index();
+                        int index112_8 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27060,14 +27176,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_8);
+                        input.seek(index112_8);
                         if ( s>=0 ) return s;
                         break;
                     case 8 : 
-                        int LA109_9 = input.LA(1);
+                        int LA112_9 = input.LA(1);
 
                          
-                        int index109_9 = input.index();
+                        int index112_9 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27075,14 +27191,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_9);
+                        input.seek(index112_9);
                         if ( s>=0 ) return s;
                         break;
                     case 9 : 
-                        int LA109_10 = input.LA(1);
+                        int LA112_10 = input.LA(1);
 
                          
-                        int index109_10 = input.index();
+                        int index112_10 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27090,14 +27206,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_10);
+                        input.seek(index112_10);
                         if ( s>=0 ) return s;
                         break;
                     case 10 : 
-                        int LA109_11 = input.LA(1);
+                        int LA112_11 = input.LA(1);
 
                          
-                        int index109_11 = input.index();
+                        int index112_11 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27105,14 +27221,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_11);
+                        input.seek(index112_11);
                         if ( s>=0 ) return s;
                         break;
                     case 11 : 
-                        int LA109_12 = input.LA(1);
+                        int LA112_12 = input.LA(1);
 
                          
-                        int index109_12 = input.index();
+                        int index112_12 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27120,14 +27236,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_12);
+                        input.seek(index112_12);
                         if ( s>=0 ) return s;
                         break;
                     case 12 : 
-                        int LA109_13 = input.LA(1);
+                        int LA112_13 = input.LA(1);
 
                          
-                        int index109_13 = input.index();
+                        int index112_13 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27135,14 +27251,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_13);
+                        input.seek(index112_13);
                         if ( s>=0 ) return s;
                         break;
                     case 13 : 
-                        int LA109_14 = input.LA(1);
+                        int LA112_14 = input.LA(1);
 
                          
-                        int index109_14 = input.index();
+                        int index112_14 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27150,14 +27266,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_14);
+                        input.seek(index112_14);
                         if ( s>=0 ) return s;
                         break;
                     case 14 : 
-                        int LA109_15 = input.LA(1);
+                        int LA112_15 = input.LA(1);
 
                          
-                        int index109_15 = input.index();
+                        int index112_15 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27165,14 +27281,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_15);
+                        input.seek(index112_15);
                         if ( s>=0 ) return s;
                         break;
                     case 15 : 
-                        int LA109_16 = input.LA(1);
+                        int LA112_16 = input.LA(1);
 
                          
-                        int index109_16 = input.index();
+                        int index112_16 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27180,14 +27296,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_16);
+                        input.seek(index112_16);
                         if ( s>=0 ) return s;
                         break;
                     case 16 : 
-                        int LA109_17 = input.LA(1);
+                        int LA112_17 = input.LA(1);
 
                          
-                        int index109_17 = input.index();
+                        int index112_17 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27195,14 +27311,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_17);
+                        input.seek(index112_17);
                         if ( s>=0 ) return s;
                         break;
                     case 17 : 
-                        int LA109_18 = input.LA(1);
+                        int LA112_18 = input.LA(1);
 
                          
-                        int index109_18 = input.index();
+                        int index112_18 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27210,14 +27326,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_18);
+                        input.seek(index112_18);
                         if ( s>=0 ) return s;
                         break;
                     case 18 : 
-                        int LA109_19 = input.LA(1);
+                        int LA112_19 = input.LA(1);
 
                          
-                        int index109_19 = input.index();
+                        int index112_19 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27225,14 +27341,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_19);
+                        input.seek(index112_19);
                         if ( s>=0 ) return s;
                         break;
                     case 19 : 
-                        int LA109_20 = input.LA(1);
+                        int LA112_20 = input.LA(1);
 
                          
-                        int index109_20 = input.index();
+                        int index112_20 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27240,14 +27356,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_20);
+                        input.seek(index112_20);
                         if ( s>=0 ) return s;
                         break;
                     case 20 : 
-                        int LA109_21 = input.LA(1);
+                        int LA112_21 = input.LA(1);
 
                          
-                        int index109_21 = input.index();
+                        int index112_21 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27255,14 +27371,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_21);
+                        input.seek(index112_21);
                         if ( s>=0 ) return s;
                         break;
                     case 21 : 
-                        int LA109_22 = input.LA(1);
+                        int LA112_22 = input.LA(1);
 
                          
-                        int index109_22 = input.index();
+                        int index112_22 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27270,14 +27386,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_22);
+                        input.seek(index112_22);
                         if ( s>=0 ) return s;
                         break;
                     case 22 : 
-                        int LA109_23 = input.LA(1);
+                        int LA112_23 = input.LA(1);
 
                          
-                        int index109_23 = input.index();
+                        int index112_23 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27285,14 +27401,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_23);
+                        input.seek(index112_23);
                         if ( s>=0 ) return s;
                         break;
                     case 23 : 
-                        int LA109_24 = input.LA(1);
+                        int LA112_24 = input.LA(1);
 
                          
-                        int index109_24 = input.index();
+                        int index112_24 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27300,14 +27416,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_24);
+                        input.seek(index112_24);
                         if ( s>=0 ) return s;
                         break;
                     case 24 : 
-                        int LA109_25 = input.LA(1);
+                        int LA112_25 = input.LA(1);
 
                          
-                        int index109_25 = input.index();
+                        int index112_25 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27315,14 +27431,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_25);
+                        input.seek(index112_25);
                         if ( s>=0 ) return s;
                         break;
                     case 25 : 
-                        int LA109_26 = input.LA(1);
+                        int LA112_26 = input.LA(1);
 
                          
-                        int index109_26 = input.index();
+                        int index112_26 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27330,14 +27446,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_26);
+                        input.seek(index112_26);
                         if ( s>=0 ) return s;
                         break;
                     case 26 : 
-                        int LA109_27 = input.LA(1);
+                        int LA112_27 = input.LA(1);
 
                          
-                        int index109_27 = input.index();
+                        int index112_27 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27345,14 +27461,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_27);
+                        input.seek(index112_27);
                         if ( s>=0 ) return s;
                         break;
                     case 27 : 
-                        int LA109_28 = input.LA(1);
+                        int LA112_28 = input.LA(1);
 
                          
-                        int index109_28 = input.index();
+                        int index112_28 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27360,14 +27476,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_28);
+                        input.seek(index112_28);
                         if ( s>=0 ) return s;
                         break;
                     case 28 : 
-                        int LA109_29 = input.LA(1);
+                        int LA112_29 = input.LA(1);
 
                          
-                        int index109_29 = input.index();
+                        int index112_29 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27375,14 +27491,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_29);
+                        input.seek(index112_29);
                         if ( s>=0 ) return s;
                         break;
                     case 29 : 
-                        int LA109_30 = input.LA(1);
+                        int LA112_30 = input.LA(1);
 
                          
-                        int index109_30 = input.index();
+                        int index112_30 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27390,14 +27506,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_30);
+                        input.seek(index112_30);
                         if ( s>=0 ) return s;
                         break;
                     case 30 : 
-                        int LA109_31 = input.LA(1);
+                        int LA112_31 = input.LA(1);
 
                          
-                        int index109_31 = input.index();
+                        int index112_31 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27405,14 +27521,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_31);
+                        input.seek(index112_31);
                         if ( s>=0 ) return s;
                         break;
                     case 31 : 
-                        int LA109_32 = input.LA(1);
+                        int LA112_32 = input.LA(1);
 
                          
-                        int index109_32 = input.index();
+                        int index112_32 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalSignalDSL()) ) {s = 77;}
@@ -27420,13 +27536,13 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index109_32);
+                        input.seek(index112_32);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 109, _s, input);
+                new NoViableAltException(getDescription(), 112, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -27434,11 +27550,11 @@
     static final String dfa_78s = "\117\uffff";
     static final String dfa_79s = "\1\2\116\uffff";
     static final String dfa_80s = "\1\4\1\0\115\uffff";
-    static final String dfa_81s = "\1\145\1\0\115\uffff";
+    static final String dfa_81s = "\1\151\1\0\115\uffff";
     static final String dfa_82s = "\2\uffff\1\2\113\uffff\1\1";
     static final String dfa_83s = "\1\uffff\1\0\115\uffff}>";
     static final String[] dfa_84s = {
-            "\5\2\5\uffff\2\2\10\uffff\1\2\4\uffff\4\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\33\2\1\uffff\27\2\1\uffff\1\2",
+            "\5\2\5\uffff\2\2\11\uffff\1\2\7\uffff\4\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\33\2\1\uffff\27\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -27527,11 +27643,11 @@
     static final short[] dfa_83 = DFA.unpackEncodedString(dfa_83s);
     static final short[][] dfa_84 = unpackEncodedStringArray(dfa_84s);
 
-    class DFA127 extends DFA {
+    class DFA130 extends DFA {
 
-        public DFA127(BaseRecognizer recognizer) {
+        public DFA130(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 127;
+            this.decisionNumber = 130;
             this.eot = dfa_78;
             this.eof = dfa_79;
             this.min = dfa_80;
@@ -27541,17 +27657,17 @@
             this.transition = dfa_84;
         }
         public String getDescription() {
-            return "7430:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?";
+            return "7461:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA127_1 = input.LA(1);
+                        int LA130_1 = input.LA(1);
 
                          
-                        int index127_1 = input.index();
+                        int index130_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred50_InternalSignalDSL()) ) {s = 78;}
@@ -27559,23 +27675,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index127_1);
+                        input.seek(index130_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 127, _s, input);
+                new NoViableAltException(getDescription(), 130, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA125 extends DFA {
+    class DFA128 extends DFA {
 
-        public DFA125(BaseRecognizer recognizer) {
+        public DFA128(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 125;
+            this.decisionNumber = 128;
             this.eot = dfa_78;
             this.eof = dfa_79;
             this.min = dfa_80;
@@ -27585,17 +27701,17 @@
             this.transition = dfa_84;
         }
         public String getDescription() {
-            return "7524:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?";
+            return "7555:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA125_1 = input.LA(1);
+                        int LA128_1 = input.LA(1);
 
                          
-                        int index125_1 = input.index();
+                        int index128_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred52_InternalSignalDSL()) ) {s = 78;}
@@ -27603,13 +27719,13 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index125_1);
+                        input.seek(index128_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 125, _s, input);
+                new NoViableAltException(getDescription(), 128, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -27621,102 +27737,103 @@
     public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000002000L});
     public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000020L});
     public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000004002L});
-    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000118000L});
-    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x00000000000A0000L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000218000L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000060000L});
     public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000000L,0x0000018000000000L});
-    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000000L,0x0000180000000000L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000080000L});
     public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000020000000L,0x0000004000000000L});
-    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000020008000L,0x0000004000000000L});
-    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x000000000AE00000L});
-    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000040000L,0x0000018000000000L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000001000000L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000000000L,0x0000FE0000000000L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000010000002L});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000240000020L});
-    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000080000020L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000100000020L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000400000002L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000001000000002L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x00010358E00041F0L,0x00000005FF9CA023L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000006000000000L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000004000000000L});
-    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000008000000000L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x00010318E00041F0L,0x00000005FF9CA023L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000020000000000L});
-    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x00010718E00041F0L,0x00000005FF9CA023L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000042000000000L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000002000000002L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0003F80000000002L});
-    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0001000000000000L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0006000000000000L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0004000000000000L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0008000000000002L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0010000000000002L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x01E0000000000002L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0207000000000002L});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x2000001000000020L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0xFC03000000000002L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x1000000000000000L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0002000000000000L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x2001000000000000L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000003L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000100000002L,0x000000000000001CL});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000040L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000180L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000E00L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x00000000E0000020L,0x0000000000800000L});
-    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x00010000E0000020L,0x0000000001800000L});
-    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x2000001000000020L,0x0000001000000000L});
-    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0002002000000000L});
-    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000021000000002L,0x0000000000000E00L});
-    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x20010358E00041F0L,0x00000005FF9CB023L});
-    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000020000000002L,0x0000000000000E00L});
-    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x00010318E000C1F0L,0x00000005FF9CA023L});
-    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000002000008000L});
-    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x20010718E00041F0L,0x00000005FFFCB023L});
-    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000002000000000L,0x0000000000001000L});
-    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x00010718E00041F0L,0x00000005FFFCA023L});
-    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0001031CE00041F2L,0x00000005FFFCA023L});
-    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x00010318E00041F2L,0x00000005FFFCA023L});
-    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000001000000000L});
-    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x20010318E00041F0L,0x00000005FF9CA023L});
-    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x2000003001008020L,0x0000000000030000L});
-    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000002001000000L,0x0000000000020000L});
-    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000002001000000L});
-    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0001031CE00041F0L,0x00000005FFFCA023L});
-    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000002400000000L});
-    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x00010318E00041F0L,0x00000005FFFCA023L});
-    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0001031CE00041F0L,0x00000005FF9CA023L});
-    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
-    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x00010318E000C1F0L,0x00000005FFFCA023L});
-    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0001031CE000C1F0L,0x00000005FFFCA023L});
-    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000008000000002L});
-    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000021000000002L});
-    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000020000000002L});
-    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0001021000000002L});
-    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000024000000000L});
-    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x00010318E00041F2L,0x00000005FF9CA023L});
-    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000000000000L,0x0000000A00000000L});
-    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000000000002L,0x0000000A00000000L});
-    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
-    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000000000140L});
-    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x2000005000000020L});
-    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x2000000000000000L});
-    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0001000000000002L});
-    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0001000000000002L,0x0000000000000200L});
-    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000000000000002L,0x0000000001800000L});
-    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
-    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000100000000L});
-    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000000020000002L});
-    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000022L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000220108000L,0x0000040000000000L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000220008000L,0x0000040000000000L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000015C00000L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000080000L,0x0000180000000000L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000000000L,0x000FE00000000000L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000100002L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x00000001C0000000L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000002400000020L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000800000020L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000001000000020L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000004000000002L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000010000000002L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0010358E000041F0L,0x0000005FF9CA0230L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000060000000000L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0010318E000041F0L,0x0000005FF9CA0230L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000200000000000L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0010718E000041F0L,0x0000005FF9CA0230L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000420000000000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000020000000002L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x003F800000000002L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0010000000000000L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0060000000000000L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0040000000000000L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0080000000000002L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0100000000000002L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x1E00000000000002L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x2070000000000002L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000010000000020L,0x0000000000000002L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0xC030000000000002L,0x000000000000000FL});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0020000000000000L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0010000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000030L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000001000000002L,0x00000000000001C0L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001800L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000002L,0x000000000000E000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000E00000020L,0x0000000008000000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0010000E00000020L,0x0000000018000000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000010000000020L,0x0000010000000002L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0020020000000000L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000210000000002L,0x000000000000E000L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0010358E000041F0L,0x0000005FF9CB0232L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000200000000002L,0x000000000000E000L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0010318E0000C1F0L,0x0000005FF9CA0230L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000020000008000L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0010718E000041F0L,0x0000005FFFCB0232L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000020000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0010718E000041F0L,0x0000005FFFCA0230L});
+    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000400000000000L});
+    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x001031CE000041F2L,0x0000005FFFCA0230L});
+    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0010318E000041F2L,0x0000005FFFCA0230L});
+    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000000002L,0x0000000000040000L});
+    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0010318E000041F0L,0x0000005FF9CA0232L});
+    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0000030002008020L,0x0000000000300002L});
+    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000020002000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000020002000000L});
+    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x001031CE000041F0L,0x0000005FFFCA0230L});
+    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000024000000000L});
+    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0010318E000041F0L,0x0000005FFFCA0230L});
+    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x001031CE000041F0L,0x0000005FF9CA0230L});
+    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000004000000000L});
+    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0010318E0000C1F0L,0x0000005FFFCA0230L});
+    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x001031CE0000C1F0L,0x0000005FFFCA0230L});
+    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000080000000002L});
+    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000210000000002L});
+    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000200000000002L});
+    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0010210000000002L});
+    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000240000000000L});
+    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0010318E000041F2L,0x0000005FF9CA0230L});
+    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000000000000L,0x000000A000000000L});
+    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000000002L,0x000000A000000000L});
+    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
+    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000000000000140L});
+    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000050000000020L,0x0000000000000002L});
+    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0010000000000002L});
+    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0010000000000002L,0x0000000000002000L});
+    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000000000002L,0x0000000018000000L});
+    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
+    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000200000002L});
+    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000000000022L});
 
 }
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/serializer/SignalDSLSemanticSequencer.java b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/serializer/SignalDSLSemanticSequencer.java
index c378d45..b9fc361 100644
--- a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/serializer/SignalDSLSemanticSequencer.java
+++ b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/serializer/SignalDSLSemanticSequencer.java
@@ -31,12 +31,11 @@
 import org.eclipse.osbp.xtext.signal.MonthlyScheduler;
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
 import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
+import org.eclipse.osbp.xtext.signal.SignalFunction;
 import org.eclipse.osbp.xtext.signal.SignalModel;
 import org.eclipse.osbp.xtext.signal.SignalPackage;
 import org.eclipse.osbp.xtext.signal.SignalScheduler;
 import org.eclipse.osbp.xtext.signal.SignalWatcher;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName;
 import org.eclipse.osbp.xtext.signal.WeeklyScheduler;
 import org.eclipse.osbp.xtext.signal.services.SignalDSLGrammarAccess;
 import org.eclipse.xtext.Action;
@@ -128,6 +127,9 @@
 			case SignalDSLPackage.SIGNAL_DATAINTERCHANGE:
 				sequence_SignalDatainterchange(context, (SignalDatainterchange) semanticObject); 
 				return; 
+			case SignalDSLPackage.SIGNAL_FUNCTION:
+				sequence_SignalFunction(context, (SignalFunction) semanticObject); 
+				return; 
 			case SignalDSLPackage.SIGNAL_MODEL:
 				sequence_SignalModel(context, (SignalModel) semanticObject); 
 				return; 
@@ -140,12 +142,6 @@
 			case SignalDSLPackage.SIGNAL_WATCHER:
 				sequence_SignalWatcher(context, (SignalWatcher) semanticObject); 
 				return; 
-			case SignalDSLPackage.WATCHER_WITH_FILE_MASK:
-				sequence_WatcherWithFileMask(context, (WatcherWithFileMask) semanticObject); 
-				return; 
-			case SignalDSLPackage.WATCHER_WITH_FILE_NAME:
-				sequence_WatcherWithFileName(context, (WatcherWithFileName) semanticObject); 
-				return; 
 			case SignalDSLPackage.WEEKLY_SCHEDULER:
 				sequence_WeeklyScheduler(context, (WeeklyScheduler) semanticObject); 
 				return; 
@@ -538,10 +534,11 @@
 	
 	/**
 	 * Contexts:
+	 *     SignalTask returns SignalDatainterchange
 	 *     SignalDatainterchange returns SignalDatainterchange
 	 *
 	 * Constraint:
-	 *     (dataAction=SignalActionEnum dataRef=[DataInterchange|ID] baseinterchange?='applyon'?)
+	 *     (actionType=SignalActionTypeEnum dataRef=[DataInterchange|ID] baseinterchange?='applyon'?)
 	 */
 	protected void sequence_SignalDatainterchange(ISerializationContext context, SignalDatainterchange semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
@@ -550,6 +547,26 @@
 	
 	/**
 	 * Contexts:
+	 *     SignalTask returns SignalFunction
+	 *     SignalFunction returns SignalFunction
+	 *
+	 * Constraint:
+	 *     (
+	 *         group=[FunctionLibraryActionGroup|ID] 
+	 *         (
+	 *             doExecuteFunction=[FunctionLibraryExecute|ID] | 
+	 *             (onImportFile?='executeOnImportFile' doExecuteFunction=[FunctionLibraryExecute|ID] supportInterchange=[DataInterchange|ID]) | 
+	 *             (onExportFile?='executeOnExportFile' doExecuteFunction=[FunctionLibraryExecute|ID] supportInterchange=[DataInterchange|ID])
+	 *         )
+	 *     )
+	 */
+	protected void sequence_SignalFunction(ISerializationContext context, SignalFunction semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
 	 *     SignalModel returns SignalModel
 	 *
 	 * Constraint:
@@ -583,7 +600,7 @@
 	 *         schedulertype=SchedulerType 
 	 *         executiontype=SignalExecutionTypeEnum? 
 	 *         interchangegroup=[DataInterchangeGroup|ID] 
-	 *         interchanges+=SignalDatainterchange*
+	 *         tasks+=SignalTask*
 	 *     )
 	 */
 	protected void sequence_SignalScheduler(ISerializationContext context, SignalScheduler semanticObject) {
@@ -597,59 +614,17 @@
 	 *     SignalWatcher returns SignalWatcher
 	 *
 	 * Constraint:
-	 *     (name=TRANSLATABLEID definition=WatcherDefinition)
+	 *     (
+	 *         name=TRANSLATABLEID 
+	 *         hasFileMask?='filemask'? 
+	 *         identifier=STRING 
+	 *         executiontype=SignalExecutionTypeEnum 
+	 *         interchangegroup=[DataInterchangeGroup|ID] 
+	 *         defaultInterchange=[DataInterchange|ID]? 
+	 *         tasks+=SignalTask*
+	 *     )
 	 */
 	protected void sequence_SignalWatcher(ISerializationContext context, SignalWatcher semanticObject) {
-		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_DEFINITION__NAME) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_DEFINITION__NAME));
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.SIGNAL_WATCHER__DEFINITION) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.SIGNAL_WATCHER__DEFINITION));
-		}
-		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
-		feeder.accept(grammarAccess.getSignalWatcherAccess().getNameTRANSLATABLEIDParserRuleCall_2_0(), semanticObject.getName());
-		feeder.accept(grammarAccess.getSignalWatcherAccess().getDefinitionWatcherDefinitionParserRuleCall_3_0(), semanticObject.getDefinition());
-		feeder.finish();
-	}
-	
-	
-	/**
-	 * Contexts:
-	 *     WatcherDefinition returns WatcherWithFileMask
-	 *     WatcherWithFileMask returns WatcherWithFileMask
-	 *
-	 * Constraint:
-	 *     (filemask=STRING executiontype=SignalExecutionTypeEnum interchangegroup=[DataInterchangeGroup|ID] interchange=SignalDatainterchange)
-	 */
-	protected void sequence_WatcherWithFileMask(ISerializationContext context, WatcherWithFileMask semanticObject) {
-		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK));
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.WATCHER_DEFINITION__EXECUTIONTYPE) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.WATCHER_DEFINITION__EXECUTIONTYPE));
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.WATCHER_DEFINITION__INTERCHANGEGROUP) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.WATCHER_DEFINITION__INTERCHANGEGROUP));
-			if (transientValues.isValueTransient(semanticObject, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__INTERCHANGE) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__INTERCHANGE));
-		}
-		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
-		feeder.accept(grammarAccess.getWatcherWithFileMaskAccess().getFilemaskSTRINGTerminalRuleCall_2_0(), semanticObject.getFilemask());
-		feeder.accept(grammarAccess.getWatcherWithFileMaskAccess().getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0(), semanticObject.getExecutiontype());
-		feeder.accept(grammarAccess.getWatcherWithFileMaskAccess().getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1(), semanticObject.eGet(SignalDSLPackage.Literals.WATCHER_DEFINITION__INTERCHANGEGROUP, false));
-		feeder.accept(grammarAccess.getWatcherWithFileMaskAccess().getInterchangeSignalDatainterchangeParserRuleCall_7_0(), semanticObject.getInterchange());
-		feeder.finish();
-	}
-	
-	
-	/**
-	 * Contexts:
-	 *     WatcherDefinition returns WatcherWithFileName
-	 *     WatcherWithFileName returns WatcherWithFileName
-	 *
-	 * Constraint:
-	 *     (filename=STRING executiontype=SignalExecutionTypeEnum interchangegroup=[DataInterchangeGroup|ID] interchanges+=SignalDatainterchange*)
-	 */
-	protected void sequence_WatcherWithFileName(ISerializationContext context, WatcherWithFileName semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
diff --git a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/services/SignalDSLGrammarAccess.java b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/services/SignalDSLGrammarAccess.java
index ce53c6b..51e9345 100644
--- a/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/services/SignalDSLGrammarAccess.java
+++ b/org.eclipse.osbp.xtext.signal/src-gen/org/eclipse/osbp/xtext/signal/services/SignalDSLGrammarAccess.java
@@ -148,16 +148,41 @@
 		private final Keyword cWatcherKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
 		private final RuleCall cNameTRANSLATABLEIDParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
-		private final Assignment cDefinitionAssignment_3 = (Assignment)cGroup.eContents().get(3);
-		private final RuleCall cDefinitionWatcherDefinitionParserRuleCall_3_0 = (RuleCall)cDefinitionAssignment_3.eContents().get(0);
+		private final Alternatives cAlternatives_3 = (Alternatives)cGroup.eContents().get(3);
+		private final Assignment cHasFileMaskAssignment_3_0 = (Assignment)cAlternatives_3.eContents().get(0);
+		private final Keyword cHasFileMaskFilemaskKeyword_3_0_0 = (Keyword)cHasFileMaskAssignment_3_0.eContents().get(0);
+		private final Keyword cFilenameKeyword_3_1 = (Keyword)cAlternatives_3.eContents().get(1);
+		private final Assignment cIdentifierAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cIdentifierSTRINGTerminalRuleCall_4_0 = (RuleCall)cIdentifierAssignment_4.eContents().get(0);
+		private final Assignment cExecutiontypeAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cExecutiontypeSignalExecutionTypeEnumEnumRuleCall_5_0 = (RuleCall)cExecutiontypeAssignment_5.eContents().get(0);
+		private final Keyword cFromKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Assignment cInterchangegroupAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final CrossReference cInterchangegroupDataInterchangeGroupCrossReference_7_0 = (CrossReference)cInterchangegroupAssignment_7.eContents().get(0);
+		private final RuleCall cInterchangegroupDataInterchangeGroupIDTerminalRuleCall_7_0_1 = (RuleCall)cInterchangegroupDataInterchangeGroupCrossReference_7_0.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
+		private final Keyword cApplyonKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
+		private final Assignment cDefaultInterchangeAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
+		private final CrossReference cDefaultInterchangeDataInterchangeCrossReference_9_1_0 = (CrossReference)cDefaultInterchangeAssignment_9_1.eContents().get(0);
+		private final RuleCall cDefaultInterchangeDataInterchangeIDTerminalRuleCall_9_1_0_1 = (RuleCall)cDefaultInterchangeDataInterchangeCrossReference_9_1_0.eContents().get(1);
+		private final Assignment cTasksAssignment_10 = (Assignment)cGroup.eContents().get(10);
+		private final RuleCall cTasksSignalTaskParserRuleCall_10_0 = (RuleCall)cTasksAssignment_10.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_11 = (Keyword)cGroup.eContents().get(11);
 		
 		//SignalWatcher:
 		//	{SignalWatcher}
-		//	'watcher' name=TRANSLATABLEID
-		//	definition=WatcherDefinition;
+		//	'watcher' name=TRANSLATABLEID (hasFileMask?='filemask' | 'filename') identifier=STRING
+		//	executiontype=SignalExecutionTypeEnum
+		//	'from' interchangegroup=[data::DataInterchangeGroup]
+		//	'{' ('applyon' defaultInterchange=[data::DataInterchange])?
+		//	tasks+=SignalTask*
+		//	'}';
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{SignalWatcher} 'watcher' name=TRANSLATABLEID definition=WatcherDefinition
+		//{SignalWatcher} 'watcher' name=TRANSLATABLEID (hasFileMask?='filemask' | 'filename') identifier=STRING
+		//executiontype=SignalExecutionTypeEnum 'from' interchangegroup=[data::DataInterchangeGroup] '{' ('applyon'
+		//defaultInterchange=[data::DataInterchange])? tasks+=SignalTask* '}'
 		public Group getGroup() { return cGroup; }
 		
 		//{SignalWatcher}
@@ -172,178 +197,68 @@
 		//TRANSLATABLEID
 		public RuleCall getNameTRANSLATABLEIDParserRuleCall_2_0() { return cNameTRANSLATABLEIDParserRuleCall_2_0; }
 		
-		//definition=WatcherDefinition
-		public Assignment getDefinitionAssignment_3() { return cDefinitionAssignment_3; }
+		//hasFileMask?='filemask' | 'filename'
+		public Alternatives getAlternatives_3() { return cAlternatives_3; }
 		
-		//WatcherDefinition
-		public RuleCall getDefinitionWatcherDefinitionParserRuleCall_3_0() { return cDefinitionWatcherDefinitionParserRuleCall_3_0; }
-	}
-	public class WatcherDefinitionElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.WatcherDefinition");
-		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
-		private final RuleCall cWatcherWithFileMaskParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
-		private final RuleCall cWatcherWithFileNameParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
-		
-		//WatcherDefinition:
-		//	WatcherWithFileMask | WatcherWithFileName;
-		@Override public ParserRule getRule() { return rule; }
-		
-		//WatcherWithFileMask | WatcherWithFileName
-		public Alternatives getAlternatives() { return cAlternatives; }
-		
-		//WatcherWithFileMask
-		public RuleCall getWatcherWithFileMaskParserRuleCall_0() { return cWatcherWithFileMaskParserRuleCall_0; }
-		
-		//WatcherWithFileName
-		public RuleCall getWatcherWithFileNameParserRuleCall_1() { return cWatcherWithFileNameParserRuleCall_1; }
-	}
-	public class WatcherWithFileMaskElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.WatcherWithFileMask");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Action cWatcherWithFileMaskAction_0 = (Action)cGroup.eContents().get(0);
-		private final Keyword cFilemaskKeyword_1 = (Keyword)cGroup.eContents().get(1);
-		private final Assignment cFilemaskAssignment_2 = (Assignment)cGroup.eContents().get(2);
-		private final RuleCall cFilemaskSTRINGTerminalRuleCall_2_0 = (RuleCall)cFilemaskAssignment_2.eContents().get(0);
-		private final Assignment cExecutiontypeAssignment_3 = (Assignment)cGroup.eContents().get(3);
-		private final RuleCall cExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0 = (RuleCall)cExecutiontypeAssignment_3.eContents().get(0);
-		private final Keyword cFromKeyword_4 = (Keyword)cGroup.eContents().get(4);
-		private final Assignment cInterchangegroupAssignment_5 = (Assignment)cGroup.eContents().get(5);
-		private final CrossReference cInterchangegroupDataInterchangeGroupCrossReference_5_0 = (CrossReference)cInterchangegroupAssignment_5.eContents().get(0);
-		private final RuleCall cInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1 = (RuleCall)cInterchangegroupDataInterchangeGroupCrossReference_5_0.eContents().get(1);
-		private final Keyword cLeftCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
-		private final Assignment cInterchangeAssignment_7 = (Assignment)cGroup.eContents().get(7);
-		private final RuleCall cInterchangeSignalDatainterchangeParserRuleCall_7_0 = (RuleCall)cInterchangeAssignment_7.eContents().get(0);
-		private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
-		
-		//WatcherWithFileMask:
-		//	{WatcherWithFileMask}
-		//	'filemask' filemask=STRING
-		//	executiontype=SignalExecutionTypeEnum
-		//	'from' interchangegroup=[data::DataInterchangeGroup]
-		//	'{'
-		//	interchange=SignalDatainterchange
-		//	'}';
-		@Override public ParserRule getRule() { return rule; }
-		
-		//{WatcherWithFileMask} 'filemask' filemask=STRING executiontype=SignalExecutionTypeEnum 'from'
-		//interchangegroup=[data::DataInterchangeGroup] '{' interchange=SignalDatainterchange '}'
-		public Group getGroup() { return cGroup; }
-		
-		//{WatcherWithFileMask}
-		public Action getWatcherWithFileMaskAction_0() { return cWatcherWithFileMaskAction_0; }
+		//hasFileMask?='filemask'
+		public Assignment getHasFileMaskAssignment_3_0() { return cHasFileMaskAssignment_3_0; }
 		
 		//'filemask'
-		public Keyword getFilemaskKeyword_1() { return cFilemaskKeyword_1; }
-		
-		//filemask=STRING
-		public Assignment getFilemaskAssignment_2() { return cFilemaskAssignment_2; }
-		
-		//STRING
-		public RuleCall getFilemaskSTRINGTerminalRuleCall_2_0() { return cFilemaskSTRINGTerminalRuleCall_2_0; }
-		
-		//executiontype=SignalExecutionTypeEnum
-		public Assignment getExecutiontypeAssignment_3() { return cExecutiontypeAssignment_3; }
-		
-		//SignalExecutionTypeEnum
-		public RuleCall getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0() { return cExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0; }
-		
-		//'from'
-		public Keyword getFromKeyword_4() { return cFromKeyword_4; }
-		
-		//interchangegroup=[data::DataInterchangeGroup]
-		public Assignment getInterchangegroupAssignment_5() { return cInterchangegroupAssignment_5; }
-		
-		//[data::DataInterchangeGroup]
-		public CrossReference getInterchangegroupDataInterchangeGroupCrossReference_5_0() { return cInterchangegroupDataInterchangeGroupCrossReference_5_0; }
-		
-		//ID
-		public RuleCall getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1() { return cInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1; }
-		
-		//'{'
-		public Keyword getLeftCurlyBracketKeyword_6() { return cLeftCurlyBracketKeyword_6; }
-		
-		//interchange=SignalDatainterchange
-		public Assignment getInterchangeAssignment_7() { return cInterchangeAssignment_7; }
-		
-		//SignalDatainterchange
-		public RuleCall getInterchangeSignalDatainterchangeParserRuleCall_7_0() { return cInterchangeSignalDatainterchangeParserRuleCall_7_0; }
-		
-		//'}'
-		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
-	}
-	public class WatcherWithFileNameElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.WatcherWithFileName");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Action cWatcherWithFileNameAction_0 = (Action)cGroup.eContents().get(0);
-		private final Keyword cFilenameKeyword_1 = (Keyword)cGroup.eContents().get(1);
-		private final Assignment cFilenameAssignment_2 = (Assignment)cGroup.eContents().get(2);
-		private final RuleCall cFilenameSTRINGTerminalRuleCall_2_0 = (RuleCall)cFilenameAssignment_2.eContents().get(0);
-		private final Assignment cExecutiontypeAssignment_3 = (Assignment)cGroup.eContents().get(3);
-		private final RuleCall cExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0 = (RuleCall)cExecutiontypeAssignment_3.eContents().get(0);
-		private final Keyword cFromKeyword_4 = (Keyword)cGroup.eContents().get(4);
-		private final Assignment cInterchangegroupAssignment_5 = (Assignment)cGroup.eContents().get(5);
-		private final CrossReference cInterchangegroupDataInterchangeGroupCrossReference_5_0 = (CrossReference)cInterchangegroupAssignment_5.eContents().get(0);
-		private final RuleCall cInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1 = (RuleCall)cInterchangegroupDataInterchangeGroupCrossReference_5_0.eContents().get(1);
-		private final Keyword cLeftCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
-		private final Assignment cInterchangesAssignment_7 = (Assignment)cGroup.eContents().get(7);
-		private final RuleCall cInterchangesSignalDatainterchangeParserRuleCall_7_0 = (RuleCall)cInterchangesAssignment_7.eContents().get(0);
-		private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
-		
-		//WatcherWithFileName:
-		//	{WatcherWithFileName}
-		//	'filename' filename=STRING
-		//	executiontype=SignalExecutionTypeEnum
-		//	'from' interchangegroup=[data::DataInterchangeGroup]
-		//	'{'
-		//	interchanges+=SignalDatainterchange*
-		//	'}';
-		@Override public ParserRule getRule() { return rule; }
-		
-		//{WatcherWithFileName} 'filename' filename=STRING executiontype=SignalExecutionTypeEnum 'from'
-		//interchangegroup=[data::DataInterchangeGroup] '{' interchanges+=SignalDatainterchange* '}'
-		public Group getGroup() { return cGroup; }
-		
-		//{WatcherWithFileName}
-		public Action getWatcherWithFileNameAction_0() { return cWatcherWithFileNameAction_0; }
+		public Keyword getHasFileMaskFilemaskKeyword_3_0_0() { return cHasFileMaskFilemaskKeyword_3_0_0; }
 		
 		//'filename'
-		public Keyword getFilenameKeyword_1() { return cFilenameKeyword_1; }
+		public Keyword getFilenameKeyword_3_1() { return cFilenameKeyword_3_1; }
 		
-		//filename=STRING
-		public Assignment getFilenameAssignment_2() { return cFilenameAssignment_2; }
+		//identifier=STRING
+		public Assignment getIdentifierAssignment_4() { return cIdentifierAssignment_4; }
 		
 		//STRING
-		public RuleCall getFilenameSTRINGTerminalRuleCall_2_0() { return cFilenameSTRINGTerminalRuleCall_2_0; }
+		public RuleCall getIdentifierSTRINGTerminalRuleCall_4_0() { return cIdentifierSTRINGTerminalRuleCall_4_0; }
 		
 		//executiontype=SignalExecutionTypeEnum
-		public Assignment getExecutiontypeAssignment_3() { return cExecutiontypeAssignment_3; }
+		public Assignment getExecutiontypeAssignment_5() { return cExecutiontypeAssignment_5; }
 		
 		//SignalExecutionTypeEnum
-		public RuleCall getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0() { return cExecutiontypeSignalExecutionTypeEnumEnumRuleCall_3_0; }
+		public RuleCall getExecutiontypeSignalExecutionTypeEnumEnumRuleCall_5_0() { return cExecutiontypeSignalExecutionTypeEnumEnumRuleCall_5_0; }
 		
 		//'from'
-		public Keyword getFromKeyword_4() { return cFromKeyword_4; }
+		public Keyword getFromKeyword_6() { return cFromKeyword_6; }
 		
 		//interchangegroup=[data::DataInterchangeGroup]
-		public Assignment getInterchangegroupAssignment_5() { return cInterchangegroupAssignment_5; }
+		public Assignment getInterchangegroupAssignment_7() { return cInterchangegroupAssignment_7; }
 		
 		//[data::DataInterchangeGroup]
-		public CrossReference getInterchangegroupDataInterchangeGroupCrossReference_5_0() { return cInterchangegroupDataInterchangeGroupCrossReference_5_0; }
+		public CrossReference getInterchangegroupDataInterchangeGroupCrossReference_7_0() { return cInterchangegroupDataInterchangeGroupCrossReference_7_0; }
 		
 		//ID
-		public RuleCall getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1() { return cInterchangegroupDataInterchangeGroupIDTerminalRuleCall_5_0_1; }
+		public RuleCall getInterchangegroupDataInterchangeGroupIDTerminalRuleCall_7_0_1() { return cInterchangegroupDataInterchangeGroupIDTerminalRuleCall_7_0_1; }
 		
 		//'{'
-		public Keyword getLeftCurlyBracketKeyword_6() { return cLeftCurlyBracketKeyword_6; }
+		public Keyword getLeftCurlyBracketKeyword_8() { return cLeftCurlyBracketKeyword_8; }
 		
-		//interchanges+=SignalDatainterchange*
-		public Assignment getInterchangesAssignment_7() { return cInterchangesAssignment_7; }
+		//('applyon' defaultInterchange=[data::DataInterchange])?
+		public Group getGroup_9() { return cGroup_9; }
 		
-		//SignalDatainterchange
-		public RuleCall getInterchangesSignalDatainterchangeParserRuleCall_7_0() { return cInterchangesSignalDatainterchangeParserRuleCall_7_0; }
+		//'applyon'
+		public Keyword getApplyonKeyword_9_0() { return cApplyonKeyword_9_0; }
+		
+		//defaultInterchange=[data::DataInterchange]
+		public Assignment getDefaultInterchangeAssignment_9_1() { return cDefaultInterchangeAssignment_9_1; }
+		
+		//[data::DataInterchange]
+		public CrossReference getDefaultInterchangeDataInterchangeCrossReference_9_1_0() { return cDefaultInterchangeDataInterchangeCrossReference_9_1_0; }
+		
+		//ID
+		public RuleCall getDefaultInterchangeDataInterchangeIDTerminalRuleCall_9_1_0_1() { return cDefaultInterchangeDataInterchangeIDTerminalRuleCall_9_1_0_1; }
+		
+		//tasks+=SignalTask*
+		public Assignment getTasksAssignment_10() { return cTasksAssignment_10; }
+		
+		//SignalTask
+		public RuleCall getTasksSignalTaskParserRuleCall_10_0() { return cTasksSignalTaskParserRuleCall_10_0; }
 		
 		//'}'
-		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
+		public Keyword getRightCurlyBracketKeyword_11() { return cRightCurlyBracketKeyword_11; }
 	}
 	public class SignalSchedulerElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalScheduler");
@@ -361,8 +276,8 @@
 		private final CrossReference cInterchangegroupDataInterchangeGroupCrossReference_6_0 = (CrossReference)cInterchangegroupAssignment_6.eContents().get(0);
 		private final RuleCall cInterchangegroupDataInterchangeGroupIDTerminalRuleCall_6_0_1 = (RuleCall)cInterchangegroupDataInterchangeGroupCrossReference_6_0.eContents().get(1);
 		private final Keyword cLeftCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
-		private final Assignment cInterchangesAssignment_8 = (Assignment)cGroup.eContents().get(8);
-		private final RuleCall cInterchangesSignalDatainterchangeParserRuleCall_8_0 = (RuleCall)cInterchangesAssignment_8.eContents().get(0);
+		private final Assignment cTasksAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final RuleCall cTasksSignalTaskParserRuleCall_8_0 = (RuleCall)cTasksAssignment_8.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
 		
 		//SignalScheduler:
@@ -372,12 +287,12 @@
 		//	executiontype=SignalExecutionTypeEnum?
 		//	'from' interchangegroup=[data::DataInterchangeGroup]
 		//	'{'
-		//	interchanges+=SignalDatainterchange*
+		//	tasks+=SignalTask*
 		//	'}';
 		@Override public ParserRule getRule() { return rule; }
 		
 		//{SignalScheduler} 'scheduler' name=TRANSLATABLEID schedulertype=SchedulerType executiontype=SignalExecutionTypeEnum?
-		//'from' interchangegroup=[data::DataInterchangeGroup] '{' interchanges+=SignalDatainterchange* '}'
+		//'from' interchangegroup=[data::DataInterchangeGroup] '{' tasks+=SignalTask* '}'
 		public Group getGroup() { return cGroup; }
 		
 		//{SignalScheduler}
@@ -419,11 +334,11 @@
 		//'{'
 		public Keyword getLeftCurlyBracketKeyword_7() { return cLeftCurlyBracketKeyword_7; }
 		
-		//interchanges+=SignalDatainterchange*
-		public Assignment getInterchangesAssignment_8() { return cInterchangesAssignment_8; }
+		//tasks+=SignalTask*
+		public Assignment getTasksAssignment_8() { return cTasksAssignment_8; }
 		
-		//SignalDatainterchange
-		public RuleCall getInterchangesSignalDatainterchangeParserRuleCall_8_0() { return cInterchangesSignalDatainterchangeParserRuleCall_8_0; }
+		//SignalTask
+		public RuleCall getTasksSignalTaskParserRuleCall_8_0() { return cTasksSignalTaskParserRuleCall_8_0; }
 		
 		//'}'
 		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
@@ -634,11 +549,30 @@
 		//INT
 		public RuleCall getMinuteINTTerminalRuleCall_5_0() { return cMinuteINTTerminalRuleCall_5_0; }
 	}
+	public class SignalTaskElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalTask");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cSignalDatainterchangeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cSignalFunctionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		
+		//SignalTask:
+		//	SignalDatainterchange | SignalFunction;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//SignalDatainterchange | SignalFunction
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//SignalDatainterchange
+		public RuleCall getSignalDatainterchangeParserRuleCall_0() { return cSignalDatainterchangeParserRuleCall_0; }
+		
+		//SignalFunction
+		public RuleCall getSignalFunctionParserRuleCall_1() { return cSignalFunctionParserRuleCall_1; }
+	}
 	public class SignalDatainterchangeElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalDatainterchange");
 		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Assignment cDataActionAssignment_0 = (Assignment)cGroup.eContents().get(0);
-		private final RuleCall cDataActionSignalActionEnumEnumRuleCall_0_0 = (RuleCall)cDataActionAssignment_0.eContents().get(0);
+		private final Assignment cActionTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cActionTypeSignalActionTypeEnumEnumRuleCall_0_0 = (RuleCall)cActionTypeAssignment_0.eContents().get(0);
 		private final Assignment cDataRefAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final CrossReference cDataRefDataInterchangeCrossReference_1_0 = (CrossReference)cDataRefAssignment_1.eContents().get(0);
 		private final RuleCall cDataRefDataInterchangeIDTerminalRuleCall_1_0_1 = (RuleCall)cDataRefDataInterchangeCrossReference_1_0.eContents().get(1);
@@ -646,18 +580,18 @@
 		private final Keyword cBaseinterchangeApplyonKeyword_2_0 = (Keyword)cBaseinterchangeAssignment_2.eContents().get(0);
 		
 		//SignalDatainterchange:
-		//	dataAction=SignalActionEnum
+		//	actionType=SignalActionTypeEnum
 		//	dataRef=[data::DataInterchange] baseinterchange?='applyon'?;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//dataAction=SignalActionEnum dataRef=[data::DataInterchange] baseinterchange?='applyon'?
+		//actionType=SignalActionTypeEnum dataRef=[data::DataInterchange] baseinterchange?='applyon'?
 		public Group getGroup() { return cGroup; }
 		
-		//dataAction=SignalActionEnum
-		public Assignment getDataActionAssignment_0() { return cDataActionAssignment_0; }
+		//actionType=SignalActionTypeEnum
+		public Assignment getActionTypeAssignment_0() { return cActionTypeAssignment_0; }
 		
-		//SignalActionEnum
-		public RuleCall getDataActionSignalActionEnumEnumRuleCall_0_0() { return cDataActionSignalActionEnumEnumRuleCall_0_0; }
+		//SignalActionTypeEnum
+		public RuleCall getActionTypeSignalActionTypeEnumEnumRuleCall_0_0() { return cActionTypeSignalActionTypeEnumEnumRuleCall_0_0; }
 		
 		//dataRef=[data::DataInterchange]
 		public Assignment getDataRefAssignment_1() { return cDataRefAssignment_1; }
@@ -674,6 +608,148 @@
 		//'applyon'
 		public Keyword getBaseinterchangeApplyonKeyword_2_0() { return cBaseinterchangeApplyonKeyword_2_0; }
 	}
+	public class SignalFunctionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalFunction");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFunctionGroupKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cGroupAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final CrossReference cGroupFunctionLibraryActionGroupCrossReference_1_0 = (CrossReference)cGroupAssignment_1.eContents().get(0);
+		private final RuleCall cGroupFunctionLibraryActionGroupIDTerminalRuleCall_1_0_1 = (RuleCall)cGroupFunctionLibraryActionGroupCrossReference_1_0.eContents().get(1);
+		private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
+		private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0);
+		private final Keyword cExecuteKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0);
+		private final Assignment cDoExecuteFunctionAssignment_2_0_1 = (Assignment)cGroup_2_0.eContents().get(1);
+		private final CrossReference cDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_0_1_0 = (CrossReference)cDoExecuteFunctionAssignment_2_0_1.eContents().get(0);
+		private final RuleCall cDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_0_1_0_1 = (RuleCall)cDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_0_1_0.eContents().get(1);
+		private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1);
+		private final Assignment cOnImportFileAssignment_2_1_0 = (Assignment)cGroup_2_1.eContents().get(0);
+		private final Keyword cOnImportFileExecuteOnImportFileKeyword_2_1_0_0 = (Keyword)cOnImportFileAssignment_2_1_0.eContents().get(0);
+		private final Assignment cDoExecuteFunctionAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
+		private final CrossReference cDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_1_1_0 = (CrossReference)cDoExecuteFunctionAssignment_2_1_1.eContents().get(0);
+		private final RuleCall cDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_1_1_0_1 = (RuleCall)cDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_1_1_0.eContents().get(1);
+		private final Keyword cFromKeyword_2_1_2 = (Keyword)cGroup_2_1.eContents().get(2);
+		private final Assignment cSupportInterchangeAssignment_2_1_3 = (Assignment)cGroup_2_1.eContents().get(3);
+		private final CrossReference cSupportInterchangeDataInterchangeCrossReference_2_1_3_0 = (CrossReference)cSupportInterchangeAssignment_2_1_3.eContents().get(0);
+		private final RuleCall cSupportInterchangeDataInterchangeIDTerminalRuleCall_2_1_3_0_1 = (RuleCall)cSupportInterchangeDataInterchangeCrossReference_2_1_3_0.eContents().get(1);
+		private final Group cGroup_2_2 = (Group)cAlternatives_2.eContents().get(2);
+		private final Assignment cOnExportFileAssignment_2_2_0 = (Assignment)cGroup_2_2.eContents().get(0);
+		private final Keyword cOnExportFileExecuteOnExportFileKeyword_2_2_0_0 = (Keyword)cOnExportFileAssignment_2_2_0.eContents().get(0);
+		private final Assignment cDoExecuteFunctionAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1);
+		private final CrossReference cDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_2_1_0 = (CrossReference)cDoExecuteFunctionAssignment_2_2_1.eContents().get(0);
+		private final RuleCall cDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_2_1_0_1 = (RuleCall)cDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_2_1_0.eContents().get(1);
+		private final Keyword cFromKeyword_2_2_2 = (Keyword)cGroup_2_2.eContents().get(2);
+		private final Assignment cSupportInterchangeAssignment_2_2_3 = (Assignment)cGroup_2_2.eContents().get(3);
+		private final CrossReference cSupportInterchangeDataInterchangeCrossReference_2_2_3_0 = (CrossReference)cSupportInterchangeAssignment_2_2_3.eContents().get(0);
+		private final RuleCall cSupportInterchangeDataInterchangeIDTerminalRuleCall_2_2_3_0_1 = (RuleCall)cSupportInterchangeDataInterchangeCrossReference_2_2_3_0.eContents().get(1);
+		
+		//SignalFunction:
+		//	'functionGroup' group=[func::FunctionLibraryActionGroup] ('execute' doExecuteFunction=[func::FunctionLibraryExecute] |
+		//	onImportFile?='executeOnImportFile' doExecuteFunction=[func::FunctionLibraryExecute] 'from'
+		//	supportInterchange=[data::DataInterchange] | onExportFile?='executeOnExportFile'
+		//	doExecuteFunction=[func::FunctionLibraryExecute] 'from' supportInterchange=[data::DataInterchange]);
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'functionGroup' group=[func::FunctionLibraryActionGroup] ('execute' doExecuteFunction=[func::FunctionLibraryExecute] |
+		//onImportFile?='executeOnImportFile' doExecuteFunction=[func::FunctionLibraryExecute] 'from'
+		//supportInterchange=[data::DataInterchange] | onExportFile?='executeOnExportFile'
+		//doExecuteFunction=[func::FunctionLibraryExecute] 'from' supportInterchange=[data::DataInterchange])
+		public Group getGroup() { return cGroup; }
+		
+		//'functionGroup'
+		public Keyword getFunctionGroupKeyword_0() { return cFunctionGroupKeyword_0; }
+		
+		//group=[func::FunctionLibraryActionGroup]
+		public Assignment getGroupAssignment_1() { return cGroupAssignment_1; }
+		
+		//[func::FunctionLibraryActionGroup]
+		public CrossReference getGroupFunctionLibraryActionGroupCrossReference_1_0() { return cGroupFunctionLibraryActionGroupCrossReference_1_0; }
+		
+		//ID
+		public RuleCall getGroupFunctionLibraryActionGroupIDTerminalRuleCall_1_0_1() { return cGroupFunctionLibraryActionGroupIDTerminalRuleCall_1_0_1; }
+		
+		//'execute' doExecuteFunction=[func::FunctionLibraryExecute] | onImportFile?='executeOnImportFile'
+		//doExecuteFunction=[func::FunctionLibraryExecute] 'from' supportInterchange=[data::DataInterchange] |
+		//onExportFile?='executeOnExportFile' doExecuteFunction=[func::FunctionLibraryExecute] 'from'
+		//supportInterchange=[data::DataInterchange]
+		public Alternatives getAlternatives_2() { return cAlternatives_2; }
+		
+		//'execute' doExecuteFunction=[func::FunctionLibraryExecute]
+		public Group getGroup_2_0() { return cGroup_2_0; }
+		
+		//'execute'
+		public Keyword getExecuteKeyword_2_0_0() { return cExecuteKeyword_2_0_0; }
+		
+		//doExecuteFunction=[func::FunctionLibraryExecute]
+		public Assignment getDoExecuteFunctionAssignment_2_0_1() { return cDoExecuteFunctionAssignment_2_0_1; }
+		
+		//[func::FunctionLibraryExecute]
+		public CrossReference getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_0_1_0() { return cDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_0_1_0; }
+		
+		//ID
+		public RuleCall getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_0_1_0_1() { return cDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_0_1_0_1; }
+		
+		//onImportFile?='executeOnImportFile' doExecuteFunction=[func::FunctionLibraryExecute] 'from'
+		//supportInterchange=[data::DataInterchange]
+		public Group getGroup_2_1() { return cGroup_2_1; }
+		
+		//onImportFile?='executeOnImportFile'
+		public Assignment getOnImportFileAssignment_2_1_0() { return cOnImportFileAssignment_2_1_0; }
+		
+		//'executeOnImportFile'
+		public Keyword getOnImportFileExecuteOnImportFileKeyword_2_1_0_0() { return cOnImportFileExecuteOnImportFileKeyword_2_1_0_0; }
+		
+		//doExecuteFunction=[func::FunctionLibraryExecute]
+		public Assignment getDoExecuteFunctionAssignment_2_1_1() { return cDoExecuteFunctionAssignment_2_1_1; }
+		
+		//[func::FunctionLibraryExecute]
+		public CrossReference getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_1_1_0() { return cDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_1_1_0; }
+		
+		//ID
+		public RuleCall getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_1_1_0_1() { return cDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_1_1_0_1; }
+		
+		//'from'
+		public Keyword getFromKeyword_2_1_2() { return cFromKeyword_2_1_2; }
+		
+		//supportInterchange=[data::DataInterchange]
+		public Assignment getSupportInterchangeAssignment_2_1_3() { return cSupportInterchangeAssignment_2_1_3; }
+		
+		//[data::DataInterchange]
+		public CrossReference getSupportInterchangeDataInterchangeCrossReference_2_1_3_0() { return cSupportInterchangeDataInterchangeCrossReference_2_1_3_0; }
+		
+		//ID
+		public RuleCall getSupportInterchangeDataInterchangeIDTerminalRuleCall_2_1_3_0_1() { return cSupportInterchangeDataInterchangeIDTerminalRuleCall_2_1_3_0_1; }
+		
+		//onExportFile?='executeOnExportFile' doExecuteFunction=[func::FunctionLibraryExecute] 'from'
+		//supportInterchange=[data::DataInterchange]
+		public Group getGroup_2_2() { return cGroup_2_2; }
+		
+		//onExportFile?='executeOnExportFile'
+		public Assignment getOnExportFileAssignment_2_2_0() { return cOnExportFileAssignment_2_2_0; }
+		
+		//'executeOnExportFile'
+		public Keyword getOnExportFileExecuteOnExportFileKeyword_2_2_0_0() { return cOnExportFileExecuteOnExportFileKeyword_2_2_0_0; }
+		
+		//doExecuteFunction=[func::FunctionLibraryExecute]
+		public Assignment getDoExecuteFunctionAssignment_2_2_1() { return cDoExecuteFunctionAssignment_2_2_1; }
+		
+		//[func::FunctionLibraryExecute]
+		public CrossReference getDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_2_1_0() { return cDoExecuteFunctionFunctionLibraryExecuteCrossReference_2_2_1_0; }
+		
+		//ID
+		public RuleCall getDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_2_1_0_1() { return cDoExecuteFunctionFunctionLibraryExecuteIDTerminalRuleCall_2_2_1_0_1; }
+		
+		//'from'
+		public Keyword getFromKeyword_2_2_2() { return cFromKeyword_2_2_2; }
+		
+		//supportInterchange=[data::DataInterchange]
+		public Assignment getSupportInterchangeAssignment_2_2_3() { return cSupportInterchangeAssignment_2_2_3; }
+		
+		//[data::DataInterchange]
+		public CrossReference getSupportInterchangeDataInterchangeCrossReference_2_2_3_0() { return cSupportInterchangeDataInterchangeCrossReference_2_2_3_0; }
+		
+		//ID
+		public RuleCall getSupportInterchangeDataInterchangeIDTerminalRuleCall_2_2_3_0_1() { return cSupportInterchangeDataInterchangeIDTerminalRuleCall_2_2_3_0_1; }
+	}
 	public class TRANSLATABLEIDElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.TRANSLATABLEID");
 		private final RuleCall cIDTerminalRuleCall = (RuleCall)rule.eContents().get(1);
@@ -697,15 +773,15 @@
 		public RuleCall getSTRINGTerminalRuleCall() { return cSTRINGTerminalRuleCall; }
 	}
 	
-	public class SignalActionEnumElements extends AbstractEnumRuleElementFinder {
-		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalActionEnum");
+	public class SignalActionTypeEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.signal.SignalDSL.SignalActionTypeEnum");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final EnumLiteralDeclaration cDATAIMPORTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
 		private final Keyword cDATAIMPORTImportKeyword_0_0 = (Keyword)cDATAIMPORTEnumLiteralDeclaration_0.eContents().get(0);
 		private final EnumLiteralDeclaration cDATAEXPORTEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
 		private final Keyword cDATAEXPORTExportKeyword_1_0 = (Keyword)cDATAEXPORTEnumLiteralDeclaration_1.eContents().get(0);
 		
-		//enum SignalActionEnum:
+		//enum SignalActionTypeEnum:
 		//	DATAIMPORT='import' |
 		//	DATAEXPORT='export';
 		public EnumRule getRule() { return rule; }
@@ -832,9 +908,6 @@
 	private final SignalPackageElements pSignalPackage;
 	private final SignalDefinitionElements pSignalDefinition;
 	private final SignalWatcherElements pSignalWatcher;
-	private final WatcherDefinitionElements pWatcherDefinition;
-	private final WatcherWithFileMaskElements pWatcherWithFileMask;
-	private final WatcherWithFileNameElements pWatcherWithFileName;
 	private final SignalSchedulerElements pSignalScheduler;
 	private final SchedulerTypeElements pSchedulerType;
 	private final CronSchedulerElements pCronScheduler;
@@ -842,8 +915,10 @@
 	private final DailySchedulerElements pDailyScheduler;
 	private final WeeklySchedulerElements pWeeklyScheduler;
 	private final MonthlySchedulerElements pMonthlyScheduler;
+	private final SignalTaskElements pSignalTask;
 	private final SignalDatainterchangeElements pSignalDatainterchange;
-	private final SignalActionEnumElements eSignalActionEnum;
+	private final SignalFunctionElements pSignalFunction;
+	private final SignalActionTypeEnumElements eSignalActionTypeEnum;
 	private final SignalExecutionTypeEnumElements eSignalExecutionTypeEnum;
 	private final DayOfWeekEnumElements eDayOfWeekEnum;
 	private final TRANSLATABLEIDElements pTRANSLATABLEID;
@@ -874,9 +949,6 @@
 		this.pSignalPackage = new SignalPackageElements();
 		this.pSignalDefinition = new SignalDefinitionElements();
 		this.pSignalWatcher = new SignalWatcherElements();
-		this.pWatcherDefinition = new WatcherDefinitionElements();
-		this.pWatcherWithFileMask = new WatcherWithFileMaskElements();
-		this.pWatcherWithFileName = new WatcherWithFileNameElements();
 		this.pSignalScheduler = new SignalSchedulerElements();
 		this.pSchedulerType = new SchedulerTypeElements();
 		this.pCronScheduler = new CronSchedulerElements();
@@ -884,8 +956,10 @@
 		this.pDailyScheduler = new DailySchedulerElements();
 		this.pWeeklyScheduler = new WeeklySchedulerElements();
 		this.pMonthlyScheduler = new MonthlySchedulerElements();
+		this.pSignalTask = new SignalTaskElements();
 		this.pSignalDatainterchange = new SignalDatainterchangeElements();
-		this.eSignalActionEnum = new SignalActionEnumElements();
+		this.pSignalFunction = new SignalFunctionElements();
+		this.eSignalActionTypeEnum = new SignalActionTypeEnumElements();
 		this.eSignalExecutionTypeEnum = new SignalExecutionTypeEnumElements();
 		this.eDayOfWeekEnum = new DayOfWeekEnumElements();
 		this.pTRANSLATABLEID = new TRANSLATABLEIDElements();
@@ -966,8 +1040,12 @@
 	
 	//SignalWatcher:
 	//	{SignalWatcher}
-	//	'watcher' name=TRANSLATABLEID
-	//	definition=WatcherDefinition;
+	//	'watcher' name=TRANSLATABLEID (hasFileMask?='filemask' | 'filename') identifier=STRING
+	//	executiontype=SignalExecutionTypeEnum
+	//	'from' interchangegroup=[data::DataInterchangeGroup]
+	//	'{' ('applyon' defaultInterchange=[data::DataInterchange])?
+	//	tasks+=SignalTask*
+	//	'}';
 	public SignalWatcherElements getSignalWatcherAccess() {
 		return pSignalWatcher;
 	}
@@ -976,48 +1054,6 @@
 		return getSignalWatcherAccess().getRule();
 	}
 	
-	//WatcherDefinition:
-	//	WatcherWithFileMask | WatcherWithFileName;
-	public WatcherDefinitionElements getWatcherDefinitionAccess() {
-		return pWatcherDefinition;
-	}
-	
-	public ParserRule getWatcherDefinitionRule() {
-		return getWatcherDefinitionAccess().getRule();
-	}
-	
-	//WatcherWithFileMask:
-	//	{WatcherWithFileMask}
-	//	'filemask' filemask=STRING
-	//	executiontype=SignalExecutionTypeEnum
-	//	'from' interchangegroup=[data::DataInterchangeGroup]
-	//	'{'
-	//	interchange=SignalDatainterchange
-	//	'}';
-	public WatcherWithFileMaskElements getWatcherWithFileMaskAccess() {
-		return pWatcherWithFileMask;
-	}
-	
-	public ParserRule getWatcherWithFileMaskRule() {
-		return getWatcherWithFileMaskAccess().getRule();
-	}
-	
-	//WatcherWithFileName:
-	//	{WatcherWithFileName}
-	//	'filename' filename=STRING
-	//	executiontype=SignalExecutionTypeEnum
-	//	'from' interchangegroup=[data::DataInterchangeGroup]
-	//	'{'
-	//	interchanges+=SignalDatainterchange*
-	//	'}';
-	public WatcherWithFileNameElements getWatcherWithFileNameAccess() {
-		return pWatcherWithFileName;
-	}
-	
-	public ParserRule getWatcherWithFileNameRule() {
-		return getWatcherWithFileNameAccess().getRule();
-	}
-	
 	//SignalScheduler:
 	//	{SignalScheduler}
 	//	'scheduler' name=TRANSLATABLEID
@@ -1025,7 +1061,7 @@
 	//	executiontype=SignalExecutionTypeEnum?
 	//	'from' interchangegroup=[data::DataInterchangeGroup]
 	//	'{'
-	//	interchanges+=SignalDatainterchange*
+	//	tasks+=SignalTask*
 	//	'}';
 	public SignalSchedulerElements getSignalSchedulerAccess() {
 		return pSignalScheduler;
@@ -1095,8 +1131,18 @@
 		return getMonthlySchedulerAccess().getRule();
 	}
 	
+	//SignalTask:
+	//	SignalDatainterchange | SignalFunction;
+	public SignalTaskElements getSignalTaskAccess() {
+		return pSignalTask;
+	}
+	
+	public ParserRule getSignalTaskRule() {
+		return getSignalTaskAccess().getRule();
+	}
+	
 	//SignalDatainterchange:
-	//	dataAction=SignalActionEnum
+	//	actionType=SignalActionTypeEnum
 	//	dataRef=[data::DataInterchange] baseinterchange?='applyon'?;
 	public SignalDatainterchangeElements getSignalDatainterchangeAccess() {
 		return pSignalDatainterchange;
@@ -1106,15 +1152,28 @@
 		return getSignalDatainterchangeAccess().getRule();
 	}
 	
-	//enum SignalActionEnum:
-	//	DATAIMPORT='import' |
-	//	DATAEXPORT='export';
-	public SignalActionEnumElements getSignalActionEnumAccess() {
-		return eSignalActionEnum;
+	//SignalFunction:
+	//	'functionGroup' group=[func::FunctionLibraryActionGroup] ('execute' doExecuteFunction=[func::FunctionLibraryExecute] |
+	//	onImportFile?='executeOnImportFile' doExecuteFunction=[func::FunctionLibraryExecute] 'from'
+	//	supportInterchange=[data::DataInterchange] | onExportFile?='executeOnExportFile'
+	//	doExecuteFunction=[func::FunctionLibraryExecute] 'from' supportInterchange=[data::DataInterchange]);
+	public SignalFunctionElements getSignalFunctionAccess() {
+		return pSignalFunction;
 	}
 	
-	public EnumRule getSignalActionEnumRule() {
-		return getSignalActionEnumAccess().getRule();
+	public ParserRule getSignalFunctionRule() {
+		return getSignalFunctionAccess().getRule();
+	}
+	
+	//enum SignalActionTypeEnum:
+	//	DATAIMPORT='import' |
+	//	DATAEXPORT='export';
+	public SignalActionTypeEnumElements getSignalActionTypeEnumAccess() {
+		return eSignalActionTypeEnum;
+	}
+	
+	public EnumRule getSignalActionTypeEnumRule() {
+		return getSignalActionTypeEnumAccess().getRule();
 	}
 	
 	//enum SignalExecutionTypeEnum:
diff --git a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/GenerateSignalDSL.mwe2 b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/GenerateSignalDSL.mwe2
index 5734954..6d50821 100644
--- a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/GenerateSignalDSL.mwe2
+++ b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/GenerateSignalDSL.mwe2
@@ -81,6 +81,7 @@
 			referencedResource = "platform:/resource/org.eclipse.osbp.xtext.oxtype/model/OXtype.genmodel"
 			referencedResource = "platform:/resource/org.eclipse.osbp.dsl.common.xtext/model/types.xcore"
 			referencedResource = "platform:/resource/org.eclipse.osbp.xtext.datainterchange/model/DataDSL.xcore"
+			referencedResource = "platform:/resource/org.eclipse.osbp.xtext.functionlibrarydsl/model/FunctionLibraryDSL.xcore"
 			
 			generateXtendStubs = false
 			
diff --git a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/SignalDSL.xtext b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/SignalDSL.xtext
index 8434ef6..03fbe2f 100644
--- a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/SignalDSL.xtext
+++ b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/SignalDSL.xtext
@@ -4,7 +4,7 @@
  *                                                                            
  *  All rights reserved. This program and the accompanying materials           
  *  are made available under the terms of the Eclipse Public License 2.0        
- *  which accompanies this distribution, and is available at                  
+ *  which accompanies this distribution, and is available at                
  *  https://www.eclipse.org/legal/epl-2.0/                                 
  *                                 
  *  SPDX-License-Identifier: EPL-2.0                                 
@@ -16,6 +16,7 @@
 grammar org.eclipse.osbp.xtext.signal.SignalDSL with org.eclipse.osbp.xtext.oxtype.OXtype
 
 import "http://osbp.eclipse.org/xtext/signal/SignalDSL"
+import "http://osbp.eclipse.org/xtext/functionlibrarydsl/FunctionLibraryDSL" as func
 import "http://osbp.eclipse.org/xtext/datainterchange/DataDSL" as data
 import "http://osbp.eclipse.org/dsl/common/types/v1" as types
 import "http://www.eclipse.org/emf/2002/Ecore" as ecore
@@ -38,30 +39,13 @@
 SignalWatcher:
 	{SignalWatcher}
 	'watcher' name=TRANSLATABLEID
-	definition=WatcherDefinition
-;
-
-WatcherDefinition: 
-	WatcherWithFileMask | WatcherWithFileName
-;
-
-WatcherWithFileMask: 
-	{WatcherWithFileMask}
-	'filemask' filemask=STRING
+	( hasFileMask?='filemask' | 'filename' )
+	identifier=STRING
 	executiontype=SignalExecutionTypeEnum
 	'from' interchangegroup=[data::DataInterchangeGroup]
 	'{'
-		interchange=SignalDatainterchange
-	'}'
-;
-
-WatcherWithFileName: 
-	{WatcherWithFileName}
-	'filename' filename=STRING
-	executiontype=SignalExecutionTypeEnum
-	'from' interchangegroup=[data::DataInterchangeGroup]
-	'{'
-		interchanges+=SignalDatainterchange*
+		('applyon' defaultInterchange=[data::DataInterchange])?
+		(tasks+=SignalTask)*
 	'}'
 ;
 
@@ -72,7 +56,7 @@
 	(executiontype=SignalExecutionTypeEnum)?
 	'from' interchangegroup=[data::DataInterchangeGroup]
 	'{'
-		interchanges+=SignalDatainterchange*
+		(tasks+=SignalTask)*
 	'}'
 ;
 
@@ -93,13 +77,27 @@
 MonthlyScheduler:
 	'monthlyon' dayofmonth=INT 'at' hour=INT ':' minute=INT;
 
+SignalTask:
+	SignalDatainterchange | SignalFunction
+;
+
 SignalDatainterchange:
-	dataAction=SignalActionEnum 
-	dataRef=[data::DataInterchange] 
+	actionType=SignalActionTypeEnum 
+	dataRef=[data::DataInterchange]
 	(baseinterchange?='applyon')?
 ;
 
-enum SignalActionEnum:
+SignalFunction: 
+	'functionGroup' group=[func::FunctionLibraryActionGroup]
+	(
+		('execute' doExecuteFunction=[func::FunctionLibraryExecute]) |  
+		(onImportFile?='executeOnImportFile' doExecuteFunction=[func::FunctionLibraryExecute] 'from' supportInterchange=[data::DataInterchange]) |
+		(onExportFile?='executeOnExportFile' doExecuteFunction=[func::FunctionLibraryExecute] 'from' supportInterchange=[data::DataInterchange])
+	)
+;
+
+
+enum SignalActionTypeEnum:
 	DATAIMPORT='import' | 
 	DATAEXPORT='export'
 ;
@@ -119,6 +117,7 @@
 	SATURDAY='saturday'
 ;
 
+
 TRANSLATABLEID:
 	ID
 ;
diff --git a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/common/SignalCommonData.java b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/common/SignalCommonData.java
index 177acb9..cf98bbf 100644
--- a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/common/SignalCommonData.java
+++ b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/common/SignalCommonData.java
@@ -31,8 +31,6 @@
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.eclipse.osbp.xtext.signal.SignalScheduler;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -40,8 +38,7 @@
 
 /**
  * This class contains all common data to be used either from
- * {@link WatcherWithFileMask} or {@link WatcherWithFileName} or
- * {@link SignalScheduler}.
+ * {@link SignelWatcher} or {@link SignalScheduler}.
  */
 public abstract class SignalCommonData {
 	/** the log */
diff --git a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/imports/ShouldImportProvider.java b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/imports/ShouldImportProvider.java
index 6f986e5..ab1ae2e 100644
--- a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/imports/ShouldImportProvider.java
+++ b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/imports/ShouldImportProvider.java
@@ -20,16 +20,23 @@
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
 import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryActionGroup;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryDSLPackage;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryExecute;
 import org.eclipse.osbp.xtext.oxtype.imports.DefaultShouldImportProvider;
 
 public class ShouldImportProvider extends DefaultShouldImportProvider {
 
 	protected boolean doShouldImport(EObject toImport, EReference eRef, EObject context) {
-		return toImport instanceof DataInterchange;
+		return toImport instanceof DataInterchange 
+		|| toImport instanceof FunctionLibraryActionGroup
+		|| toImport instanceof FunctionLibraryExecute;
 	}
 
 	protected boolean doShouldProposeAllElements(EObject object, EReference reference) {
 		EClass type = reference.getEReferenceType();
-		return DataDSLPackage.Literals.DATA_INTERCHANGE.isSuperTypeOf(type);
+		return DataDSLPackage.Literals.DATA_INTERCHANGE.isSuperTypeOf(type) 
+		|| FunctionLibraryDSLPackage.Literals.FUNCTION_LIBRARY_ACTION_GROUP.isSuperTypeOf(type)
+		|| FunctionLibraryDSLPackage.Literals.FUNCTION_LIBRARY_EXECUTE.isSuperTypeOf(type);
 	}
 }
diff --git a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/jvmmodel/SignalDSLJvmModelInferrer.xtend b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/jvmmodel/SignalDSLJvmModelInferrer.xtend
index f5d47b5..f6491b2 100644
--- a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/jvmmodel/SignalDSLJvmModelInferrer.xtend
+++ b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/jvmmodel/SignalDSLJvmModelInferrer.xtend
Binary files differ
diff --git a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/jvmmodel/SignalModelGenerator.xtend b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/jvmmodel/SignalModelGenerator.xtend
index 87a2830..08fffeb 100644
--- a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/jvmmodel/SignalModelGenerator.xtend
+++ b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/jvmmodel/SignalModelGenerator.xtend
@@ -59,8 +59,6 @@
 import org.eclipse.osbp.xtext.signal.SignalPackage
 import org.eclipse.osbp.xtext.signal.SignalScheduler
 import org.eclipse.osbp.xtext.signal.SignalWatcher
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName
 import org.eclipse.osbp.xtext.signal.WeeklyScheduler
 import org.eclipse.osbp.xtext.signal.common.SignalConstants
 import org.eclipse.osbp.xtext.signal.common.WatcherImpl
@@ -82,48 +80,15 @@
 	@Inject extension BasicDslGeneratorUtils
 	@Inject extension IQualifiedNameProvider
 
-	var public static String pckgName = null
-
 	override createAppendable(EObject context, ImportManager importManager, GeneratorConfig config) {
 		// required to initialize the needed builder to avoid deprecated methods
 		builder = context.eResource
 		// ---------
 		addImportFor(
-			importManager,
-			_typeReferenceBuilder,
-			WatcherImpl,
-			SignalConstants,
-			Paths,
-			WorkerThreadRunnable,
-			IPersistenceService,
-			IDataInterchange,
-			Files,
-			FileSystems,
-			FileOutputStream,
-			Logger,
-			LoggerFactory,
-			HashMap,
-			WatchEvent,
-			Path,
-			URL,
-			Executors,
-			Map,
-			ArrayList,
-			ProductConfiguration,
-			File,
-			FileInputStream,
-			Properties,
-			StringWriter,
-			PrintWriter,
-			SchedulerException,
-			IOException,
-			Date,
-			JobDetail,
-			JobExecutionException,
-			Trigger,
-			URI,
-			ThreadFactoryBuilder,
-			StdSchedulerFactory
+			importManager,	_typeReferenceBuilder, WatcherImpl,	SignalConstants, Paths, WorkerThreadRunnable, IPersistenceService,IDataInterchange,
+			Files, FileSystems, FileOutputStream, Logger, LoggerFactory, HashMap, WatchEvent, Path, URL, Executors, Map, ArrayList, ProductConfiguration,
+			File, FileInputStream, Properties, StringWriter, PrintWriter, SchedulerException, IOException, Date, JobDetail, JobExecutionException, Trigger,
+			URI, ThreadFactoryBuilder, StdSchedulerFactory
 		)
 		super.createAppendable(context, importManager, config)
 	}
@@ -144,19 +109,16 @@
         val dataGroups = new HashSet<DataInterchangeGroup>
         pck.signals.forEach[
         	if(it instanceof SignalWatcher){
-	        	dataGroups.add(it.definition.interchangegroup)
+	        	dataGroups.add(it.interchangegroup)
        		}
        		else if(it instanceof SignalScheduler){
 	        	dataGroups.add(it.interchangegroup)
        		}
         ]
-        
         // making sure that a configuration file is written only once
         // with all corresponding watchers and schedulers config data
-        
         for(group : dataGroups){	
 	        var file = new File('''«System.getProperty("user.home")»/.osbee/«group.name»Config.xml''');
-	        
 	        file.setWritable(true, false);
 	        if(file.exists) {
 		    	// first read the file content
@@ -169,7 +131,7 @@
 		        	
 		        	var tempgroup = null as DataInterchangeGroup 
 		       		if(it instanceof SignalWatcher){
-		       			tempgroup = it.definition.interchangegroup
+		       			tempgroup = it.interchangegroup
 		       		}
 		       		else if(it instanceof SignalScheduler){
 		       			tempgroup = it.interchangegroup
@@ -178,21 +140,18 @@
 		        	if(group === tempgroup){
 		        		
 		        		if(it instanceof SignalWatcher){
-		        			var watcher = it.definition
 			        		// maximum thread count for parallel job execution
 			        		if(!properties.containsKey(MAXPARALLELTHREADCOUNT_NAME)){
 								properties.put(MAXPARALLELTHREADCOUNT_NAME, DEFAULT_PARALLEL_THREADCOUNT.toString)
 			        		}
 							// watcher config filemask   
-							if(watcher instanceof WatcherWithFileMask ){
+							if(it.hasFileMask ){
 								if(!properties.containsKey(it.fullyQualifiedName +"Watcher"+ FILEMASK)){									
-									properties.put(it.fullyQualifiedName +"Watcher"+FILEMASK, (watcher.filemask))
+									properties.put(it.fullyQualifiedName +"Watcher"+FILEMASK, (it.identifier))
 								}
-							}
-							// watcher config filename
-							else if(watcher instanceof WatcherWithFileName){
+							}else { // watcher config filename
 								if(!properties.containsKey(it.fullyQualifiedName +"Watcher"+ FILENAME)){
-									properties.put(it.fullyQualifiedName +"Watcher"+ FILENAME, watcher.filename)
+									properties.put(it.fullyQualifiedName +"Watcher"+ FILENAME, it.identifier)
 								}
 							}
 		        		}
@@ -233,16 +192,13 @@
 								properties.put(it.fullyQualifiedName +"Scheduler"+ MONTHLY_SCHEDULER_MIN, '''«(it.schedulertype as MonthlyScheduler).minute»'''.toString)
 							}
 						}
-				    }			
+				    }
 		        ]
 		        // write the all watcher and scheduler configurations to the file
 				var fileOutput = new FileOutputStream(file);
 				properties.storeToXML(fileOutput, "dataInterchange file URLs");
 				fileOutput.close
         	}
-	        	
         }
-        
 	}
-
 }
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/scoping/SignalDSLScopeProvider.xtend b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/scoping/SignalDSLScopeProvider.xtend
index 3f85320..589c408 100644
--- a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/scoping/SignalDSLScopeProvider.xtend
+++ b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/scoping/SignalDSLScopeProvider.xtend
@@ -18,21 +18,18 @@
 
 package org.eclipse.osbp.xtext.signal.scoping
 
-import javax.inject.Inject
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.emf.ecore.EReference
-import org.eclipse.osbp.dsl.common.xtext.extensions.ModelExtensions
-import org.eclipse.osbp.xtext.datainterchange.DataInterchange
 import org.eclipse.osbp.xtext.datainterchange.DataInterchangeGroup
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryActionGroup
+import org.eclipse.osbp.xtext.signal.SignalActionTypeEnum
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage
+import org.eclipse.osbp.xtext.signal.SignalDatainterchange
+import org.eclipse.osbp.xtext.signal.SignalDefinition
+import org.eclipse.osbp.xtext.signal.SignalFunction
 import org.eclipse.osbp.xtext.signal.SignalScheduler
 import org.eclipse.osbp.xtext.signal.SignalWatcher
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName
-import org.eclipse.xtext.resource.EObjectDescription
-import org.eclipse.xtext.resource.IEObjectDescription
-import org.eclipse.xtext.scoping.IScope
-import org.eclipse.xtext.scoping.impl.MapBasedScope
+import org.eclipse.xtext.scoping.Scopes
 
 /**
  * This class contains custom scoping description.
@@ -42,39 +39,90 @@
  */
 class SignalDSLScopeProvider extends AbstractSignalDSLScopeProvider {
 
-	@Inject extension ModelExtensions
-	
 	override getScope(EObject context, EReference reference) {
 		if (reference == SignalDSLPackage.Literals.SIGNAL_DATAINTERCHANGE__DATA_REF) {
 			return getScope_DataInterchanges(context, reference)
-		} 
+		}
+		else if (reference == SignalDSLPackage.Literals.SIGNAL_FUNCTION__SUPPORT_INTERCHANGE) {
+			return getScope_AllowedDataInterchangesForSupportedFile((context as SignalFunction), reference)
+		}
+		else if (reference == SignalDSLPackage.Literals.SIGNAL_WATCHER__DEFAULT_INTERCHANGE) {
+			return getScope_AllowedInterchangesForDefault((context as SignalDefinition), reference)
+		}
+		else if (reference == SignalDSLPackage.Literals.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION) {
+			return getScope_DoExecuteFunctions((context as SignalFunction).group, reference)
+		}
 		else {
 			super.getScope(context, reference)
 		}
 	}
 	
 	def getScope_DataInterchanges(EObject context, EReference reference) {
-		var result = <IEObjectDescription>newArrayList
-		
+		var result = <EObject>newArrayList
 		if (context !== null) {
-			
 			var signal = context.eContainer
 			var group = null as DataInterchangeGroup
-			if(signal instanceof WatcherWithFileMask){
-				group = signal.interchangegroup
-			}
-			else if(signal instanceof WatcherWithFileName){
+			if(signal instanceof SignalWatcher){
 				group = signal.interchangegroup
 			}
 			else if(signal instanceof SignalScheduler){
 				group = signal.interchangegroup
 			}
 			for(value : group.datInts){
-				result.add(EObjectDescription.create((value as DataInterchange).name, (value as DataInterchange)))
+				result.add(value)
 			}
 		}
-		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
-		
+		return Scopes::scopeFor(result)
 	}
-
+	def getScope_AllowedInterchangesForDefault(SignalDefinition signal, EReference reference) {
+		var result = <EObject>newArrayList
+		if(signal !== null ){
+			var group = signal.interchangegroup
+			for(value : group.datInts){
+				result.add(value)
+			}
+			return Scopes::scopeFor(result)
+		}
+	}
+	
+	def getScope_AllowedDataInterchangesForSupportedFile(SignalFunction function, EReference reference) {
+		var result = <EObject>newArrayList
+		if (function !== null) {
+			var signal = function.eContainer
+			if(signal instanceof SignalDefinition){
+				if(signal.tasks !== null && !signal.tasks.empty){
+					for(task : signal.tasks){
+						if(task instanceof SignalDatainterchange){
+							if(function.onExportFile && task.actionType.equals(SignalActionTypeEnum.DATAEXPORT)){
+								result.add(task.dataRef)
+							}							
+							else if(function.onImportFile && task.actionType.equals(SignalActionTypeEnum.DATAIMPORT)){
+								result.add(task.dataRef)
+							}
+						}
+					}
+				}
+			}
+		}
+		return Scopes::scopeFor(result)
+	}
+	
+	def getScope_AllowedDefaultDataInterchanges(FunctionLibraryActionGroup group, EReference reference) {
+		var result = <EObject>newArrayList
+		if (group !== null) {
+			for(function : group.executes){
+				result.add(function)
+			}
+		}
+		return Scopes::scopeFor(result)
+	}
+	def getScope_DoExecuteFunctions(FunctionLibraryActionGroup group, EReference reference) {
+		var result = <EObject>newArrayList
+		if (group !== null) {
+			for(function : group.executes){
+				result.add(function)
+			}
+		}
+		return Scopes::scopeFor(result)
+	}
 }
diff --git a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/validation/SignalDSLValidator.xtend b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/validation/SignalDSLValidator.xtend
index 7ed5396..bd502e8 100644
--- a/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/validation/SignalDSLValidator.xtend
+++ b/org.eclipse.osbp.xtext.signal/src/org/eclipse/osbp/xtext/signal/validation/SignalDSLValidator.xtend
@@ -19,25 +19,22 @@
 package org.eclipse.osbp.xtext.signal.validation
 
 import java.nio.file.FileSystems
+import java.nio.file.Path
 import java.nio.file.PathMatcher
 import java.text.ParseException
 import java.util.HashSet
 import java.util.regex.PatternSyntaxException
 import javax.inject.Inject
-import org.eclipse.emf.common.util.EList
 import org.eclipse.osbp.xtext.datainterchange.validation.DataDSLValidator
 import org.eclipse.osbp.xtext.signal.CronScheduler
 import org.eclipse.osbp.xtext.signal.DailyScheduler
 import org.eclipse.osbp.xtext.signal.HourlyScheduler
 import org.eclipse.osbp.xtext.signal.MonthlyScheduler
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage
-import org.eclipse.osbp.xtext.signal.SignalDatainterchange
-import org.eclipse.osbp.xtext.signal.SignalDefinition
+import org.eclipse.osbp.xtext.signal.SignalFunction
 import org.eclipse.osbp.xtext.signal.SignalPackage
 import org.eclipse.osbp.xtext.signal.SignalScheduler
 import org.eclipse.osbp.xtext.signal.SignalWatcher
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName
 import org.eclipse.osbp.xtext.signal.WeeklyScheduler
 import org.eclipse.osbp.xtext.signal.common.SignalConstants
 import org.eclipse.osbp.xtext.signal.jvmmodel.SignalDSLJvmModelInferrer
@@ -140,67 +137,57 @@
 	}
 
 	@Check
-	def void checkFilePolicy(SignalDefinition signal) {
-		if(signal instanceof SignalWatcher){
-			var watcher = signal.definition
-			if(watcher instanceof WatcherWithFileMask){
-				if (watcher.filemask !== null && !watcher.filemask.isEmpty && watcher.executiontype !== null) {
-					if (watcher.interchange === null) {
-						error("You must define the task, on which the file mask must be applied on.",
-							watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__INTERCHANGE)
-					}
-				}
+	def void checkWatcherValidity(SignalWatcher watcher) {
+		if (watcher !== null && watcher.tasks !== null && watcher.interchangegroup !== null) {
+			var interchangeCount = watcher.taskCount(true) 
+			var functionCount = watcher.taskCount(false) 
+			var baseinterchangeCount = watcher.definedBaseInterchangeCount
+			
+			var defaultInterchange = watcher.defaultInterchange
+			var baseInterchange = watcher.definedBaseInterchange
+			
+			if(watcher.hasFileMask && interchangeCount > 1) {
+				error("Only one interchange unit is allowed to be defined within a watcher with file mask.",
+				watcher , SignalDSLPackage.Literals.SIGNAL_DEFINITION__TASKS)
 			}
-			else if(watcher instanceof WatcherWithFileName){
-				if (watcher.filename !== null && !watcher.filename.isEmpty && watcher.executiontype !== null) {
-					if (watcher.interchanges.basedInterchangeDefined == 0) {
-						error("The task on which the file name must be applied on, have to be marked with the keyword 'applyon'.",
-							watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__INTERCHANGES)
-					} else if (watcher.interchanges.basedInterchangeDefined > 1) {
-						error("Only one task may be marked with the keyword 'applyon'.", watcher,
-							SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__INTERCHANGES)
-					}
-				}
+			
+			if( (defaultInterchange === null && baseInterchange === null && interchangeCount >= 1) ||
+				(defaultInterchange === null && interchangeCount == 0 && functionCount > 0) ){
+						
+				error("You haven't specify the interchange unit, whose import path should be watched. You must define one with the keyword 'applyon'.",
+				watcher, SignalDSLPackage.Literals.SIGNAL_DEFINITION__TASKS)
 			}
+			if ( defaultInterchange !== null && baseInterchange !== null) {
+				error("You can only mark one interchange unit with the keyword 'applyon'.",
+				watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__DEFAULT_INTERCHANGE)
+			}
+			if ( baseinterchangeCount > 1) {
+				error("You can only mark one interchange unit with the keyword 'applyon'.",
+				watcher, SignalDSLPackage.Literals.SIGNAL_DEFINITION__NAME)
+			}
+				
 		}
-		else if(signal instanceof SignalScheduler){
-			if (signal.interchanges.basedInterchangeDefined >= 1) {
-				error("No task may be marked here with the keyword 'applyon'.", signal,
-				SignalDSLPackage.Literals.SIGNAL_SCHEDULER__INTERCHANGES)
-			}
-		}
-	}
-
-	def int basedInterchangeDefined(EList<SignalDatainterchange> interchanges) {
-		var count = 0
-		for (unit : interchanges) {
-			if (unit.baseinterchange) {
-				count++
-			}
-		}
-		return count
 	}
 
 	@Check
 	def void checkDuplicateFileMaskOrFileName(SignalPackage pck) {
 		var filemasks = new HashSet<String>()
-		for (signal : pck.signals) {
-			if(signal instanceof SignalWatcher){
-				var watcher = signal.definition
-				if(watcher instanceof WatcherWithFileMask){
-					if (!filemasks.contains(watcher.filemask)) {
-						filemasks.add(watcher.filemask)
+		for (watcher : pck.signals) {
+			if(watcher instanceof SignalWatcher){
+				if(watcher.hasFileMask){
+					if (!filemasks.contains(watcher.identifier)) {
+						filemasks.add(watcher.identifier)
 					} else {
 						error("This file mask is already in use in another watcher. Please change it.", watcher,
-							SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK)
+							SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER)
 					}
 				}
-				else if(watcher instanceof WatcherWithFileName){
-					if (!filemasks.contains(watcher.filename)) {
-						filemasks.add(watcher.filename)
+				else{
+					if (!filemasks.contains(watcher.identifier)) {
+						filemasks.add(watcher.identifier)
 					} else {
 						error("This file name is already in use in another watcher. Please change it.", watcher,
-							SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__FILENAME)
+							SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER)
 					}
 				}
 			}
@@ -208,141 +195,39 @@
 	}
 
 	@Check
-	def void checkFileMaskAndFileNameValidity(SignalDefinition signal) {
-		checkFileNameValidityCheck(signal);
+	def void checkFileMaskAndFileNameValidity(SignalWatcher watcher) {
+		checkFileNameExtension(watcher);
 		
-		if(signal instanceof SignalWatcher){
-			var watcher = signal.definition
-			if(watcher instanceof WatcherWithFileMask){
-				if (watcher !== null && watcher.filemask !== null && !watcher.filemask.isEmpty) {
-					try {
-						FileSystems.^default.getPathMatcher("glob:" + watcher.filemask)
-					} catch (PatternSyntaxException exception) {
-						error("The pattern of this file mask is invalid, please change it. Error: " + exception.message,
-							watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK)
-					} catch (UnsupportedOperationException exception) {
-						error("The pattern of this file mask is not recognized, please change it. Error: " + exception.message,
-							watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK)
-					} catch (IllegalArgumentException exception) {
-						error("The pattern of this file mask is invalid, please change it. Error: " + exception.message,
-							watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK)
-					}
+		if(watcher.hasFileMask){
+			if (watcher !== null && watcher.identifier !== null && !watcher.identifier.isEmpty) {
+				try {
+					FileSystems.^default.getPathMatcher("glob:" + watcher.identifier)
+				} catch (PatternSyntaxException exception) {
+					error("The pattern of this file mask is invalid, please change it. Error: " + exception.message,
+					watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER)
+				} catch (UnsupportedOperationException exception) {
+					error("The pattern of this file mask is not recognized, please change it. Error: " + exception.message,
+					watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER)
+				} catch (IllegalArgumentException exception) {
+					error("The pattern of this file mask is invalid, please change it. Error: " + exception.message,
+					watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER)
 				}
 			}
 		}
 	}
 	
-	def void checkFileNameValidityCheck(SignalDefinition signal){
-		if(signal instanceof SignalWatcher){
-			var watcher = signal.definition
-			if(watcher instanceof WatcherWithFileMask){
-				if (watcher !== null && watcher.filemask !== null && !watcher.filemask.isEmpty 
-					&& watcher.interchange !== null && watcher.interchange.dataRef !== null) {
-					var baseinterchange = watcher.interchange.dataRef
-					
-					if (baseinterchange !== null && baseinterchange.fileEndpoint !== null){
-						var allowed_extension = getValidExtensionToInterchange(baseinterchange.fileEndpoint)
-						
-						if (allowed_extension !== null) {
-							if(allowed_extension.equals(CSV_EXTENSION) && !isExtensionAllowedForInterchange(watcher.filemask, allowed_extension)){
-								error("The file mask ["+watcher.filemask+"] you have entered is not valid. Only file masks ending with the extension "+allowed_extension+" are allowed for this watcher!",
-								watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK)						
-									
-							}
-							else if (allowed_extension.equals(EDI_EXTENSION) && !isExtensionAllowedForInterchange(watcher.filemask, allowed_extension)){
-								error("The file mask ["+watcher.filemask+"] you have entered is not valid. Only file masks ending with the extension "+allowed_extension+" are allowed for this watcher!",
-								watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK)	
-							}
-							else if (allowed_extension.equals(XML_EXTENSION) && !isExtensionAllowedForInterchange(watcher.filemask, allowed_extension)){
-								error("The file mask ["+watcher.filemask+"] you have entered is not valid. Only file masks ending with the extension "+allowed_extension+" are allowed for this watcher!",
-								watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK)			
-							}
-						}
-						if (!isExtensionValid(watcher.filemask)) {
-							error("The file mask extension you have entered is not currently supported. Only file masks ending with either one of following extension are allowed: '.csv' '.edi' or '.xml' .",
-								watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK)	
-						}
-					}
-				}
+	def void checkFileNameExtension(SignalWatcher watcher){
+		if(watcher !== null && watcher.identifier !== null && !watcher.identifier.isEmpty && watcher.interchangegroup !== null) {
+			if (!isExtensionValid(watcher.identifier) && watcher.hasFileMask) {
+				error("The file mask extension you have entered is not currently supported. Only file masks ending with either one of the following extensions are allowed: '.csv' '.edi' '.txt' or '.xml' .",
+				watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER)
 			}
-			else if(watcher instanceof WatcherWithFileName){
-				if (watcher !== null && watcher.filename !== null && !watcher.filename.isEmpty && watcher.interchanges !== null
-					&& !watcher.interchanges.empty && signal.getBaseInterchange !== null) {
-					
-					var baseinterchange = signal.getBaseInterchange.dataRef
-					
-					if (baseinterchange !== null && baseinterchange.fileEndpoint !== null){
-						var allowed_extension = getValidExtensionToInterchange(baseinterchange.fileEndpoint)
-						
-						if (allowed_extension !== null) {
-							if(allowed_extension.equals(CSV_EXTENSION) && !isExtensionAllowedForInterchange(watcher.filename, allowed_extension)){
-								error("The file name ["+watcher.filename+"] you have entered is not valid. Only file names ending with the extension "+allowed_extension+" are allowed for this watcher!",
-								watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__FILENAME)						
-									
-							}
-							else if (allowed_extension.equals(EDI_EXTENSION) && !isExtensionAllowedForInterchange(watcher.filename, allowed_extension)){
-								error("The file name ["+watcher.filename+"] you have entered is not valid. Only file names ending with the extension "+allowed_extension+" are allowed for this watcher!",
-								watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__FILENAME)	
-							}
-							else if (allowed_extension.equals(XML_EXTENSION) && !isExtensionAllowedForInterchange(watcher.filename, allowed_extension)){
-								error("The file name ["+watcher.filename+"] you have entered is not valid. Only file names ending with the extension "+allowed_extension+" are allowed for this watcher!",
-								watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__FILENAME)				
-							}
-						}
-						else{
-							error("The file name extension you have entered is not currently supported. Only file names ending with either one of following extension are allowed: '.csv' '.edi' or '.xml' .",
-								watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__FILENAME)	
-						}
-					}
-				}
+			else if (!isExtensionValid(watcher.identifier) && !watcher.hasFileMask) {
+				error("The file name extension you have entered is not currently supported. Only file names ending with either one of the following extensions are allowed: '.csv' '.edi' '.txt' or '.xml' .",
+				watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER)
 			}
 		}
 	}
-	
-//		// TODO need to be tested and completed
-//	@Check
-//	def void arePatternMatching(SignalPackage pck) {
-//		for (signal : pck.signals) {
-//			if (signal instanceof SignalWatcher) {
-//				var watcher = signal.definition
-//				if (watcher instanceof WatcherWithFileMask) {
-//					if (watcher.filemask.isFileMaskValid !== null) {
-//						var temp = escapeCharacters(watcher.filemask)
-//						for (signal2 : pck.signals) {
-//							
-//							if (signal2 instanceof SignalWatcher) {
-//								var watcher2 = signal2.definition
-//							
-//								if (watcher2 instanceof WatcherWithFileMask) {
-//									if (watcher2 !== watcher && watcher2.filemask.isFileMaskValid !== null) {
-//										try{
-//											// check if they are the same
-//											if (watcher.filemask.equals(watcher2.filemask)) {
-//												error("This file mask is already in use, please change it.", watcher,
-//													SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK)
-//											} else if (watcher2.filemask.isFileMaskValid.matches(Paths.get(temp))) {
-//												warning(
-//													"This file mask is matched by the one [" + signal2.filemask +
-//														"] defined in the watcher named [" + signal2.name +
-//														"]. This may cause unintended effects, if the monitored directories are the same. We recommend you to change it, and define a unique file mask for this watcher instead.",
-//														watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK)
-//											}
-//										}
-//										catch(InvalidPathException e){
-//											warning("One of those two file masks is not valid! File mask #1 [" + watcher.filemask +"] from watcher [" + watcher.name +"] and file mask #2 [" + watcher2.filemask +"] from watcher [" + watcher2.name 
-//												+"] This may cause unintended effects. We recommend you to review both file masks, and define a unique file mask for this watcher instead.",
-//												watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK)
-//										}
-//										
-//									}
-//								}
-//							}
-//						}
-//					}
-//				}
-//			}			
-//		}
-//	}
 
 	def PathMatcher isFileMaskValid(String filemask) {
 		if (filemask !== null && !filemask.isEmpty) {
@@ -371,6 +256,22 @@
 		}
 		return null
 	}
-
+	
+	@Check
+	def void checkFunctionTaskValidity(SignalFunction function) {
+		if(function !== null && function.group !== null && function.doExecuteFunction !== null && function.doExecuteFunction.params !== null){
+			if(function.onExportFile || function.onImportFile) {
+				if(function.doExecuteFunction.params.size !== 1) {
+					error("Only functions with one parameter from type java.nio.file.Path are allowed to be selected.", function, SignalDSLPackage.Literals.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION)
+				}
+				
+				if(function.doExecuteFunction.params.size === 1	&& !function.doExecuteFunction.params.get(0).parameterType.type.identifier.equals(Path.name)){
+					error("Only functions with one parameter from type java.nio.file.Path are allowed to be selected.", function, SignalDSLPackage.Literals.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION)
+				}
+			}
+			else if(!function.onExportFile && !function.onImportFile && !function.doExecuteFunction.params.empty){				
+				error("Only functions without parameter are allowed to be selected.", function, SignalDSLPackage.Literals.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION)
+			}
+		}
+	}
 }
-	
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/jvmmodel/SignalDSLJvmModelInferrer.java b/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/jvmmodel/SignalDSLJvmModelInferrer.java
index 939326c..148555f 100644
--- a/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/jvmmodel/SignalDSLJvmModelInferrer.java
+++ b/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/jvmmodel/SignalDSLJvmModelInferrer.java
@@ -29,25 +29,26 @@
 import org.eclipse.osbp.runtime.common.event.IEventDispatcher;
 import org.eclipse.osbp.ui.api.customfields.IBlobService;
 import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeGroup;
 import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable;
 import org.eclipse.osbp.xtext.datainterchange.jvmmodel.DataDSLJvmModelInferrer;
 import org.eclipse.osbp.xtext.datainterchange.validation.DataDSLValidator;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryPackage;
 import org.eclipse.osbp.xtext.signal.CronScheduler;
 import org.eclipse.osbp.xtext.signal.DailyScheduler;
 import org.eclipse.osbp.xtext.signal.HourlyScheduler;
 import org.eclipse.osbp.xtext.signal.MonthlyScheduler;
 import org.eclipse.osbp.xtext.signal.SchedulerType;
-import org.eclipse.osbp.xtext.signal.SignalActionEnum;
+import org.eclipse.osbp.xtext.signal.SignalActionTypeEnum;
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
 import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
 import org.eclipse.osbp.xtext.signal.SignalDefinition;
 import org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum;
+import org.eclipse.osbp.xtext.signal.SignalFunction;
 import org.eclipse.osbp.xtext.signal.SignalPackage;
 import org.eclipse.osbp.xtext.signal.SignalScheduler;
+import org.eclipse.osbp.xtext.signal.SignalTask;
 import org.eclipse.osbp.xtext.signal.SignalWatcher;
-import org.eclipse.osbp.xtext.signal.WatcherDefinition;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName;
 import org.eclipse.osbp.xtext.signal.WeeklyScheduler;
 import org.eclipse.osbp.xtext.signal.common.SchedulerImpl;
 import org.eclipse.osbp.xtext.signal.common.SchedulerJobImpl;
@@ -70,6 +71,7 @@
 import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer;
 import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor;
 import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
 import org.eclipse.xtext.xbase.lib.Extension;
 import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
 import org.eclipse.xtext.xbase.lib.StringExtensions;
@@ -119,7 +121,7 @@
   @Extension
   private DataDSLValidator dv;
   
-  private HashSet<String> operationlist;
+  private HashSet<String> operationlist = CollectionLiterals.<String>newHashSet();
   
   /**
    * infer model on package base. Will be called for every defined package.
@@ -135,7 +137,7 @@
     final String pckgName = signalPackage.getName();
     EList<SignalDefinition> _signals = signalPackage.getSignals();
     for (final SignalDefinition signal : _signals) {
-      {
+      if ((((signal != null) && (signal.getTasks() != null)) && (!signal.getTasks().isEmpty()))) {
         JvmGenericType signalClass = this._jvmTypesBuilder.toClass(signal, this._iQualifiedNameProvider.getFullyQualifiedName(signal));
         if ((signal instanceof SignalWatcher)) {
           String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
@@ -213,23 +215,23 @@
     }
   }
   
-  public void toSchedulerJobOperations(final JvmGenericType type, final SignalScheduler signal) {
+  public void toSchedulerJobOperations(final JvmGenericType type, final SignalScheduler scheduler) {
     EList<JvmMember> _members = type.getMembers();
     final Procedure1<JvmConstructor> _function = (JvmConstructor it) -> {
       EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class));
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(scheduler, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
       EList<JvmFormalParameter> _parameters_1 = it.getParameters();
-      JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(signal, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class));
+      JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(scheduler, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
       EList<JvmFormalParameter> _parameters_2 = it.getParameters();
-      JvmFormalParameter _parameter_2 = this._jvmTypesBuilder.toParameter(signal, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class));
+      JvmFormalParameter _parameter_2 = this._jvmTypesBuilder.toParameter(scheduler, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_2, _parameter_2);
       EList<JvmFormalParameter> _parameters_3 = it.getParameters();
-      JvmFormalParameter _parameter_3 = this._jvmTypesBuilder.toParameter(signal, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class));
+      JvmFormalParameter _parameter_3 = this._jvmTypesBuilder.toParameter(scheduler, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_3, _parameter_3);
       EList<JvmFormalParameter> _parameters_4 = it.getParameters();
-      JvmFormalParameter _parameter_4 = this._jvmTypesBuilder.toParameter(signal, "schedulerid", this._typeReferenceBuilder.typeRef(String.class));
+      JvmFormalParameter _parameter_4 = this._jvmTypesBuilder.toParameter(scheduler, "schedulerid", this._typeReferenceBuilder.typeRef(String.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_4, _parameter_4);
       final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
@@ -242,11 +244,19 @@
         _builder.append("this.eventDispatcher = eventDispatcher;");
         _builder.newLine();
         _builder.append("setSchedulerId(schedulerid);");
+        _builder.newLine();
+        {
+          boolean _hasFunctionWithFile = this.hasFunctionWithFile(scheduler);
+          if (_hasFunctionWithFile) {
+            _builder.append("paths = new HashMap<String, Path>();");
+            _builder.newLineIfNotEmpty();
+          }
+        }
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_1);
     };
-    JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(signal, _function);
+    JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(scheduler, _function);
     this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
     EList<JvmMember> _members_1 = type.getMembers();
     final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> {
@@ -255,20 +265,16 @@
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
       final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
-        String _executeSchedulerTasksList = this.executeSchedulerTasksList(signal);
+        String _executeSchedulerTasksList = this.executeSchedulerTasksList(scheduler);
         _builder.append(_executeSchedulerTasksList);
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_2);
     };
-    JvmOperation _method = this._jvmTypesBuilder.toMethod(signal, "executeListOfTasks", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1);
+    JvmOperation _method = this._jvmTypesBuilder.toMethod(scheduler, "executeListOfTasks", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method);
-    HashSet<String> _hashSet = new HashSet<String>();
-    this.operationlist = _hashSet;
-    EList<SignalDatainterchange> _interchanges = signal.getInterchanges();
-    for (final SignalDatainterchange interchange : _interchanges) {
-      this.createSchedulerInterchangeOperations(type, signal, interchange);
-    }
+    this.operationlist.clear();
+    this.createTaskOperations(type, scheduler);
   }
   
   public void toSchedulerJobFields(final JvmGenericType type, final SignalScheduler signal) {
@@ -305,28 +311,36 @@
     field.setVisibility(JvmVisibility.PRIVATE);
     EList<JvmMember> _members_4 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field);
+    boolean _hasFunctionWithFile = this.hasFunctionWithFile(signal);
+    if (_hasFunctionWithFile) {
+      field = this._jvmTypesBuilder.toField(signal, "paths", this._typeReferenceBuilder.typeRef("HashMap<String,Path>"));
+      field.setVisibility(JvmVisibility.PRIVATE);
+      field.setStatic(true);
+      EList<JvmMember> _members_5 = type.getMembers();
+      this._jvmTypesBuilder.<JvmField>operator_add(_members_5, field);
+    }
   }
   
-  public void toWatcherJobOperations(final JvmGenericType type, final SignalWatcher signal) {
+  public void toWatcherJobOperations(final JvmGenericType type, final SignalWatcher watcher) {
     EList<JvmMember> _members = type.getMembers();
     final Procedure1<JvmConstructor> _function = (JvmConstructor it) -> {
       EList<JvmFormalParameter> _parameters = it.getParameters();
-      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class));
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
       EList<JvmFormalParameter> _parameters_1 = it.getParameters();
-      JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(signal, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class));
+      JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(watcher, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
       EList<JvmFormalParameter> _parameters_2 = it.getParameters();
-      JvmFormalParameter _parameter_2 = this._jvmTypesBuilder.toParameter(signal, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class));
+      JvmFormalParameter _parameter_2 = this._jvmTypesBuilder.toParameter(watcher, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_2, _parameter_2);
       EList<JvmFormalParameter> _parameters_3 = it.getParameters();
-      JvmFormalParameter _parameter_3 = this._jvmTypesBuilder.toParameter(signal, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class));
+      JvmFormalParameter _parameter_3 = this._jvmTypesBuilder.toParameter(watcher, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_3, _parameter_3);
       EList<JvmFormalParameter> _parameters_4 = it.getParameters();
-      JvmFormalParameter _parameter_4 = this._jvmTypesBuilder.toParameter(signal, "file", this._typeReferenceBuilder.typeRef(Path.class));
+      JvmFormalParameter _parameter_4 = this._jvmTypesBuilder.toParameter(watcher, "file", this._typeReferenceBuilder.typeRef(Path.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_4, _parameter_4);
       EList<JvmFormalParameter> _parameters_5 = it.getParameters();
-      JvmFormalParameter _parameter_5 = this._jvmTypesBuilder.toParameter(signal, "watcherid", this._typeReferenceBuilder.typeRef(String.class));
+      JvmFormalParameter _parameter_5 = this._jvmTypesBuilder.toParameter(watcher, "watcherid", this._typeReferenceBuilder.typeRef(String.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_5, _parameter_5);
       final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
@@ -339,8 +353,8 @@
         _builder.append("this.eventDispatcher = eventDispatcher;");
         _builder.newLine();
         CharSequence _xifexpression = null;
-        WatcherDefinition _definition = signal.getDefinition();
-        if ((_definition instanceof WatcherWithFileMask)) {
+        boolean _isHasFileMask = watcher.isHasFileMask();
+        if (_isHasFileMask) {
           StringConcatenation _builder_1 = new StringConcatenation();
           _builder_1.append("setParallelJobExecutionAllowed(true);");
           _xifexpression = _builder_1;
@@ -350,11 +364,19 @@
         _builder.append("setTriggerfile(file);");
         _builder.newLine();
         _builder.append("setWatcherId(watcherid);");
+        _builder.newLine();
+        {
+          boolean _hasFunctionWithFile = this.hasFunctionWithFile(watcher);
+          if (_hasFunctionWithFile) {
+            _builder.append("paths = new HashMap<String, Path>();");
+            _builder.newLineIfNotEmpty();
+          }
+        }
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_1);
     };
-    JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(signal, _function);
+    JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(watcher, _function);
     this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
     EList<JvmMember> _members_1 = type.getMembers();
     final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> {
@@ -363,26 +385,17 @@
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
       final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
-        String _executeWatcherTasksList = this.executeWatcherTasksList(((SignalWatcher) signal));
+        String _executeWatcherTasksList = this.executeWatcherTasksList(watcher);
         _builder.append(_executeWatcherTasksList);
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_2);
     };
-    JvmOperation _method = this._jvmTypesBuilder.toMethod(signal, "executeListOfTasks", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1);
+    JvmOperation _method = this._jvmTypesBuilder.toMethod(watcher, "executeListOfTasks", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method);
     HashSet<String> _hashSet = new HashSet<String>();
     this.operationlist = _hashSet;
-    WatcherDefinition watcher = signal.getDefinition();
-    if ((watcher instanceof WatcherWithFileMask)) {
-      this.createWatcherInterchangeOperations(type, signal, ((WatcherWithFileMask)watcher).getInterchange());
-    }
-    if ((watcher instanceof WatcherWithFileName)) {
-      EList<SignalDatainterchange> _interchanges = ((WatcherWithFileName)watcher).getInterchanges();
-      for (final SignalDatainterchange interchange : _interchanges) {
-        this.createWatcherInterchangeOperations(type, signal, interchange);
-      }
-    }
+    this.createTaskOperations(type, watcher);
   }
   
   public void toWatcherJobFields(final JvmGenericType type, final SignalWatcher signal) {
@@ -419,6 +432,14 @@
     field.setVisibility(JvmVisibility.PRIVATE);
     EList<JvmMember> _members_4 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field);
+    boolean _hasFunctionWithFile = this.hasFunctionWithFile(signal);
+    if (_hasFunctionWithFile) {
+      field = this._jvmTypesBuilder.toField(signal, "paths", this._typeReferenceBuilder.typeRef("HashMap<String,Path>"));
+      field.setVisibility(JvmVisibility.PRIVATE);
+      field.setStatic(true);
+      EList<JvmMember> _members_5 = type.getMembers();
+      this._jvmTypesBuilder.<JvmField>operator_add(_members_5, field);
+    }
   }
   
   public void toBinderOperations(final JvmGenericType type, final SignalDefinition signal) {
@@ -495,8 +516,9 @@
           StringConcatenation _builder_1 = new StringConcatenation();
           _builder_1.append("log.info(\"");
           String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-          _builder_1.append(_firstUpper);
-          _builder_1.append("Watcher - DataInterchange bound\");");
+          String _plus = (_firstUpper + "Watcher");
+          _builder_1.append(_plus);
+          _builder_1.append(" - DataInterchange bound\");");
           _xifexpression = _builder_1;
         } else {
           CharSequence _xifexpression_1 = null;
@@ -504,8 +526,9 @@
             StringConcatenation _builder_2 = new StringConcatenation();
             _builder_2.append("log.info(\"");
             String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-            _builder_2.append(_firstUpper_1);
-            _builder_2.append("Scheduler - DataInterchange bound\");");
+            String _plus_1 = (_firstUpper_1 + "Scheduler");
+            _builder_2.append(_plus_1);
+            _builder_2.append(" - DataInterchange bound\");");
             _xifexpression_1 = _builder_2;
           }
           _xifexpression = _xifexpression_1;
@@ -533,8 +556,9 @@
           StringConcatenation _builder_1 = new StringConcatenation();
           _builder_1.append("log.info(\"");
           String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-          _builder_1.append(_firstUpper);
-          _builder_1.append("Watcher - DataInterchange unbound\");");
+          String _plus = (_firstUpper + "Watcher");
+          _builder_1.append(_plus);
+          _builder_1.append(" - DataInterchange unbound\");");
           _xifexpression = _builder_1;
         } else {
           CharSequence _xifexpression_1 = null;
@@ -542,8 +566,9 @@
             StringConcatenation _builder_2 = new StringConcatenation();
             _builder_2.append("log.info(\"");
             String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-            _builder_2.append(_firstUpper_1);
-            _builder_2.append("Scheduler - DataInterchange unbound\");");
+            String _plus_1 = (_firstUpper_1 + "Scheduler");
+            _builder_2.append(_plus_1);
+            _builder_2.append(" - DataInterchange unbound\");");
             _xifexpression_1 = _builder_2;
           }
           _xifexpression = _xifexpression_1;
@@ -577,8 +602,9 @@
           StringConcatenation _builder_1 = new StringConcatenation();
           _builder_1.append("log.info(\"");
           String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-          _builder_1.append(_firstUpper);
-          _builder_1.append("Watcher - BlobService bound\");");
+          String _plus = (_firstUpper + "Watcher");
+          _builder_1.append(_plus);
+          _builder_1.append(" - BlobService bound\");");
           _xifexpression = _builder_1;
         } else {
           CharSequence _xifexpression_1 = null;
@@ -586,8 +612,9 @@
             StringConcatenation _builder_2 = new StringConcatenation();
             _builder_2.append("log.info(\"");
             String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-            _builder_2.append(_firstUpper_1);
-            _builder_2.append("Scheduler - BlobService bound\");");
+            String _plus_1 = (_firstUpper_1 + "Scheduler");
+            _builder_2.append(_plus_1);
+            _builder_2.append(" - BlobService bound\");");
             _xifexpression_1 = _builder_2;
           }
           _xifexpression = _xifexpression_1;
@@ -616,8 +643,9 @@
           StringConcatenation _builder_1 = new StringConcatenation();
           _builder_1.append("log.info(\"");
           String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-          _builder_1.append(_firstUpper);
-          _builder_1.append("Watcher - BlobService unbound\");");
+          String _plus = (_firstUpper + "Watcher");
+          _builder_1.append(_plus);
+          _builder_1.append(" - BlobService unbound\");");
           _xifexpression = _builder_1;
         } else {
           CharSequence _xifexpression_1 = null;
@@ -625,8 +653,9 @@
             StringConcatenation _builder_2 = new StringConcatenation();
             _builder_2.append("log.info(\"");
             String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-            _builder_2.append(_firstUpper_1);
-            _builder_2.append("Scheduler - BlobService unbound\");");
+            String _plus_1 = (_firstUpper_1 + "Scheduler");
+            _builder_2.append(_plus_1);
+            _builder_2.append(" - BlobService unbound\");");
             _xifexpression_1 = _builder_2;
           }
           _xifexpression = _xifexpression_1;
@@ -660,8 +689,9 @@
           StringConcatenation _builder_1 = new StringConcatenation();
           _builder_1.append("log.info(\"");
           String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-          _builder_1.append(_firstUpper);
-          _builder_1.append("Watcher - EventDispatcher bound\");");
+          String _plus = (_firstUpper + "Watcher");
+          _builder_1.append(_plus);
+          _builder_1.append(" - EventDispatcher bound\");");
           _xifexpression = _builder_1;
         } else {
           CharSequence _xifexpression_1 = null;
@@ -669,8 +699,9 @@
             StringConcatenation _builder_2 = new StringConcatenation();
             _builder_2.append("log.info(\"");
             String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-            _builder_2.append(_firstUpper_1);
-            _builder_2.append("Scheduler - EventDispatcher bound\");");
+            String _plus_1 = (_firstUpper_1 + "Scheduler");
+            _builder_2.append(_plus_1);
+            _builder_2.append(" - EventDispatcher bound\");");
             _xifexpression_1 = _builder_2;
           }
           _xifexpression = _xifexpression_1;
@@ -699,8 +730,9 @@
           StringConcatenation _builder_1 = new StringConcatenation();
           _builder_1.append("log.info(\"");
           String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-          _builder_1.append(_firstUpper);
-          _builder_1.append("Watcher - EventDispatcher unbound\");");
+          String _plus = (_firstUpper + "Watcher");
+          _builder_1.append(_plus);
+          _builder_1.append(" - EventDispatcher unbound\");");
           _xifexpression = _builder_1;
         } else {
           CharSequence _xifexpression_1 = null;
@@ -708,8 +740,9 @@
             StringConcatenation _builder_2 = new StringConcatenation();
             _builder_2.append("log.info(\"");
             String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-            _builder_2.append(_firstUpper_1);
-            _builder_2.append("Scheduler - EventDispatcher unbound\");");
+            String _plus_1 = (_firstUpper_1 + "Scheduler");
+            _builder_2.append(_plus_1);
+            _builder_2.append(" - EventDispatcher unbound\");");
             _xifexpression_1 = _builder_2;
           }
           _xifexpression = _xifexpression_1;
@@ -743,8 +776,9 @@
           StringConcatenation _builder_1 = new StringConcatenation();
           _builder_1.append("log.info(\"");
           String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-          _builder_1.append(_firstUpper);
-          _builder_1.append("Watcher - PersistenceService bound\");");
+          String _plus = (_firstUpper + "Watcher");
+          _builder_1.append(_plus);
+          _builder_1.append(" - PersistenceService bound\");");
           _xifexpression = _builder_1;
         } else {
           CharSequence _xifexpression_1 = null;
@@ -752,8 +786,9 @@
             StringConcatenation _builder_2 = new StringConcatenation();
             _builder_2.append("log.info(\"");
             String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-            _builder_2.append(_firstUpper_1);
-            _builder_2.append("Scheduler - PersistenceService bound\");");
+            String _plus_1 = (_firstUpper_1 + "Scheduler");
+            _builder_2.append(_plus_1);
+            _builder_2.append(" - PersistenceService bound\");");
             _xifexpression_1 = _builder_2;
           }
           _xifexpression = _xifexpression_1;
@@ -782,8 +817,9 @@
           StringConcatenation _builder_1 = new StringConcatenation();
           _builder_1.append("log.info(\"");
           String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-          _builder_1.append(_firstUpper);
-          _builder_1.append("Watcher - PersistenceService unbound\");");
+          String _plus = (_firstUpper + "Watcher");
+          _builder_1.append(_plus);
+          _builder_1.append(" - PersistenceService unbound\");");
           _xifexpression = _builder_1;
         } else {
           CharSequence _xifexpression_1 = null;
@@ -791,8 +827,9 @@
             StringConcatenation _builder_2 = new StringConcatenation();
             _builder_2.append("log.info(\"");
             String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-            _builder_2.append(_firstUpper_1);
-            _builder_2.append("Scheduler - PersistenceService unbound\");");
+            String _plus_1 = (_firstUpper_1 + "Scheduler");
+            _builder_2.append(_plus_1);
+            _builder_2.append(" - PersistenceService unbound\");");
             _xifexpression_1 = _builder_2;
           }
           _xifexpression = _xifexpression_1;
@@ -819,7 +856,7 @@
         this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
         final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
           StringConcatenation _builder = new StringConcatenation();
-          String _handleEvent = this.handleEvent(signal);
+          String _handleEvent = this.handleEvent(((SignalWatcher)signal));
           _builder.append(_handleEvent);
           it_1.append(_builder);
         };
@@ -1053,25 +1090,25 @@
     return _builder.toString();
   }
   
-  public String handleEvent(final SignalDefinition signal) {
-    if ((signal instanceof SignalWatcher)) {
-      WatcherDefinition watcher = ((SignalWatcher)signal).getDefinition();
+  public String handleEvent(final SignalWatcher watcher) {
+    if ((watcher != null)) {
       StringConcatenation _builder = new StringConcatenation();
       CharSequence _xifexpression = null;
-      if ((watcher instanceof WatcherWithFileMask)) {
+      boolean _isHasFileMask = watcher.isHasFileMask();
+      if (_isHasFileMask) {
         StringConcatenation _builder_1 = new StringConcatenation();
         _builder_1.append("String maskcfg = getFilemaskValue(getHandlerPropertyFromConfigurationFile(\"");
-        QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(signal);
+        QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(watcher);
         _builder_1.append(_fullyQualifiedName);
         _builder_1.append("Watcher\" + SignalConstants.FILEMASK));");
         _builder_1.newLineIfNotEmpty();
         _builder_1.append("String modelfilemask = \"");
-        String _filemask = ((WatcherWithFileMask)watcher).getFilemask();
-        _builder_1.append(_filemask);
+        String _identifier = watcher.getIdentifier();
+        _builder_1.append(_identifier);
         _builder_1.append("\";");
         _builder_1.newLineIfNotEmpty();
         _builder_1.append("if(isFileMaskValid(maskcfg) && isFileMaskValidWithExpectedFileExtension(maskcfg, \"");
-        String _validExtensionToInterchange = this.dv.getValidExtensionToInterchange(((WatcherWithFileMask)watcher).getInterchange().getDataRef().getFileEndpoint());
+        String _validExtensionToInterchange = this.dv.getValidExtensionToInterchange(this.baseInterchange(watcher).getFileEndpoint());
         _builder_1.append(_validExtensionToInterchange);
         _builder_1.append("\")){");
         _builder_1.newLineIfNotEmpty();
@@ -1080,7 +1117,7 @@
         _builder_1.newLine();
         _builder_1.append("   \t");
         _builder_1.append("log.info(\"");
-        String _name = ((SignalWatcher)signal).getName();
+        String _name = watcher.getName();
         _builder_1.append(_name, "   \t");
         _builder_1.append("Watcher - The file mask used for file identification is [\"+maskcfg+\"].\");");
         _builder_1.newLineIfNotEmpty();
@@ -1088,11 +1125,11 @@
         _builder_1.newLine();
         _builder_1.append("   \t");
         _builder_1.append("log.info(\"");
-        String _name_1 = ((SignalWatcher)signal).getName();
+        String _name_1 = watcher.getName();
         _builder_1.append(_name_1, "   \t");
         _builder_1.append("Watcher - The default file mask [");
-        String _filemask_1 = ((WatcherWithFileMask)watcher).getFilemask();
-        _builder_1.append(_filemask_1, "   \t");
+        String _identifier_1 = watcher.getIdentifier();
+        _builder_1.append(_identifier_1, "   \t");
         _builder_1.append("] is used for file identification.\");");
         _builder_1.newLineIfNotEmpty();
         _builder_1.append("}");
@@ -1101,44 +1138,40 @@
         _builder_1.newLine();
         _builder_1.append("\t");
         _builder_1.append("addWatcherJob(new ");
-        String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
+        String _firstUpper = StringExtensions.toFirstUpper(watcher.getName());
         _builder_1.append(_firstUpper, "\t");
         _builder_1.append("WatcherJob(persistenceService, dataInterchange, blobService, eventDispatcher, file, \"");
-        QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(signal);
+        QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(watcher);
         _builder_1.append(_fullyQualifiedName_1, "\t");
         _builder_1.append("Watcher\"));");
         _builder_1.newLineIfNotEmpty();
         _builder_1.append("}");
         _xifexpression = _builder_1;
       } else {
-        CharSequence _xifexpression_1 = null;
-        if ((watcher instanceof WatcherWithFileName)) {
-          StringConcatenation _builder_2 = new StringConcatenation();
-          _builder_2.append("String namecfg = getFilemaskValue(getHandlerPropertyFromConfigurationFile(\"");
-          QualifiedName _fullyQualifiedName_2 = this._iQualifiedNameProvider.getFullyQualifiedName(signal);
-          _builder_2.append(_fullyQualifiedName_2);
-          _builder_2.append("Watcher\" + SignalConstants.FILENAME));");
-          _builder_2.newLineIfNotEmpty();
-          _builder_2.append("String filemask = namecfg != null ? namecfg : \"");
-          String _filename = ((WatcherWithFileName)watcher).getFilename();
-          _builder_2.append(_filename);
-          _builder_2.append("\";");
-          _builder_2.newLineIfNotEmpty();
-          _builder_2.append("if(isFileNameValidToBaseFileName(file.getFileName().toString(), filemask)){");
-          _builder_2.newLine();
-          _builder_2.append("\t");
-          _builder_2.append("addWatcherJob(new ");
-          String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-          _builder_2.append(_firstUpper_1, "\t");
-          _builder_2.append("WatcherJob(persistenceService, dataInterchange, blobService, eventDispatcher, file, \"");
-          QualifiedName _fullyQualifiedName_3 = this._iQualifiedNameProvider.getFullyQualifiedName(signal);
-          _builder_2.append(_fullyQualifiedName_3, "\t");
-          _builder_2.append("Watcher\"));");
-          _builder_2.newLineIfNotEmpty();
-          _builder_2.append("}");
-          _xifexpression_1 = _builder_2;
-        }
-        _xifexpression = _xifexpression_1;
+        StringConcatenation _builder_2 = new StringConcatenation();
+        _builder_2.append("String namecfg = getFilemaskValue(getHandlerPropertyFromConfigurationFile(\"");
+        QualifiedName _fullyQualifiedName_2 = this._iQualifiedNameProvider.getFullyQualifiedName(watcher);
+        _builder_2.append(_fullyQualifiedName_2);
+        _builder_2.append("Watcher\" + SignalConstants.FILENAME));");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("String filemask = namecfg != null ? namecfg : \"");
+        String _identifier_2 = watcher.getIdentifier();
+        _builder_2.append(_identifier_2);
+        _builder_2.append("\";");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("if(isFileNameValidToBaseFileName(file.getFileName().toString(), filemask)){");
+        _builder_2.newLine();
+        _builder_2.append("\t");
+        _builder_2.append("addWatcherJob(new ");
+        String _firstUpper_1 = StringExtensions.toFirstUpper(watcher.getName());
+        _builder_2.append(_firstUpper_1, "\t");
+        _builder_2.append("WatcherJob(persistenceService, dataInterchange, blobService, eventDispatcher, file, \"");
+        QualifiedName _fullyQualifiedName_3 = this._iQualifiedNameProvider.getFullyQualifiedName(watcher);
+        _builder_2.append(_fullyQualifiedName_3, "\t");
+        _builder_2.append("Watcher\"));");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("}");
+        _xifexpression = _builder_2;
       }
       _builder.append(_xifexpression);
       _builder.newLineIfNotEmpty();
@@ -1146,14 +1179,15 @@
       _builder.newLine();
       _builder.append("\t");
       _builder.append("log.info(\"");
-      String _firstUpper_2 = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
+      String _firstUpper_2 = StringExtensions.toFirstUpper(watcher.getName());
       _builder.append(_firstUpper_2, "\t");
       _builder.append("Watcher - No action planed for file [\"+file+\"].\");");
       _builder.newLineIfNotEmpty();
       _builder.append("}");
       return _builder.toString();
     }
-    return "";
+    StringConcatenation _builder_3 = new StringConcatenation();
+    return _builder_3.toString();
   }
   
   public void toConstructor(final JvmGenericType type, final SignalDefinition signal) {
@@ -1167,8 +1201,9 @@
           StringConcatenation _builder = new StringConcatenation();
           _builder.append("super(\"");
           String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-          _builder.append(_firstUpper);
-          _builder.append("Watcher\");");
+          String _plus = (_firstUpper + "Watcher");
+          _builder.append(_plus);
+          _builder.append("\");");
           it_1.append(_builder);
         };
         this._jvmTypesBuilder.setBody(it, _function_1);
@@ -1178,747 +1213,786 @@
     this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
   }
   
-  public String executeWatcherTasksList(final SignalWatcher signal) {
+  public String executeWatcherTasksList(final SignalWatcher watcher) {
     StringConcatenation _builder = new StringConcatenation();
-    String result = _builder.toString();
-    WatcherDefinition watcher = signal.getDefinition();
-    if ((watcher instanceof WatcherWithFileMask)) {
-      boolean _equals = ((WatcherWithFileMask)watcher).getExecutiontype().equals(SignalExecutionTypeEnum.SEQ);
-      if (_equals) {
-        StringConcatenation _builder_1 = new StringConcatenation();
-        _builder_1.append("log.info(\"WatcherJobsHandler - START - Sequential execution of ");
-        String _firstUpper = StringExtensions.toFirstUpper(signal.getName());
-        _builder_1.append(_firstUpper);
-        _builder_1.append("WatcherJob ...\");");
-        _builder_1.newLineIfNotEmpty();
-        _builder_1.append("try {");
-        _builder_1.newLine();
-        _builder_1.append("\t");
-        String _appropriateInterchangeOperationName = this.getAppropriateInterchangeOperationName(((WatcherWithFileMask)watcher).getInterchange());
-        _builder_1.append(_appropriateInterchangeOperationName, "\t");
-        _builder_1.append("();");
-        _builder_1.newLineIfNotEmpty();
-        _builder_1.append("\t");
-        _builder_1.append("deleteFile(getTriggerfile(), \"");
-        String _firstUpper_1 = StringExtensions.toFirstUpper(signal.getName());
-        _builder_1.append(_firstUpper_1, "\t");
-        _builder_1.append("WatcherJob - Triggerfile\");");
-        _builder_1.newLineIfNotEmpty();
-        _builder_1.append("}catch(Exception e){");
-        _builder_1.newLine();
-        _builder_1.append("\t");
-        _builder_1.append("log.error(\"WatcherJobsHandler - ERROR during sequential execution of ");
-        String _firstUpper_2 = StringExtensions.toFirstUpper(signal.getName());
-        _builder_1.append(_firstUpper_2, "\t");
-        _builder_1.append("WatcherJob!\", e);");
-        _builder_1.newLineIfNotEmpty();
-        _builder_1.append("}");
-        _builder_1.newLine();
-        _builder_1.append("setDone(true);  // for The WatcherhandlerJob to continue ");
-        _builder_1.newLine();
-        _builder_1.append("log.info(\"WatcherJobsHandler - END - Sequential execution of ");
-        String _firstUpper_3 = StringExtensions.toFirstUpper(signal.getName());
-        _builder_1.append(_firstUpper_3);
-        _builder_1.append("WatcherJob ...\");");
-        result = result.concat(_builder_1.toString());
-      } else {
-        StringConcatenation _builder_2 = new StringConcatenation();
-        _builder_2.append("log.info(\"WatcherJobsHandler - START - Parallel execution of ");
-        String _firstUpper_4 = StringExtensions.toFirstUpper(signal.getName());
-        _builder_2.append(_firstUpper_4);
-        _builder_2.append("WatcherJob ...\");");
-        _builder_2.newLineIfNotEmpty();
-        _builder_2.append("try {");
-        _builder_2.newLine();
-        _builder_2.append("\t");
-        String _appropriateInterchangeOperationName_1 = this.getAppropriateInterchangeOperationName(((WatcherWithFileMask)watcher).getInterchange());
-        _builder_2.append(_appropriateInterchangeOperationName_1, "\t");
-        _builder_2.append("();");
-        _builder_2.newLineIfNotEmpty();
-        _builder_2.append("\t");
-        _builder_2.append("finalizeTaskExecution(\"");
-        String _firstUpper_5 = StringExtensions.toFirstUpper(signal.getName());
-        _builder_2.append(_firstUpper_5, "\t");
-        _builder_2.append("WatcherJob\");");
-        _builder_2.newLineIfNotEmpty();
-        _builder_2.append("} catch(Exception e){");
-        _builder_2.newLine();
-        _builder_2.append("\t");
-        _builder_2.append("log.error(\"WatcherJobsHandler - ERROR during parallel execution of ");
-        String _firstUpper_6 = StringExtensions.toFirstUpper(signal.getName());
-        _builder_2.append(_firstUpper_6, "\t");
-        _builder_2.append("WatcherJob!\", e);");
-        _builder_2.newLineIfNotEmpty();
-        _builder_2.append("\t");
-        _builder_2.append("setDone(true); // for The WatcherhandlerJob to continue");
-        _builder_2.newLine();
-        _builder_2.append("\t");
-        _builder_2.append("log.info(\"WatcherJobsHandler - END - Parallel execution of ");
-        String _firstUpper_7 = StringExtensions.toFirstUpper(signal.getName());
-        _builder_2.append(_firstUpper_7, "\t");
-        _builder_2.append("WatcherJob ...\");");
-        _builder_2.newLineIfNotEmpty();
-        _builder_2.append("}");
-        result = result.concat(_builder_2.toString());
-      }
-    } else {
-      if ((watcher instanceof WatcherWithFileName)) {
-        boolean _equals_1 = ((WatcherWithFileName)watcher).getExecutiontype().equals(SignalExecutionTypeEnum.SEQ);
-        if (_equals_1) {
-          StringConcatenation _builder_3 = new StringConcatenation();
-          _builder_3.append("log.info(\"WatcherJobsHandler - START - Sequential execution of ");
-          String _firstUpper_8 = StringExtensions.toFirstUpper(signal.getName());
-          _builder_3.append(_firstUpper_8);
-          _builder_3.append("WatcherJob ...\");");
-          _builder_3.newLineIfNotEmpty();
-          _builder_3.append("try {");
-          _builder_3.newLine();
-          result = result.concat(_builder_3.toString());
-          EList<SignalDatainterchange> _interchanges = ((WatcherWithFileName)watcher).getInterchanges();
-          for (final SignalDatainterchange interchange : _interchanges) {
-            StringConcatenation _builder_4 = new StringConcatenation();
-            _builder_4.append("\t");
-            String _appropriateInterchangeOperationName_2 = this.getAppropriateInterchangeOperationName(interchange);
-            _builder_4.append(_appropriateInterchangeOperationName_2, "\t");
-            _builder_4.append("();");
-            _builder_4.newLineIfNotEmpty();
-            result = result.concat(_builder_4.toString());
-          }
-          StringConcatenation _builder_5 = new StringConcatenation();
-          _builder_5.newLine();
-          _builder_5.append("\t");
-          _builder_5.append("deleteFile(getTriggerfile(), \"");
-          String _firstUpper_9 = StringExtensions.toFirstUpper(signal.getName());
-          _builder_5.append(_firstUpper_9, "\t");
-          _builder_5.append("WatcherJob - Triggerfile\");");
-          _builder_5.newLineIfNotEmpty();
-          _builder_5.append("} catch(Exception e){");
-          _builder_5.newLine();
-          _builder_5.append("\t");
-          _builder_5.append("log.error(\"WatcherJobsHandler - ERROR during sequential execution of ");
-          String _firstUpper_10 = StringExtensions.toFirstUpper(signal.getName());
-          _builder_5.append(_firstUpper_10, "\t");
-          _builder_5.append("WatcherJob!\", e);");
-          _builder_5.newLineIfNotEmpty();
-          _builder_5.append("}");
-          _builder_5.newLine();
-          _builder_5.append("setDone(true);  // for the WatcherhandlerJob to continue ");
-          _builder_5.newLine();
-          _builder_5.append("log.info(\"WatcherJobsHandler - END - Sequential execution of ");
-          String _firstUpper_11 = StringExtensions.toFirstUpper(signal.getName());
-          _builder_5.append(_firstUpper_11);
-          _builder_5.append("WatcherJob ...\");");
-          result = result.concat(_builder_5.toString());
+    CharSequence _xifexpression = null;
+    if ((watcher != null)) {
+      CharSequence _xblockexpression = null;
+      {
+        String operationList = "";
+        boolean functionWithFile = this.hasFunctionWithFile(watcher);
+        EList<SignalTask> _tasks = watcher.getTasks();
+        for (final SignalTask task : _tasks) {
+          String _taskListOperationName = this.getTaskListOperationName(task, functionWithFile);
+          String _plus = (operationList + _taskListOperationName);
+          operationList = _plus;
+        }
+        CharSequence _xifexpression_1 = null;
+        boolean _equals = watcher.getExecutiontype().equals(SignalExecutionTypeEnum.SEQ);
+        if (_equals) {
+          StringConcatenation _builder_1 = new StringConcatenation();
+          _builder_1.append("log.info(\"WatcherJobsHandler - START - Sequential execution of ");
+          String _firstUpper = StringExtensions.toFirstUpper(watcher.getName());
+          _builder_1.append(_firstUpper);
+          _builder_1.append("WatcherJob ...\");");
+          _builder_1.newLineIfNotEmpty();
+          _builder_1.append("try {");
+          _builder_1.newLine();
+          _builder_1.append("\t");
+          _builder_1.append(operationList, "\t");
+          _builder_1.newLineIfNotEmpty();
+          _builder_1.append("\t");
+          _builder_1.append("deleteFile(getTriggerfile(), \"");
+          String _firstUpper_1 = StringExtensions.toFirstUpper(watcher.getName());
+          _builder_1.append(_firstUpper_1, "\t");
+          _builder_1.append("WatcherJob - Triggerfile\");");
+          _builder_1.newLineIfNotEmpty();
+          _builder_1.append("} catch(Exception e){");
+          _builder_1.newLine();
+          _builder_1.append("\t");
+          _builder_1.append("log.error(\"WatcherJobsHandler - ERROR during sequential execution of ");
+          String _firstUpper_2 = StringExtensions.toFirstUpper(watcher.getName());
+          _builder_1.append(_firstUpper_2, "\t");
+          _builder_1.append("WatcherJob!\", e);");
+          _builder_1.newLineIfNotEmpty();
+          _builder_1.append("}");
+          _builder_1.newLine();
+          _builder_1.append("setDone(true);  // for the WatcherhandlerJob to continue ");
+          _builder_1.newLine();
+          _builder_1.append("log.info(\"WatcherJobsHandler - END - Sequential execution of ");
+          String _firstUpper_3 = StringExtensions.toFirstUpper(watcher.getName());
+          _builder_1.append(_firstUpper_3);
+          _builder_1.append("WatcherJob ...\");");
+          _xifexpression_1 = _builder_1;
         } else {
-          StringConcatenation _builder_6 = new StringConcatenation();
-          _builder_6.append("log.info(\"WatcherJobsHandler - START - Parallel execution of ");
-          String _firstUpper_12 = StringExtensions.toFirstUpper(signal.getName());
-          _builder_6.append(_firstUpper_12);
-          _builder_6.append("WatcherJob ...\");");
-          _builder_6.newLineIfNotEmpty();
-          _builder_6.append("try {");
-          _builder_6.newLine();
-          result = result.concat(_builder_6.toString());
-          EList<SignalDatainterchange> _interchanges_1 = ((WatcherWithFileName)watcher).getInterchanges();
-          for (final SignalDatainterchange interchange_1 : _interchanges_1) {
-            StringConcatenation _builder_7 = new StringConcatenation();
-            _builder_7.append("\t");
-            String _appropriateInterchangeOperationName_3 = this.getAppropriateInterchangeOperationName(interchange_1);
-            _builder_7.append(_appropriateInterchangeOperationName_3, "\t");
-            _builder_7.append("();");
-            _builder_7.newLineIfNotEmpty();
-            result = result.concat(_builder_7.toString());
-          }
-          StringConcatenation _builder_8 = new StringConcatenation();
-          _builder_8.newLine();
-          _builder_8.append("\t");
-          _builder_8.append("finalizeTaskExecution(\"");
-          String _firstUpper_13 = StringExtensions.toFirstUpper(signal.getName());
-          _builder_8.append(_firstUpper_13, "\t");
-          _builder_8.append("WatcherJob\");");
-          _builder_8.newLineIfNotEmpty();
-          _builder_8.append("} catch(Exception e){");
-          _builder_8.newLine();
-          _builder_8.append("\t");
-          _builder_8.append("log.error(\"WatcherJobsHandler - ERROR during parallel execution of ");
-          String _firstUpper_14 = StringExtensions.toFirstUpper(signal.getName());
-          _builder_8.append(_firstUpper_14, "\t");
-          _builder_8.append("WatcherJob!\", e);");
-          _builder_8.newLineIfNotEmpty();
-          _builder_8.append("\t");
-          _builder_8.append("setDone(true); // for the WatcherhandlerJob to continue");
-          _builder_8.newLine();
-          _builder_8.append("\t");
-          _builder_8.append("log.info(\"WatcherJobsHandler - END - Parallel execution of ");
-          String _firstUpper_15 = StringExtensions.toFirstUpper(signal.getName());
-          _builder_8.append(_firstUpper_15, "\t");
-          _builder_8.append("WatcherJob ...\");");
-          _builder_8.newLineIfNotEmpty();
-          _builder_8.append("}");
-          result = result.concat(_builder_8.toString());
-        }
-      }
-    }
-    return result;
-  }
-  
-  public String executeSchedulerTasksList(final SignalDefinition signal) {
-    StringConcatenation _builder = new StringConcatenation();
-    String result = _builder.toString();
-    if ((signal instanceof SignalScheduler)) {
-      boolean _equals = ((SignalScheduler)signal).getExecutiontype().equals(SignalExecutionTypeEnum.SEQ);
-      if (_equals) {
-        StringConcatenation _builder_1 = new StringConcatenation();
-        _builder_1.append("log.info(\"START - Sequential execution of ");
-        String _firstUpper = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-        _builder_1.append(_firstUpper);
-        _builder_1.append("SchedulerJob ...\");");
-        _builder_1.newLineIfNotEmpty();
-        _builder_1.append("try {");
-        _builder_1.newLine();
-        result = result.concat(_builder_1.toString());
-        EList<SignalDatainterchange> _interchanges = ((SignalScheduler)signal).getInterchanges();
-        for (final SignalDatainterchange interchange : _interchanges) {
           StringConcatenation _builder_2 = new StringConcatenation();
-          _builder_2.append("\t");
-          String _appropriateInterchangeOperationName = this.getAppropriateInterchangeOperationName(interchange);
-          _builder_2.append(_appropriateInterchangeOperationName, "\t");
-          _builder_2.append("();");
+          _builder_2.append("log.info(\"WatcherJobsHandler - START - Parallel execution of ");
+          String _firstUpper_4 = StringExtensions.toFirstUpper(watcher.getName());
+          _builder_2.append(_firstUpper_4);
+          _builder_2.append("WatcherJob ...\");");
           _builder_2.newLineIfNotEmpty();
-          result = result.concat(_builder_2.toString());
+          _builder_2.append("try {");
+          _builder_2.newLine();
+          _builder_2.append("\t");
+          _builder_2.append(operationList, "\t");
+          _builder_2.newLineIfNotEmpty();
+          _builder_2.append("\t");
+          _builder_2.append("finalizeTaskExecution(\"");
+          String _firstUpper_5 = StringExtensions.toFirstUpper(watcher.getName());
+          _builder_2.append(_firstUpper_5, "\t");
+          _builder_2.append("WatcherJob\");");
+          _builder_2.newLineIfNotEmpty();
+          _builder_2.append("} catch(Exception e){");
+          _builder_2.newLine();
+          _builder_2.append("\t");
+          _builder_2.append("log.error(\"WatcherJobsHandler - ERROR during parallel execution of ");
+          String _firstUpper_6 = StringExtensions.toFirstUpper(watcher.getName());
+          _builder_2.append(_firstUpper_6, "\t");
+          _builder_2.append("WatcherJob!\", e);");
+          _builder_2.newLineIfNotEmpty();
+          _builder_2.append("\t");
+          _builder_2.append("setDone(true); // for the WatcherhandlerJob to continue");
+          _builder_2.newLine();
+          _builder_2.append("\t");
+          _builder_2.append("log.info(\"WatcherJobsHandler - END - Parallel execution of ");
+          String _firstUpper_7 = StringExtensions.toFirstUpper(watcher.getName());
+          _builder_2.append(_firstUpper_7, "\t");
+          _builder_2.append("WatcherJob ...\");");
+          _builder_2.newLineIfNotEmpty();
+          _builder_2.append("}");
+          _xifexpression_1 = _builder_2;
         }
-        StringConcatenation _builder_3 = new StringConcatenation();
-        _builder_3.append("} catch(Exception e){");
-        _builder_3.newLine();
-        _builder_3.append("\t");
-        _builder_3.append("log.error(\"ERROR during sequential execution of ");
-        String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-        _builder_3.append(_firstUpper_1, "\t");
-        _builder_3.append("SchedulerJob!\", e);");
-        _builder_3.newLineIfNotEmpty();
-        _builder_3.append("}");
-        _builder_3.newLine();
-        _builder_3.append("log.info(\"END - Sequential execution of ");
-        String _firstUpper_2 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-        _builder_3.append(_firstUpper_2);
-        _builder_3.append("SchedulerJob.\");");
-        result = result.concat(_builder_3.toString());
-      } else {
-        StringConcatenation _builder_4 = new StringConcatenation();
-        _builder_4.append("log.info(\"START - Parallel execution of ");
-        String _firstUpper_3 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-        _builder_4.append(_firstUpper_3);
-        _builder_4.append("SchedulerJob ...\");");
-        _builder_4.newLineIfNotEmpty();
-        _builder_4.append("try {");
-        _builder_4.newLine();
-        result = result.concat(_builder_4.toString());
-        EList<SignalDatainterchange> _interchanges_1 = ((SignalScheduler)signal).getInterchanges();
-        for (final SignalDatainterchange interchange_1 : _interchanges_1) {
-          StringConcatenation _builder_5 = new StringConcatenation();
-          _builder_5.append("\t");
-          String _appropriateInterchangeOperationName_1 = this.getAppropriateInterchangeOperationName(interchange_1);
-          _builder_5.append(_appropriateInterchangeOperationName_1, "\t");
-          _builder_5.append("();");
-          _builder_5.newLineIfNotEmpty();
-          result = result.concat(_builder_5.toString());
-        }
-        StringConcatenation _builder_6 = new StringConcatenation();
-        _builder_6.newLine();
-        _builder_6.append("\t");
-        _builder_6.append("finalizeTaskExecution(\"");
-        String _firstUpper_4 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-        _builder_6.append(_firstUpper_4, "\t");
-        _builder_6.append("SchedulerJob\");");
-        _builder_6.newLineIfNotEmpty();
-        _builder_6.append("} catch(Exception e){");
-        _builder_6.newLine();
-        _builder_6.append("\t");
-        _builder_6.append("log.error(\"ERROR during parallel execution of ");
-        String _firstUpper_5 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-        _builder_6.append(_firstUpper_5, "\t");
-        _builder_6.append("SchedulerJob!\", e);");
-        _builder_6.newLineIfNotEmpty();
-        _builder_6.append("log.info(\"END - Parallel execution of ");
-        String _firstUpper_6 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-        _builder_6.append(_firstUpper_6);
-        _builder_6.append("SchedulerJob.\");");
-        _builder_6.newLineIfNotEmpty();
-        _builder_6.append("}");
-        result = result.concat(_builder_6.toString());
+        _xblockexpression = _xifexpression_1;
       }
+      _xifexpression = _xblockexpression;
     }
-    return result;
+    _builder.append(_xifexpression);
+    _builder.newLineIfNotEmpty();
+    return _builder.toString();
   }
   
-  public String getAppropriateInterchangeOperationName(final SignalDatainterchange interchange) {
-    String operation_name = "";
-    if ((Objects.equal(interchange.getDataAction(), SignalActionEnum.DATAIMPORT) && (interchange.getDataRef() != null))) {
-      String _firstUpper = StringExtensions.toFirstUpper(interchange.getDataRef().getName());
-      String _plus = ("import" + _firstUpper);
-      operation_name = _plus;
+  public String executeSchedulerTasksList(final SignalScheduler scheduler) {
+    StringConcatenation _builder = new StringConcatenation();
+    CharSequence _xifexpression = null;
+    if ((scheduler != null)) {
+      CharSequence _xblockexpression = null;
+      {
+        String operationList = "";
+        boolean functionWithFile = this.hasFunctionWithFile(scheduler);
+        EList<SignalTask> _tasks = scheduler.getTasks();
+        for (final SignalTask task : _tasks) {
+          String _taskListOperationName = this.getTaskListOperationName(task, functionWithFile);
+          String _plus = (operationList + _taskListOperationName);
+          operationList = _plus;
+        }
+        CharSequence _xifexpression_1 = null;
+        boolean _equals = scheduler.getExecutiontype().equals(SignalExecutionTypeEnum.SEQ);
+        if (_equals) {
+          StringConcatenation _builder_1 = new StringConcatenation();
+          _builder_1.append("log.info(\"START - Sequential execution of ");
+          String _firstUpper = StringExtensions.toFirstUpper(scheduler.getName());
+          _builder_1.append(_firstUpper);
+          _builder_1.append("SchedulerJob ...\");");
+          _builder_1.newLineIfNotEmpty();
+          _builder_1.append("try {");
+          _builder_1.newLine();
+          _builder_1.append("\t");
+          _builder_1.append(operationList, "\t");
+          _builder_1.newLineIfNotEmpty();
+          _builder_1.append("} catch(Exception e){");
+          _builder_1.newLine();
+          _builder_1.append("\t");
+          _builder_1.append("log.error(\"ERROR during sequential execution of ");
+          String _firstUpper_1 = StringExtensions.toFirstUpper(scheduler.getName());
+          _builder_1.append(_firstUpper_1, "\t");
+          _builder_1.append("SchedulerJob!\", e);");
+          _builder_1.newLineIfNotEmpty();
+          _builder_1.append("}");
+          _builder_1.newLine();
+          _builder_1.append("log.info(\"END - Sequential execution of ");
+          String _firstUpper_2 = StringExtensions.toFirstUpper(scheduler.getName());
+          _builder_1.append(_firstUpper_2);
+          _builder_1.append("SchedulerJob.\");");
+          _xifexpression_1 = _builder_1;
+        } else {
+          StringConcatenation _builder_2 = new StringConcatenation();
+          _builder_2.append("log.info(\"START - Parallel execution of ");
+          String _firstUpper_3 = StringExtensions.toFirstUpper(scheduler.getName());
+          _builder_2.append(_firstUpper_3);
+          _builder_2.append("SchedulerJob ...\");");
+          _builder_2.newLineIfNotEmpty();
+          _builder_2.append("try {");
+          _builder_2.newLine();
+          _builder_2.append("\t");
+          _builder_2.append(operationList, "\t");
+          _builder_2.newLineIfNotEmpty();
+          _builder_2.append("\t");
+          _builder_2.append("finalizeTaskExecution(\"");
+          String _firstUpper_4 = StringExtensions.toFirstUpper(scheduler.getName());
+          _builder_2.append(_firstUpper_4, "\t");
+          _builder_2.append("SchedulerJob\");");
+          _builder_2.newLineIfNotEmpty();
+          _builder_2.append("} catch(Exception e){");
+          _builder_2.newLine();
+          _builder_2.append("\t");
+          _builder_2.append("log.error(\"ERROR during parallel execution of ");
+          String _firstUpper_5 = StringExtensions.toFirstUpper(scheduler.getName());
+          _builder_2.append(_firstUpper_5, "\t");
+          _builder_2.append("SchedulerJob!\", e);");
+          _builder_2.newLineIfNotEmpty();
+          _builder_2.append("log.info(\"END - Parallel execution of ");
+          String _firstUpper_6 = StringExtensions.toFirstUpper(scheduler.getName());
+          _builder_2.append(_firstUpper_6);
+          _builder_2.append("SchedulerJob.\");");
+          _builder_2.newLineIfNotEmpty();
+          _builder_2.append("}");
+          _xifexpression_1 = _builder_2;
+        }
+        _xblockexpression = _xifexpression_1;
+      }
+      _xifexpression = _xblockexpression;
+    }
+    _builder.append(_xifexpression);
+    _builder.newLineIfNotEmpty();
+    return _builder.toString();
+  }
+  
+  public String getTaskListOperationName(final SignalTask task, final boolean existFunctionWithFile) {
+    if ((task instanceof SignalFunction)) {
+      if (((task != null) && (((SignalFunction)task).getDoExecuteFunction() != null))) {
+        if (((((SignalFunction)task).isOnExportFile() || ((SignalFunction)task).isOnImportFile()) && (!((SignalFunction)task).getDoExecuteFunction().getParams().isEmpty()))) {
+          String operationName = "";
+          boolean _isOnExportFile = ((SignalFunction)task).isOnExportFile();
+          if (_isOnExportFile) {
+            String _firstUpper = StringExtensions.toFirstUpper(((SignalFunction)task).getSupportInterchange().getName());
+            String _plus = ("export" + _firstUpper);
+            operationName = _plus;
+          } else {
+            boolean _isOnImportFile = ((SignalFunction)task).isOnImportFile();
+            if (_isOnImportFile) {
+              String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalFunction)task).getSupportInterchange().getName());
+              String _plus_1 = ("import" + _firstUpper_1);
+              operationName = _plus_1;
+            }
+          }
+          StringConcatenation _builder = new StringConcatenation();
+          EObject _eContainer = ((SignalFunction)task).getGroup().eContainer();
+          QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(((FunctionLibraryPackage) _eContainer));
+          _builder.append(_fullyQualifiedName);
+          _builder.append(".");
+          String _firstUpper_2 = StringExtensions.toFirstUpper(((SignalFunction)task).getGroup().getName().toString());
+          _builder.append(_firstUpper_2);
+          _builder.append(".");
+          String _string = ((SignalFunction)task).getDoExecuteFunction().getName().toString();
+          _builder.append(_string);
+          _builder.append("(paths.get(\"");
+          _builder.append(operationName);
+          _builder.append("\"));");
+          _builder.newLineIfNotEmpty();
+          return _builder.toString();
+        } else {
+          if (((!((SignalFunction)task).isOnExportFile()) && (!((SignalFunction)task).isOnImportFile()))) {
+            StringConcatenation _builder_1 = new StringConcatenation();
+            EObject _eContainer_1 = ((SignalFunction)task).getGroup().eContainer();
+            QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(((FunctionLibraryPackage) _eContainer_1));
+            _builder_1.append(_fullyQualifiedName_1);
+            _builder_1.append(".");
+            String _firstUpper_3 = StringExtensions.toFirstUpper(((SignalFunction)task).getGroup().getName().toString());
+            _builder_1.append(_firstUpper_3);
+            _builder_1.append(".");
+            String _string_1 = ((SignalFunction)task).getDoExecuteFunction().getName().toString();
+            _builder_1.append(_string_1);
+            _builder_1.append("();");
+            _builder_1.newLineIfNotEmpty();
+            return _builder_1.toString();
+          }
+        }
+      }
     } else {
-      DataInterchange _dataRef = interchange.getDataRef();
-      boolean _tripleNotEquals = (_dataRef != null);
-      if (_tripleNotEquals) {
-        String _firstUpper_1 = StringExtensions.toFirstUpper(interchange.getDataRef().getName());
-        String _plus_1 = ("export" + _firstUpper_1);
-        operation_name = _plus_1;
+      StringConcatenation _builder_2 = new StringConcatenation();
+      {
+        if (existFunctionWithFile) {
+          _builder_2.append(" paths.put(\"");
+          String _appropriateTaskOperationName = this.getAppropriateTaskOperationName(task);
+          _builder_2.append(_appropriateTaskOperationName);
+          _builder_2.append("\", ");
+          String _appropriateTaskOperationName_1 = this.getAppropriateTaskOperationName(task);
+          _builder_2.append(_appropriateTaskOperationName_1);
+          _builder_2.append("()); ");
+        } else {
+          String _appropriateTaskOperationName_2 = this.getAppropriateTaskOperationName(task);
+          _builder_2.append(_appropriateTaskOperationName_2);
+          _builder_2.append("(); ");
+        }
+      }
+      _builder_2.newLineIfNotEmpty();
+      return _builder_2.toString();
+    }
+    return null;
+  }
+  
+  /**
+   * Returns the operation name of the given task.
+   */
+  public String getAppropriateTaskOperationName(final SignalTask task) {
+    String operation_name = "";
+    if ((task instanceof SignalDatainterchange)) {
+      if ((Objects.equal(((SignalDatainterchange)task).getActionType(), SignalActionTypeEnum.DATAIMPORT) && (((SignalDatainterchange)task).getDataRef() != null))) {
+        String _firstUpper = StringExtensions.toFirstUpper(((SignalDatainterchange)task).getDataRef().getName());
+        String _plus = ("import" + _firstUpper);
+        operation_name = _plus;
+      } else {
+        DataInterchange _dataRef = ((SignalDatainterchange)task).getDataRef();
+        boolean _tripleNotEquals = (_dataRef != null);
+        if (_tripleNotEquals) {
+          String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalDatainterchange)task).getDataRef().getName());
+          String _plus_1 = ("export" + _firstUpper_1);
+          operation_name = _plus_1;
+        }
       }
     }
     return operation_name;
   }
   
   /**
-   * Creates the content of each imports and export operations.
+   * Creates the content of each task operation for scheduler and watcher jobs task files.
    */
-  public boolean createSchedulerInterchangeOperations(final JvmGenericType type, final SignalDefinition signal, final SignalDatainterchange interchange) {
-    boolean _xblockexpression = false;
-    {
-      String operationname = this.getAppropriateInterchangeOperationName(interchange);
-      boolean _xifexpression = false;
-      boolean _contains = this.operationlist.contains(operationname);
-      boolean _not = (!_contains);
-      if (_not) {
-        boolean _xblockexpression_1 = false;
-        {
-          SignalActionEnum _dataAction = interchange.getDataAction();
-          boolean _equals = Objects.equal(_dataAction, SignalActionEnum.DATAIMPORT);
-          if (_equals) {
-            EList<JvmMember> _members = type.getMembers();
-            final Procedure1<JvmOperation> _function = (JvmOperation it) -> {
-              EList<JvmTypeReference> _exceptions = it.getExceptions();
-              JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Exception.class);
-              this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
-              final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
-                StringConcatenation _builder = new StringConcatenation();
-                String _configFileURL = this.df.getConfigFileURL(interchange.getDataRef());
-                _builder.append(_configFileURL);
-                _builder.newLineIfNotEmpty();
-                String _basicRunConfiguration = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.IMPORT.name(), null);
-                _builder.append(_basicRunConfiguration);
-                _builder.newLineIfNotEmpty();
-                String _defaultVariableName = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName);
-                _builder.append(".setDirection(WorkerThreadRunnable.Direction.IMPORT);");
-                _builder.newLineIfNotEmpty();
-                _builder.append("try {");
-                _builder.newLine();
-                _builder.append("\t");
-                CharSequence _xifexpression_1 = null;
-                boolean _equals_1 = ((SignalScheduler) signal).getExecutiontype().equals(SignalExecutionTypeEnum.SEQ);
-                if (_equals_1) {
-                  StringConcatenation _builder_1 = new StringConcatenation();
-                  String _firstUpper = StringExtensions.toFirstUpper(signal.getName());
-                  _builder_1.append(_firstUpper);
-                  _builder_1.append("Scheduler.getExecutorService().submit(");
-                  String _defaultVariableName_1 = this.df.getDefaultVariableName(interchange.getDataRef());
-                  _builder_1.append(_defaultVariableName_1);
-                  _builder_1.append(").get();");
-                  _xifexpression_1 = _builder_1;
-                } else {
-                  StringConcatenation _builder_2 = new StringConcatenation();
-                  String _firstUpper_1 = StringExtensions.toFirstUpper(signal.getName());
-                  _builder_2.append(_firstUpper_1);
-                  _builder_2.append("Scheduler.getExecutorService().execute(");
-                  String _defaultVariableName_2 = this.df.getDefaultVariableName(interchange.getDataRef());
-                  _builder_2.append(_defaultVariableName_2);
-                  _builder_2.append(");");
-                  _xifexpression_1 = _builder_2;
-                }
-                _builder.append(_xifexpression_1, "\t");
-                _builder.newLineIfNotEmpty();
-                _builder.append("}catch (Exception e) {");
-                _builder.newLine();
-                _builder.append("\t");
-                _builder.append("log.error(\"Execution - \" + ");
-                String _defaultVariableName_3 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_3, "\t");
-                _builder.append(".getDirection() + \" for \" + ");
-                String _defaultVariableName_4 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_4, "\t");
-                _builder.append(".getName() + \" interupted!\\n\" + e.getMessage());");
-                _builder.newLineIfNotEmpty();
-                _builder.append("\t");
-                CharSequence _xifexpression_2 = null;
-                SignalActionEnum _dataAction_1 = interchange.getDataAction();
-                boolean _equals_2 = Objects.equal(_dataAction_1, SignalActionEnum.DATAIMPORT);
-                if (_equals_2) {
-                  StringConcatenation _builder_3 = new StringConcatenation();
-                  {
-                    boolean _isDeleteFileAfterImport = interchange.getDataRef().isDeleteFileAfterImport();
-                    if (_isDeleteFileAfterImport) {
-                      _builder_3.append("renameFile(Paths.get(");
-                      String _defaultVariableName_5 = this.df.getDefaultVariableName(interchange.getDataRef());
-                      _builder_3.append(_defaultVariableName_5);
-                      _builder_3.append(".getFileURL().toString()), \"");
-                      String _firstUpper_2 = StringExtensions.toFirstUpper(signal.getName());
-                      _builder_3.append(_firstUpper_2);
-                      _builder_3.append("SchedulerJob\");");
-                      _builder_3.newLineIfNotEmpty();
-                    }
-                  }
-                  _xifexpression_2 = _builder_3;
-                }
-                _builder.append(_xifexpression_2, "\t");
-                _builder.newLineIfNotEmpty();
-                _builder.append("}");
-                _builder.newLine();
-                it_1.append(_builder);
-              };
-              this._jvmTypesBuilder.setBody(it, _function_1);
-            };
-            JvmOperation _method = this._jvmTypesBuilder.toMethod(signal, operationname, this._typeReferenceBuilder.typeRef(Void.TYPE), _function);
-            this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
-          } else {
-            EList<JvmMember> _members_1 = type.getMembers();
-            final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> {
-              final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> {
-                StringConcatenation _builder = new StringConcatenation();
-                String _configFileURL = this.df.getConfigFileURL(interchange.getDataRef());
-                _builder.append(_configFileURL);
-                _builder.newLineIfNotEmpty();
-                String _basicRunConfiguration = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.EXPORT.name(), null);
-                _builder.append(_basicRunConfiguration);
-                _builder.newLineIfNotEmpty();
-                String _defaultVariableName = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName);
-                _builder.append(".setDirection(WorkerThreadRunnable.Direction.EXPORT);");
-                _builder.newLineIfNotEmpty();
-                _builder.append("try {");
-                _builder.newLine();
-                _builder.append("\t");
-                CharSequence _xifexpression_1 = null;
-                boolean _equals_1 = ((SignalScheduler) signal).getExecutiontype().equals(SignalExecutionTypeEnum.SEQ);
-                if (_equals_1) {
-                  StringConcatenation _builder_1 = new StringConcatenation();
-                  String _firstUpper = StringExtensions.toFirstUpper(signal.getName());
-                  _builder_1.append(_firstUpper);
-                  _builder_1.append("Scheduler.getExecutorService().submit(");
-                  String _defaultVariableName_1 = this.df.getDefaultVariableName(interchange.getDataRef());
-                  _builder_1.append(_defaultVariableName_1);
-                  _builder_1.append(").get();");
-                  _xifexpression_1 = _builder_1;
-                } else {
-                  StringConcatenation _builder_2 = new StringConcatenation();
-                  String _firstUpper_1 = StringExtensions.toFirstUpper(signal.getName());
-                  _builder_2.append(_firstUpper_1);
-                  _builder_2.append("Scheduler.getExecutorService().execute(");
-                  String _defaultVariableName_2 = this.df.getDefaultVariableName(interchange.getDataRef());
-                  _builder_2.append(_defaultVariableName_2);
-                  _builder_2.append(");");
-                  _xifexpression_1 = _builder_2;
-                }
-                _builder.append(_xifexpression_1, "\t");
-                _builder.newLineIfNotEmpty();
-                _builder.append("}catch (Exception e) {");
-                _builder.newLine();
-                _builder.append("\t");
-                _builder.append("log.error(\"Execution - \" + ");
-                String _defaultVariableName_3 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_3, "\t");
-                _builder.append(".getDirection() + \" for \" + ");
-                String _defaultVariableName_4 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_4, "\t");
-                _builder.append(".getName() + \" interupted!\\n\" + e.getMessage());");
-                _builder.newLineIfNotEmpty();
-                _builder.append("}");
-                _builder.newLine();
-                it_1.append(_builder);
-              };
-              this._jvmTypesBuilder.setBody(it, _function_2);
-            };
-            JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(signal, operationname, this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1);
-            this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
+  public void createTaskOperations(final JvmGenericType type, final SignalDefinition signal) {
+    EList<SignalTask> _tasks = signal.getTasks();
+    for (final SignalTask task : _tasks) {
+      {
+        String operationname = this.getAppropriateTaskOperationName(task);
+        boolean _contains = this.operationlist.contains(operationname);
+        boolean _not = (!_contains);
+        if (_not) {
+          if ((task instanceof SignalDatainterchange)) {
+            if ((signal instanceof SignalWatcher)) {
+              this.watcherInterchangeOperation(type, ((SignalWatcher)signal), ((SignalDatainterchange)task), operationname);
+            } else {
+              if ((signal instanceof SignalScheduler)) {
+                this.schedulerInterchangeOperation(type, ((SignalScheduler)signal), ((SignalDatainterchange)task), operationname);
+              }
+            }
           }
-          _xblockexpression_1 = this.operationlist.add(operationname);
+          this.operationlist.add(operationname);
         }
-        _xifexpression = _xblockexpression_1;
       }
-      _xblockexpression = _xifexpression;
     }
-    return _xblockexpression;
   }
   
-  /**
-   * Creates the content of each imports and export operations for each watcher task files.
-   */
-  public boolean createWatcherInterchangeOperations(final JvmGenericType type, final SignalWatcher signal, final SignalDatainterchange interchange) {
-    boolean _xblockexpression = false;
-    {
-      final WatcherDefinition watcher = signal.getDefinition();
-      String operationname = this.getAppropriateInterchangeOperationName(interchange);
-      boolean _xifexpression = false;
-      boolean _contains = this.operationlist.contains(operationname);
-      boolean _not = (!_contains);
-      if (_not) {
-        boolean _xblockexpression_1 = false;
-        {
-          boolean _equals = watcher.getExecutiontype().equals(SignalExecutionTypeEnum.SEQ);
-          if (_equals) {
-            EList<JvmMember> _members = type.getMembers();
-            final Procedure1<JvmOperation> _function = (JvmOperation it) -> {
-              EList<JvmTypeReference> _exceptions = it.getExceptions();
-              JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Exception.class);
-              this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
-              final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
-                StringConcatenation _builder = new StringConcatenation();
-                CharSequence _xifexpression_1 = null;
-                SignalActionEnum _dataAction = interchange.getDataAction();
-                boolean _equals_1 = Objects.equal(_dataAction, SignalActionEnum.DATAIMPORT);
-                if (_equals_1) {
-                  StringConcatenation _builder_1 = new StringConcatenation();
-                  String _basicRunConfiguration = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.IMPORT.name(), this.getBaseInterchange(signal).getDataRef());
-                  _builder_1.append(_basicRunConfiguration);
-                  _builder_1.newLineIfNotEmpty();
-                  String _defaultVariableName = this.df.getDefaultVariableName(interchange.getDataRef());
-                  _builder_1.append(_defaultVariableName);
-                  _builder_1.append(".setDirection(WorkerThreadRunnable.Direction.IMPORT);");
-                  _builder_1.newLineIfNotEmpty();
-                  _xifexpression_1 = _builder_1;
-                } else {
-                  StringConcatenation _builder_2 = new StringConcatenation();
-                  String _configFileURL = this.df.getConfigFileURL(interchange.getDataRef());
-                  _builder_2.append(_configFileURL);
-                  _builder_2.newLineIfNotEmpty();
-                  String _basicRunConfiguration_1 = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.EXPORT.name(), this.getBaseInterchange(signal).getDataRef());
-                  _builder_2.append(_basicRunConfiguration_1);
-                  _builder_2.newLineIfNotEmpty();
-                  String _defaultVariableName_1 = this.df.getDefaultVariableName(interchange.getDataRef());
-                  _builder_2.append(_defaultVariableName_1);
-                  _builder_2.append(".setDirection(WorkerThreadRunnable.Direction.EXPORT);");
-                  _builder_2.newLineIfNotEmpty();
-                  _xifexpression_1 = _builder_2;
-                }
-                _builder.append(_xifexpression_1);
-                _builder.newLineIfNotEmpty();
-                CharSequence _xifexpression_2 = null;
-                SignalDatainterchange _baseInterchange = this.getBaseInterchange(signal);
-                boolean _equals_2 = Objects.equal(interchange, _baseInterchange);
-                if (_equals_2) {
-                  StringConcatenation _builder_3 = new StringConcatenation();
-                  _builder_3.append("URI uri = getTriggerfile().toUri();");
-                  _builder_3.newLine();
-                  String _defaultVariableName_2 = this.df.getDefaultVariableName(interchange.getDataRef());
-                  _builder_3.append(_defaultVariableName_2);
-                  _builder_3.append(".setFileURL(uri.toString());");
-                  _builder_3.newLineIfNotEmpty();
-                  _xifexpression_2 = _builder_3;
-                } else {
-                  StringConcatenation _builder_4 = new StringConcatenation();
-                  String _defaultVariableName_3 = this.df.getDefaultVariableName(interchange.getDataRef());
-                  _builder_4.append(_defaultVariableName_3);
-                  _builder_4.append(".setFileURL(getTriggerfile().getParent().toString() + \"\\\\");
-                  String _dataInterchangeFileName = this.df.getDataInterchangeFileName(interchange.getDataRef());
-                  _builder_4.append(_dataInterchangeFileName);
-                  _builder_4.append("\");");
-                  _xifexpression_2 = _builder_4;
-                }
-                _builder.append(_xifexpression_2);
-                _builder.newLineIfNotEmpty();
-                _builder.append("try{");
-                _builder.newLine();
-                _builder.append("\t");
-                _builder.append("WatcherImpl.getExecutorService().submit(");
-                String _defaultVariableName_4 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_4, "\t");
-                _builder.append(").get();");
-                _builder.newLineIfNotEmpty();
-                _builder.append("}catch (Exception e) {");
-                _builder.newLine();
-                _builder.append("\t");
-                _builder.append("log.error(\"Execution - \" + ");
-                String _defaultVariableName_5 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_5, "\t");
-                _builder.append(".getDirection() + \" for \" + ");
-                String _defaultVariableName_6 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_6, "\t");
-                _builder.append(".getName() + \" interupted!\\n\" + e.getMessage());");
-                _builder.newLineIfNotEmpty();
-                _builder.append("\t");
-                String _defaultVariableName_7 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_7, "\t");
-                _builder.append(".setExecutionDone(true);");
-                _builder.newLineIfNotEmpty();
-                _builder.append("\t");
-                CharSequence _xifexpression_3 = null;
-                SignalActionEnum _dataAction_1 = interchange.getDataAction();
-                boolean _equals_3 = Objects.equal(_dataAction_1, SignalActionEnum.DATAIMPORT);
-                if (_equals_3) {
-                  CharSequence _xifexpression_4 = null;
-                  if ((Objects.equal(interchange, this.getBaseInterchange(signal)) && interchange.getDataRef().isDeleteFileAfterImport())) {
-                    StringConcatenation _builder_5 = new StringConcatenation();
-                    _builder_5.append("renameFile(getTriggerfile(), \"");
-                    String _firstUpper = StringExtensions.toFirstUpper(signal.getName());
-                    _builder_5.append(_firstUpper);
-                    _builder_5.append("WatcherJob\");");
-                    _xifexpression_4 = _builder_5;
-                  } else {
-                    CharSequence _xifexpression_5 = null;
-                    boolean _isDeleteFileAfterImport = interchange.getDataRef().isDeleteFileAfterImport();
-                    if (_isDeleteFileAfterImport) {
-                      StringConcatenation _builder_6 = new StringConcatenation();
-                      _builder_6.append("renameFile(Paths.get(");
-                      String _defaultVariableName_8 = this.df.getDefaultVariableName(interchange.getDataRef());
-                      _builder_6.append(_defaultVariableName_8);
-                      _builder_6.append(".getFileURL().toString()), \"");
-                      String _firstUpper_1 = StringExtensions.toFirstUpper(signal.getName());
-                      _builder_6.append(_firstUpper_1);
-                      _builder_6.append("WatcherJob\");");
-                      _xifexpression_5 = _builder_6;
-                    }
-                    _xifexpression_4 = _xifexpression_5;
-                  }
-                  _xifexpression_3 = _xifexpression_4;
-                }
-                _builder.append(_xifexpression_3, "\t");
-                _builder.newLineIfNotEmpty();
-                _builder.append("}");
-                _builder.newLine();
-                it_1.append(_builder);
-              };
-              this._jvmTypesBuilder.setBody(it, _function_1);
-            };
-            JvmOperation _method = this._jvmTypesBuilder.toMethod(signal, operationname, this._typeReferenceBuilder.typeRef(Void.TYPE), _function);
-            this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+  public boolean schedulerInterchangeOperation(final JvmGenericType type, final SignalScheduler signal, final SignalDatainterchange interchange, final String operationname) {
+    boolean _xifexpression = false;
+    SignalActionTypeEnum _actionType = interchange.getActionType();
+    boolean _equals = Objects.equal(_actionType, SignalActionTypeEnum.DATAIMPORT);
+    if (_equals) {
+      EList<JvmMember> _members = type.getMembers();
+      final Procedure1<JvmOperation> _function = (JvmOperation it) -> {
+        EList<JvmTypeReference> _exceptions = it.getExceptions();
+        JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Exception.class);
+        this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
+        final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          EObject _eContainer = interchange.getDataRef().eContainer();
+          String _configFileURL = this.df.getConfigFileURL(((DataInterchangeGroup) _eContainer).getName());
+          _builder.append(_configFileURL);
+          _builder.newLineIfNotEmpty();
+          String _basicRunConfiguration = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.IMPORT.name(), null);
+          _builder.append(_basicRunConfiguration);
+          _builder.newLineIfNotEmpty();
+          String _defaultVariableName = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName);
+          _builder.append(".setDirection(WorkerThreadRunnable.Direction.IMPORT);");
+          _builder.newLineIfNotEmpty();
+          _builder.append("try {");
+          _builder.newLine();
+          _builder.append("\t");
+          CharSequence _xifexpression_1 = null;
+          boolean _equals_1 = ((SignalScheduler) signal).getExecutiontype().equals(SignalExecutionTypeEnum.SEQ);
+          if (_equals_1) {
+            StringConcatenation _builder_1 = new StringConcatenation();
+            String _firstUpper = StringExtensions.toFirstUpper(signal.getName());
+            String _plus = (_firstUpper + "Scheduler");
+            _builder_1.append(_plus);
+            _builder_1.append(".getExecutorService().submit(");
+            String _defaultVariableName_1 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_1.append(_defaultVariableName_1);
+            _builder_1.append(").get();");
+            _xifexpression_1 = _builder_1;
           } else {
-            EList<JvmMember> _members_1 = type.getMembers();
-            final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> {
-              EList<JvmTypeReference> _exceptions = it.getExceptions();
-              JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Exception.class);
-              this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
-              final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> {
-                StringConcatenation _builder = new StringConcatenation();
-                CharSequence _xifexpression_1 = null;
-                SignalActionEnum _dataAction = interchange.getDataAction();
-                boolean _equals_1 = Objects.equal(_dataAction, SignalActionEnum.DATAIMPORT);
-                if (_equals_1) {
-                  StringConcatenation _builder_1 = new StringConcatenation();
-                  String _basicRunConfiguration = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.IMPORT.name(), this.getBaseInterchange(signal).getDataRef());
-                  _builder_1.append(_basicRunConfiguration);
-                  _builder_1.newLineIfNotEmpty();
-                  String _defaultVariableName = this.df.getDefaultVariableName(interchange.getDataRef());
-                  _builder_1.append(_defaultVariableName);
-                  _builder_1.append(".setDirection(WorkerThreadRunnable.Direction.IMPORT);");
-                  _builder_1.newLineIfNotEmpty();
-                  _xifexpression_1 = _builder_1;
-                } else {
-                  StringConcatenation _builder_2 = new StringConcatenation();
-                  String _configFileURL = this.df.getConfigFileURL(interchange.getDataRef());
-                  _builder_2.append(_configFileURL);
-                  _builder_2.newLineIfNotEmpty();
-                  String _basicRunConfiguration_1 = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.EXPORT.name(), this.getBaseInterchange(signal).getDataRef());
-                  _builder_2.append(_basicRunConfiguration_1);
-                  _builder_2.newLineIfNotEmpty();
-                  String _defaultVariableName_1 = this.df.getDefaultVariableName(interchange.getDataRef());
-                  _builder_2.append(_defaultVariableName_1);
-                  _builder_2.append(".setDirection(WorkerThreadRunnable.Direction.EXPORT);");
-                  _builder_2.newLineIfNotEmpty();
-                  _xifexpression_1 = _builder_2;
-                }
-                _builder.append(_xifexpression_1);
-                _builder.newLineIfNotEmpty();
-                CharSequence _xifexpression_2 = null;
-                SignalDatainterchange _baseInterchange = this.getBaseInterchange(signal);
-                boolean _equals_2 = Objects.equal(interchange, _baseInterchange);
-                if (_equals_2) {
-                  StringConcatenation _builder_3 = new StringConcatenation();
-                  _builder_3.append("URI uri = getTriggerfile().toUri();");
-                  _builder_3.newLine();
-                  String _defaultVariableName_2 = this.df.getDefaultVariableName(interchange.getDataRef());
-                  _builder_3.append(_defaultVariableName_2);
-                  _builder_3.append(".setFileURL(uri.toString());");
-                  _xifexpression_2 = _builder_3;
-                } else {
-                  StringConcatenation _builder_4 = new StringConcatenation();
-                  String _defaultVariableName_3 = this.df.getDefaultVariableName(interchange.getDataRef());
-                  _builder_4.append(_defaultVariableName_3);
-                  _builder_4.append(".setFileURL(getTriggerfile().getParent().toString() + \"\\\\");
-                  String _dataInterchangeFileName = this.df.getDataInterchangeFileName(interchange.getDataRef());
-                  _builder_4.append(_dataInterchangeFileName);
-                  _builder_4.append("\");");
-                  _xifexpression_2 = _builder_4;
-                }
-                _builder.append(_xifexpression_2);
-                _builder.newLineIfNotEmpty();
-                _builder.append("checkForCompletion(");
-                String _defaultVariableName_4 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_4);
-                _builder.append(");");
-                _builder.newLineIfNotEmpty();
-                _builder.append("try{");
-                _builder.newLine();
-                _builder.append("\t");
-                _builder.append("WatcherImpl.getExecutorService().execute(");
-                String _defaultVariableName_5 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_5, "\t");
-                _builder.append(");");
-                _builder.newLineIfNotEmpty();
-                _builder.append("}catch (Exception e) {");
-                _builder.newLine();
-                _builder.append("\t");
-                _builder.append("log.error(\"Execution - \" + ");
-                String _defaultVariableName_6 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_6, "\t");
-                _builder.append(".getDirection() + \" for \" + ");
-                String _defaultVariableName_7 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_7, "\t");
-                _builder.append(".getName() + \" interupted!\\n\" + e.getMessage());");
-                _builder.newLineIfNotEmpty();
-                _builder.append("\t");
-                String _defaultVariableName_8 = this.df.getDefaultVariableName(interchange.getDataRef());
-                _builder.append(_defaultVariableName_8, "\t");
-                _builder.append(".setExecutionDone(true);");
-                _builder.newLineIfNotEmpty();
-                _builder.append("\t");
-                CharSequence _xifexpression_3 = null;
-                SignalActionEnum _dataAction_1 = interchange.getDataAction();
-                boolean _equals_3 = Objects.equal(_dataAction_1, SignalActionEnum.DATAIMPORT);
-                if (_equals_3) {
-                  CharSequence _xifexpression_4 = null;
-                  if ((Objects.equal(interchange, this.getBaseInterchange(signal)) && interchange.getDataRef().isDeleteFileAfterImport())) {
-                    StringConcatenation _builder_5 = new StringConcatenation();
-                    _builder_5.append("renameFile(getTriggerfile(), \"");
-                    String _firstUpper = StringExtensions.toFirstUpper(signal.getName());
-                    _builder_5.append(_firstUpper);
-                    _builder_5.append("WatcherJob\");");
-                    _xifexpression_4 = _builder_5;
-                  } else {
-                    CharSequence _xifexpression_5 = null;
-                    boolean _isDeleteFileAfterImport = interchange.getDataRef().isDeleteFileAfterImport();
-                    if (_isDeleteFileAfterImport) {
-                      StringConcatenation _builder_6 = new StringConcatenation();
-                      _builder_6.append("renameFile(Paths.get(");
-                      String _defaultVariableName_9 = this.df.getDefaultVariableName(interchange.getDataRef());
-                      _builder_6.append(_defaultVariableName_9);
-                      _builder_6.append(".getFileURL().toString()), \"");
-                      String _firstUpper_1 = StringExtensions.toFirstUpper(signal.getName());
-                      _builder_6.append(_firstUpper_1);
-                      _builder_6.append("WatcherJob\");");
-                      _xifexpression_5 = _builder_6;
-                    }
-                    _xifexpression_4 = _xifexpression_5;
-                  }
-                  _xifexpression_3 = _xifexpression_4;
-                }
-                _builder.append(_xifexpression_3, "\t");
-                _builder.newLineIfNotEmpty();
-                _builder.append("}");
-                _builder.newLine();
-                it_1.append(_builder);
-              };
-              this._jvmTypesBuilder.setBody(it, _function_2);
-            };
-            JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(signal, operationname, this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1);
-            this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
+            StringConcatenation _builder_2 = new StringConcatenation();
+            String _firstUpper_1 = StringExtensions.toFirstUpper(signal.getName());
+            String _plus_1 = (_firstUpper_1 + "Scheduler");
+            _builder_2.append(_plus_1);
+            _builder_2.append(".getExecutorService().execute(");
+            String _defaultVariableName_2 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_2.append(_defaultVariableName_2);
+            _builder_2.append(");");
+            _xifexpression_1 = _builder_2;
           }
-          _xblockexpression_1 = this.operationlist.add(operationname);
-        }
-        _xifexpression = _xblockexpression_1;
-      }
-      _xblockexpression = _xifexpression;
+          _builder.append(_xifexpression_1, "\t");
+          _builder.newLineIfNotEmpty();
+          _builder.append("}catch (Exception e) {");
+          _builder.newLine();
+          _builder.append("\t");
+          _builder.append("log.error(\"Execution - \" + ");
+          String _defaultVariableName_3 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_3, "\t");
+          _builder.append(".getDirection() + \" for \" + ");
+          String _defaultVariableName_4 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_4, "\t");
+          _builder.append(".getName() + \" interupted!\\n\" + e.getMessage());");
+          _builder.newLineIfNotEmpty();
+          _builder.append("\t");
+          CharSequence _xifexpression_2 = null;
+          SignalActionTypeEnum _actionType_1 = interchange.getActionType();
+          boolean _equals_2 = Objects.equal(_actionType_1, SignalActionTypeEnum.DATAIMPORT);
+          if (_equals_2) {
+            StringConcatenation _builder_3 = new StringConcatenation();
+            {
+              boolean _isDeleteFileAfterImport = interchange.getDataRef().isDeleteFileAfterImport();
+              if (_isDeleteFileAfterImport) {
+                _builder_3.append("renameFile(Paths.get(");
+                String _defaultVariableName_5 = this.df.getDefaultVariableName(interchange.getDataRef());
+                _builder_3.append(_defaultVariableName_5);
+                _builder_3.append(".getFileURL().toString()), \"");
+                String _firstUpper_2 = StringExtensions.toFirstUpper(signal.getName());
+                _builder_3.append(_firstUpper_2);
+                _builder_3.append("SchedulerJob\");");
+                _builder_3.newLineIfNotEmpty();
+              }
+            }
+            _xifexpression_2 = _builder_3;
+          }
+          _builder.append(_xifexpression_2, "\t");
+          _builder.newLineIfNotEmpty();
+          _builder.append("}");
+          _builder.newLine();
+          _builder.append("return Paths.get(");
+          String _defaultVariableName_6 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_6);
+          _builder.append(".getFileURL().getPath().substring(1));");
+          _builder.newLineIfNotEmpty();
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_1);
+      };
+      JvmOperation _method = this._jvmTypesBuilder.toMethod(signal, operationname, this._typeReferenceBuilder.typeRef(Path.class), _function);
+      _xifexpression = this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+    } else {
+      EList<JvmMember> _members_1 = type.getMembers();
+      final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> {
+        final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          EObject _eContainer = interchange.getDataRef().eContainer();
+          String _configFileURL = this.df.getConfigFileURL(((DataInterchangeGroup) _eContainer).getName());
+          _builder.append(_configFileURL);
+          _builder.newLineIfNotEmpty();
+          String _basicRunConfiguration = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.EXPORT.name(), null);
+          _builder.append(_basicRunConfiguration);
+          _builder.newLineIfNotEmpty();
+          String _defaultVariableName = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName);
+          _builder.append(".setDirection(WorkerThreadRunnable.Direction.EXPORT);");
+          _builder.newLineIfNotEmpty();
+          _builder.append("try {");
+          _builder.newLine();
+          _builder.append("\t");
+          CharSequence _xifexpression_1 = null;
+          boolean _equals_1 = ((SignalScheduler) signal).getExecutiontype().equals(SignalExecutionTypeEnum.SEQ);
+          if (_equals_1) {
+            StringConcatenation _builder_1 = new StringConcatenation();
+            String _firstUpper = StringExtensions.toFirstUpper(signal.getName());
+            String _plus = (_firstUpper + "Scheduler");
+            _builder_1.append(_plus);
+            _builder_1.append(".getExecutorService().submit(");
+            String _defaultVariableName_1 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_1.append(_defaultVariableName_1);
+            _builder_1.append(").get();");
+            _xifexpression_1 = _builder_1;
+          } else {
+            StringConcatenation _builder_2 = new StringConcatenation();
+            String _firstUpper_1 = StringExtensions.toFirstUpper(signal.getName());
+            String _plus_1 = (_firstUpper_1 + "Scheduler");
+            _builder_2.append(_plus_1);
+            _builder_2.append(".getExecutorService().execute(");
+            String _defaultVariableName_2 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_2.append(_defaultVariableName_2);
+            _builder_2.append(");");
+            _xifexpression_1 = _builder_2;
+          }
+          _builder.append(_xifexpression_1, "\t");
+          _builder.newLineIfNotEmpty();
+          _builder.append("}catch (Exception e) {");
+          _builder.newLine();
+          _builder.append("\t");
+          _builder.append("log.error(\"Execution - \" + ");
+          String _defaultVariableName_3 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_3, "\t");
+          _builder.append(".getDirection() + \" for \" + ");
+          String _defaultVariableName_4 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_4, "\t");
+          _builder.append(".getName() + \" interupted!\\n\" + e.getMessage());");
+          _builder.newLineIfNotEmpty();
+          _builder.append("}");
+          _builder.newLine();
+          _builder.append("return ");
+          String _defaultVariableName_5 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_5);
+          _builder.append(".getExportPath();");
+          _builder.newLineIfNotEmpty();
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_2);
+      };
+      JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(signal, operationname, this._typeReferenceBuilder.typeRef(Path.class), _function_1);
+      _xifexpression = this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
     }
-    return _xblockexpression;
+    return _xifexpression;
+  }
+  
+  public boolean watcherInterchangeOperation(final JvmGenericType type, final SignalWatcher watcher, final SignalDatainterchange interchange, final String operationname) {
+    boolean _xifexpression = false;
+    boolean _equals = watcher.getExecutiontype().equals(SignalExecutionTypeEnum.SEQ);
+    if (_equals) {
+      EList<JvmMember> _members = type.getMembers();
+      final Procedure1<JvmOperation> _function = (JvmOperation it) -> {
+        EList<JvmTypeReference> _exceptions = it.getExceptions();
+        JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Exception.class);
+        this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
+        final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          CharSequence _xifexpression_1 = null;
+          SignalActionTypeEnum _actionType = interchange.getActionType();
+          boolean _equals_1 = Objects.equal(_actionType, SignalActionTypeEnum.DATAIMPORT);
+          if (_equals_1) {
+            StringConcatenation _builder_1 = new StringConcatenation();
+            String _basicRunConfiguration = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.IMPORT.name(), this.baseInterchange(watcher));
+            _builder_1.append(_basicRunConfiguration);
+            _builder_1.newLineIfNotEmpty();
+            String _defaultVariableName = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_1.append(_defaultVariableName);
+            _builder_1.append(".setDirection(WorkerThreadRunnable.Direction.IMPORT);");
+            _builder_1.newLineIfNotEmpty();
+            _xifexpression_1 = _builder_1;
+          } else {
+            StringConcatenation _builder_2 = new StringConcatenation();
+            EObject _eContainer = interchange.getDataRef().eContainer();
+            String _configFileURL = this.df.getConfigFileURL(((DataInterchangeGroup) _eContainer).getName());
+            _builder_2.append(_configFileURL);
+            _builder_2.newLineIfNotEmpty();
+            String _basicRunConfiguration_1 = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.EXPORT.name(), this.baseInterchange(watcher));
+            _builder_2.append(_basicRunConfiguration_1);
+            _builder_2.newLineIfNotEmpty();
+            String _defaultVariableName_1 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_2.append(_defaultVariableName_1);
+            _builder_2.append(".setDirection(WorkerThreadRunnable.Direction.EXPORT);");
+            _builder_2.newLineIfNotEmpty();
+            _xifexpression_1 = _builder_2;
+          }
+          _builder.append(_xifexpression_1);
+          _builder.newLineIfNotEmpty();
+          CharSequence _xifexpression_2 = null;
+          DataInterchange _baseInterchange = this.baseInterchange(watcher);
+          boolean _equals_2 = Objects.equal(interchange, _baseInterchange);
+          if (_equals_2) {
+            StringConcatenation _builder_3 = new StringConcatenation();
+            _builder_3.append("URI uri = getTriggerfile().toUri();");
+            _builder_3.newLine();
+            String _defaultVariableName_2 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_3.append(_defaultVariableName_2);
+            _builder_3.append(".setFileURL(uri.toString());");
+            _builder_3.newLineIfNotEmpty();
+            _xifexpression_2 = _builder_3;
+          } else {
+            StringConcatenation _builder_4 = new StringConcatenation();
+            String _defaultVariableName_3 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_4.append(_defaultVariableName_3);
+            _builder_4.append(".setFileURL(getTriggerfile().getParent().toString() + \"\\\\");
+            String _dataInterchangeFileName = this.df.getDataInterchangeFileName(interchange.getDataRef());
+            _builder_4.append(_dataInterchangeFileName);
+            _builder_4.append("\");");
+            _xifexpression_2 = _builder_4;
+          }
+          _builder.append(_xifexpression_2);
+          _builder.newLineIfNotEmpty();
+          _builder.append("try{");
+          _builder.newLine();
+          _builder.append("\t");
+          _builder.append("WatcherImpl.getExecutorService().submit(");
+          String _defaultVariableName_4 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_4, "\t");
+          _builder.append(").get();");
+          _builder.newLineIfNotEmpty();
+          _builder.append("}catch (Exception e) {");
+          _builder.newLine();
+          _builder.append("\t");
+          _builder.append("log.error(\"Execution - \" + ");
+          String _defaultVariableName_5 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_5, "\t");
+          _builder.append(".getDirection() + \" for \" + ");
+          String _defaultVariableName_6 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_6, "\t");
+          _builder.append(".getName() + \" interupted!\\n\" + e.getMessage());");
+          _builder.newLineIfNotEmpty();
+          _builder.append("\t");
+          String _defaultVariableName_7 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_7, "\t");
+          _builder.append(".setExecutionDone(true);");
+          _builder.newLineIfNotEmpty();
+          _builder.append("\t");
+          CharSequence _xifexpression_3 = null;
+          SignalActionTypeEnum _actionType_1 = interchange.getActionType();
+          boolean _equals_3 = Objects.equal(_actionType_1, SignalActionTypeEnum.DATAIMPORT);
+          if (_equals_3) {
+            CharSequence _xifexpression_4 = null;
+            if ((Objects.equal(interchange.getDataRef(), this.baseInterchange(watcher)) && interchange.getDataRef().isDeleteFileAfterImport())) {
+              StringConcatenation _builder_5 = new StringConcatenation();
+              _builder_5.append("renameFile(getTriggerfile(), \"");
+              String _firstUpper = StringExtensions.toFirstUpper(watcher.getName());
+              _builder_5.append(_firstUpper);
+              _builder_5.append("WatcherJob\");");
+              _xifexpression_4 = _builder_5;
+            } else {
+              CharSequence _xifexpression_5 = null;
+              boolean _isDeleteFileAfterImport = interchange.getDataRef().isDeleteFileAfterImport();
+              if (_isDeleteFileAfterImport) {
+                StringConcatenation _builder_6 = new StringConcatenation();
+                _builder_6.append("renameFile(Paths.get(");
+                String _defaultVariableName_8 = this.df.getDefaultVariableName(interchange.getDataRef());
+                _builder_6.append(_defaultVariableName_8);
+                _builder_6.append(".getFileURL().toString()), \"");
+                String _firstUpper_1 = StringExtensions.toFirstUpper(watcher.getName());
+                _builder_6.append(_firstUpper_1);
+                _builder_6.append("WatcherJob\");");
+                _xifexpression_5 = _builder_6;
+              }
+              _xifexpression_4 = _xifexpression_5;
+            }
+            _xifexpression_3 = _xifexpression_4;
+          }
+          _builder.append(_xifexpression_3, "\t");
+          _builder.newLineIfNotEmpty();
+          _builder.append("}");
+          _builder.newLine();
+          CharSequence _xifexpression_6 = null;
+          SignalActionTypeEnum _actionType_2 = interchange.getActionType();
+          boolean _equals_4 = Objects.equal(_actionType_2, SignalActionTypeEnum.DATAIMPORT);
+          if (_equals_4) {
+            StringConcatenation _builder_7 = new StringConcatenation();
+            _builder_7.append("return Paths.get(");
+            String _defaultVariableName_9 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_7.append(_defaultVariableName_9);
+            _builder_7.append(".getFileURL().getPath().substring(1));");
+            _xifexpression_6 = _builder_7;
+          } else {
+            StringConcatenation _builder_8 = new StringConcatenation();
+            _builder_8.append("return ");
+            String _defaultVariableName_10 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_8.append(_defaultVariableName_10);
+            _builder_8.append(".getExportPath();");
+            _xifexpression_6 = _builder_8;
+          }
+          _builder.append(_xifexpression_6);
+          _builder.newLineIfNotEmpty();
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_1);
+      };
+      JvmOperation _method = this._jvmTypesBuilder.toMethod(watcher, operationname, this._typeReferenceBuilder.typeRef(Path.class), _function);
+      _xifexpression = this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+    } else {
+      EList<JvmMember> _members_1 = type.getMembers();
+      final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> {
+        EList<JvmTypeReference> _exceptions = it.getExceptions();
+        JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Exception.class);
+        this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
+        final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          CharSequence _xifexpression_1 = null;
+          SignalActionTypeEnum _actionType = interchange.getActionType();
+          boolean _equals_1 = Objects.equal(_actionType, SignalActionTypeEnum.DATAIMPORT);
+          if (_equals_1) {
+            StringConcatenation _builder_1 = new StringConcatenation();
+            String _basicRunConfiguration = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.IMPORT.name(), this.baseInterchange(watcher));
+            _builder_1.append(_basicRunConfiguration);
+            _builder_1.newLineIfNotEmpty();
+            String _defaultVariableName = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_1.append(_defaultVariableName);
+            _builder_1.append(".setDirection(WorkerThreadRunnable.Direction.IMPORT);");
+            _builder_1.newLineIfNotEmpty();
+            _xifexpression_1 = _builder_1;
+          } else {
+            StringConcatenation _builder_2 = new StringConcatenation();
+            EObject _eContainer = interchange.getDataRef().eContainer();
+            String _configFileURL = this.df.getConfigFileURL(((DataInterchangeGroup) _eContainer).getName());
+            _builder_2.append(_configFileURL);
+            _builder_2.newLineIfNotEmpty();
+            String _basicRunConfiguration_1 = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.EXPORT.name(), this.baseInterchange(watcher));
+            _builder_2.append(_basicRunConfiguration_1);
+            _builder_2.newLineIfNotEmpty();
+            String _defaultVariableName_1 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_2.append(_defaultVariableName_1);
+            _builder_2.append(".setDirection(WorkerThreadRunnable.Direction.EXPORT);");
+            _builder_2.newLineIfNotEmpty();
+            _xifexpression_1 = _builder_2;
+          }
+          _builder.append(_xifexpression_1);
+          _builder.newLineIfNotEmpty();
+          CharSequence _xifexpression_2 = null;
+          DataInterchange _baseInterchange = this.baseInterchange(watcher);
+          boolean _equals_2 = Objects.equal(interchange, _baseInterchange);
+          if (_equals_2) {
+            StringConcatenation _builder_3 = new StringConcatenation();
+            _builder_3.append("URI uri = getTriggerfile().toUri();");
+            _builder_3.newLine();
+            String _defaultVariableName_2 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_3.append(_defaultVariableName_2);
+            _builder_3.append(".setFileURL(uri.toString());");
+            _xifexpression_2 = _builder_3;
+          } else {
+            StringConcatenation _builder_4 = new StringConcatenation();
+            String _defaultVariableName_3 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_4.append(_defaultVariableName_3);
+            _builder_4.append(".setFileURL(getTriggerfile().getParent().toString() + \"\\\\");
+            String _dataInterchangeFileName = this.df.getDataInterchangeFileName(interchange.getDataRef());
+            _builder_4.append(_dataInterchangeFileName);
+            _builder_4.append("\");");
+            _xifexpression_2 = _builder_4;
+          }
+          _builder.append(_xifexpression_2);
+          _builder.newLineIfNotEmpty();
+          _builder.append("checkForCompletion(");
+          String _defaultVariableName_4 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_4);
+          _builder.append(");");
+          _builder.newLineIfNotEmpty();
+          _builder.append("try{");
+          _builder.newLine();
+          _builder.append("\t");
+          _builder.append("WatcherImpl.getExecutorService().execute(");
+          String _defaultVariableName_5 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_5, "\t");
+          _builder.append(");");
+          _builder.newLineIfNotEmpty();
+          _builder.append("}catch (Exception e) {");
+          _builder.newLine();
+          _builder.append("\t");
+          _builder.append("log.error(\"Execution - \" + ");
+          String _defaultVariableName_6 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_6, "\t");
+          _builder.append(".getDirection() + \" for \" + ");
+          String _defaultVariableName_7 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_7, "\t");
+          _builder.append(".getName() + \" interupted!\\n\" + e.getMessage());");
+          _builder.newLineIfNotEmpty();
+          _builder.append("\t");
+          String _defaultVariableName_8 = this.df.getDefaultVariableName(interchange.getDataRef());
+          _builder.append(_defaultVariableName_8, "\t");
+          _builder.append(".setExecutionDone(true);");
+          _builder.newLineIfNotEmpty();
+          _builder.append("\t");
+          CharSequence _xifexpression_3 = null;
+          SignalActionTypeEnum _actionType_1 = interchange.getActionType();
+          boolean _equals_3 = Objects.equal(_actionType_1, SignalActionTypeEnum.DATAIMPORT);
+          if (_equals_3) {
+            CharSequence _xifexpression_4 = null;
+            if ((Objects.equal(interchange.getDataRef(), this.baseInterchange(watcher)) && interchange.getDataRef().isDeleteFileAfterImport())) {
+              StringConcatenation _builder_5 = new StringConcatenation();
+              _builder_5.append("renameFile(getTriggerfile(), \"");
+              String _firstUpper = StringExtensions.toFirstUpper(watcher.getName());
+              _builder_5.append(_firstUpper);
+              _builder_5.append("WatcherJob\");");
+              _xifexpression_4 = _builder_5;
+            } else {
+              CharSequence _xifexpression_5 = null;
+              boolean _isDeleteFileAfterImport = interchange.getDataRef().isDeleteFileAfterImport();
+              if (_isDeleteFileAfterImport) {
+                StringConcatenation _builder_6 = new StringConcatenation();
+                _builder_6.append("renameFile(Paths.get(");
+                String _defaultVariableName_9 = this.df.getDefaultVariableName(interchange.getDataRef());
+                _builder_6.append(_defaultVariableName_9);
+                _builder_6.append(".getFileURL().toString()), \"");
+                String _firstUpper_1 = StringExtensions.toFirstUpper(watcher.getName());
+                _builder_6.append(_firstUpper_1);
+                _builder_6.append("WatcherJob\");");
+                _xifexpression_5 = _builder_6;
+              }
+              _xifexpression_4 = _xifexpression_5;
+            }
+            _xifexpression_3 = _xifexpression_4;
+          }
+          _builder.append(_xifexpression_3, "\t");
+          _builder.newLineIfNotEmpty();
+          _builder.append("}");
+          _builder.newLine();
+          CharSequence _xifexpression_6 = null;
+          SignalActionTypeEnum _actionType_2 = interchange.getActionType();
+          boolean _equals_4 = Objects.equal(_actionType_2, SignalActionTypeEnum.DATAIMPORT);
+          if (_equals_4) {
+            StringConcatenation _builder_7 = new StringConcatenation();
+            _builder_7.append("return Paths.get(");
+            String _defaultVariableName_10 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_7.append(_defaultVariableName_10);
+            _builder_7.append(".getFileURL().getPath().substring(1));");
+            _xifexpression_6 = _builder_7;
+          } else {
+            StringConcatenation _builder_8 = new StringConcatenation();
+            _builder_8.append("return ");
+            String _defaultVariableName_11 = this.df.getDefaultVariableName(interchange.getDataRef());
+            _builder_8.append(_defaultVariableName_11);
+            _builder_8.append(".getExportPath();");
+            _xifexpression_6 = _builder_8;
+          }
+          _builder.append(_xifexpression_6);
+          _builder.newLineIfNotEmpty();
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_2);
+      };
+      JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(watcher, operationname, this._typeReferenceBuilder.typeRef(Path.class), _function_1);
+      _xifexpression = this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
+    }
+    return _xifexpression;
   }
   
   /**
@@ -1965,70 +2039,68 @@
   }
   
   public String getActivate(final SignalDefinition signal) {
+    String signalName = "";
+    if ((signal instanceof SignalWatcher)) {
+      String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
+      String _plus = (_firstUpper + "Watcher");
+      signalName = _plus;
+    } else {
+      if ((signal instanceof SignalScheduler)) {
+        String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
+        String _plus_1 = (_firstUpper_1 + "Scheduler");
+        signalName = _plus_1;
+      }
+    }
     StringConcatenation _builder = new StringConcatenation();
+    _builder.append("thread = new Thread(\"");
+    _builder.append(signalName);
+    _builder.append("\") {");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("@Override");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("public void run() {");
+    _builder.newLine();
+    _builder.append("\t\t");
     CharSequence _xifexpression = null;
     if ((signal instanceof SignalWatcher)) {
       StringConcatenation _builder_1 = new StringConcatenation();
-      _builder_1.append("thread = new Thread(\"");
-      String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-      _builder_1.append(_firstUpper);
-      _builder_1.append("Watcher\") {");
+      _builder_1.append("setMaxParallelThreadsCount(getHandlerPropertyFromConfigurationFile(SignalConstants.MAXPARALLELTHREADCOUNT_NAME));");
+      _builder_1.newLine();
+      _builder_1.append("initMaxThreadCount();");
+      _builder_1.newLine();
+      _builder_1.append("startWatcherJobsHandling();");
+      _builder_1.newLine();
+      _builder_1.append("executeWatcherService();");
+      _builder_1.newLine();
       _xifexpression = _builder_1;
     } else {
       CharSequence _xifexpression_1 = null;
       if ((signal instanceof SignalScheduler)) {
         StringConcatenation _builder_2 = new StringConcatenation();
-        _builder_2.append("thread = new Thread(\"");
-        String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-        _builder_2.append(_firstUpper_1);
-        _builder_2.append("Scheduler\") {");
+        _builder_2.append("setMaxParallelThreadsCount(getHandlerPropertyFromConfigurationFile(SignalConstants.MAXPARALLELTHREADCOUNT_NAME));");
+        _builder_2.newLine();
+        _builder_2.append("initMaxThreadCount();");
+        _builder_2.newLine();
+        _builder_2.append("setExecutorService(\"");
+        _builder_2.append(signalName);
+        _builder_2.append("\");");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("executeSchedulerService();");
+        _builder_2.newLine();
         _xifexpression_1 = _builder_2;
       }
       _xifexpression = _xifexpression_1;
     }
-    _builder.append(_xifexpression);
+    _builder.append(_xifexpression, "\t\t");
     _builder.newLineIfNotEmpty();
-    _builder.append("@Override");
-    _builder.newLine();
-    _builder.append("public void run() {");
-    _builder.newLine();
-    _builder.append("\t");
-    CharSequence _xifexpression_2 = null;
-    if ((signal instanceof SignalWatcher)) {
-      StringConcatenation _builder_3 = new StringConcatenation();
-      _builder_3.append("setMaxParallelThreadsCount(getHandlerPropertyFromConfigurationFile(SignalConstants.MAXPARALLELTHREADCOUNT_NAME));");
-      _builder_3.newLine();
-      _builder_3.append("initMaxThreadCount();");
-      _builder_3.newLine();
-      _builder_3.append("startWatcherJobsHandling();");
-      _builder_3.newLine();
-      _builder_3.append("executeWatcherService();");
-      _builder_3.newLine();
-      _xifexpression_2 = _builder_3;
-    } else {
-      CharSequence _xifexpression_3 = null;
-      if ((signal instanceof SignalScheduler)) {
-        StringConcatenation _builder_4 = new StringConcatenation();
-        _builder_4.append("setMaxParallelThreadsCount(getHandlerPropertyFromConfigurationFile(SignalConstants.MAXPARALLELTHREADCOUNT_NAME));");
-        _builder_4.newLine();
-        _builder_4.append("initMaxThreadCount();");
-        _builder_4.newLine();
-        _builder_4.append("setExecutorService(\"");
-        String _firstUpper_2 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-        _builder_4.append(_firstUpper_2);
-        _builder_4.append("Scheduler\");");
-        _builder_4.newLineIfNotEmpty();
-        _builder_4.append("executeSchedulerService();");
-        _builder_4.newLine();
-        _xifexpression_3 = _builder_4;
-      }
-      _xifexpression_2 = _xifexpression_3;
-    }
-    _builder.append(_xifexpression_2, "\t");
-    _builder.newLineIfNotEmpty();
-    _builder.append("\t");
+    _builder.append("\t\t");
     _builder.append("}");
     _builder.newLine();
+    _builder.append("\t");
     _builder.append("};");
     _builder.newLine();
     _builder.append("thread.start();");
@@ -2036,6 +2108,18 @@
   }
   
   public String getExecuteService(final SignalDefinition signal) {
+    String signalName = "";
+    if ((signal instanceof SignalWatcher)) {
+      String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
+      String _plus = (_firstUpper + "Watcher");
+      signalName = _plus;
+    } else {
+      if ((signal instanceof SignalScheduler)) {
+        String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
+        String _plus_1 = (_firstUpper_1 + "Scheduler");
+        signalName = _plus_1;
+      }
+    }
     StringConcatenation _builder = new StringConcatenation();
     CharSequence _xifexpression = null;
     if ((signal instanceof SignalWatcher)) {
@@ -2043,14 +2127,13 @@
       _builder_1.append("try {");
       _builder_1.newLine();
       _builder_1.append("\t");
-      String _registerHandlerPathToWatch = this.registerHandlerPathToWatch(signal);
+      String _registerHandlerPathToWatch = this.registerHandlerPathToWatch(((SignalWatcher)signal));
       _builder_1.append(_registerHandlerPathToWatch, "\t");
       _builder_1.newLineIfNotEmpty();
       _builder_1.append("\t");
       _builder_1.append("log.info(\"");
-      String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-      _builder_1.append(_firstUpper, "\t");
-      _builder_1.append("Watcher service successfully started.\");");
+      _builder_1.append(signalName, "\t");
+      _builder_1.append(" service successfully started.\");");
       _builder_1.newLineIfNotEmpty();
       _builder_1.append("\t");
       _builder_1.append("processEvents();");
@@ -2059,9 +2142,8 @@
       _builder_1.newLine();
       _builder_1.append("\t");
       _builder_1.append("log.error(\"");
-      String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
-      _builder_1.append(_firstUpper_1, "\t");
-      _builder_1.append("Watcher service interrupted due to: \", e);");
+      _builder_1.append(signalName, "\t");
+      _builder_1.append(" service interrupted due to: \", e);");
       _builder_1.newLineIfNotEmpty();
       _builder_1.append("}");
       _xifexpression = _builder_1;
@@ -2073,9 +2155,8 @@
         _builder_2.newLine();
         _builder_2.append("\t");
         _builder_2.append("scheduler = createScheduler(\"");
-        String _firstUpper_2 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-        _builder_2.append(_firstUpper_2, "\t");
-        _builder_2.append("Scheduler\");");
+        _builder_2.append(signalName, "\t");
+        _builder_2.append("\");");
         _builder_2.newLineIfNotEmpty();
         _builder_2.append("\t");
         _builder_2.append("scheduleAllJobs();");
@@ -2087,9 +2168,8 @@
         _builder_2.newLine();
         _builder_2.append("\t");
         _builder_2.append("log.error(\"");
-        String _firstUpper_3 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-        _builder_2.append(_firstUpper_3, "\t");
-        _builder_2.append("Scheduler service interrupted due to: \", e);");
+        _builder_2.append(signalName, "\t");
+        _builder_2.append(" service interrupted due to: \", e);");
         _builder_2.newLineIfNotEmpty();
         _builder_2.append("}");
         _xifexpression_1 = _builder_2;
@@ -2101,6 +2181,18 @@
   }
   
   public String getDeactivate(final SignalDefinition signal) {
+    String signalName = "";
+    if ((signal instanceof SignalWatcher)) {
+      String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
+      String _plus = (_firstUpper + "Watcher");
+      signalName = _plus;
+    } else {
+      if ((signal instanceof SignalScheduler)) {
+        String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
+        String _plus_1 = (_firstUpper_1 + "Scheduler");
+        signalName = _plus_1;
+      }
+    }
     StringConcatenation _builder = new StringConcatenation();
     CharSequence _xifexpression = null;
     if ((signal instanceof SignalScheduler)) {
@@ -2123,16 +2215,14 @@
       _builder_1.newLine();
       _builder_1.append("\t");
       _builder_1.append("log.error(\"");
-      String _firstUpper = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-      _builder_1.append(_firstUpper, "\t");
-      _builder_1.append("Scheduler service shortly interrupted ...\", e);");
+      _builder_1.append(signalName, "\t");
+      _builder_1.append(" service shortly interrupted ...\", e);");
       _builder_1.newLineIfNotEmpty();
       _builder_1.append("}");
       _builder_1.newLine();
       _builder_1.append("log.info(\"");
-      String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-      _builder_1.append(_firstUpper_1);
-      _builder_1.append("Scheduler service shutted down...\");");
+      _builder_1.append(signalName);
+      _builder_1.append(" service shutted down...\");");
       _builder_1.newLineIfNotEmpty();
       _xifexpression = _builder_1;
     } else {
@@ -2152,16 +2242,14 @@
       _builder_2.newLine();
       _builder_2.append("\t");
       _builder_2.append("log.error(\"");
-      String _firstUpper_2 = StringExtensions.toFirstUpper(signal.getName());
-      _builder_2.append(_firstUpper_2, "\t");
-      _builder_2.append("Watcher service shortly interrupted ...\", e);");
+      _builder_2.append(signalName, "\t");
+      _builder_2.append(" service shortly interrupted ...\", e);");
       _builder_2.newLineIfNotEmpty();
       _builder_2.append("}");
       _builder_2.newLine();
       _builder_2.append("log.info(\"");
-      String _firstUpper_3 = StringExtensions.toFirstUpper(signal.getName());
-      _builder_2.append(_firstUpper_3);
-      _builder_2.append("Watcher service shutted down...\");");
+      _builder_2.append(signalName);
+      _builder_2.append(" service shutted down...\");");
       _builder_2.newLineIfNotEmpty();
       _xifexpression = _builder_2;
     }
@@ -2171,12 +2259,13 @@
   }
   
   public String scheduleAllJobs(final SignalScheduler scheduler) {
+    String _firstUpper = StringExtensions.toFirstUpper(scheduler.getName());
+    String signalName = (_firstUpper + "Scheduler");
     int index = 1;
     StringConcatenation _builder = new StringConcatenation();
     _builder.append("log.info(\"");
-    String _firstUpper = StringExtensions.toFirstUpper(scheduler.getName());
-    _builder.append(_firstUpper);
-    _builder.append("Scheduler - Starting scheduling all jobs ...\");");
+    _builder.append(signalName);
+    _builder.append(" - Starting scheduling all jobs ...\");");
     _builder.newLineIfNotEmpty();
     _builder.append("Trigger trigger; JobDetail job; Date ft; String expr; int hour; int min; int dOw; int dOm; String key;String keyOne;String keyTwo;");
     _builder.newLine();
@@ -2199,9 +2288,7 @@
         QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler);
         _builder_1.append(_fullyQualifiedName_1);
         _builder_1.append("\", ");
-        String _firstUpper_1 = StringExtensions.toFirstUpper(scheduler.getName());
-        String _plus = (_firstUpper_1 + "Scheduler");
-        _builder_1.append(_plus);
+        _builder_1.append(signalName);
         _builder_1.append(".class);");
         _builder_1.newLineIfNotEmpty();
         _builder_1.append("key = \"");
@@ -2224,8 +2311,8 @@
         _builder_1.append("ft = scheduleJob(job, trigger);");
         _builder_1.newLine();
         _builder_1.append("log.info(\"");
-        String _firstUpper_2 = StringExtensions.toFirstUpper(scheduler.getName());
-        _builder_1.append(_firstUpper_2);
+        String _firstUpper_1 = StringExtensions.toFirstUpper(scheduler.getName());
+        _builder_1.append(_firstUpper_1);
         _builder_1.append("SchedulerJob");
         _builder_1.append(index);
         _builder_1.append(" has been scheduled to run at: \" + ft);");
@@ -2251,9 +2338,7 @@
           QualifiedName _fullyQualifiedName_5 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler);
           _builder_2.append(_fullyQualifiedName_5);
           _builder_2.append("\", ");
-          String _firstUpper_3 = StringExtensions.toFirstUpper(scheduler.getName());
-          String _plus_1 = (_firstUpper_3 + "Scheduler");
-          _builder_2.append(_plus_1);
+          _builder_2.append(signalName);
           _builder_2.append(".class);");
           _builder_2.newLineIfNotEmpty();
           _builder_2.append("key = \"");
@@ -2276,8 +2361,8 @@
           _builder_2.append("ft = scheduleJob(job, trigger);");
           _builder_2.newLine();
           _builder_2.append("log.info(\"");
-          String _firstUpper_4 = StringExtensions.toFirstUpper(scheduler.getName());
-          _builder_2.append(_firstUpper_4);
+          String _firstUpper_2 = StringExtensions.toFirstUpper(scheduler.getName());
+          _builder_2.append(_firstUpper_2);
           _builder_2.append("SchedulerJob");
           _builder_2.append(index);
           _builder_2.append(" has been scheduled to run at: \" + ft);");
@@ -2303,9 +2388,7 @@
             QualifiedName _fullyQualifiedName_9 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler);
             _builder_3.append(_fullyQualifiedName_9);
             _builder_3.append("\", ");
-            String _firstUpper_5 = StringExtensions.toFirstUpper(scheduler.getName());
-            String _plus_2 = (_firstUpper_5 + "Scheduler");
-            _builder_3.append(_plus_2);
+            _builder_3.append(signalName);
             _builder_3.append(".class);");
             _builder_3.newLineIfNotEmpty();
             _builder_3.append("key = \"");
@@ -2338,8 +2421,8 @@
             _builder_3.append("ft = scheduleJob(job, trigger);");
             _builder_3.newLine();
             _builder_3.append("log.info(\"");
-            String _firstUpper_6 = StringExtensions.toFirstUpper(scheduler.getName());
-            _builder_3.append(_firstUpper_6);
+            String _firstUpper_3 = StringExtensions.toFirstUpper(scheduler.getName());
+            _builder_3.append(_firstUpper_3);
             _builder_3.append("SchedulerJob");
             _builder_3.append(index);
             _builder_3.append(" has been scheduled to run at: \" + ft);");
@@ -2366,9 +2449,7 @@
               QualifiedName _fullyQualifiedName_14 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler);
               _builder_4.append(_fullyQualifiedName_14);
               _builder_4.append("\", ");
-              String _firstUpper_7 = StringExtensions.toFirstUpper(scheduler.getName());
-              String _plus_3 = (_firstUpper_7 + "Scheduler");
-              _builder_4.append(_plus_3);
+              _builder_4.append(signalName);
               _builder_4.append(".class);");
               _builder_4.newLineIfNotEmpty();
               _builder_4.append("key = \"");
@@ -2411,8 +2492,8 @@
               _builder_4.append("ft = scheduleJob(job, trigger);");
               _builder_4.newLine();
               _builder_4.append("log.info(\"");
-              String _firstUpper_8 = StringExtensions.toFirstUpper(scheduler.getName());
-              _builder_4.append(_firstUpper_8);
+              String _firstUpper_4 = StringExtensions.toFirstUpper(scheduler.getName());
+              _builder_4.append(_firstUpper_4);
               _builder_4.append("SchedulerJob");
               _builder_4.append(index);
               _builder_4.append(" has been scheduled to run at: \" + ft);");
@@ -2438,9 +2519,7 @@
                 QualifiedName _fullyQualifiedName_20 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler);
                 _builder_5.append(_fullyQualifiedName_20);
                 _builder_5.append("\", ");
-                String _firstUpper_9 = StringExtensions.toFirstUpper(scheduler.getName());
-                String _plus_4 = (_firstUpper_9 + "Scheduler");
-                _builder_5.append(_plus_4);
+                _builder_5.append(signalName);
                 _builder_5.append(".class);");
                 _builder_5.newLineIfNotEmpty();
                 _builder_5.append("key = \"");
@@ -2483,8 +2562,8 @@
                 _builder_5.append("ft = scheduleJob(job, trigger);");
                 _builder_5.newLine();
                 _builder_5.append("log.info(\"");
-                String _firstUpper_10 = StringExtensions.toFirstUpper(scheduler.getName());
-                _builder_5.append(_firstUpper_10);
+                String _firstUpper_5 = StringExtensions.toFirstUpper(scheduler.getName());
+                _builder_5.append(_firstUpper_5);
                 _builder_5.append("SchedulerJob");
                 _builder_5.append(index);
                 _builder_5.append(" has been scheduled to run at: \" + ft);");
@@ -2499,206 +2578,146 @@
     index++;
     StringConcatenation _builder_6 = new StringConcatenation();
     _builder_6.append("log.info(\"");
-    String _firstUpper_11 = StringExtensions.toFirstUpper(scheduler.getName());
-    _builder_6.append(_firstUpper_11);
-    _builder_6.append("Scheduler - Scheduling all jobs done.\");");
+    _builder_6.append(signalName);
+    _builder_6.append(" - Scheduling all jobs done.\");");
     result = result.concat(_builder_6.toString());
     return result;
   }
   
-  public String registerHandlerPathToWatch(final SignalDefinition signal) {
+  public String registerHandlerPathToWatch(final SignalWatcher signal) {
     String result = "";
-    if ((signal instanceof SignalWatcher)) {
-      SignalDatainterchange interchange = this.getBaseInterchange(signal);
-      if ((interchange != null)) {
-        String modelurl = this.df.getDataInterchangeDirectoryUrlPath(interchange.getDataRef());
-        StringConcatenation _builder = new StringConcatenation();
-        _builder.append("registerUrl(getHandlerPropertyFromConfigurationFile(\"");
-        String _name = interchange.getDataRef().getName();
-        _builder.append(_name);
-        _builder.append("-import\"),\"");
-        _builder.append(modelurl);
-        _builder.append("\");");
-        _builder.newLineIfNotEmpty();
-        result = result.concat(_builder.toString());
-      }
+    DataInterchange interchange = this.baseInterchange(signal);
+    if ((interchange != null)) {
+      String modelurl = this.df.getDataInterchangeDirectoryUrlPath(interchange);
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append("registerUrl(getHandlerPropertyFromConfigurationFile(\"");
+      String _name = interchange.getName();
+      _builder.append(_name);
+      _builder.append("-import\"),\"");
+      _builder.append(modelurl);
+      _builder.append("\");");
+      _builder.newLineIfNotEmpty();
+      result = result.concat(_builder.toString());
     }
     return result;
   }
   
   /**
-   * Gives back the SignalDatainterchange unit with the
-   */
-  public SignalDatainterchange getBaseInterchange(final SignalDefinition signal) {
-    if ((signal instanceof SignalWatcher)) {
-      WatcherDefinition watcher = ((SignalWatcher)signal).getDefinition();
-      if ((watcher instanceof WatcherWithFileMask)) {
-        if (((watcher != null) && (((WatcherWithFileMask)watcher).getInterchange() != null))) {
-          return ((WatcherWithFileMask)watcher).getInterchange();
-        }
-      } else {
-        if ((watcher instanceof WatcherWithFileName)) {
-          if ((((watcher != null) && (((WatcherWithFileName)watcher).getInterchanges() != null)) && (!((WatcherWithFileName)watcher).getInterchanges().isEmpty()))) {
-            EList<SignalDatainterchange> _interchanges = ((WatcherWithFileName)watcher).getInterchanges();
-            for (final SignalDatainterchange unit : _interchanges) {
-              boolean _isBaseinterchange = unit.isBaseinterchange();
-              if (_isBaseinterchange) {
-                return unit;
-              }
-            }
-          }
-        }
-      }
-    } else {
-      if ((signal instanceof SignalScheduler)) {
-        if ((((signal != null) && (((SignalScheduler)signal).getInterchanges() != null)) && (!((SignalScheduler)signal).getInterchanges().isEmpty()))) {
-          EList<SignalDatainterchange> _interchanges_1 = ((SignalScheduler)signal).getInterchanges();
-          for (final SignalDatainterchange unit_1 : _interchanges_1) {
-            boolean _isBaseinterchange_1 = unit_1.isBaseinterchange();
-            if (_isBaseinterchange_1) {
-              return unit_1;
-            }
-          }
-        }
-      }
-    }
-    return null;
-  }
-  
-  /**
    * Special function to read signal (watcher or scheduler) properties
    * from configuration files.
    */
   public String handlerPropertyFromConfigurationFile(final SignalDefinition signal) {
-    String signalname = "";
-    if ((signal instanceof SignalScheduler)) {
-      String _firstUpper = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
-      String _plus = (_firstUpper + "Scheduler");
-      signalname = _plus;
-    } else {
-      String _firstUpper_1 = StringExtensions.toFirstUpper(signal.getName());
-      String _plus_1 = (_firstUpper_1 + "Watcher");
-      signalname = _plus_1;
-    }
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("if (propertyname != null) {");
-    _builder.newLine();
-    _builder.append("\t");
-    String _xifexpression = null;
-    if ((signal instanceof SignalScheduler)) {
-      _xifexpression = this.df.getConfigFileURL(((SignalScheduler)signal).getInterchanges().get(0).getDataRef());
-    } else {
-      String _xifexpression_1 = null;
+    if ((signal != null)) {
+      String signalName = "";
       if ((signal instanceof SignalWatcher)) {
-        String _xblockexpression = null;
-        {
-          WatcherDefinition watcher = ((SignalWatcher)signal).getDefinition();
-          String _xifexpression_2 = null;
-          if ((watcher instanceof WatcherWithFileMask)) {
-            _xifexpression_2 = this.df.getConfigFileURL(((WatcherWithFileMask)watcher).getInterchange().getDataRef());
-          } else {
-            String _xifexpression_3 = null;
-            if ((watcher instanceof WatcherWithFileName)) {
-              _xifexpression_3 = this.df.getConfigFileURL(this.getBaseInterchange(signal).getDataRef());
-            }
-            _xifexpression_2 = _xifexpression_3;
-          }
-          _xblockexpression = _xifexpression_2;
+        String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName());
+        String _plus = (_firstUpper + "Watcher");
+        signalName = _plus;
+      } else {
+        if ((signal instanceof SignalScheduler)) {
+          String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName());
+          String _plus_1 = (_firstUpper_1 + "Scheduler");
+          signalName = _plus_1;
         }
-        _xifexpression_1 = _xblockexpression;
       }
-      _xifexpression = _xifexpression_1;
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append("if (propertyname != null) {");
+      _builder.newLine();
+      _builder.append("\t");
+      String _configFileURL = this.df.getConfigFileURL(signal.getInterchangegroup().getName());
+      _builder.append(_configFileURL, "\t");
+      _builder.newLineIfNotEmpty();
+      _builder.append("\t");
+      _builder.append("File file = new File(url);");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("if (file.exists()) {");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("try {");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("FileInputStream fileInput = new FileInputStream(file);");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("Properties properties = new Properties();");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("properties.loadFromXML(fileInput);");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("fileInput.close();");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("String value = properties.getProperty(propertyname);");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("if (value != null) {");
+      _builder.newLine();
+      _builder.append("\t\t\t\t");
+      _builder.append("if (log.isDebugEnabled()) {");
+      _builder.newLine();
+      _builder.append("\t\t\t\t\t");
+      _builder.append("log.debug(\"");
+      _builder.append(signalName, "\t\t\t\t\t");
+      _builder.append(" - getHandlerPropertyFromConfigurationFile propertyname[\" + propertyname");
+      _builder.newLineIfNotEmpty();
+      _builder.append("\t\t\t\t\t\t\t");
+      _builder.append("+ \"] -> value [\" + value + \"]\");");
+      _builder.newLine();
+      _builder.append("\t\t\t\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("\t\t\t\t");
+      _builder.append("return value;");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("} catch (IOException e) {");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("StringWriter sw = new StringWriter();");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("e.printStackTrace(new PrintWriter(sw));");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("log.error(\"");
+      _builder.append(signalName, "\t\t\t");
+      _builder.append(" - Error during getHandlerPropertyFromConfigurationFile of propertyname: [\" + propertyname");
+      _builder.newLineIfNotEmpty();
+      _builder.append("\t\t\t\t\t");
+      _builder.append("+ \"] ... {}\", sw.toString());");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("if (log.isDebugEnabled()) {");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("log.debug(\"");
+      _builder.append(signalName, "\t");
+      _builder.append(" - getHandlerPropertyFromConfigurationFile propertyname[\" + propertyname + \"] -> value [null] because the given path\"");
+      _builder.newLineIfNotEmpty();
+      _builder.append("\t");
+      _builder.append("+ \" in \'Window->Preferences->OSBP Application Configuration->External Data Sources->DataInterchange Settings\' is non-existing or the propertyname is not defined.\");");
+      _builder.newLine();
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("return null;");
+      _builder.newLine();
+      return _builder.toString();
     }
-    _builder.append(_xifexpression, "\t");
-    _builder.newLineIfNotEmpty();
-    _builder.append("\t");
-    _builder.append("File file = new File(url);");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("if (file.exists()) {");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("try {");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("FileInputStream fileInput = new FileInputStream(file);");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("Properties properties = new Properties();");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("properties.loadFromXML(fileInput);");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("fileInput.close();");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("String value = properties.getProperty(propertyname);");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("if (value != null) {");
-    _builder.newLine();
-    _builder.append("\t\t\t\t");
-    _builder.append("if (log.isDebugEnabled()) {");
-    _builder.newLine();
-    _builder.append("\t\t\t\t\t");
-    _builder.append("log.debug(\"");
-    _builder.append(signalname, "\t\t\t\t\t");
-    _builder.append(" - getHandlerPropertyFromConfigurationFile propertyname[\" + propertyname");
-    _builder.newLineIfNotEmpty();
-    _builder.append("\t\t\t\t\t\t\t");
-    _builder.append("+ \"] -> value [\" + value + \"]\");");
-    _builder.newLine();
-    _builder.append("\t\t\t\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("\t\t\t\t");
-    _builder.append("return value;");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("} catch (IOException e) {");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("StringWriter sw = new StringWriter();");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("e.printStackTrace(new PrintWriter(sw));");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("log.error(\"");
-    _builder.append(signalname, "\t\t\t");
-    _builder.append(" - Error during getHandlerPropertyFromConfigurationFile of propertyname: [\" + propertyname");
-    _builder.newLineIfNotEmpty();
-    _builder.append("\t\t\t\t\t");
-    _builder.append("+ \"] ... {}\", sw.toString());");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("if (log.isDebugEnabled()) {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("log.debug(\"");
-    _builder.append(signalname, "\t");
-    _builder.append(" - getHandlerPropertyFromConfigurationFile propertyname[\" + propertyname + \"] -> value [null] because the given path\"");
-    _builder.newLineIfNotEmpty();
-    _builder.append("\t");
-    _builder.append("+ \" in \'Window->Preferences->OSBP Application Configuration->External Data Sources->DataInterchange Settings\' is non-existing or the propertyname is not defined.\");");
-    _builder.newLine();
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("return null;");
-    _builder.newLine();
-    String result = _builder.toString();
-    return result;
+    StringConcatenation _builder_1 = new StringConcatenation();
+    _builder_1.append("return \"\";");
+    return _builder_1.toString();
   }
   
   public boolean hasSchedulers(final SignalPackage pck) {
@@ -2743,6 +2762,90 @@
     return (-1);
   }
   
+  public boolean hasFunctionWithFile(final SignalDefinition signal) {
+    if ((((signal != null) && (signal.getTasks() != null)) && (!signal.getTasks().isEmpty()))) {
+      EList<SignalTask> _tasks = signal.getTasks();
+      for (final SignalTask task : _tasks) {
+        if ((task instanceof SignalFunction)) {
+          if ((((SignalFunction)task).isOnExportFile() || ((SignalFunction)task).isOnImportFile())) {
+            return true;
+          }
+        }
+      }
+    }
+    return false;
+  }
+  
+  /**
+   * Gives back the default interchange unit.
+   */
+  public DataInterchange baseInterchange(final SignalDefinition signal) {
+    if ((signal instanceof SignalWatcher)) {
+      DataInterchange _defaultInterchange = ((SignalWatcher)signal).getDefaultInterchange();
+      boolean _tripleNotEquals = (_defaultInterchange != null);
+      if (_tripleNotEquals) {
+        return ((SignalWatcher)signal).getDefaultInterchange();
+      } else {
+        if (((((SignalWatcher)signal).getTasks() != null) && (!((SignalWatcher)signal).getTasks().isEmpty()))) {
+          EList<SignalTask> _tasks = ((SignalWatcher)signal).getTasks();
+          for (final SignalTask task : _tasks) {
+            if ((task instanceof SignalDatainterchange)) {
+              boolean _isBaseinterchange = ((SignalDatainterchange)task).isBaseinterchange();
+              if (_isBaseinterchange) {
+                return ((SignalDatainterchange)task).getDataRef();
+              }
+            }
+          }
+        }
+      }
+    }
+    return null;
+  }
+  
+  public int definedBaseInterchangeCount(final SignalDefinition signal) {
+    int count = 0;
+    EList<SignalTask> _tasks = signal.getTasks();
+    for (final SignalTask task : _tasks) {
+      if ((task instanceof SignalDatainterchange)) {
+        boolean _isBaseinterchange = ((SignalDatainterchange)task).isBaseinterchange();
+        if (_isBaseinterchange) {
+          count++;
+        }
+      }
+    }
+    return count;
+  }
+  
+  public SignalDatainterchange definedBaseInterchange(final SignalDefinition signal) {
+    EList<SignalTask> _tasks = signal.getTasks();
+    for (final SignalTask task : _tasks) {
+      if ((task instanceof SignalDatainterchange)) {
+        boolean _isBaseinterchange = ((SignalDatainterchange)task).isBaseinterchange();
+        if (_isBaseinterchange) {
+          return ((SignalDatainterchange)task);
+        }
+      }
+    }
+    return null;
+  }
+  
+  public int taskCount(final SignalDefinition signal, final boolean interchange) {
+    int count = 0;
+    EList<SignalTask> _tasks = signal.getTasks();
+    for (final SignalTask task : _tasks) {
+      if (interchange) {
+        if ((task instanceof SignalDatainterchange)) {
+          count++;
+        }
+      } else {
+        if ((task instanceof SignalFunction)) {
+          count++;
+        }
+      }
+    }
+    return count;
+  }
+  
   public void infer(final EObject signalPackage, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) {
     if (signalPackage instanceof SignalPackage) {
       _infer((SignalPackage)signalPackage, acceptor, isPreIndexingPhase);
diff --git a/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/jvmmodel/SignalModelGenerator.java b/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/jvmmodel/SignalModelGenerator.java
index 6b7fbd5..08960f6 100644
--- a/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/jvmmodel/SignalModelGenerator.java
+++ b/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/jvmmodel/SignalModelGenerator.java
@@ -61,9 +61,6 @@
 import org.eclipse.osbp.xtext.signal.SignalPackage;
 import org.eclipse.osbp.xtext.signal.SignalScheduler;
 import org.eclipse.osbp.xtext.signal.SignalWatcher;
-import org.eclipse.osbp.xtext.signal.WatcherDefinition;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName;
 import org.eclipse.osbp.xtext.signal.WeeklyScheduler;
 import org.eclipse.osbp.xtext.signal.common.SignalConstants;
 import org.eclipse.osbp.xtext.signal.common.WatcherImpl;
@@ -96,48 +93,15 @@
   @Extension
   private IQualifiedNameProvider _iQualifiedNameProvider;
   
-  public static String pckgName = null;
-  
   @Override
   public TreeAppendable createAppendable(final EObject context, final ImportManager importManager, final GeneratorConfig config) {
     TreeAppendable _xblockexpression = null;
     {
       this.setBuilder(context.eResource());
-      this._basicDslGeneratorUtils.addImportFor(this, importManager, 
-        this._typeReferenceBuilder, 
-        WatcherImpl.class, 
-        SignalConstants.class, 
-        Paths.class, 
-        WorkerThreadRunnable.class, 
-        IPersistenceService.class, 
-        IDataInterchange.class, 
-        Files.class, 
-        FileSystems.class, 
-        FileOutputStream.class, 
-        Logger.class, 
-        LoggerFactory.class, 
-        HashMap.class, 
-        WatchEvent.class, 
-        Path.class, 
-        URL.class, 
-        Executors.class, 
-        Map.class, 
-        ArrayList.class, 
-        ProductConfiguration.class, 
-        File.class, 
-        FileInputStream.class, 
-        Properties.class, 
-        StringWriter.class, 
-        PrintWriter.class, 
-        SchedulerException.class, 
-        IOException.class, 
-        Date.class, 
-        JobDetail.class, 
-        JobExecutionException.class, 
-        Trigger.class, 
-        URI.class, 
-        ThreadFactoryBuilder.class, 
-        StdSchedulerFactory.class);
+      this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, WatcherImpl.class, SignalConstants.class, Paths.class, WorkerThreadRunnable.class, IPersistenceService.class, IDataInterchange.class, 
+        Files.class, FileSystems.class, FileOutputStream.class, Logger.class, LoggerFactory.class, HashMap.class, WatchEvent.class, Path.class, URL.class, Executors.class, Map.class, ArrayList.class, ProductConfiguration.class, 
+        File.class, FileInputStream.class, Properties.class, StringWriter.class, PrintWriter.class, SchedulerException.class, IOException.class, Date.class, JobDetail.class, JobExecutionException.class, Trigger.class, 
+        URI.class, ThreadFactoryBuilder.class, StdSchedulerFactory.class);
       _xblockexpression = super.createAppendable(context, importManager, config);
     }
     return _xblockexpression;
@@ -167,7 +131,7 @@
       final HashSet<DataInterchangeGroup> dataGroups = new HashSet<DataInterchangeGroup>();
       final Consumer<SignalDefinition> _function = (SignalDefinition it) -> {
         if ((it instanceof SignalWatcher)) {
-          dataGroups.add(((SignalWatcher)it).getDefinition().getInterchangegroup());
+          dataGroups.add(((SignalWatcher)it).getInterchangegroup());
         } else {
           if ((it instanceof SignalScheduler)) {
             dataGroups.add(((SignalScheduler)it).getInterchangegroup());
@@ -195,7 +159,7 @@
             final Consumer<SignalDefinition> _function_1 = (SignalDefinition it) -> {
               DataInterchangeGroup tempgroup = ((DataInterchangeGroup) null);
               if ((it instanceof SignalWatcher)) {
-                tempgroup = ((SignalWatcher)it).getDefinition().getInterchangegroup();
+                tempgroup = ((SignalWatcher)it).getInterchangegroup();
               } else {
                 if ((it instanceof SignalScheduler)) {
                   tempgroup = ((SignalScheduler)it).getInterchangegroup();
@@ -203,13 +167,13 @@
               }
               if ((group == tempgroup)) {
                 if ((it instanceof SignalWatcher)) {
-                  WatcherDefinition watcher = ((SignalWatcher)it).getDefinition();
                   boolean _containsKey = properties.containsKey(SignalConstants.MAXPARALLELTHREADCOUNT_NAME);
                   boolean _not_1 = (!_containsKey);
                   if (_not_1) {
                     properties.put(SignalConstants.MAXPARALLELTHREADCOUNT_NAME, Integer.valueOf(SignalConstants.DEFAULT_PARALLEL_THREADCOUNT).toString());
                   }
-                  if ((watcher instanceof WatcherWithFileMask)) {
+                  boolean _isHasFileMask = ((SignalWatcher)it).isHasFileMask();
+                  if (_isHasFileMask) {
                     QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(it);
                     String _plus = (_fullyQualifiedName + "Watcher");
                     String _plus_1 = (_plus + SignalConstants.FILEMASK);
@@ -219,21 +183,19 @@
                       QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(it);
                       String _plus_2 = (_fullyQualifiedName_1 + "Watcher");
                       String _plus_3 = (_plus_2 + SignalConstants.FILEMASK);
-                      properties.put(_plus_3, ((WatcherWithFileMask)watcher).getFilemask());
+                      properties.put(_plus_3, ((SignalWatcher)it).getIdentifier());
                     }
                   } else {
-                    if ((watcher instanceof WatcherWithFileName)) {
-                      QualifiedName _fullyQualifiedName_2 = this._iQualifiedNameProvider.getFullyQualifiedName(it);
-                      String _plus_4 = (_fullyQualifiedName_2 + "Watcher");
-                      String _plus_5 = (_plus_4 + SignalConstants.FILENAME);
-                      boolean _containsKey_2 = properties.containsKey(_plus_5);
-                      boolean _not_3 = (!_containsKey_2);
-                      if (_not_3) {
-                        QualifiedName _fullyQualifiedName_3 = this._iQualifiedNameProvider.getFullyQualifiedName(it);
-                        String _plus_6 = (_fullyQualifiedName_3 + "Watcher");
-                        String _plus_7 = (_plus_6 + SignalConstants.FILENAME);
-                        properties.put(_plus_7, ((WatcherWithFileName)watcher).getFilename());
-                      }
+                    QualifiedName _fullyQualifiedName_2 = this._iQualifiedNameProvider.getFullyQualifiedName(it);
+                    String _plus_4 = (_fullyQualifiedName_2 + "Watcher");
+                    String _plus_5 = (_plus_4 + SignalConstants.FILENAME);
+                    boolean _containsKey_2 = properties.containsKey(_plus_5);
+                    boolean _not_3 = (!_containsKey_2);
+                    if (_not_3) {
+                      QualifiedName _fullyQualifiedName_3 = this._iQualifiedNameProvider.getFullyQualifiedName(it);
+                      String _plus_6 = (_fullyQualifiedName_3 + "Watcher");
+                      String _plus_7 = (_plus_6 + SignalConstants.FILENAME);
+                      properties.put(_plus_7, ((SignalWatcher)it).getIdentifier());
                     }
                   }
                 } else {
diff --git a/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/scoping/SignalDSLScopeProvider.java b/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/scoping/SignalDSLScopeProvider.java
index 0c2e241..18ad221 100644
--- a/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/scoping/SignalDSLScopeProvider.java
+++ b/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/scoping/SignalDSLScopeProvider.java
@@ -17,24 +17,25 @@
 
 import com.google.common.base.Objects;
 import java.util.ArrayList;
-import javax.inject.Inject;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
-import org.eclipse.osbp.dsl.common.xtext.extensions.ModelExtensions;
 import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
 import org.eclipse.osbp.xtext.datainterchange.DataInterchangeGroup;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryActionGroup;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryExecute;
+import org.eclipse.osbp.xtext.signal.SignalActionTypeEnum;
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
+import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
+import org.eclipse.osbp.xtext.signal.SignalDefinition;
+import org.eclipse.osbp.xtext.signal.SignalFunction;
 import org.eclipse.osbp.xtext.signal.SignalScheduler;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName;
+import org.eclipse.osbp.xtext.signal.SignalTask;
+import org.eclipse.osbp.xtext.signal.SignalWatcher;
 import org.eclipse.osbp.xtext.signal.scoping.AbstractSignalDSLScopeProvider;
-import org.eclipse.xtext.resource.EObjectDescription;
-import org.eclipse.xtext.resource.IEObjectDescription;
 import org.eclipse.xtext.scoping.IScope;
-import org.eclipse.xtext.scoping.impl.MapBasedScope;
+import org.eclipse.xtext.scoping.Scopes;
 import org.eclipse.xtext.xbase.lib.CollectionLiterals;
-import org.eclipse.xtext.xbase.lib.Extension;
 
 /**
  * This class contains custom scoping description.
@@ -44,10 +45,6 @@
  */
 @SuppressWarnings("all")
 public class SignalDSLScopeProvider extends AbstractSignalDSLScopeProvider {
-  @Inject
-  @Extension
-  private ModelExtensions _modelExtensions;
-  
   @Override
   public IScope getScope(final EObject context, final EReference reference) {
     IScope _xifexpression = null;
@@ -55,32 +52,108 @@
     if (_equals) {
       return this.getScope_DataInterchanges(context, reference);
     } else {
-      _xifexpression = super.getScope(context, reference);
+      IScope _xifexpression_1 = null;
+      boolean _equals_1 = Objects.equal(reference, SignalDSLPackage.Literals.SIGNAL_FUNCTION__SUPPORT_INTERCHANGE);
+      if (_equals_1) {
+        return this.getScope_AllowedDataInterchangesForSupportedFile(((SignalFunction) context), reference);
+      } else {
+        IScope _xifexpression_2 = null;
+        boolean _equals_2 = Objects.equal(reference, SignalDSLPackage.Literals.SIGNAL_WATCHER__DEFAULT_INTERCHANGE);
+        if (_equals_2) {
+          return this.getScope_AllowedInterchangesForDefault(((SignalDefinition) context), reference);
+        } else {
+          IScope _xifexpression_3 = null;
+          boolean _equals_3 = Objects.equal(reference, SignalDSLPackage.Literals.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION);
+          if (_equals_3) {
+            return this.getScope_DoExecuteFunctions(((SignalFunction) context).getGroup(), reference);
+          } else {
+            _xifexpression_3 = super.getScope(context, reference);
+          }
+          _xifexpression_2 = _xifexpression_3;
+        }
+        _xifexpression_1 = _xifexpression_2;
+      }
+      _xifexpression = _xifexpression_1;
     }
     return _xifexpression;
   }
   
   public IScope getScope_DataInterchanges(final EObject context, final EReference reference) {
-    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
+    ArrayList<EObject> result = CollectionLiterals.<EObject>newArrayList();
     if ((context != null)) {
       EObject signal = context.eContainer();
       DataInterchangeGroup group = ((DataInterchangeGroup) null);
-      if ((signal instanceof WatcherWithFileMask)) {
-        group = ((WatcherWithFileMask)signal).getInterchangegroup();
+      if ((signal instanceof SignalWatcher)) {
+        group = ((SignalWatcher)signal).getInterchangegroup();
       } else {
-        if ((signal instanceof WatcherWithFileName)) {
-          group = ((WatcherWithFileName)signal).getInterchangegroup();
-        } else {
-          if ((signal instanceof SignalScheduler)) {
-            group = ((SignalScheduler)signal).getInterchangegroup();
-          }
+        if ((signal instanceof SignalScheduler)) {
+          group = ((SignalScheduler)signal).getInterchangegroup();
         }
       }
       EList<DataInterchange> _datInts = group.getDatInts();
       for (final DataInterchange value : _datInts) {
-        result.add(EObjectDescription.create(((DataInterchange) value).getName(), ((DataInterchange) value)));
+        result.add(value);
       }
     }
-    return MapBasedScope.createScope(IScope.NULLSCOPE, result);
+    return Scopes.scopeFor(result);
+  }
+  
+  public IScope getScope_AllowedInterchangesForDefault(final SignalDefinition signal, final EReference reference) {
+    ArrayList<EObject> result = CollectionLiterals.<EObject>newArrayList();
+    if ((signal != null)) {
+      DataInterchangeGroup group = signal.getInterchangegroup();
+      EList<DataInterchange> _datInts = group.getDatInts();
+      for (final DataInterchange value : _datInts) {
+        result.add(value);
+      }
+      return Scopes.scopeFor(result);
+    }
+    return null;
+  }
+  
+  public IScope getScope_AllowedDataInterchangesForSupportedFile(final SignalFunction function, final EReference reference) {
+    ArrayList<EObject> result = CollectionLiterals.<EObject>newArrayList();
+    if ((function != null)) {
+      EObject signal = function.eContainer();
+      if ((signal instanceof SignalDefinition)) {
+        if (((((SignalDefinition)signal).getTasks() != null) && (!((SignalDefinition)signal).getTasks().isEmpty()))) {
+          EList<SignalTask> _tasks = ((SignalDefinition)signal).getTasks();
+          for (final SignalTask task : _tasks) {
+            if ((task instanceof SignalDatainterchange)) {
+              if ((function.isOnExportFile() && ((SignalDatainterchange)task).getActionType().equals(SignalActionTypeEnum.DATAEXPORT))) {
+                result.add(((SignalDatainterchange)task).getDataRef());
+              } else {
+                if ((function.isOnImportFile() && ((SignalDatainterchange)task).getActionType().equals(SignalActionTypeEnum.DATAIMPORT))) {
+                  result.add(((SignalDatainterchange)task).getDataRef());
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+    return Scopes.scopeFor(result);
+  }
+  
+  public IScope getScope_AllowedDefaultDataInterchanges(final FunctionLibraryActionGroup group, final EReference reference) {
+    ArrayList<EObject> result = CollectionLiterals.<EObject>newArrayList();
+    if ((group != null)) {
+      EList<FunctionLibraryExecute> _executes = group.getExecutes();
+      for (final FunctionLibraryExecute function : _executes) {
+        result.add(function);
+      }
+    }
+    return Scopes.scopeFor(result);
+  }
+  
+  public IScope getScope_DoExecuteFunctions(final FunctionLibraryActionGroup group, final EReference reference) {
+    ArrayList<EObject> result = CollectionLiterals.<EObject>newArrayList();
+    if ((group != null)) {
+      EList<FunctionLibraryExecute> _executes = group.getExecutes();
+      for (final FunctionLibraryExecute function : _executes) {
+        result.add(function);
+      }
+    }
+    return Scopes.scopeFor(result);
   }
 }
diff --git a/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/validation/SignalDSLValidator.java b/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/validation/SignalDSLValidator.java
index 8d9da5d..80f830e 100644
--- a/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/validation/SignalDSLValidator.java
+++ b/org.eclipse.osbp.xtext.signal/xtend-gen/org/eclipse/osbp/xtext/signal/validation/SignalDSLValidator.java
@@ -17,6 +17,7 @@
 
 import java.nio.file.FileSystem;
 import java.nio.file.FileSystems;
+import java.nio.file.Path;
 import java.nio.file.PathMatcher;
 import java.text.ParseException;
 import java.util.HashSet;
@@ -33,12 +34,10 @@
 import org.eclipse.osbp.xtext.signal.SignalDSLPackage;
 import org.eclipse.osbp.xtext.signal.SignalDatainterchange;
 import org.eclipse.osbp.xtext.signal.SignalDefinition;
+import org.eclipse.osbp.xtext.signal.SignalFunction;
 import org.eclipse.osbp.xtext.signal.SignalPackage;
 import org.eclipse.osbp.xtext.signal.SignalScheduler;
 import org.eclipse.osbp.xtext.signal.SignalWatcher;
-import org.eclipse.osbp.xtext.signal.WatcherDefinition;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileMask;
-import org.eclipse.osbp.xtext.signal.WatcherWithFileName;
 import org.eclipse.osbp.xtext.signal.WeeklyScheduler;
 import org.eclipse.osbp.xtext.signal.common.SignalConstants;
 import org.eclipse.osbp.xtext.signal.jvmmodel.SignalDSLJvmModelInferrer;
@@ -181,84 +180,52 @@
   }
   
   @Check
-  public void checkFilePolicy(final SignalDefinition signal) {
-    if ((signal instanceof SignalWatcher)) {
-      WatcherDefinition watcher = ((SignalWatcher)signal).getDefinition();
-      if ((watcher instanceof WatcherWithFileMask)) {
-        if ((((((WatcherWithFileMask)watcher).getFilemask() != null) && (!((WatcherWithFileMask)watcher).getFilemask().isEmpty())) && (((WatcherWithFileMask)watcher).getExecutiontype() != null))) {
-          SignalDatainterchange _interchange = ((WatcherWithFileMask)watcher).getInterchange();
-          boolean _tripleEquals = (_interchange == null);
-          if (_tripleEquals) {
-            this.error("You must define the task, on which the file mask must be applied on.", watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__INTERCHANGE);
-          }
-        }
-      } else {
-        if ((watcher instanceof WatcherWithFileName)) {
-          if ((((((WatcherWithFileName)watcher).getFilename() != null) && (!((WatcherWithFileName)watcher).getFilename().isEmpty())) && (((WatcherWithFileName)watcher).getExecutiontype() != null))) {
-            int _basedInterchangeDefined = this.basedInterchangeDefined(((WatcherWithFileName)watcher).getInterchanges());
-            boolean _equals = (_basedInterchangeDefined == 0);
-            if (_equals) {
-              this.error("The task on which the file name must be applied on, have to be marked with the keyword \'applyon\'.", watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__INTERCHANGES);
-            } else {
-              int _basedInterchangeDefined_1 = this.basedInterchangeDefined(((WatcherWithFileName)watcher).getInterchanges());
-              boolean _greaterThan = (_basedInterchangeDefined_1 > 1);
-              if (_greaterThan) {
-                this.error("Only one task may be marked with the keyword \'applyon\'.", watcher, 
-                  SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__INTERCHANGES);
-              }
-            }
-          }
-        }
+  public void checkWatcherValidity(final SignalWatcher watcher) {
+    if ((((watcher != null) && (watcher.getTasks() != null)) && (watcher.getInterchangegroup() != null))) {
+      int interchangeCount = this.jvm.taskCount(watcher, true);
+      int functionCount = this.jvm.taskCount(watcher, false);
+      int baseinterchangeCount = this.jvm.definedBaseInterchangeCount(watcher);
+      DataInterchange defaultInterchange = watcher.getDefaultInterchange();
+      SignalDatainterchange baseInterchange = this.jvm.definedBaseInterchange(watcher);
+      if ((watcher.isHasFileMask() && (interchangeCount > 1))) {
+        this.error("Only one interchange unit is allowed to be defined within a watcher with file mask.", watcher, SignalDSLPackage.Literals.SIGNAL_DEFINITION__TASKS);
       }
-    } else {
-      if ((signal instanceof SignalScheduler)) {
-        int _basedInterchangeDefined_2 = this.basedInterchangeDefined(((SignalScheduler)signal).getInterchanges());
-        boolean _greaterEqualsThan = (_basedInterchangeDefined_2 >= 1);
-        if (_greaterEqualsThan) {
-          this.error("No task may be marked here with the keyword \'applyon\'.", signal, 
-            SignalDSLPackage.Literals.SIGNAL_SCHEDULER__INTERCHANGES);
-        }
+      if (((((defaultInterchange == null) && (baseInterchange == null)) && (interchangeCount >= 1)) || (((defaultInterchange == null) && (interchangeCount == 0)) && (functionCount > 0)))) {
+        this.error("You haven\'t specify the interchange unit, whose import path should be watched. You must define one with the keyword \'applyon\'.", watcher, SignalDSLPackage.Literals.SIGNAL_DEFINITION__TASKS);
+      }
+      if (((defaultInterchange != null) && (baseInterchange != null))) {
+        this.error("You can only mark one interchange unit with the keyword \'applyon\'.", watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__DEFAULT_INTERCHANGE);
+      }
+      if ((baseinterchangeCount > 1)) {
+        this.error("You can only mark one interchange unit with the keyword \'applyon\'.", watcher, SignalDSLPackage.Literals.SIGNAL_DEFINITION__NAME);
       }
     }
   }
   
-  public int basedInterchangeDefined(final EList<SignalDatainterchange> interchanges) {
-    int count = 0;
-    for (final SignalDatainterchange unit : interchanges) {
-      boolean _isBaseinterchange = unit.isBaseinterchange();
-      if (_isBaseinterchange) {
-        count++;
-      }
-    }
-    return count;
-  }
-  
   @Check
   public void checkDuplicateFileMaskOrFileName(final SignalPackage pck) {
     HashSet<String> filemasks = new HashSet<String>();
     EList<SignalDefinition> _signals = pck.getSignals();
-    for (final SignalDefinition signal : _signals) {
-      if ((signal instanceof SignalWatcher)) {
-        WatcherDefinition watcher = ((SignalWatcher)signal).getDefinition();
-        if ((watcher instanceof WatcherWithFileMask)) {
-          boolean _contains = filemasks.contains(((WatcherWithFileMask)watcher).getFilemask());
+    for (final SignalDefinition watcher : _signals) {
+      if ((watcher instanceof SignalWatcher)) {
+        boolean _isHasFileMask = ((SignalWatcher)watcher).isHasFileMask();
+        if (_isHasFileMask) {
+          boolean _contains = filemasks.contains(((SignalWatcher)watcher).getIdentifier());
           boolean _not = (!_contains);
           if (_not) {
-            filemasks.add(((WatcherWithFileMask)watcher).getFilemask());
+            filemasks.add(((SignalWatcher)watcher).getIdentifier());
           } else {
             this.error("This file mask is already in use in another watcher. Please change it.", watcher, 
-              SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK);
+              SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER);
           }
         } else {
-          if ((watcher instanceof WatcherWithFileName)) {
-            boolean _contains_1 = filemasks.contains(((WatcherWithFileName)watcher).getFilename());
-            boolean _not_1 = (!_contains_1);
-            if (_not_1) {
-              filemasks.add(((WatcherWithFileName)watcher).getFilename());
-            } else {
-              this.error("This file name is already in use in another watcher. Please change it.", watcher, 
-                SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__FILENAME);
-            }
+          boolean _contains_1 = filemasks.contains(((SignalWatcher)watcher).getIdentifier());
+          boolean _not_1 = (!_contains_1);
+          if (_not_1) {
+            filemasks.add(((SignalWatcher)watcher).getIdentifier());
+          } else {
+            this.error("This file name is already in use in another watcher. Please change it.", watcher, 
+              SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER);
           }
         }
       }
@@ -266,123 +233,47 @@
   }
   
   @Check
-  public void checkFileMaskAndFileNameValidity(final SignalDefinition signal) {
-    this.checkFileNameValidityCheck(signal);
-    if ((signal instanceof SignalWatcher)) {
-      WatcherDefinition watcher = ((SignalWatcher)signal).getDefinition();
-      if ((watcher instanceof WatcherWithFileMask)) {
-        if ((((watcher != null) && (((WatcherWithFileMask)watcher).getFilemask() != null)) && (!((WatcherWithFileMask)watcher).getFilemask().isEmpty()))) {
-          try {
-            FileSystem _default = FileSystems.getDefault();
-            String _filemask = ((WatcherWithFileMask)watcher).getFilemask();
-            String _plus = ("glob:" + _filemask);
-            _default.getPathMatcher(_plus);
-          } catch (final Throwable _t) {
-            if (_t instanceof PatternSyntaxException) {
-              final PatternSyntaxException exception = (PatternSyntaxException)_t;
-              String _message = exception.getMessage();
-              String _plus_1 = ("The pattern of this file mask is invalid, please change it. Error: " + _message);
-              this.error(_plus_1, watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK);
-            } else if (_t instanceof UnsupportedOperationException) {
-              final UnsupportedOperationException exception_1 = (UnsupportedOperationException)_t;
-              String _message_1 = exception_1.getMessage();
-              String _plus_2 = ("The pattern of this file mask is not recognized, please change it. Error: " + _message_1);
-              this.error(_plus_2, watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK);
-            } else if (_t instanceof IllegalArgumentException) {
-              final IllegalArgumentException exception_2 = (IllegalArgumentException)_t;
-              String _message_2 = exception_2.getMessage();
-              String _plus_3 = ("The pattern of this file mask is invalid, please change it. Error: " + _message_2);
-              this.error(_plus_3, watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK);
-            } else {
-              throw Exceptions.sneakyThrow(_t);
-            }
+  public void checkFileMaskAndFileNameValidity(final SignalWatcher watcher) {
+    this.checkFileNameExtension(watcher);
+    boolean _isHasFileMask = watcher.isHasFileMask();
+    if (_isHasFileMask) {
+      if ((((watcher != null) && (watcher.getIdentifier() != null)) && (!watcher.getIdentifier().isEmpty()))) {
+        try {
+          FileSystem _default = FileSystems.getDefault();
+          String _identifier = watcher.getIdentifier();
+          String _plus = ("glob:" + _identifier);
+          _default.getPathMatcher(_plus);
+        } catch (final Throwable _t) {
+          if (_t instanceof PatternSyntaxException) {
+            final PatternSyntaxException exception = (PatternSyntaxException)_t;
+            String _message = exception.getMessage();
+            String _plus_1 = ("The pattern of this file mask is invalid, please change it. Error: " + _message);
+            this.error(_plus_1, watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER);
+          } else if (_t instanceof UnsupportedOperationException) {
+            final UnsupportedOperationException exception_1 = (UnsupportedOperationException)_t;
+            String _message_1 = exception_1.getMessage();
+            String _plus_2 = ("The pattern of this file mask is not recognized, please change it. Error: " + _message_1);
+            this.error(_plus_2, watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER);
+          } else if (_t instanceof IllegalArgumentException) {
+            final IllegalArgumentException exception_2 = (IllegalArgumentException)_t;
+            String _message_2 = exception_2.getMessage();
+            String _plus_3 = ("The pattern of this file mask is invalid, please change it. Error: " + _message_2);
+            this.error(_plus_3, watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER);
+          } else {
+            throw Exceptions.sneakyThrow(_t);
           }
         }
       }
     }
   }
   
-  public void checkFileNameValidityCheck(final SignalDefinition signal) {
-    if ((signal instanceof SignalWatcher)) {
-      WatcherDefinition watcher = ((SignalWatcher)signal).getDefinition();
-      if ((watcher instanceof WatcherWithFileMask)) {
-        if ((((((watcher != null) && (((WatcherWithFileMask)watcher).getFilemask() != null)) && (!((WatcherWithFileMask)watcher).getFilemask().isEmpty())) && (((WatcherWithFileMask)watcher).getInterchange() != null)) && (((WatcherWithFileMask)watcher).getInterchange().getDataRef() != null))) {
-          DataInterchange baseinterchange = ((WatcherWithFileMask)watcher).getInterchange().getDataRef();
-          if (((baseinterchange != null) && (baseinterchange.getFileEndpoint() != null))) {
-            String allowed_extension = this.dv.getValidExtensionToInterchange(baseinterchange.getFileEndpoint());
-            if ((allowed_extension != null)) {
-              if ((allowed_extension.equals(this.dv.CSV_EXTENSION) && (!this.dv.isExtensionAllowedForInterchange(((WatcherWithFileMask)watcher).getFilemask(), allowed_extension)))) {
-                String _filemask = ((WatcherWithFileMask)watcher).getFilemask();
-                String _plus = ("The file mask [" + _filemask);
-                String _plus_1 = (_plus + "] you have entered is not valid. Only file masks ending with the extension ");
-                String _plus_2 = (_plus_1 + allowed_extension);
-                String _plus_3 = (_plus_2 + " are allowed for this watcher!");
-                this.error(_plus_3, watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK);
-              } else {
-                if ((allowed_extension.equals(this.dv.EDI_EXTENSION) && (!this.dv.isExtensionAllowedForInterchange(((WatcherWithFileMask)watcher).getFilemask(), allowed_extension)))) {
-                  String _filemask_1 = ((WatcherWithFileMask)watcher).getFilemask();
-                  String _plus_4 = ("The file mask [" + _filemask_1);
-                  String _plus_5 = (_plus_4 + "] you have entered is not valid. Only file masks ending with the extension ");
-                  String _plus_6 = (_plus_5 + allowed_extension);
-                  String _plus_7 = (_plus_6 + " are allowed for this watcher!");
-                  this.error(_plus_7, watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK);
-                } else {
-                  if ((allowed_extension.equals(this.dv.XML_EXTENSION) && (!this.dv.isExtensionAllowedForInterchange(((WatcherWithFileMask)watcher).getFilemask(), allowed_extension)))) {
-                    String _filemask_2 = ((WatcherWithFileMask)watcher).getFilemask();
-                    String _plus_8 = ("The file mask [" + _filemask_2);
-                    String _plus_9 = (_plus_8 + "] you have entered is not valid. Only file masks ending with the extension ");
-                    String _plus_10 = (_plus_9 + allowed_extension);
-                    String _plus_11 = (_plus_10 + " are allowed for this watcher!");
-                    this.error(_plus_11, watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK);
-                  }
-                }
-              }
-            }
-            boolean _isExtensionValid = this.dv.isExtensionValid(((WatcherWithFileMask)watcher).getFilemask());
-            boolean _not = (!_isExtensionValid);
-            if (_not) {
-              this.error("The file mask extension you have entered is not currently supported. Only file masks ending with either one of following extension are allowed: \'.csv\' \'.edi\' or \'.xml\' .", watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_MASK__FILEMASK);
-            }
-          }
-        }
+  public void checkFileNameExtension(final SignalWatcher watcher) {
+    if (((((watcher != null) && (watcher.getIdentifier() != null)) && (!watcher.getIdentifier().isEmpty())) && (watcher.getInterchangegroup() != null))) {
+      if (((!this.dv.isExtensionValid(watcher.getIdentifier())) && watcher.isHasFileMask())) {
+        this.error("The file mask extension you have entered is not currently supported. Only file masks ending with either one of the following extensions are allowed: \'.csv\' \'.edi\' \'.txt\' or \'.xml\' .", watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER);
       } else {
-        if ((watcher instanceof WatcherWithFileName)) {
-          if (((((((watcher != null) && (((WatcherWithFileName)watcher).getFilename() != null)) && (!((WatcherWithFileName)watcher).getFilename().isEmpty())) && (((WatcherWithFileName)watcher).getInterchanges() != null)) && (!((WatcherWithFileName)watcher).getInterchanges().isEmpty())) && (this.jvm.getBaseInterchange(signal) != null))) {
-            DataInterchange baseinterchange_1 = this.jvm.getBaseInterchange(signal).getDataRef();
-            if (((baseinterchange_1 != null) && (baseinterchange_1.getFileEndpoint() != null))) {
-              String allowed_extension_1 = this.dv.getValidExtensionToInterchange(baseinterchange_1.getFileEndpoint());
-              if ((allowed_extension_1 != null)) {
-                if ((allowed_extension_1.equals(this.dv.CSV_EXTENSION) && (!this.dv.isExtensionAllowedForInterchange(((WatcherWithFileName)watcher).getFilename(), allowed_extension_1)))) {
-                  String _filename = ((WatcherWithFileName)watcher).getFilename();
-                  String _plus_12 = ("The file name [" + _filename);
-                  String _plus_13 = (_plus_12 + "] you have entered is not valid. Only file names ending with the extension ");
-                  String _plus_14 = (_plus_13 + allowed_extension_1);
-                  String _plus_15 = (_plus_14 + " are allowed for this watcher!");
-                  this.error(_plus_15, watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__FILENAME);
-                } else {
-                  if ((allowed_extension_1.equals(this.dv.EDI_EXTENSION) && (!this.dv.isExtensionAllowedForInterchange(((WatcherWithFileName)watcher).getFilename(), allowed_extension_1)))) {
-                    String _filename_1 = ((WatcherWithFileName)watcher).getFilename();
-                    String _plus_16 = ("The file name [" + _filename_1);
-                    String _plus_17 = (_plus_16 + "] you have entered is not valid. Only file names ending with the extension ");
-                    String _plus_18 = (_plus_17 + allowed_extension_1);
-                    String _plus_19 = (_plus_18 + " are allowed for this watcher!");
-                    this.error(_plus_19, watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__FILENAME);
-                  } else {
-                    if ((allowed_extension_1.equals(this.dv.XML_EXTENSION) && (!this.dv.isExtensionAllowedForInterchange(((WatcherWithFileName)watcher).getFilename(), allowed_extension_1)))) {
-                      String _filename_2 = ((WatcherWithFileName)watcher).getFilename();
-                      String _plus_20 = ("The file name [" + _filename_2);
-                      String _plus_21 = (_plus_20 + "] you have entered is not valid. Only file names ending with the extension ");
-                      String _plus_22 = (_plus_21 + allowed_extension_1);
-                      String _plus_23 = (_plus_22 + " are allowed for this watcher!");
-                      this.error(_plus_23, watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__FILENAME);
-                    }
-                  }
-                }
-              } else {
-                this.error("The file name extension you have entered is not currently supported. Only file names ending with either one of following extension are allowed: \'.csv\' \'.edi\' or \'.xml\' .", watcher, SignalDSLPackage.Literals.WATCHER_WITH_FILE_NAME__FILENAME);
-              }
-            }
-          }
+        if (((!this.dv.isExtensionValid(watcher.getIdentifier())) && (!watcher.isHasFileMask()))) {
+          this.error("The file name extension you have entered is not currently supported. Only file names ending with either one of the following extensions are allowed: \'.csv\' \'.edi\' \'.txt\' or \'.xml\' .", watcher, SignalDSLPackage.Literals.SIGNAL_WATCHER__IDENTIFIER);
         }
       }
     }
@@ -424,4 +315,24 @@
     }
     return null;
   }
+  
+  @Check
+  public void checkFunctionTaskValidity(final SignalFunction function) {
+    if (((((function != null) && (function.getGroup() != null)) && (function.getDoExecuteFunction() != null)) && (function.getDoExecuteFunction().getParams() != null))) {
+      if ((function.isOnExportFile() || function.isOnImportFile())) {
+        int _size = function.getDoExecuteFunction().getParams().size();
+        boolean _tripleNotEquals = (_size != 1);
+        if (_tripleNotEquals) {
+          this.error("Only functions with one parameter from type java.nio.file.Path are allowed to be selected.", function, SignalDSLPackage.Literals.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION);
+        }
+        if (((function.getDoExecuteFunction().getParams().size() == 1) && (!function.getDoExecuteFunction().getParams().get(0).getParameterType().getType().getIdentifier().equals(Path.class.getName())))) {
+          this.error("Only functions with one parameter from type java.nio.file.Path are allowed to be selected.", function, SignalDSLPackage.Literals.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION);
+        }
+      } else {
+        if ((((!function.isOnExportFile()) && (!function.isOnImportFile())) && (!function.getDoExecuteFunction().getParams().isEmpty()))) {
+          this.error("Only functions without parameter are allowed to be selected.", function, SignalDSLPackage.Literals.SIGNAL_FUNCTION__DO_EXECUTE_FUNCTION);
+        }
+      }
+    }
+  }
 }